var PopWin;
function winBRopen(theURL, Name, popW, popH) {
	if(PopWin) PopWin.close();
	var winHorz = (screen.width-popW)/2;
	var winVert = (screen.height-popH)/2;
	var winProp = 'width='+popW+',height='+popH+',left='+winHorz+',top='+winVert+',scrollbars=yes,resizable=yes';
	PopWin = window.open(theURL, Name, winProp);
	if (parseInt(navigator.appVersion) >= 4) { PopWin.window.focus(); }
}

function closeupwindow(){
	window.close();
}

function popupWindow(filename){
	if(filename.length > 0 && strPopUpDirURL.length > 0) {
		puwURL = strPopUpDirURL + filename;
		winBRopen(puwURL,'popupWin1',640,480);
	}
}

function popupWindowNV(){
	if(strPopUpFileURL.length > 0) winBRopen(strPopUpFileURL,'popupWin2',640,480);
}

function closeAndMove(){
	if(document.getElementById('flashcontent')) {
		var oFlashDivTag = document.getElementById("flashcontent");
		var oFlashObjectTag = oFlashDivTag.getElementsByTagName("object")[0];
		var oFlashEmbedTag = oFlashDivTag.getElementsByTagName("embed")[0];
		
		if(oFlashEmbedTag && oFlashEmbedTag.pauseContent) {
			oFlashEmbedTag.pauseContent();
		} else if(oFlashObjectTag && oFlashObjectTag.pauseContent) {
			oFlashObjectTag.pauseContent();
		}
	}

	if(intDynaInc > 0 && (strBuyNowURL == 'dyna_buy_now' || unescape(strBuyNowURL).toLowerCase().indexOf('dyna_buy_now') > -1)) {
		showDynaBuyFrame();
	} else if(strBuyNowURL.length > 0 && strBuyNowURL != 'dyna_buy_now' && unescape(strBuyNowURL).toLowerCase().indexOf('dyna_buy_now') == -1) {
		if(!document.getElementById('buyNowDialog')) buyNowMakeDialog(strBuyNowURL);
		showDialogLayer('buyNowDialog');
	} else {
		alert('Buy Now information is unavailable for this product.');
	}
}

function trackFlash(fAction, pfAction, dupClick, diffTime) {
	var tPage = flashTrackPage;
	tPage +='\&fAction=' + escape(fAction) + '\&pfAction=' + escape(pfAction) + '\&dupClick=' + dupClick + '\&diffTime=' + diffTime;
	var xmlHttp = XmlHttp.create();
	var async = true;
	xmlHttp.open("GET", tPage, async);
	xmlHttp.send(null);
}

function setVars(){
	var url = setVars.arguments[0];
	var varStr = '?';

	for(var x=1; x<setVars.arguments.length; x++) {
		varStr += escape(setVars.arguments[x]) + '=' + escape(eval(setVars.arguments[x]));
		if(x < setVars.arguments.length-1) varStr += '&';
	}

	var theURL = url + varStr;
	winBRopen(theURL,'EmailFriend',425,425);
} 

function SendInfo(urlPage,referString){
 	myString = referString;
	setVars(urlPage,'myString');
}

function LILWindow(url)
{
	var intHeight = screen.height;
	var intWidth = screen.width;

	var winName = "_blank";
	var intXPos = 10;
	var intYpos = 10;

	var bTool = 'no';
	var	bLoc = 'no';
	var bStatus = 'no';
	var bMenu = 'no';
	var bScroll = 'yes';
	var bResize = 'yes';
	var bHist = 'no';

	var NS4Plus = (document.layers) ? 1 : 0;
	var IE4Plus = (document.all) ? 1 : 0;

	if (intWidth <= 800) {
		intWidth = 750;
		intHeight = 500;
	} else {
		if(IE4Plus) {
			intWidth = 955;
			intHeight = 668;
		} else {
			intWidth = 1000;
			intHeight = 668;
		}
	}

	strProp = '';
	strProp	= strProp + "toolbar=" + bTool + ",location=" + bLoc + ",status=" + bStatus + ",menubar=" + bMenu + ","
	strProp	= strProp + "scrollbars=" + bScroll + ",resizable=" + bResize + ",copyhistory=" + bHist + ",";
	strProp	= strProp + "width=" + intWidth + ",height=" + intHeight + ",left=" + intXPos + ",top=" + intYpos + "";

	window.open(url, winName, strProp);
}

var surveyTable = '';
var surveyTableLink = '';
var dialogW = 300;
var dialogH = 90;
var floatX = 0-10-dialogW;
var floatY = 0-10-dialogH;
var lastX;
var lastY;

var NS6 = false;
var IE4 = (document.all);
if (!IE4) {NS6=(document.getElementById);}

function showDialogLayer(which) {
	var oLayer = document.getElementById(which);
	
	if(oLayer && oLayer.style.position == 'relative') {
		oLayer.style.display = '';
	
	} else if (NS6) {
		//floatX=Math.round((window.innerWidth-20)/2)-Math.round(dialogW/2);
		//floatY=Math.round((window.innerHeight-20)/2)-Math.round(dialogH/2);
		floatX=Math.round(window.innerWidth/2)-Math.round(dialogW/2);
		floatY=Math.round(window.innerHeight/2)-Math.round(dialogH/2);
		lastX=window.pageXOffset + floatX;
		lastY=window.pageYOffset + floatY;
		oLayer.style.left = lastX + 'px';
		oLayer.style.top = lastY + 'px';
		oLayer.style.visibility = '';
		
	} else if (IE4) {
		floatX=Math.round(document.body.offsetWidth/2)-Math.round(dialogW/2);
		floatY=Math.round(document.body.offsetHeight/2)-Math.round(dialogH/2);
		lastX=document.body.scrollLeft + floatX;
		lastY=document.body.scrollTop + floatY;
		document.all[which].style.posLeft = lastX;
		document.all[which].style.posTop = lastY;
		document.all[which].style.visibility = '';
	}
}

function hideDialogLayer(which) {
	var oLayer = document.getElementById(which);
	if(oLayer && oLayer.style.position == 'relative')
		oLayer.style.display = 'none';
	else if(oLayer)
		oLayer.style.visibility = 'hidden';
	else
		document.all[which].style.visibility = 'hidden';
}

function popSurveyVars() {
	surveyTable = '';
	surveyTable += '<div id="surveyDialog" style="visibility:hidden; position:absolute; left:' + floatX + 'px; top:' + floatY + 'px;">';
	surveyTable += '<table width="' + dialogW + '" height="' + dialogH + '" border="0" cellpadding="6" cellspacing="0" bgcolor="#E0DFE3" style="border: 1px solid #666666;">';
	surveyTable += '<tr><td style="text-align:center; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color:#000000;">Are you done with this module?<br>Can we ask you a few questions?</td></tr>';
	if(window.opener != null) {
		surveyTable += '<tr><td style="text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;"><a style="font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#333399;" href="' + strSurveyURL + '">YES</a>, show me the survey.</td></tr>';
	} else {
		surveyTable += '<tr><td style="text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;"><a style="font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#333399;" href="javascript:;" onClick="winBRopen(\'' + strSurveyURL + '\', \'survey\', 600, 600)">YES</a>, show me the survey.</td></tr>';
	}
	surveyTable += '<tr><td style="text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;"><a style="font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#333399;" href="javascript:;" onClick="hideDialogLayer(\'surveyDialog\')">NO</a>, I want to return to the module.</td></tr>';
	surveyTable += '</table>';
	surveyTable += '</div>';
	
	surveyTableLink = '<div align="center"><a style="background-color:#FFFFCC; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;" href="javascript:;" onClick="showDialogLayer(\'surveyDialog\')">&gt;&gt; Click here to take our survey. &lt;&lt;</a></div>';
	
	surveyDirectLaunch = '<div align="center"><a style="background-color:#FFFFCC; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;" href="javascript:;" onClick="winBRopen(\'' + strSurveyURL + '\', \'survey\', 600, 600)">&gt;&gt; Click here to take our survey. &lt;&lt;</a></div>';
}
popSurveyVars();

function showSurveyLayer() {
	showDialogLayer('surveyDialog');
}

function buyNowResize() {
	if(window.opener != null) {
		var oBody = document.getElementsByTagName("body")[0];
		oBody.style.overflow = 'auto';
		var oHTML = document.getElementsByTagName("html")[0];
		oHTML.style.overflow = 'auto';
		
		var w = self.screen.width;
		var h = self.screen.height;
		window.moveTo(0,0);
		window.resizeTo(w,h);
	}
	return true;
}

function buyNowCancel() {
	if(document.getElementById('flashcontent')) {
		var oFlashDivTag = document.getElementById("flashcontent");
		var oFlashObjectTag = oFlashDivTag.getElementsByTagName("object")[0];
		var oFlashEmbedTag = oFlashDivTag.getElementsByTagName("embed")[0];
		
		if(oFlashEmbedTag && oFlashEmbedTag.demoReturn) {
			oFlashEmbedTag.demoReturn();
		} else if(oFlashObjectTag && oFlashObjectTag.demoReturn) {
			oFlashObjectTag.demoReturn();
		}
	}
	hideDialogLayer('buyNowDialog'); 
	return false;
}

function buyNowMakeDialog(url) {
	//var arrTmp = checkContentSizes();
	//var y = 0 - (arrTmp[1] - dialogH)/2 - dialogH;
	var y = 0 - (352 - dialogH)/2 - dialogH - 32;
	var x = 0;
	
	var oDiv = document.createElement('div');
	oDiv.id = 'buyNowDialog';
	oDiv.style.display = 'none';
	oDiv.style.position = 'relative';
	oDiv.style.left = x +'px';
	oDiv.style.top = y + 'px';
	oDiv.style.textAlign = 'center';

	var sHTML = '';
	sHTML += '<table width="' + dialogW + '" height="' + dialogH + '" border="0" cellpadding="6" cellspacing="0" style="background-color:#E0DFE3; margin-left:auto; margin-right:auto; border:1px solid #666666; text-align:center; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; color:#000000;">';
	sHTML += '<tr><td><span style="float:right;"><a href="#" onClick="return buyNowCancel();" style="color:#333399; text-decoration: none;">[X]</a></span><span style="visibility:hidden;">[X]</span><span style="font-weight: bold;">Open link in:</span></td></tr>';
	sHTML += '<tr><td><a href="' + url + '" target="_blank" onClick="hideDialogLayer(\'buyNowDialog\');" style="color:#333399;">NEW window</a></td></tr>';
	sHTML += '<tr><td><a href="' + url + '" onClick="return buyNowResize();" style="color:#333399;">THIS window</a><br>(Replaces demo)</td></tr>';
	sHTML += '</table>';

	oDiv.innerHTML = sHTML;
	var oFC = document.getElementById('flashcontent');
	if(oFC) {
		var oSib = oFC.nextSibling;
		var oPar = oFC.parentNode;
		oPar.insertBefore(oDiv,oSib);
	} else {
		var oBody = document.getElementsByTagName("body")[0];
		oBody.appendChild(oDiv);
	}
}


var iFlashOriginalW;
var iFlashOriginalH;
var iFlashTruncateW;
var iFlashTruncateH;

//function createBuyNowDiv(wContent, hContent, hNav, hBody, hFoot, hHead) {
function createBuyNowDiv() {
	var arrContent = flashSizeOffset();
	iFlashOriginalW = parseInt(arrContent[0]);
	iFlashOriginalH = parseInt(arrContent[1]);

	var oDiv = document.createElement('div');
	//oDiv.setAttribute('id', 'buyNowListDisplay');
	oDiv.id = 'buyNowListDisplay';
	oDiv.style.display = 'none';
	oDiv.style.width = '100%';
	oDiv.style.position = 'relative';
	oDiv.style.top = '-1px';
	document.getElementById('flashcontent').appendChild(oDiv);
	
	//alert(arrContent[0] + ', ' + arrContent[1] + ', ' + arrContent[2] + ', ' + arrContent[3]);
	
	iFlashTruncateH = 1;			
	
	var buyNowInfo = '<table cellpadding="0" cellspacing="0" border="0" width="100%" height="' + iFlashOriginalH + '">';
	buyNowInfo += '<tr><td align="center" valign="top">';
	buyNowInfo += '<table cellpadding="0" cellspacing="0" border="0" width="' + iFlashOriginalW + '" height="' + iFlashOriginalH  + '" bgcolor="#ffffff">';
	
	buyNowInfo += '<tr><td width="150" height="65" align="center"><img src="/cm/logos_110x65/' + strMaskPrefix + '.gif" width="110" height="65" alt=""></td>';
	buyNowInfo += '<td width="' + (iFlashOriginalW - 150) + '" style="padding-right:30px; text-align:right; font-family:Arial, Helvetica, sans-serif; font-weight:bold; font-size:14px;">';
	buyNowInfo += strContentName;
	buyNowInfo += '</td></tr>';
	
	buyNowInfo += '<tr bgcolor="#EEEEEE"><td height="38" align="center"><a href="#" onClick="hideDynaBuyFrame(); return false;" onMouseOver="javascript:this.firstChild.src=\'/cm2/images/back_to_demo_over.gif\';" onMouseOut="javascript:this.firstChild.src=\'/cm2/images/back_to_demo_off.gif\';"><img src="/cm2/images/back_to_demo_off.gif" border="0"></a></td>';
	buyNowInfo += '<td style="padding-right:30px; text-align:right; font-family:Arial, Helvetica, sans-serif; font-weight:bold; font-size:11px;">';
	if(intDynaInc > 1)
		buyNowInfo += 'There is more than 1 variation of this product. Select from the list below.';
	else
		buyNowInfo += '&nbsp;';
	buyNowInfo += '</td></tr>';
	
	buyNowInfo += '<tr><td colspan="2" bgcolor="#FFFFFF" valign="top" height="' + (iFlashOriginalH - 65 - 38) + '">';
	buyNowInfo += '<iframe id="buyNowIFrame" width="' + iFlashOriginalW + '" height="' + (iFlashOriginalH - 65 - 38) + '" frameborder="0" scrolling="yes"></iframe>';
	buyNowInfo += '</td></tr>';
	
	buyNowInfo += '</table></td></tr></table>';
	
	document.getElementById('buyNowListDisplay').innerHTML = buyNowInfo;
}

function showDynaBuyFrame() {
	if(!document.getElementById('buyNowListDisplay')) createBuyNowDiv();
	document.getElementById("buyNowListDisplay").style.display = '';
	document.getElementById("buyNowIFrame").src = '/cm2/buy_now/dyna_list.asp?page_id=' + intPageID + '&host=' + strHost + '&refer=' + strRefer + '&notracking=' + strNoTracking;
	
	var oFlashDivTag = document.getElementById("flashcontent");
	var oFlashObjectTag = oFlashDivTag.getElementsByTagName("object")[0];
	var oFlashEmbedTag = oFlashDivTag.getElementsByTagName("embed")[0];

	oFlashObjectTag.height = iFlashTruncateH;

	if(oFlashEmbedTag) { oFlashEmbedTag.height = iFlashTruncateH; }
}


function hideDynaBuyFrame() {
	if(document.getElementById('buyNowListDisplay')) {
		document.getElementById("buyNowListDisplay").style.display = 'none';
		var oFlashDivTag = document.getElementById("flashcontent");
		var oFlashObjectTag = oFlashDivTag.getElementsByTagName("object")[0];
		var oFlashEmbedTag = oFlashDivTag.getElementsByTagName("embed")[0];
		
		oFlashObjectTag.height = iFlashOriginalH;

		if(oFlashEmbedTag) {
			oFlashEmbedTag.height = iFlashOriginalH;
			if(oFlashEmbedTag.demoReturn) { oFlashEmbedTag.demoReturn(); }
		} else {
			if(oFlashObjectTag.demoReturn) { oFlashObjectTag.demoReturn(); }
		}
			
		// Reference for JS / Flash communication: http://www.communitymx.com/content/article.cfm?page=1&cid=0922A
	}
}


function resizeAndCenter() {
	if(blnMakeFlash) myoFlashAndSurvey(strFlashURL,intFlashW,intFlashH);
	var blnPU = window.opener;
	//var blnPU = winIsPopUp();
	var curURL = window.location.href;
	var blnAdjust = (curURL.toLowerCase().indexOf('noadjust=1') != -1) ? false : true;
	var blnCenter = (curURL.toLowerCase().indexOf('nocenter=1') != -1 || !blnAdjust) ? false : true;
	var blnResize = (curURL.toLowerCase().indexOf('noresize=1') != -1 || !blnAdjust) ? false : true;
	var blnScroll = (curURL.toLowerCase().indexOf('yesscroll=1') != -1) ? true : false;
	
	var oAPC = document.getElementById('allPageContent');
	var oFC = document.getElementById('flashcontent');

	if((oAPC || oFC) && blnPU != null && blnResize) {
		var oBody = document.getElementsByTagName("body")[0];
		var oHTML = document.getElementsByTagName("html")[0];

		if(!blnScroll) {
			oBody.style.overflow = 'hidden';		
			oHTML.style.overflow = 'hidden';
		}

		// Check sizes and resize window accordingly.
		var arrWinSizes = checkWindowSizes();
		var arrContentSizes = checkContentSizes();
		var iDiffWidth = (arrContentSizes[0] - arrWinSizes[0]) + 2;
		var iDiffHeight = (arrContentSizes[1] - arrWinSizes[1]) + 2;
		try {
			window.resizeBy(iDiffWidth, iDiffHeight);
		} catch(err) {
			var winErr = err;
			oBody.style.overflow = '';
			oHTML.style.overflow = '';
		}
	
	} else if(blnPU != null && blnResize) {
		try {
			window.resizeTo(intWinWidth,intWinHeight);
		} catch(err) {
			var winErr = err;
		}
	}
	
	if(blnPU != null && blnCenter) {
		// Check window size and center on screen.
		var scrWidth = self.screen.width;
		var scrHeight = self.screen.height;
		var arrWinSizes = checkWindowSizes();
		var newX = Math.round((scrWidth - arrWinSizes[0] - 10)/2);
		var newY = Math.round((scrHeight - arrWinSizes[1] - 50)/2);
		try { 
			window.moveTo(newX,newY);
		} catch(err) {
			var winErr = err;
		}
	}
	/*
	if(blnPU == null && parent.window) {
		if(parent.window.adjustParentFrame) {
			var arrContentSizes = checkContentSizes();
			parent.window.adjustParentFrame(arrContentSizes[0],arrContentSizes[1]);
		}
	}
	*/
}

function winIsPopUp() {
	/*
	var menuH;
	if(window.outerHeight && window.innerHeight) {
		menuH = window.outerHeight - window.innerHeight;
	} else {
		window.moveTo(0,0);
		menuH = window.screenTop;
	}
	if(menuH < 100) 
		return true;
	else
		return null;
	*/
	/*
	var oMain = document.getElementById('flashcontent');
	var oDiv = document.createElement('div');
	oMain.appendChild(oDiv);
	//oDiv.innerHTML = 'window = ' + window.name;
	oDiv.innerHTML = 'history.length = ' + history.length;
	return null;
	*/
	if(window.innerHeight && history.length == 1 && window.name != '')
		return true;
	else if(history.length == 0 && window.name != '')
		return true;	
	else
		return null;
}

function checkWindowSizes() {
	var x,y;
	if (self.innerWidth) {
		// all except Explorer
		x = self.innerWidth;
		y = self.innerHeight;
		
	} else if(document.documentElement && document.documentElement.clientWidth) {
		// Explorer 6 Strict Mode
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
		
	} else if(document.body) {
		// other Explorers
		x = document.body.clientWidth;
		y = document.body.clientHeight;
		
	} else {
		x = intWinWidth;
		y = intWinHeight;
	}
	
	return [x,y];
}

function checkContentSizes() {
	var x,y;
	var oAPC = document.getElementById('allPageContent');
	var oFC = document.getElementById('flashcontent');
	
	if(oAPC) {  // All page content is contained in a table with id="allPageContent"
		x = oAPC.offsetWidth;
		y = oAPC.offsetHeight;

	} else if(oFC) {  // Assumes width of Flash. Adds together position of Flash from top and height of Flash. 
		var oFOTag = oFC.getElementsByTagName("object")[0];		
		x = parseInt(oFOTag.width);	
		var arrPos = findTopLeft(oFOTag);
		y = arrPos[1] + parseInt(oFOTag.height);
		if(strSurveyURL != '') y += 20;
		
	} else {
		x = intWinWidth;
		y = intWinHeight;
	}

	return [x,y];
}

function findTopLeft(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}

function flashSizeOffset() {
	var oFC = document.getElementById('flashcontent');
	if(oFC.getElementsByTagName("embed")[0]) 
		var oFOTag = oFC.getElementsByTagName("embed")[0];
	else
		var oFOTag = oFC.getElementsByTagName("object")[0];		
	var w = oFOTag.width;
	var h = oFOTag.height;
	var loc = findTopLeft(oFOTag);
	var ox = loc[0];
	var oy = loc[1];
	return [w,h,ox,oy];
}

function myoFlashAndSurvey(qs,w,h) {
	var oMain = document.getElementById('demomain');
	var oLoader = document.getElementById('demopreloader');
	if(oLoader) oLoader.parentNode.removeChild(oLoader);
	var oDiv = document.createElement('div');
	var oSpacer = document.createElement('div');
	var oFirst = oMain.firstChild;
	oDiv.id = 'allPageContent';
	oDiv.style.width = w + 'px';
	oDiv.style.height = h + 'px';
	oDiv.innerHTML = '<div id="flashcontent" name="flashcontent"></div>';
	oSpacer.style.padding = '2px';
	oSpacer.innerHTML = '&nbsp;';
	oMain.insertBefore(oSpacer,oFirst);
	oMain.insertBefore(oDiv,oSpacer);

	if(strSurveyURL != '') {
		var y = 0 - (h - dialogH)/2 - dialogH;
		oDiv.style.height = (h+20) + 'px';
		oDiv.innerHTML += '<div id="surveycontent"></div>';
		var oSurveyDiv = document.getElementById('surveycontent');
		oSurveyDiv.innerHTML = surveyTableLink + surveyTable;
	
		var oSurveyDialog = document.getElementById('surveyDialog');
		oSurveyDialog.style.display = 'none';
		oSurveyDialog.style.visibility = '';
		oSurveyDialog.style.position = 'relative';
		oSurveyDialog.style.left = '0px';
		oSurveyDialog.style.top = y + 'px';
	}
	
	writeFlashEmbedCode(qs,w,h);	
}

// Code reference: http://www.sitepoint.com/article/javascript-from-scratch/2
function addLoadListener(fn) {
	if (typeof window.addEventListener != 'undefined') 
		window.addEventListener('load', fn, false); 
	else if (typeof document.addEventListener != 'undefined') 
		document.addEventListener('load', fn, false); 
	else if (typeof window.attachEvent != 'undefined') 
		window.attachEvent('onload', fn); 
	else { 
		var oldfn = window.onload; 
		if (typeof window.onload != 'function') 
			window.onload = fn; 
		else { 
			window.onload = function() { 
				oldfn();
				fn(); 
			};
		} 
	} 
}

addLoadListener(resizeAndCenter);

