/* *************************************************************** * * * from ala_browserdetectlite.js * * * **************************************************************** */ // 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(); // NEED TO WORK THE FOLLOWING INTO THE BROWSER DETECT SCRIPT ABOVE // MANY FUNCTIONS IN HERE DEPEND ON 'pngAlpha' - ¥ // 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; } /* RATING STARS */ var starOn = new Image; starOn.src = "/i/2007/bits/star_blue.gif"; var starOrange = new Image; starOrange.src = "/i/2007/bits/star_orange.gif"; var starOff = new Image; starOff.src = "/i/2007/bits/star_grey.gif"; function showStars(stars,garters,stripes) { for (var i=1; i <= garters; i++) { var sName = stars + '_' + stripes + '_' + i; document [sName].src = starOn.src; } } function hideStars(stars,starTotal,stripes) { for (var i=1; i <= starTotal; i++) { var sName = stars + '_' + stripes + '_' + i; document [sName].src = starOff.src; } } function revertStars(stars, garters, stripes) { for(var i=1; i <= garters; i++) { var sName = stars + '_' + stripes + '_' + i; document[sName].src = starOrange.src; } } function clearStars(stars,stripes){ for(var i=1; i <= 5; i++){ var sName = stars + '_' + stripes + '_' + i; document[sName].src = starOff.src; } } /* dropdown autochange */ function setMode(thingName) { var selectBox = document.getElementById(thingName); var indy = selectBox.selectedIndex; var selectBoxChoice = selectBox.options[indy].value; window.location.href = selectBoxChoice; } /* popups &c. */ function MM_openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); } function openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); } w = window.screen.availWidth; h = window.screen.availHeight; /* basic ajax functions */ function getHTTPObject() { var xmlhttp = false; if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } else if(!xmlhttp) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } 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 makeCBRequest( url, callback ) { var xmlhttp = getHTTPObject(); if ( typeof callback == 'function' ) { xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.responseText) callback.call( xmlhttp ); // set scope to xmlhttp object } xmlhttp.send(null); xmlhttp.close; } } 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 unhideInline(element) { document.getElementById(element).style.display = 'inline'; //alert('sonofagun!') } function check_myage(){ 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 check_form(form){ var user = check_avail('member_name','username_taken','/i/2007/php/check_name.php?member_name='); var email = check_avail('email_address','email_taken','/i/2007/php/check_email.php?email='); sendPostForm('/i/2007/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, callback) { 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/2007/php/loadreg.php?ref='+ref, 'registration_panel', callback); } function closeSignup(step,kid) { // per 1.5 spec if (step && step != '1'){ makeRequest('/i/2007/php/loadreg.php?action=html&step=3&kid='+kid,'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..."; } } function submitOnEnter( e,form_id ){ var pK = e.which ? e.which : e.keyCode; if ( document.getElementById(form_id) == null ) return true; (pK == 13) ? document.getElementById(form_id).submit() : void(0) ; return (pK == 13) ? false : true ; } /* *************************************************************** * * * from sliders.js * * * **************************************************************** */ // JavaScript Document var _spd = null, _zspd = null; function _moveIt(_eid,_way,_max) { _element = _eid; _direction = _way; var _elem = document.getElementById(_eid); /* alert(_elem.style.left); */ _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); } } /* *************************************************************** * * * from ala_opacity.js * * * **************************************************************** */ //--------------------------------------------------------------- // Opacity Displayer, Version 1.0 // Copyright Michael Lovitt, 6/2002. // Distribute freely, but please leave this notice intact. //--------------------------------------------------------------- //--------------------------------------------------------------- // OPACITY OBJECT // // Instantiates the object, defines the properties and methods. function OpacityObject(divId, strPath) { this.id = divId; this.path = strPath; if (ns){ if (browserVersion>=5) { this.layerObject = document.getElementById(divId).style; } else { this.layerObject = eval("document."+divId); } } else { this.layerObject = eval(divId + ".style"); } this.setBackground = od_object_setBackground; } // Uses AlphaImageLoader filter, or the css background property, // as appropriate, to apply a PNG or GIF as the background of the layerObject. function od_object_setBackground() { if (pngAlpha) { this.layerObject.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.path+".png', sizingMethod='scale')"; } else if (pngNormal) { this.layerObject.backgroundImage = 'url('+this.path+'.png)'; } else { this.layerObject.backgroundImage = 'url('+this.path+'.gif)'; } } //--------------------------------------------------------------- //--------------------------------------------------------------- // OPACITY DISPLAY FUNCTION // Outputs the image as a div with the AlphaImageLoader, or with // a standard image tag. function od_displayImage(strId, strPath, intWidth, intHeight, strClass, strAlt, strTitle) { if (strPath.match(".png")) { // BACKWARDS COMPATIBILITY - ¥ strPath = strPath.replace(/.png/,""); } if (pngAlpha) { document.write('
'); } else if (pngNormal) { document.write(''+strAlt+''); } else { document.write(''+strAlt+''); } } //--------------------------------------------------------------- //--------------------------------------------------------------- // OPACITY ROLL-OVER FUNCTIONS function od_rollOver(strId, strColor) { if (pngAlpha) { document.getElementById(strId).style.backgroundColor = strColor; } else { if (document.images && (flag == true)) { document[strId].src = eval(strId + "on.src"); } } } function od_rollOut(strId, strColor) { if (pngAlpha) { document.getElementById(strId).style.backgroundColor = strColor; } else { if (document.images) { document[strId].src = eval(strId + "off.src"); } } } //--------------------------------------------------------------- //--------------------------------------------------------------- // global variables // if IE5.5+ on win32, then display PNGs with AlphaImageLoader if ((browser.isIE55 || browser.isIE6up) && browser.isWin32) { var pngAlpha = true; var strExt = ".png"; // else, if the browser can display PNGs normally, then do that. that list includes: // -Gecko Engine: Netscape 6 or Mozilla, Mac or PC // -IE5+ Mac (OpacityObject applies the background image at 100% opacity) // -Opera 6+ PC // -Opera 5+ Mac (Doesn't support dynamically-set background images) // -Opera 6+ Linux // -Omniweb 3.1+ // -Icab 1.9+ // -WebTV // -Sega Dreamcast } 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; var strExt = ".png"; // otherwise, we use plain old GIFs } else { var strExt = ".gif"; } var ns = (document.all)?false:true; var browserVersion = parseFloat(navigator.appVersion ); //--------------------------------------------------------------- // COMIC TABBOX function fetch_comics_tab(bfid,type) { tabs = new Object(); if(document.getElementById('comic-tab-past')) { tabs.past = document.getElementById('comic-tab-past') }; if(document.getElementById('comic-tab-present')) { tabs.present = document.getElementById('comic-tab-present') }; if(document.getElementById('comic-tab-future')) { tabs.future = document.getElementById('comic-tab-future') }; for(i in tabs) { tabs[i].className = 'tab'; } tabs[type].className = 'tab_on'; document.getElementById('comic-tab-content').innerHTML = '



'+'\n'; url = "/i/2007/js/comic_tab_fetcher.php?bfid="+bfid+"&type="+type; makeRequest(url,'comic-tab-content'); } function fetch_news_tab(type) { tabs = new Object(); tabs.blogs = document.getElementById('news-tab-blogs'); tabs.rss_feeds = document.getElementById('news-tab-rss'); tabs.video = document.getElementById('news-tab-video'); //alert(tabs['video']); for(i in tabs) { tabs[i].className = 'tab'; } tabs[type].className = 'tab_on'; document.getElementById('news-tab-content').innerHTML = '



'+'\n'; url = "/i/2007/js/news_tab_fetcher.php?type="+type; makeRequest(url,'news-tab-content'); } function fetch_popular_tab(type,pg_name) { // added pg_name param to pass $GLOBAL[pg_name] to the fetcher to be redefined in // the fetcher's super global -EAN tabs = new Object(); tabs.blogs = document.getElementById('popular-tab-blogs'); tabs.news = document.getElementById('popular-tab-news'); tabs.comics = document.getElementById('popular-tab-comics'); tabs.boards = document.getElementById('popular-tab-boards'); //alert(tabs['video']); for(i in tabs) { tabs[i].className = 'tab'; } tabs[type].className = 'tab_on'; document.getElementById('popular-tab-content').innerHTML = '



'+'\n'; url = "/i/2007/js/popular_tab_fetcher.php?type="+type+"&pg_name="+pg_name; makeRequest(url,'popular-tab-content'); } /* BEGIN NEW NAVIGATION CODE */ // MOUSEOVERS function mshow(_ele) { document.getElementById(_ele) ? document.getElementById(_ele).style.display = 'block' : false; } function mhide(_ele) { document.getElementById(_ele) ? document.getElementById(_ele).style.display = 'none' : false; } function bshow(_ele) { _str = document.getElementById(_ele).style.backgroundImage _newval = _str.replace(/off/,"on"); document.getElementById(_ele).style.backgroundImage = _newval; } function bhide(_ele) { _str = document.getElementById(_ele).style.backgroundImage _newval = _str.replace(/on/,"off"); document.getElementById(_ele).style.backgroundImage = _newval; } function setupDropdowns(_navdivid) { // call this function AFTER the HTML for the dropdowns - ¥ // NAV >> WRAP >> MENU >> LINK >> ANCHOR (node nesting pattern) - ¥ // SETUP VARS !_navdivid ? _nid = 'nav' : _nid = _navdivid; _idprefix = 'm';// MENU DIV (e.g. 'm1,' etc...) _bidprefix = 'b';// MAIN MENU DIV (e.g. 'b1,' etc...) _nav = document.getElementById(_nid);// CONTAINS THE FLOATING MENUS _wrap_cnt = _nav.childNodes.length;// NUMBER OF MENUS IN THE NAV _tmp_cnt = 1;// INCREMENT COMBINED WITH _idprefix TO ACCESS MENUS BY ID // CHECK FOR WRAPS for(_cnt = 0; _cnt < _wrap_cnt; _cnt++) { _wrapnode = _nav.childNodes[_cnt]; // CHECK FOR MENUS if(_wrapnode.hasChildNodes() && _wrapnode.nodeType == 1) { // SET MOUSEOVERS FOR MENUS _curid = _idprefix + _tmp_cnt; _bid = _bidprefix + _tmp_cnt; _wrapnode.onmouseover = new Function('this.className="m_o";mshow("' + _curid + '");'); _wrapnode.onmouseout = new Function('this.className="m_x";mhide("' + _curid + '");'); _tmp_cnt++; _menu_cnt = _wrapnode.childNodes.length; // CHECK FOR LINKS for(_cntb = 0; _cntb < _menu_cnt; _cntb++) { _menunode = _wrapnode.childNodes[_cntb]; if(_menunode.nodeType == 1 && _menunode.hasChildNodes()) { _link_cnt = _menunode.childNodes.length; // SET MOUSEOVERS FOR LINKS for(_cntc = 0; _cntc < _link_cnt; _cntc++) { _linknode = _menunode.childNodes[_cntc]; if(_linknode.nodeType == 1) { _linknode.onmouseover = new Function('this.className="l_o";'); _linknode.onmouseout = new Function('this.className="l_x";'); // GRAB ANCHOR INSIDE LINK DIV AND SET ONCLICK if(_linknode.hasChildNodes()) { _ele_cnt = _linknode.childNodes.length; for(_cntd = 0; _cntd < _ele_cnt; _cntd++) { _elenode = _linknode.childNodes[_cntd]; if(_elenode.href) { if (_linknode.id) { _linknode.onclick = new Function('window.location="'+_elenode.href+'";urchinTracker("'+_linknode.id+'");'); } else { _linknode.onclick = new Function('window.location="'+_elenode.href+'"'); } } } } } } } } } } }// end function /* END NAVIGATION CODE */ /* google search script */ function stype(_clicked) { if(_clicked == 'web') { document.getElementById('gsearch').innerHTML = 'Marvel  |  Web'; document.getElementById('smode').value = ''; } else { document.getElementById('gsearch').innerHTML = 'Marvel  |  Web'; document.getElementById('smode').value = 'marvel.com'; } } /* user stuff */ function loadSignin() { document.getElementById('signin_loader').style.display = 'none'; document.getElementById('signin_holder').style.display = 'block'; } function closeSignin() { document.getElementById('signin_loader').style.display = 'block'; document.getElementById('signin_holder').style.display = 'none'; } /* ************************************************** * * from marvel movie tab box * ****************************************************/ function prev_movies() { clickCtr=(clickCtr == 0) ? clickCtr : clickCtr-1; updateMovieArrows(); movies[clickCtr].forEach( 'doActions' ) ; } function next_movies() { clickCtr=(clickCtr == 3)? clickCtr : clickCtr + 1; updateMovieArrows(); movies[clickCtr].forEach( 'doActions' ) ; } function updateMovieArrows() { var leftArrow = document.getElementById('leftArrow'), rightArrow = document.getElementById('rightArrow'); switch( clickCtr ) { case 0: leftArrow.src = '/i/2007/bits/arrow_l_grey.gif'; break; case 1: leftArrow.src = '/i/2007/bits/arrow_l_blue.gif'; break; case 2: rightArrow.src = '/i/2007/bits/arrow_r_blue.gif'; break; case 3: rightArrow.src = '/i/2007/bits/arrow_r_grey.gif'; break; } } /* ************************************************** * * from newsletter signup box * ****************************************************/ function ajax_signup(email_id){ /*email = document.getElementById( email_id ).value; if((email.indexOf('@') == -1)||(email.indexOf('.') == -1)) { document.getElementById('newsletter_error').innerHTML = 'There is something wrong with that email address. Please check to be sure it\'s correct and re-enter.'; return; } if(email != ''){ makeRequest('/2007/pages/ajaxNewsletter.php?email=' + email + '&page=mf', div_id); document.getElementById('newsletter_error').innerHTML = ''; } else { document.getElementById('newsletter_error').innerHTML = 'Please enter an email address'; }*//*replacing functionality for newsletter per COPPA compliance 5/2009 */ var cb = function(){ signup_cb(email_id);} loadSignup( location.href, cb ); } function signup_cb(email_id) { document.getElementById('email_address').value = document.getElementById(email_id).value; } function cancelNewsletterSignup(div_id){ makeRequest('/2007/pages/ajaxNewsletter.php?reset=1', div_id); } /////////////////////////////////////////////////////////////////////////////////////////////////////// // front page movie unit stuff // ex. pass array of strings "img1.src|/some/image/path", "anchor.href|/some/url/here","movie_href.onclick|function name" // NOTE: this doesn't support an action with nested properties -yet, e.g. "image_element.style.width|30px" function actions( action_list ) { this.actionRegistry = new Array(); this.eventsRegistry = new Array(); if ( action_list instanceof Array && action_list.length > 0 ) { // verify list contents for ( var i=0; i < action_list.length; i++ ) { var al = action_list[i] ; if ( al.indexOf('|') < 0 || al.indexOf('.') < 0 ) continue; // invalid entry var el_id = al.split('|')[0].split('.')[0] ; var props = al.split('|')[0].split('.')[1] ; var val = al.split('|')[1] ; if ( props.indexOf('on') == 0 ) { var f = eval(val); if ( typeof(f) != 'function' ) { alert('Error in actions.actions()\\n: '+ val +' doesn\'t seem to be a function!'); } this.eventsRegistry.push( [ el_id, props, f.toString() ] ); // store a copy of the function } else this.actionRegistry.push( [ el_id, props, val ] ) ; } } // define some methods // generally - called by manager object's forEach() method this.doActions = function () { if ( this.actionRegistry.length == 0 && this.eventsRegistry.length == 0 ) return; var el,el_id,prop,val,reg = this.actionRegistry ; for ( var i=0; i < reg.length; i++ ) { el_id = reg[i][0] ; el=document.getElementById(el_id); prop = reg[i][1] ; val = reg[i][2]; if ( el ) el[prop] = val ; // if it's a event, make a function else { alert( 'Error in actions.doActions():\\n '+el_id+' doesn\'t seem to be defined!' ); break; } // var x = this.getIRef( el, props ); // x = ( reg[i][1].indexOf('on') == 0 ) ? eval(val) : val ; // if it's a event, make a function } var tmp,sourceCode,event_type; reg = this.eventsRegistry; for ( var i=0; i < reg.length; i++ ) { el_id = reg[i][0] ; el=document.getElementById(el_id); event_type = reg[i][1] ; tmp = reg[i][2]; sourceCode = tmp.substring( tmp.indexOf('{')+1, tmp.indexOf('}') ); el[event_type] = new Function( sourceCode ) ; } } // was attempting to retrive a reference to the nested property this.getIRef = function( el, prop ) { var p0 = prop.shift(); if ( prop.length == 0 ) return el[p0] ; else return( this.getIRef( el[p0], prop ) ); } } function objectManager( ) { this.mode = null ; // array or hash mode this.objSets = new Object() ; // using this object as assoc array this.arr = new Array() ; // using this to store internal array this.addSet = function ( setName, setArr ) { if ( this.mode == 'array' ) { alert('objectManager Error:\\nNot allowed to switch object mode.'); return; } else this.mode = 'hash' ; if ( typeof setArr != 'object' || setArr.length == 0 ) { alert('objectManager.addSet() Error:\\nsetArr is empty!'); return; } if ( typeof setName != 'string' || setName.length == 0 ) { alert('objectManager.addSet() Error:\\nsetName is not set!'); return; } this.objSets[setName] = setArr ; } // this object will maintain an internal array object // trying to extend the base Array object is troublesome like you wouldn't believe this.push = function( stuff ) { if ( this.mode == 'hash' ) { alert('objectManager.push() Error:\\nNot allowed to switch object mode.'); return; } else this.mode = 'array' ; this.arr.push( stuff ); } // don't really want to add a removeSet, since seems redundant for our needs // func - method name // setName - the name of the set to affect this.forEach = function( func, setName ) { if ( this.mode == null || this.mode == 'hash' ) { for ( var sn in this.objSets ) for ( var j in this.objSets[sn] ) if ( typeof this.objSets[sn][j][func] == 'function' ) { var f = this.objSets[sn][j][func]; f.call(this.objSets[sn][j]); // make the call and set function's scope to array element } } else { for ( var i in this.arr ) if ( typeof this.arr[i][func] == 'function' ) { var f = this.arr[i][func] ; f.call( this.arr[i] ); // make the call and set function's scope to array element } } } // this.forEach } // BRIGHTCOVE JS API WRAPPERS // document.bc_dump = new Object; document.bc_dump.listeners = new Object; function onTemplateLoaded(message) { if(defined(document.bc_dump.listeners)) { for(eventName in document.bc_dump.listeners) { callFlash("addEventListener", eventName, document.bc_dump.listeners[eventName]); } } document.bc_dump.bc_init = true; } function onTitleLoad(infoObj) { var titleDTO = infoObj.parameters.title; callFlash("loadTitleById", titleDTO.id); } function getTitleById_Result(message) { if(typeof(message)=='undefined') { document.bc_dump.video_is_loaded = false; } else { document.bc_dump.video_is_loaded = true; } } // used by individual video page function onContentLoad() { callFlash("getTitleById",document.bc_dump.video_loader); if(!document.bc_dump.video_is_loaded) { callFlash("fetchTitleById",document.bc_dump.video_loader); } } function swapVid(titleId) { if(defined(document.bc_dump.bc_init)) { callFlash("getTitleById",titleId); if(document.bc_dump.video_is_loaded) { callFlash("loadTitleById", titleId); } else { callFlash("fetchTitleById", titleId); } } else { alert('Please wait for the player to load before switching videos.'); } }