// debug, divert console.log output to window.alert if console.log isn't present
try {
    if (console.log) {}
} catch (err) {
    console={};
    console.enabled=false;
    console.log=function(inText){if (console.enabled){window.alert(inText);}}
}

// "XML" processing
var pageURL=String(window.location.href);
var useFlash=(pageURL.indexOf('?noflash')>=0) ? false : true ;
var flashModuleTypeToLoad;
var flashModuleXMLURL;

//get URL variables
var GETS={};
var hadGets=false;
var sGet=window.location.search;
if (sGet) {
    hadGets=true;
    sGet=sGet.substr(1);
    var sNVPairs=sGet.split('&');
    for (var i=0;i<sNVPairs.length;i++) {
        var sNV=sNVPairs[i].split('=');
        GETS[sNV[0]]=sNV[1];
    }
}

Event.observe(window,'load',initPage);

var fVersion=deconcept.SWFObjectUtil.getPlayerVersion();
function initPage() {
    if (useFlash && fVersion['major']>=9) {
	if (document.getElementById('vPlexFlash')) {
	    document.getElementById('vPlexFlash').style.dislay='none';
	    document.getElementById('vPlexFlash').style.visibility='visible';
	    placeFlashModule();
	}
    } else {
	if (document.getElementById('vPlexFlash')) {
	    document.getElementById('vPlexFlash').style.visibility='visible';
	    setupNoflash();
	}
    }
}

var moduleData='';
function placeFlashModule() {

    if (useFlash) {

	$('vPlexContent').style.position='relative';

	dataSource=$('flashModuleSource');
	moduleData='<vplexData><general>';
	moduleData+='<pageTitle>'+stripBreaks($$('.noflashTitle').first().innerHTML)+'</pageTitle>';
	moduleData+='<pageSubhead>'+stripBreaks($$('.noflashSubhead').first().innerHTML)+'</pageSubhead>';
	moduleData+='<font>'+stripBreaks(dataSource.select('.font')[0].innerHTML)+'</font>';
	moduleData+='</general>';
	//modules
	dataSource.select('.moduleList .module').each(function(el,ix){
	    var thisModule='<module>';
	    el.select('div').each(function(el1,ix1){
		thisClasses=el1.classNames();
		thisClasses.each(function(tc){
		    if (tc!='DONOTTRANSLATE') {
			thisModule+='<'+tc+'>'+stripBreaksAndSpace(el1.innerHTML)+'</'+tc+'>';
		    }
		});
	    });
	    thisModule+='</module>';
	    moduleData+=thisModule;
	});
	moduleData+='</vplexData>';

	// fix ie and opera mangling of html code formatting
	if (BrowserDetect.browser=='Explorer') {
	    xmlStr=moduleData.split('<SPAN class=');
	    for (var i=1;i<xmlStr.length;i++) {
		var temp1=xmlStr[i].slice(0,xmlStr[i].indexOf('>'));
		var temp2=xmlStr[i].slice(xmlStr[i].indexOf('>')+1);
		xmlStr[i]=temp1+'">'+temp2;
	    }
	    xmlStr=xmlStr.join('<span class="');
	    xmlStr=xmlStr.split('<SPAN>').join('<span>');
	    xmlStr=xmlStr.split('</SPAN>').join('</span>');
	    xmlStr=xmlStr.split('<A').join('<a');
	    moduleData=xmlStr.split('</A>').join('</a>');
	} else if (BrowserDetect.browser=='Opera') {
	    xmlStr=moduleData.split('<SPAN');
	    xmlStr=xmlStr.join('<span');
	    xmlStr=xmlStr.split('</SPAN>').join('</span>');
	    xmlStr=xmlStr.split('<A').join('<a');
	    moduleData=xmlStr.split('</A>').join('</a>');
	}
	//remove some DONOTTRANSLATE STUFF
	//moduleData=moduleData.split('videoImg DONOTTRANSLATE').join('videoImg');
	//moduleData=moduleData.split('videoURL DONOTTRANSLATE').join('videoURL');
	//finally, encode ampersands which will be undone in Flash
	moduleData=moduleData.split('&amp;').join('[[::AND::]]');

	//console.log(moduleData);

        // set up flash
        var so = new SWFObject('/campaign/global/vplex/VPLEX.swf', 'VPLEXSWF', '1101', '1000', '9', '#ffffff');
        so.addParam('menu', 'false');
        so.addParam('quality', 'autohigh');
        so.addParam('scale', 'noScale');
        so.addParam('wmode', 'transparent');
        so.addParam('allowfullscreen', 'true');
        so.addVariable('autoopen',(GETS.a!=undefined)?GETS.a:GETS.autoopen);
        so.addVariable('xmlData',encodeURI(moduleData));
        so.addVariable('popupVideoRolloverText',($('popupVideoRolloverText'))?stripBreaks($('popupVideoRolloverText').innerHTML):'');
        so.write('vPlexFlash');

	$('vPlexFlash').insert({after:'<div id="clearer"></div>'});
	$('vPlexFlash').style.width='1101px';
        $('vPlexFlash').style.position='absolute';

    }
    
}

function layoutUpdateCallback(inVal) {
    inVal=Math.ceil(inVal);
    $('vPlexFlash').style.height=inVal+'px';
    $('clearer').style.height=inVal+'px';
}

function stripBreaks(inText) {
    return inText.split('\n').join('').split('\r').join('').strip();
}
function stripBreaksAndSpace(inText) {
    while (inText.indexOf('  ')>=0) {
	inText=inText.split('  ').join('');
    }
    while (inText.indexOf('	')>=0) {
	inText=inText.split('	').join('');
    }
    while (inText.indexOf('> <')>=0) {
	inText=inText.split('> <').join('><');
    }
    inText=stripBreaks(inText);
    return inText;
}

var noflashMessage;
function setupNoflash() {

    var grabURL=window.location.href;
    var initialTab=initialTab=grabURL.split('#')[1];

    //remove all DONOTTRANSLATE css rules
    $$('.DONOTTRANSLATE').each(function(el,ix){
	el.removeClassName('DONOTTRANSLATE');
    });

    //undo hiding
    var noflashRoot=$$('.moduleList').first();
    noflashRoot.writeAttribute('id','noflash');
    noflashRoot.addClassName('noflash');
    noflashRoot.style.position='relative';
    noflashRoot.style.overflow='hidden';
    noflashRoot.style.width='auto';
    noflashRoot.style.height='auto';

    // ADD SPACES TO TITLE ELEMENTS
    $$('#vPlexFlash .noflashTextWide span').each(function(el,ix){
	el.insert({bottom:'&nbsp;'});
    });
    $$('#vPlexFlash .noflashTextWide').first().insert({top:'<div id="noflashTitleNew"></div><div id="noflashSubheadNew"></div>'});
    $('noflashTitleNew').insert({top:$$('#vPlexFlash .noflashTitle').first()});
    $('noflashSubheadNew').insert({top:$$('#vPlexFlash .noflashSubhead').first()});

    noflashMessage=$$('#vPlexFlash .noflashNotice').first().innerHTML;
    $$('#vPlexFlash .noflashNotice').first().remove();

    //reposition menu elements
    var noflashMenuRoot=$('noflashMenu');
    var tempStr='<div id="noflashMenu"><table cellpadding="0" cellspacing="0" border="0" width="977" height="81"><tr>';
    $$('#noflash div.module').each(function(el,ix){
	el.writeAttribute('id','module'+ix);
	el.insert({bottom:'<div class="clearBothTight"></div>'});
	var temp=el.select('.name').first().innerHTML;
	el.select('.name').first().remove();
	if (el.select('.id')[0].innerHTML=='partner') {
	    tempStr+='<td width="185" valign="middle" class="moduleTab narrow" id="moduleTab'+ix+'" onclick="noflashChangeTab(\'moduleTab'+ix+'\')">'
	    tempStr+='<table width="100%" height="81" cellpadding="0" cellspacing="0" border="0"><tr><td valign="middle" align="left">';
	    tempStr+='<td width="14" class="left">&nbsp;</td>';
	    tempStr+='<td class="mid" valign="middle" align="top">'+temp+'</td>';
	    tempStr+='<td width="34" class="right">&nbsp;</td>';
	    tempStr+='</td></tr></table>';
	    tempStr+='</td>';
	} else {
	    tempStr+='<td width="" valign="middle" class="moduleTab" id="moduleTab'+ix+'" onclick="noflashChangeTab(\'moduleTab'+ix+'\')">'
	    tempStr+='<table width="100%" height="81" cellpadding="0" cellspacing="0" border="0"><tr><td valign="middle" align="left">';
	    tempStr+='<td width="14" class="left">&nbsp;</td>';
	    tempStr+='<td class="mid" valign="middle" align="top">'+temp+'</td>';
	    tempStr+='<td width="34" class="right">&nbsp;</td>';
	    tempStr+='</td></tr></table>';
	    tempStr+='</td>';
	}
    });
    tempStr+='</tr></table></div>';
    noflashRoot.insert({top:tempStr});
    $('noflashMenu').insert({bottom:'<div class="clearBothTight"></div>'});

    // wrap videos
    $$('#noflash div.module').each(function(el,ix){
	el.insert({top:'<div class="videoWrapper"><div class="videoWrapperInner"></div></div>'});
	var vw=el.select('.videoWrapper').first();
	var vwi=el.select('.videoWrapperInner').first();
	el.select('.video').each(function(el1,ix1){
	   vwi.insert({bottom:el1});
	});
	vw.insert({top:'<div class="vwTop"></div>'});
	vwi.insert({bottom:'<div class="clearBothTight"></div>'});
	vwi.insert({top:'<div class="noflashMessageNew">'+noflashMessage+'</div>'});
	vw.insert({bottom:'<div class="vwBot"></div>'});
    });

    //convert video images
    $$('#noflash div.module .videoImg').each(function(el,ix){
	el.replace('<img class="videoImg" width="185" height="104" src="'+el.innerHTML+'"/>');
    });
    $$('#noflash div.module .video').each(function(el,ix){
	el.insert({bottom:'<div class="clearBothTight"></div>'});
    });
    $$('#noflash div.module .videoBody').each(function(el,ix){
	el.insert({before:'<br/>'});
	el.select('span').each(function(el1,ix1){
	   el1.insert({after:'<br/>'});
	});
    });

    // RELATED LINKS
    $$('#noflash .related a').each(function(el,ix){
	el.insert({bottom:'<span class="relatedArrow">&#0187;</span>'});
	if (el.readAttribute('lock')=='true') {
            el.insert({top:'<div class="lockIcon"></div>'});
	}
    });
    $$('#noflash .related').each(function(el,ix){
	el.insert({bottom:'<div class="clearBothTight"></div>'});
    });

    //footer
    $('noflash').insert({bottom:'<div class="clearBothTight"></div><div class="noflashFooter"></div>'});

    //intro
    $$('#noflash div.module').first().insert({before:'<div class="module" id="intro"><div class="noflashIntro"><table cellpadding="0" cellspacing="0" border="0" width="450" height="313"><tr><td valign="middle">'+$$('.noflashTextWide').first().innerHTML+'</td></tr></table></div></div>'});

    //initial hides
    $$('#noflash .module').each(function(el,ix){
	el.style.display=(ix==0)?'block':'none';
    });

    if (initialTab!=undefined) {
	$$('.module div.id').each(function(el,ix) {
	    if (el.innerHTML==initialTab) {
		noflashChangeTab(el.up().id.split('module').join('moduleTab'));
	    }
	});
    }

}

function noflashChangeTab(which) {
    var o=$(which);
    $$('#noflashMenu .moduleTab').each(function(el,ix){
	if (el==o) {
	    el.addClassName('on').removeClassName('off');
	} else {
	    el.addClassName('off').removeClassName('on');
	}
    });
    var target=$(which.split('Tab').join(''));
    $$('#noflash div.module').each(function(el,ix){
	if (el==target) {
	    el.style.display='block';
	} else {
	    el.style.display='none';
	}
    });
}

