//------------------------------------------ // Invision Power Board v2.0 // Global JS File // (c) 2003 Invision Power Services, Inc. // // http://www.invisionboard.com //------------------------------------------ //========================================== // Set up //========================================== // Sniffer based on http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html var uagent = navigator.userAgent.toLowerCase(); var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") ); var is_ie = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) ); var is_ie4 = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) ); var is_moz = (navigator.product == 'Gecko'); var is_ns = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) ); var is_ns4 = ( (is_ns) && (parseInt(navigator.appVersion) == 4) ); var is_opera = (uagent.indexOf('opera') != -1); var is_kon = (uagent.indexOf('konqueror') != -1); var is_webtv = (uagent.indexOf('webtv') != -1); var is_win = ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) ); var is_mac = ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") ); var ua_vers = parseInt(navigator.appVersion); //========================================== // Get cookie //========================================== function my_getcookie( name ) { cname = ipb_var_cookieid + name + '='; cpos = document.cookie.indexOf( cname ); if ( cpos != -1 ) { cstart = cpos + cname.length; cend = document.cookie.indexOf(";", cstart); if (cend == -1) { cend = document.cookie.length; } return unescape( document.cookie.substring(cstart, cend) ); } return null; } //========================================== // Set cookie //========================================== function my_setcookie( name, value, sticky ) { expire = ""; domain = ""; path = "/"; if ( sticky ) { expire = "; expires=Wed, 1 Jan 2020 00:00:00 GMT"; } if ( ipb_var_cookie_domain != "" ) { domain = '; domain=' + ipb_var_cookie_domain; } if ( ipb_var_cookie_path != "" ) { path = ipb_var_cookie_path; } document.cookie = ipb_var_cookieid + name + "=" + value + "; path=" + path + expire + domain + ';'; } //========================================== // Pop up MyAssistant window //========================================== function buddy_pop() { window.open( ipb_var_base_url + 'act=buddy','BrowserBuddy','width=250,height=500,resizable=yes,scrollbars=yes'); } //========================================== // Pop up chat window //========================================== function chat_pop(cw,ch) { window.open( ipb_var_base_url + 'act=chat&pop=1','Chat','width='+cw+',height='+ch+',resizable=yes,scrollbars=yes'); } //========================================== // Multi Page jumps //========================================== function multi_page_jump( url_bit, total_posts, per_page ) { pages = 1; cur_st = ipb_var_st; cur_page = 1; if ( total_posts % per_page == 0 ) { pages = total_posts / per_page; } else { pages = Math.ceil( total_posts / per_page ); } msg = ipb_lang_tpl_q1 + " " + pages; if ( cur_st > 0 ) { cur_page = cur_st / per_page; cur_page = cur_page -1; } show_page = 1; if ( cur_page < pages ) { show_page = cur_page + 1; } if ( cur_page >= pages ) { show_page = cur_page - 1; } else { show_page = cur_page + 1; } userPage = prompt( msg, show_page ); if ( userPage > 0 ) { if ( userPage < 1 ) { userPage = 1; } if ( userPage > pages ) { userPage = pages; } if ( userPage == 1 ) { start = 0; } else { start = (userPage - 1) * per_page; } window.location = url_bit + "&st=" + start; } } //========================================== // Hide / Unhide menu elements //========================================== function ShowHide(id1, id2) { if (id1 != '') toggleview(id1); if (id2 != '') toggleview(id2); } //========================================== // Get element by id //========================================== function my_getbyid(id) { itm = null; if (document.getElementById) { itm = document.getElementById(id); } else if (document.all) { itm = document.all[id]; } else if (document.layers) { itm = document.layers[id]; } return itm; } //========================================== // Show/hide toggle //========================================== function toggleview(id) { if ( ! id ) return; if ( itm = my_getbyid(id) ) { if (itm.style.display == "none") { my_show_div(itm); } else { my_hide_div(itm); } } } //========================================== // Set DIV ID to hide //========================================== function my_hide_div(itm) { if ( ! itm ) return; itm.style.display = "none"; } //========================================== // Set DIV ID to show //========================================== function my_show_div(itm) { if ( ! itm ) return; itm.style.display = ""; } //========================================== // Change cell colour //========================================== function change_cell_color( id, cl ) { itm = my_getbyid(id); if ( itm ) { itm.className = cl; } } //========================================== // Toggle category //========================================== function togglecategory( fid, add ) { saved = new Array(); clean = new Array(); //----------------------------------- // Get any saved info //----------------------------------- if ( tmp = my_getcookie('collapseprefs') ) { saved = tmp.split(","); } //----------------------------------- // Remove bit if exists //----------------------------------- for( i = 0 ; i < saved.length; i++ ) { if ( saved[i] != fid && saved[i] != "" ) { clean[clean.length] = saved[i]; } } //----------------------------------- // Add? //----------------------------------- if ( add ) { clean[ clean.length ] = fid; my_show_div( my_getbyid( 'fc_'+fid ) ); my_hide_div( my_getbyid( 'fo_'+fid ) ); } else { my_show_div( my_getbyid( 'fo_'+fid ) ); my_hide_div( my_getbyid( 'fc_'+fid ) ); } my_setcookie( 'collapseprefs', clean.join(','), 1 ); } //========================================== // locationjump //========================================== function locationjump(url) { window.location = ipb_var_base_url + url; } //========================================== // CHOOSE SKIN //========================================== function chooseskin(obj) { choosebox = obj.options[obj.selectedIndex].value; extravars = ''; if ( choosebox != -1 && ! isNaN( choosebox ) ) { if ( document.skinselectorbox.skinurlbits.value ) { extravars = '&' + document.skinselectorbox.skinurlbits.value; } locationjump( 'setskin=1&skinid=' + choosebox + extravars ); } } //========================================== // CHOOSE LANG //========================================== function chooselang(obj) { choosebox = obj.options[obj.selectedIndex].value; extravars = ''; if ( document.langselectorbox.langurlbits.value ) { extravars = '&' + document.langselectorbox.langurlbits.value; } locationjump( 'setlanguage=1&langid=' + choosebox + extravars ); } //========================================== // pop up window //========================================== function PopUp(url, name, width,height,center,resize,scroll,posleft,postop) { showx = ""; showy = ""; if (posleft != 0) { X = posleft } if (postop != 0) { Y = postop } if (!scroll) { scroll = 1 } if (!resize) { resize = 1 } if ((parseInt (navigator.appVersion) >= 4 ) && (center)) { X = (screen.width - width ) / 2; Y = (screen.height - height) / 2; } if ( X > 0 ) { showx = ',left='+X; } if ( Y > 0 ) { showy = ',top='+Y; } if (scroll != 0) { scroll = 1 } var Win = window.open( url, name, 'width='+width+',height='+height+ showx + showy + ',resizable='+resize+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no'); } //========================================== // Array: Get stack size //========================================== function stacksize(thearray) { for (i = 0 ; i < thearray.length; i++ ) { if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) { return i; } } return thearray.length; } //========================================== // Array: Push stack //========================================== function pushstack(thearray, newval) { arraysize = stacksize(thearray); thearray[arraysize] = newval; } //========================================== // Array: Pop stack //========================================== function popstack(thearray) { arraysize = stacksize(thearray); theval = thearray[arraysize - 1]; delete thearray[arraysize - 1]; return theval; }