//------------------------------------------ // Invision Power Board 2.1.7 // Topics JS File // (c) 2005 Invision Power Services, Inc. // // http://www.ws.ea7.net //------------------------------------------ var mystored_selection = ''; var post_cache = new Array(); var ajax_loaded = 1; var ignore_cache = new Array(); /*--------------------------------------------*/ // Fast reply stuff /*--------------------------------------------*/ function emoticon( ecode, eobj, eurl ) { ecode = ' ' + ecode + ' '; var obj_ta = document.getElementById( 'fastreplyarea' ); if ( (ua_vers >= 4) && is_ie && is_win) { if (obj_ta.isTextEdit) { obj_ta.focus(); var sel = document.selection; var rng = sel.createRange(); rng.colapse; if((sel.type == "Text" || sel.type == "None") && rng != null) { if(ecode != "" && rng.text.length > 0) ecode = rng.text + ecode ; rng.text = ecode; } } else { obj_ta.value += ecode; } } //---------------------------------------- // It's MOZZY! //---------------------------------------- else if ( obj_ta.selectionEnd ) { var ss = obj_ta.selectionStart; var st = obj_ta.scrollTop; var es = obj_ta.selectionEnd; if (es <= 2) { es = obj_ta.textLength; } var start = (obj_ta.value).substring(0, ss); var middle = (obj_ta.value).substring(ss, es); var end = (obj_ta.value).substring(es, obj_ta.textLength); //----------------------------------- // text range? //----------------------------------- if (obj_ta.selectionEnd - obj_ta.selectionStart > 0) { middle = ecode + middle; } else { middle = ecode + middle; } obj_ta.value = start + middle + end; var cpos = ss + (middle.length); obj_ta.selectionStart = cpos; obj_ta.selectionEnd = cpos; obj_ta.scrollTop = st; } //---------------------------------------- // It's CRAPPY! //---------------------------------------- else { obj_ta.value += ecode; } obj_ta.focus(); if ( (ua_vers >= 4) && is_ie && is_win && emowindow != 'undefined' ) { emowindow.focus(); } //document.getElementById( 'fastreplyarea' ).value += ' ' + ecode + ' '; } /*--------------------------------------------*/ // Topic: Scroll to post: IE fix /*--------------------------------------------*/ function topic_scroll_to_post( post_id ) { //---------------------------------- // Check for PID //---------------------------------- if ( ! post_id ) { return false; } try { var post_main_obj = document.getElementById( 'post-main-' + post_id ); } catch(error) { var post_main_obj; } if ( post_main_obj ) { var post_box_top = _get_obj_toppos( post_main_obj ); if ( post_box_top ) { scroll( 0, post_box_top - 30 ); } } } /*--------------------------------------------*/ // Show hidden post /*--------------------------------------------*/ function topic_show_ignored_post( pid ) { try { // Set up var post_main = document.getElementById( 'post-main-' + pid ); var post_ignore = document.getElementById( 'post-ignore-' + pid ); // Show it post_main.innerHTML = ignore_cache[ pid ]; } catch( e ) { //alert( e ); } return false; } /*--------------------------------------------*/ // Initiate topic hide /*--------------------------------------------*/ function topic_init_ignored_post( pid ) { try { // Set up var post_main = document.getElementById( 'post-main-' + pid ); var post_ignore = document.getElementById( 'post-ignore-' + pid ); // Cache it... ignore_cache[ pid ] = post_main.innerHTML; // Display "ignored" msg post_main.innerHTML = post_ignore.innerHTML; } catch( e ) { //alert( e ); } } /*--------------------------------------------*/ // Window Resize /*--------------------------------------------*/ function ajax_std_window_resize( pix, pid ) { var box = document.getElementById( 'post-edit-'+pid ); var cur_height = parseInt( box.style.height ) ? parseInt( box.style.height ) : 300; var new_height = cur_height + pix; if ( new_height > 0 ) { box.style.height = new_height + "px"; } return false; } /*--------------------------------------------*/ // Ajax: Cancel for edit /*--------------------------------------------*/ function ajax_cancel_for_edit( post_id ) { if ( post_cache[ post_id ] != "" ) { document.getElementById( 'post-'+post_id ).innerHTML = post_cache[ post_id ]; } return false; } /*--------------------------------------------*/ // Ajax: Save for edit /*--------------------------------------------*/ function ajax_save_for_edit( post_id ) { //---------------------------------- // INIT //---------------------------------- var url = ipb_var_base_url+'act=xmlout&do=post-edit-save&p='+post_id+'&t='+ipb_input_t+'&f='+ipb_input_f; var fields = new Array(); //---------------------------------- // Populate fields //---------------------------------- fields['md5check'] = ipb_md5_check; fields['t'] = ipb_input_t; fields['f'] = ipb_input_f; fields['p'] = post_id; fields['act'] = 'xmlout'; fields['do'] = 'post-edit-save'; fields['Post'] = document.getElementById( 'post-edit-'+post_id ).value; fields['std_used'] = 1; // Make sure STD BBCode parser is used /*--------------------------------------------*/ // Main function to do on request // Must be defined first!! /*--------------------------------------------*/ do_request_function = function() { //---------------------------------- // Ignore unless we're ready to go //---------------------------------- if ( ! xmlobj.readystate_ready_and_ok() ) { xmlobj.show_loading(); return; } xmlobj.hide_loading(); //---------------------------------- // INIT //---------------------------------- var html = xmlobj.xmlhandler.responseText; if ( html != 'error' ) { document.getElementById( 'post-'+post_id ).innerHTML = html; } } //---------------------------------- // LOAD XML //---------------------------------- xmlobj = new ajax_request(); xmlobj.onreadystatechange( do_request_function ); var xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(fields) ); post_cache[ post_id ] = ''; return false; } /*--------------------------------------------*/ // Ajax: Prep for edit /*--------------------------------------------*/ function ajax_prep_for_edit( post_id, event ) { //---------------------------------- // Cancel bubble (Prevent IE scroll...) //---------------------------------- global_cancel_bubble( event, true ); var post_main_obj = document.getElementById( 'post-main-' + post_id ); var post_box_top = _get_obj_toppos( post_main_obj ); //---------------------------------- // INIT //---------------------------------- var url = ipb_var_base_url+'act=xmlout&do=post-edit-show&p='+post_id+'&t='+ipb_input_t+'&f='+ipb_input_f; if ( ! post_cache[ post_id ] || post_cache[ post_id ] == '' ) { post_cache[ post_id ] = document.getElementById( 'post-'+post_id ).innerHTML; } //---------------------------------- // Attempt to close open menus //---------------------------------- try { menu_action_close(); } catch(e) { //alert( e ); } /*--------------------------------------------*/ // Main function to do on request // Must be defined first!! /*--------------------------------------------*/ do_request_function = function() { //---------------------------------- // Ignore unless we're ready to go //---------------------------------- if ( ! xmlobj.readystate_ready_and_ok() ) { xmlobj.show_loading(); return; } xmlobj.hide_loading(); //---------------------------------- // INIT //---------------------------------- var html = xmlobj.xmlhandler.responseText; if ( html == 'nopermission' ) { alert( js_error_no_permission ); } else if ( html != 'error' ) { if ( post_box_top ) { scroll( 0, post_box_top - 30 ); } document.getElementById( 'post-'+post_id ).innerHTML = html; } } //---------------------------------- // LOAD XML //---------------------------------- xmlobj = new ajax_request(); xmlobj.onreadystatechange( do_request_function ); xmlobj.process( url ); return false; } /*--------------------------------------------*/ // check selection /*--------------------------------------------*/ function checkselection() { var myselection = ''; if ( window.getSelection ) { myselection = window.getSelection(); } else if ( document.selection ) { myselection = document.selection.createRange().text; } else if ( document.getSelection ) { myselection = document.getSelection(); } if ( myselection != '' && myselection != null ) { if ( myselection != mystored_selection ) { document.getElementById('fastreply-pastesel').style.display = ''; mystored_selection = (myselection.toString() != '') ? myselection.toString() : null; } } else { mystored_selection = null; } } /*--------------------------------------------*/ // Paste selection /*--------------------------------------------*/ function pasteselection() { if ( mystored_selection != '' && mystored_selection != null ) { var fr = document.getElementById('fastreplyarea'); if (fr) { fr.value += '[quote]'+mystored_selection+'[/quote]\n'; fr.focus(); } } return false; } /*--------------------------------------------*/ // Link to a post /*--------------------------------------------*/ function link_to_post(pid) { temp = prompt( ipb_lang_tt_prompt, ipb_var_base_url + "showtopic=" + ipb_input_t + "&view=findpost&p=" + pid ); return false; } /*--------------------------------------------*/ // Delete post /*--------------------------------------------*/ function delete_post(theURL) { if (confirm( ipb_lang_js_del_1 )) { window.location.href=theURL; } else { alert ( ipb_lang_js_del_2 ); } } /*--------------------------------------------*/ // Multi quote /*--------------------------------------------*/ function multiquote_add(id) { saved = new Array(); clean = new Array(); add = 1; //----------------------------------- // Get any saved info //----------------------------------- if ( tmp = my_getcookie('mqtids') ) { saved = tmp.split(","); } //----------------------------------- // Remove bit if exists //----------------------------------- for( i = 0 ; i < saved.length; i++ ) { if ( saved[i] != "" ) { if ( saved[i] == id ) { add = 0; } else { clean[clean.length] = saved[i]; } } } //----------------------------------- // Add? //----------------------------------- if ( add ) { clean[ clean.length ] = id; eval("document.mad_"+id+".src=removequotebutton"); } else { eval(" document.mad_"+id+".src=addquotebutton"); } my_setcookie( 'mqtids', clean.join(','), 0 ); return false; } /*--------------------------------------------*/ // Check delete /*--------------------------------------------*/ function checkdelete() { if ( ! document.modform.selectedpids.value ) { return false; } isDelete = document.modform.tact.options[document.modform.tact.selectedIndex].value; if (isDelete == 'delete') { formCheck = confirm( lang_suredelete ); if (formCheck == true) { return true; } else { return false; } } } /*--------------------------------------------*/ // Toggle selection //*--------------------------------------------*/ function topic_toggle_pid( pid ) { //----------------------------------- // Got a number? //----------------------------------- if ( isNaN( pid ) ) { return false; } saved = new Array(); clean = new Array(); add = 1; //----------------------------------- // Get form info //----------------------------------- tmp = document.modform.selectedpids.value; saved = tmp.split(","); //----------------------------------- // Remove bit if exists //----------------------------------- for( i = 0 ; i < saved.length; i++ ) { if ( saved[i] != "" ) { if ( saved[i] == pid ) { add = 0; } else { clean[clean.length] = saved[i]; } } } //----------------------------------- // Add? //----------------------------------- if ( add ) { clean[ clean.length ] = pid; eval("document.img"+pid+".src=selectedbutton"); } else { eval(" document.img"+pid+".src=unselectedbutton"); } newvalue = clean.join(','); my_setcookie( 'modpids', newvalue, 0 ); document.modform.selectedpids.value = newvalue; newcount = stacksize(clean); document.modform.gobutton.value = lang_gobutton + ' (' + newcount + ')'; return false; }