// Browser Detect Lite v2.1 // http://www.dithered.com/javascript/browser_detect/index.html // modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM) // // modified by Michael Lovitt to include OmniWeb and Dreamcast function BrowserDetectLite() { var ua = navigator.userAgent.toLowerCase(); this.ua = ua; // browser name this.isGecko = (ua.indexOf('gecko') != -1); this.isMozilla = (this.isGecko && ua.indexOf("gecko/") + 14 == ua.length); this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) ); this.isIE = ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) ); this.isOpera = (ua.indexOf("opera") != -1); this.isKonqueror = (ua.indexOf("konqueror") != -1); this.isIcab = (ua.indexOf("icab") != -1); this.isAol = (ua.indexOf("aol") != -1); this.isWebtv = (ua.indexOf("webtv") != -1); this.isOmniweb = (ua.indexOf("omniweb") != -1); this.isDreamcast = (ua.indexOf("dreamcast") != -1); // spoofing and compatible browsers this.isIECompatible = ( (ua.indexOf("msie") != -1) && !this.isIE); this.isNSCompatible = ( (ua.indexOf("mozilla") != -1) && !this.isNS && !this.isMozilla); // browser version this.versionMinor = parseFloat(navigator.appVersion); // correct version number for NS6+ if (this.isNS && this.isGecko) { this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) ); } // correct version number for IE4+ else if (this.isIE && this.versionMinor >= 4) { this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) ); } // correct version number for Opera else if (this.isOpera) { if (ua.indexOf('opera/') != -1) { this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) ); } else { this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) ); } } // correct version number for Konqueror else if (this.isKonqueror) { this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) ); } // correct version number for iCab else if (this.isIcab) { if (ua.indexOf('icab/') != -1) { this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) ); } else { this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) ); } } // correct version number for WebTV else if (this.isWebtv) { this.versionMinor = parseFloat( ua.substring( ua.indexOf('webtv/') + 6 ) ); } this.versionMajor = parseInt(this.versionMinor); this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 ); // platform this.isWin = (ua.indexOf('win') != -1); this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1) ); this.isMac = (ua.indexOf('mac') != -1); this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('linux') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1) // specific browser shortcuts this.isNS4x = (this.isNS && this.versionMajor == 4); this.isNS40x = (this.isNS4x && this.versionMinor < 4.5); this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7); this.isNS4up = (this.isNS && this.versionMinor >= 4); this.isNS6x = (this.isNS && this.versionMajor == 6); this.isNS6up = (this.isNS && this.versionMajor >= 6); this.isIE4x = (this.isIE && this.versionMajor == 4); this.isIE4up = (this.isIE && this.versionMajor >= 4); this.isIE5x = (this.isIE && this.versionMajor == 5); this.isIE55 = (this.isIE && this.versionMinor == 5.5); this.isIE5up = (this.isIE && this.versionMajor >= 5); this.isIE6x = (this.isIE && this.versionMajor == 6); this.isIE6up = (this.isIE && this.versionMajor >= 6); this.isIE4xMac = (this.isIE4x && this.isMac); } var browser = new BrowserDetectLite(); // * end browser detect sutff // Flash Player Version Detection - Rev 1.6 // Detect Client Browser type // Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved. var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; function ControlVersion() { var version; var axo; var e; // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry try { // version will be set for 7.X or greater players axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); version = axo.GetVariable("$version"); } catch (e) { } if (!version) { try { // version will be set for 6.X players only axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); // installed player is some revision of 6.0 // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29, // so we have to be careful. // default to the first public version version = "WIN 6,0,21,0"; // throws if AllowScripAccess does not exist (introduced in 6.0r47) axo.AllowScriptAccess = "always"; // safe to call for 6.0r47 or greater version = axo.GetVariable("$version"); } catch (e) { } } if (!version) { try { // version will be set for 4.X or 5.X player axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = axo.GetVariable("$version"); } catch (e) { } } if (!version) { try { // version will be set for 3.X player axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = "WIN 3,0,18,0"; } catch (e) { } } if (!version) { try { // version will be set for 2.X player axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); version = "WIN 2,0,0,11"; } catch (e) { version = -1; } } return version; } // JavaScript helper required to detect Flash Player PlugIn version information function GetSwfVer(){ // NS/Opera version >= 3 check for Flash plugin in plugin array var flashVer = -1; if (navigator.plugins != null && navigator.plugins.length > 0) { if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; var descArray = flashDescription.split(" "); var tempArrayMajor = descArray[2].split("."); var versionMajor = tempArrayMajor[0]; var versionMinor = tempArrayMajor[1]; var versionRevision = descArray[3]; if (versionRevision == "") { versionRevision = descArray[4]; } if (versionRevision[0] == "d") { versionRevision = versionRevision.substring(1); } else if (versionRevision[0] == "r") { versionRevision = versionRevision.substring(1); if (versionRevision.indexOf("d") > 0) { versionRevision = versionRevision.substring(0, versionRevision.indexOf("d")); } } var flashVer = versionMajor + "." + versionMinor + "." + versionRevision; //alert("flashVer="+flashVer); } } // MSN/WebTV 2.6 supports Flash 4 else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; // WebTV 2.5 supports Flash 3 else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; // older WebTV supports Flash 2 else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; else if ( isIE && isWin && !isOpera ) { flashVer = ControlVersion(); } return flashVer; } // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) { versionStr = GetSwfVer(); if (versionStr == -1 ) { return false; } else if (versionStr != 0) { if(isIE && isWin && !isOpera) { // Given "WIN 2,0,0,11" tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"] tempString = tempArray[1]; // "2,0,0,11" versionArray = tempString.split(","); // ['2', '0', '0', '11'] } else { versionArray = versionStr.split("."); } var versionMajor = versionArray[0]; var versionMinor = versionArray[1]; var versionRevision = versionArray[2]; // is the major.revision >= requested major.revision AND the minor version >= requested minor if (versionMajor > parseFloat(reqMajorVer)) { return true; } else if (versionMajor == parseFloat(reqMajorVer)) { if (versionMinor > parseFloat(reqMinorVer)) return true; else if (versionMinor == parseFloat(reqMinorVer)) { if (versionRevision >= parseFloat(reqRevision)) return true; } } return false; } } // end flash sniffer // active content stuff function AC_AddExtension(src, ext) { if (src.indexOf('?') != -1) return src.replace(/\?/, ext+'?'); else return src + ext; } function AC_Generateobj(objAttrs, params, embedAttrs) { var str = ''; if (isIE && isWin && !isOpera) { str += ' '; str += '>'; } else { str += ''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); } // PNG DISPLAY SCRIPT // if IE5.5+ on Win32, then display PNGs with AlphaImageLoader if ((browser.isIE55 || browser.isIE6x) && browser.isWin32) { var pngAlpha = true; // else, if the browser can display PNGs normally, then do that } else if ((browser.isGecko) || (browser.isIE5up && browser.isMac) || (browser.isOpera && browser.isWin && browser.versionMajor >= 6) || (browser.isOpera && browser.isUnix && browser.versionMajor >= 6) || (browser.isOpera && browser.isMac && browser.versionMajor >= 5) || (browser.isOmniweb && browser.versionMinor >= 3.1) || (browser.isIcab && browser.versionMinor >= 1.9) || (browser.isWebtv) || (browser.isDreamcast)) { var pngNormal = true; } function od_displayImage(strId, strPath, intWidth, intHeight) { /*alert('png Alpha: '+pngAlpha); alert('png normal: '+pngNormal);*/ if (pngAlpha) { document.write('
'); } else if (pngNormal) { document.write('
'); } else { document.write('
'); } } /* USAGE: PLACE THIS CODE WHERE YOU WOULD NORMALLY PUT REPLACE THE ARGUMENTS WITH PROPER VALUES */ // SLIDEY SCRIPT var _spd = null, _zspd = null; function _moveIt(_eid,_way,_max) { _element = _eid; _direction = _way; var _elem = document.getElementById(_eid); _maxrig = 0; if(_max == undefined) { _maxlef = -1200; } else { _maxlef = _max; } if(_way == 'right' && parseInt(_elem.style.left) > _maxlef) { _elem.style.left = parseInt(_elem.style.left) - 20 + 'px'; } else if(_way == 'left' && (parseInt(_elem.style.left) < _maxrig)) { _elem.style.left = parseInt(_elem.style.left) + 20 + 'px'; } if(_way == 'left' && (parseInt(_elem.style.left) < _maxrig)) { _zspd = setTimeout("_moveIt(_element,_direction,_maxlef)",1); } if(_way == 'right' && (parseInt(_elem.style.left) > _maxlef )) { _spd = setTimeout("_moveIt(_element,_direction,_maxlef)",1); } } function _stopIt() { if(_spd != null) { clearTimeout(_spd); } if(_zspd != null) { clearTimeout(_zspd); } } function MM_openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); } w = window.screen.availWidth; h = window.screen.availHeight; /* standardized ajax box stuff */ function getHTTPObject() { var xmlhttp = false; if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } else if(!xmlhttp) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } function package_ajx_slider(start,total,action,id) { parameters='action='+encodeURIComponent(action)+'&start='+start+'&total='+total; /* this is messy! this grabs the keys and values in any forms within the ajax holder */ for(i in document.getElementById(id).childNodes) { if(document.getElementById(id).childNodes[i].className == 'ajx-load-contents') { for(j in document.getElementById(id).childNodes[i].childNodes) { if(document.getElementById(id).childNodes[i].childNodes[j].nodeName == 'FORM') { for(k in document.getElementById(id).childNodes[i].childNodes[j].childNodes) { if(document.getElementById(id).childNodes[i].childNodes[j].childNodes[k].nodeName == 'INPUT') { parameters += '&'+document.getElementById(id).childNodes[i].childNodes[j].childNodes[k].name+'='+document.getElementById(id).childNodes[i].childNodes[j].childNodes[k].value; } } } } } } document.getElementById(id).innerHTML = '
' url = '/i/php/generic_ajax_handler.php'; makePostRequest(url,id,parameters); } function makeRequest(url, elementID) { var xmlhttp = getHTTPObject(); var targetElement = document.getElementById(elementID); xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.responseText) { targetElement.innerHTML = xmlhttp.responseText + '\n'; } } xmlhttp.send(null); xmlhttp.close; } function makePostRequest(url,elementID,parameters){ //alert(parameters); var xmlhttp = getHTTPObject(); var targetElement = document.getElementById(elementID); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.responseText) { targetElement.innerHTML = xmlhttp.responseText + '\n'; } } xmlhttp.open('POST', url, true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Content-length", parameters.length); xmlhttp.setRequestHeader("Connection", "close"); xmlhttp.send(parameters); } function collect(a,f){ var n=[]; for(var i=0;i document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; if (self.innerHeight) { // all except Explorer windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } // for small pages with total width less then width of the viewport if(xScroll < windowWidth){ pageWidth = windowWidth; } else { pageWidth = xScroll; } arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) return arrayPageSize; } function placeIt(mylayer,left_offset) { (document.getElementById) ? dom = true : dom = false; var l = document.getElementById(mylayer); if (self.innerHeight) { l.style.top = window.pageYOffset + (window.innerHeight - ((window.innerHeight/2) + 200)) + "px"; l.style.left = window.pageXOffset + (window.innerWidth - ((window.innerWidth/2) + left_offset)) + "px"; } else if (document.documentElement && document.documentElement.clientHeight) { l.style.top = document.documentElement.scrollTop + (document.documentElement.clientHeight - ((document.documentElement.clientHeight/2)+200)) + "px"; l.style.left = document.documentElement.scrollLeft + (document.documentElement.clientWidth - ((document.documentElement.clientWidth/2)+left_offset)) + "px"; } else if (document.body) { l.style.top = document.body.scrollTop + (document.body.clientHeight - ((document.body.clientHeight/2) + 200)) + "px"; l.style.left = document.body.scrollLeft + (document.body.clientWidth - ((document.body.clientWidth/2)+left_offset)) + "px"; } window.setTimeout("placeIt('"+mylayer+"',"+left_offset+")", 10); } var ok = false; function hide(element) { document.getElementById(element).style.display = 'none'; //alert(document.getElementById(element).style.display); } function unhide(element) { document.getElementById(element).style.display = 'block'; } function check_myage(){ check_mydate(); var my_year = document.getElementById('year'); var my_month = document.getElementById('month'); var my_day = document.getElementById('zday'); var today_date = new Date(); var input_date = new Date(my_month.value+"/"+my_day.value+"/"+my_year.value); var test_month = input_date.getMonth()+1; var test_year = input_date.getFullYear(); var test_day = input_date.getDate(); //var today1_date = new Date(today_m+"/"+today_d+"/"+today_y); var sec = (today_date.getTime()/1000.0) - (input_date.getTime()/1000.0); var diff = Math.floor(sec/31564926); if (diff < 13) { unhide('underage_disclaimer_div'); unhide('parent_email_div'); } else { hide('underage_disclaimer_div'); hide('parent_email_div'); } } function updatepage(str,div){ ok = true; if(str == "no"){ unhide(div); ok = false; } else { hide(div); ok = true; } return ok; } function check_avail(myfield,myerrordiv,myurl) { var my_name = document.getElementById(myfield); var myxmlhttp = getHTTPObject(); var test; var url = myurl+my_name.value; hide(myerrordiv); if (my_name.value != ""){ myxmlhttp.onreadystatechange = function() { //alert ("test is "+test); if (myxmlhttp.readyState == 4) { test = updatepage(myxmlhttp.responseText,myerrordiv); } } myxmlhttp.open("GET", url, true); myxmlhttp.send(url); } //alert (ok); } function validate_email(str) { var at="@" var dot="." var lat=str.indexOf(at) var lstr=str.length var ldot=str.indexOf(dot) if (str.indexOf(at)==-1){ return false } if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){ return false } if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){ return false } if (str.indexOf(at,(lat+1))!=-1){ return false } if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ return false } if (str.indexOf(dot,(lat+2))==-1){ return false } if (str.indexOf(" ")!=-1){ return false } return true } function check_myemail(addr) { var s = document.getElementById(addr).value; var test = validate_email(s); hide('email_bad'); if (s != ""){ if (test == false){ unhide('email_bad'); return false; } else { hide('email_bad'); return true; } } else { unhide('email_blank'); return false; } } function validate_date(){ day = document.getElementById('zday').value; month = document.getElementById('month').value; js_month = month -1;// js months are 0-11 instead of 1-12 year = document.getElementById('year').value; var today_date = new Date(); var test_month = today_date.getMonth()+1; var test_year = today_date.getFullYear(); var test_day = today_date.getDate(); //alert(month + "/" + day + "/" + year); // tests for future dates. if(year > test_year){ return false; } else if( year == test_year){ if(month > test_month){ return false; } else if(month == test_month){ if(day > test_day){ return false; } } } dteDate=new Date(year,js_month,day); // tests for invalid dates, like february 31st return ((day==dteDate.getDate()) && (js_month==dteDate.getMonth()) && (year==dteDate.getFullYear())); } function check_mydate(){ var x = validate_date(); hide('illegal_date_div'); if (x == false){ unhide('illegal_date_div'); document.getElementById('go').disabled = true; } else { document.getElementById('go').disabled = false; } } function check_form(form){ var user = check_avail('member_name','username_taken','/i/php/check_name.php?member_name='); var email = check_avail('email_address','email_taken','/i/php/check_email.php?email='); sendPostForm('/i/php/loadreg.php',form,'registration_panel'); } // -- done function hide_flash_objects(z){ var my_obj = new Array(4); my_obj[0] = 'embed'; my_obj[1] = 'object'; my_obj[2] = 'iframe'; my_obj[3] = 'ilayer'; for (ii = 0; ii < 4; ii++){ var x = document.getElementsByTagName(my_obj[ii]); if (x.length > 0){ for (i = 0; i < x.length; i++){ if (z == 1){ x[i].style.display = "none"; } else { x[i].style.display = ""; } } } } } /* registration stuff */ function loadSignup(ref) { var arrayPageSize = getPageSize(); var arrayPageScroll = getPageScroll(); hide_flash_objects(1); var overLayMain = document.getElementById('trans_layer'); var overLay = document.getElementById('registration_panel'); overLayMain.style.height = (arrayPageSize[1] +'px'); overLayMain.style.display = 'block'; overLay.style.display = 'block'; placeIt('registration_panel',300); placeIt('reg_side',1020); makeRequest('/i/php/loadreg.php?ref='+ref, 'registration_panel'); } function closeSignup(step,kid,ref) { // per 1.5 spec // 05.06.2008: added site reference - Ú if (step && step != '1'){ makeRequest('/i/2007/php/loadreg.php?action=html&step=3&kid='+kid+'&ref='+ref,'registration_panel'); } else { hide_flash_objects(0); document.getElementById('trans_layer').style.display = 'none'; document.getElementById('registration_panel').style.display = 'none'; document.getElementById('registration_panel').innerHTML = "Loading..."; } }