// Configurable Directives
var leavingSiteActiveLink;
var leavingSiteExcludeSites = Array();
var leavingSiteOwnSites = Array();
var overlayOpacity = 0.6;
var anchorIdent = 'headerArea';
var didYouKnowActiveSendTo;
var layerSets = {
	'Email This Page Confirmation':{
		isActive:true,
		animate:false,
		overlayer:false,
		layerIdent:'emailThisPageConfirmationLayer',
		layerClass:'popoverLayerWrap',
		closeButton:true,
		headerCopy:'Email This Page Confirmation',
		bodyCopyAlignment:'left',
		bodyCopy:Array('Your e-mail has been sent.','Thank you for sharing this page.'),
		buttonArea:Array("close")
	},
	'Email This Page':{
		isActive:true,
		animate:true,
		overlayer:false,
		layerIdent:'emailThisPageLayer',
		layerClass:'popoverLayerWrap',
		closeButton:true,
		headerCopy:'',
		bodyCopyAlignment:'left',
		bodyCopy:'After completing the fields below and clicking "SEND", your friend or colleague will receive an e-mail with a link to this page.',
		bodyIdent:'emailThisPageBodyArea',
		formArea:function() {
			if(window.location.href.match(/http(s)?:\/\//) ) {
				handler = window.location.href.split("/");
				sandbox = handler[0] + "/" + handler[1] + "/" + handler[2];
			}
			// action:sandbox+'/EmailService',
			var emailThisPageForm = Builder.node('form', {id:'emailThisPageForm', action:'/post.aspx', method:'post', name:'emailThisPageForm'}, [
				Builder.node('div', {className:'formlistAreaPop'}, [
					Builder.node('p', [
						Builder.node('strong', '* Required information'),
					]),	
				]),
				Builder.node('input', {type:'hidden', name:'success', id:'emailThisPageSuccess', value:''}),
				Builder.node('input', {type:'hidden', name:'page_url', value:''}),
				Builder.node('input', {type:'hidden', name:'subject', value:'I thought this page might interest you', value:''}),
				Builder.node('input', {type:'hidden', name:'targetAudience', value:''}),
				Builder.node('div', {id:'emailThisPageErrorContent'}),				
				Builder.node('div', {className:'clearBoth'}),
				Builder.node('div', {className:'spacer height15'}),
			    Builder.node('div', {id:'err'}, 'Please make sure to fill out all the fields.'),
			    Builder.node('div', {id:'err2'}, 'Please enter a valid email address.'),		    				
				Builder.node('div', {className:'formlistArea4'}, [
					Builder.node('p', [
						Builder.node('strong', '* Your first name'),
					]),
					Builder.node('input', {type:'text', name:'firstName', className:'formTextInputArea2 required'})
				]),
				Builder.node('div', {className:'clearBoth'}),
				
				Builder.node('div', {className:'formlistArea4'}, [
					Builder.node('p', [
						Builder.node('strong', '* Your last name'),
					]),					
					Builder.node('input', {type:'text', name:'lastName', className:'formTextInputArea2 required'}),
				]),
				Builder.node('div', {className:'clearBoth'}),
				Builder.node('div', {className:'formlistArea4'}, [
					Builder.node('p', [
						Builder.node('strong', '* Your e-mail address'),
					]),
					Builder.node('input', {type:'text', name:'fromEmailAddress', className:'formTextInputArea2 requiredEmail'})
				]),
				Builder.node('div', {className:'clearBoth'}),				
				Builder.node('div', {className:'formlistArea4'}, [
					Builder.node('p', [
						Builder.node('strong', '* Recipient\'s e-mail address'),
					]),
					
					Builder.node('input', {type:'text', id:'toAddress', name:'toAddress', className:'formTextInputArea2 requiredEmail'})
				]),
				Builder.node('div', {className:'clearBoth'})
	
			]);
			document.getElementById('emailThisPageBodyArea').appendChild(emailThisPageForm);
		},
		buttonArea:Array("cancel", "sendemail")
	},
	'Form Error Layer':{
		isActive:true,
		animate:true,
		overlayer:false,
		layerPosition:'default',
		layerIdent:'formErrorLayer',
		layerClass:'popoverLayerWrap',
		closeButton:true,
		headerCopy:'',
		bodyCopy:'Error Message',
		bodyIdent:'formErrorContentArea',
		buttonArea:Array("close")
	},
	'Did you know Send To':{
		isActive:true,
		animate:true,
		overlayer:false,
		activate: function() {
			for(var n in didYouKnowSets) {
				if(didYouKnowSets[n]["inputName"] == didYouKnowActiveSendTo.replace("anchor_", "")) {
					var myFormArea = document.getElementById('dykSendToFormArea');
					// grab emails entered
					var inputs = document.tellAFriend.getElementsByTagName("input");
					var didEmails = new Array();
					var counter = 0;
					for(var x=0; x<inputs.length; x++) {
						if(inputs[x].getAttribute("name")) {
							if(inputs[x].getAttribute("name").match(/address_/) && inputs[x].value != "") {
								didEmails[counter] = inputs[x].value;
								counter++;
							}
						}
					}
					myFormArea.innerHTML = "";
					for(var x=0; x<didEmails.length; x++) {
						var inputLine = Builder.node('div'/*, {style:'margin:10px 0px 0px 0px; padding:0px 0px 0px 40px;'}*/, [
							Builder.node('input', {type:'checkbox', id:'tempCheckbox_', onclick:'', checked:'checked'/*, style:'float:left;line-height:13px;'*/}),
							Builder.node('p'/*, {style:'float:left; margin:0px 0px 0px 5px; width:100px; font-family:Arial; font-size:12px; line-height:13px;'}*/, didEmails[x])/*,
							Builder.node('div', {className:'clearBoth'})*/
						]);
						myFormArea.appendChild(inputLine);
					}
					if(didEmails.length < 1) {
						var inputLine = Builder.node('p'/*, {style:'float:left; margin:10px 0px 0px 20px;font-family:Arial; font-size:12px; line-height:13px;'}, 'Please enter a recipient e-mail address.'*/);
						myFormArea.appendChild(inputLine);
					}
					var clearBoth = Builder.node('div', {className:'clearBoth'});
					myFormArea.appendChild(clearBoth);
				}
			}
		},
		layerPosition:'attachToAnchor',
		layerIdent:'dykSendToLayer',
		layerClass:'popoverLayerWrap',
		closeButton:true,
		headerCopy:'Send To...',
		formArea:function() {
			var formContainer = Builder.node('div', {id:'dykSendToFormArea'});
			document.getElementById('dykSendToBody').appendChild(formContainer);
		},
		bodyCopy:'Choose which friends below you\'d like to send this \'Did You Know\' to:',
		bodyIdent:'dykSendToBody',
		buttonArea:Array("close","cancel")
	}
};


/*
** *************************** **
** Do Not Edit Below This Line **
** *************************** **
*/

var layerMaker = {
	init: function() {
		layerMaker.rebuildTheDarkness();
		for(var x in layerSets) {
			if(layerSets[x]['isActive'] == true) {
				layerMaker.construct(layerSets[x]);
				if(layerSets[x]['init']) {
					layerSets[x].init();
				}
			}
		}
	},
	
	activate: function(layerName, activatedObj) {
		toggleSelect("hide");
		toggleFlash("hide");
		if(layerSets[layerName]['overlayer'] == true) {
			layerMaker.rebuildTheDarkness();
			new Effect.Appear(document.getElementById('overlayer'), {duration:0.25, from: 0.0, to: overlayOpacity});
		}
		if(layerSets[layerName]['activate']) {
			layerSets[layerName].activate(activatedObj);
		}
		layerMaker.setPosition(layerName);
		
		new Effect.Appear(document.getElementById(layerSets[layerName].layerIdent), {duration:0.75});
	},
	
	continueBtn: function() {
		
	},
	
	deactivate: function() {
		for(var layer in layerSets) {
			if(document.getElementById(layerSets[layer]['layerIdent'])) {
				workingObj = document.getElementById(layerSets[layer]['layerIdent']);
				new Effect.Fade(workingObj, {duration:0.25});
			}
		}
		new Effect.Fade(document.getElementById('overlayer'), {duration:0.25});
		toggleSelect("show");
		toggleFlash("show");
		document.getElementById('err').style.display = "none";
	},
	
	setPosition: function(layerName) {

		var layerObj = document.getElementById(layerSets[layerName]['layerIdent']);
		var workingElem = anchorIdent;
		var curtop = 0;
		var curleft = 0;
		var xScroll, yScroll;
		var windowWidth, windowHeight;
		var objWidth = getStyle(layerObj, "width");
		var objHeight = getStyle(layerObj, "height");
		
		if(layerSets[layerName]['layerPosition']) {
			switch(layerSets[layerName]['layerPosition']) {
				case "attachToAnchor":
					break;
				case "default":
					break;
			}
		} else {
			
		}
		
		if(workingElem.offsetParent) {
			curleft = workingElem.offsetLeft;
			curtop = workingElem.offsetTop;
			while (workingElem = workingElem.offsetParent) {
				curleft += workingElem.offsetLeft;
				curtop += workingElem.offsetTop;
			}
		}
		
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;	
		}
	
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				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;
		}	
		
		xChange = parseInt(windowWidth)/2 - parseInt(objWidth)/2;
		yChange = parseInt("175px") + parseInt(yScroll);
		layerObj.style.top = parseInt(curtop) + parseInt(yChange) + "px";
		layerObj.style.left = parseInt(curleft) + parseInt(xChange) + "px";
	},
	
	/* ====================== ==
	** The __construct method ==
	*/
	construct: function(layerObj) {
		var objBody = document.getElementsByTagName("body").item(0);
		
		if(document.getElementById(layerObj['layerIdent'])) {
			objBody.removeChild(document.getElementById(layerObj['layerIdent']));
		}
		
		var popoverWrap = Builder.node('div', {id:layerObj['layerIdent'], className:layerObj['layerClass'], style:'display:none; position:absolute;'});
		objBody.appendChild(popoverWrap);
		
		
		var popoverTopArea = Builder.node('div', {className:'popoverTopArea'}, [
			Builder.node('h3', {className:'closePopoverBtn'}, [
				Builder.node('a', {onclick:'layerMaker.deactivate(); return false;'}, [
					Builder.node('span', {className:'headerMessage'}, 'Close Button')
				]),
			]),
		]);
		popoverWrap.appendChild(popoverTopArea);
		
		if(!layerObj['bodyIdent']) {
			layerObj['bodyIdent'] = "";
		}
		var popoverContentArea = Builder.node('div', {id:layerObj['bodyIdent'], className:'popoverContentArea'}, [
			Builder.node('h2', {className:'popoverMainTitle'}, [
				Builder.node('span', {className:'headerMessage'}, layerObj['headerCopy'])
			]),
		]);
		if(layerObj['bodyCopyAlignment']) {
			popoverContentArea.style.textAlign = layerObj['bodyCopyAlignment'];
		}
		popoverWrap.appendChild(popoverContentArea);
		
		if(layerObj['bodyCopy']) {
			if(typeof(layerObj['bodyCopy']) == "string") {
				bodyObj = Builder.node('p', {className:'popoverContentBlock'}, layerObj['bodyCopy']);
				popoverContentArea.appendChild(bodyObj);
			} else {
				var bodyObj = new Array();
				for(var b=0; b<layerObj['bodyCopy'].length; b++) {
					bodyObj[b] = Builder.node('p', {className:'popoverContentBlock'}, layerObj['bodyCopy'][b]);
					popoverContentArea.appendChild(bodyObj[b]);
				}
			}
			
		}
		
		
		if(layerObj['formArea']) {
			if(typeof(layerObj['formArea']) == "function") {
				layerObj.formArea();
			} 
		}
		
		
		if(layerObj['buttonArea']) {
			var popoverButtonArea = Builder.node('div', {className:'popoverBtnArea'});
			popoverContentArea.appendChild(popoverButtonArea);
			buttonObjs = new Array();
			for(var i=0; i<layerObj['buttonArea'].length; i++) {
				switch(layerObj['buttonArea'][i]) {
					case "cancel":
						buttonObjs[i] = Builder.node('h3', {className:'cancelButton'}, [
							Builder.node('a', {onclick:'layerMaker.deactivate(); return false;'}, [
								Builder.node('span', {className:'headerMessage'}, 'Cancel Button')
							]),
						]);
						popoverButtonArea.appendChild(buttonObjs[i]);
						break;
					case "continue":
						if(layerObj['continueBtnId']) {
							workingIdent = layerObj['continueBtnId'];
						} else {
							workingIdent = "";
						}
						buttonObjs[i] = Builder.node('h3', {className:'continueButton'}, [
							Builder.node('a', {id:workingIdent, onclick:'layerMaker.continueBtn();'}, [
								Builder.node('span', {className:'headerMessage'}, 'Continue Button')
							]),
						]);
						popoverButtonArea.appendChild(buttonObjs[i]);
						break;
					case "close":
						buttonObjs[i] = Builder.node('h3', {className:'closeButton'}, [
							Builder.node('a', {onclick:'layerMaker.deactivate(); return false;'}, [
								Builder.node('span', {className:'headerMessage'}, 'Close Button')
							]),
						]);
						popoverButtonArea.appendChild(buttonObjs[i]);
						break;
					case "send":
						buttonObjs[i] = Builder.node('h3', {className:'sendButton'}, [
							Builder.node('a', [
								Builder.node('span', {className:'headerMessage'}, 'Send Button')
							]),
						]);
						popoverButtonArea.appendChild(buttonObjs[i]);
						break;
					case "sendemail":
						buttonObjs[i] = Builder.node('h3', {className:'sendButton', onclick:'submitEmailThisPage();'}, [
							Builder.node('a', [
								Builder.node('span', {className:'headerMessage'}, 'Send Button')
							]),
						]);
						popoverButtonArea.appendChild(buttonObjs[i]);
						break;				
				}
			}
		}		
		
		var popoverBottomArea = Builder.node('div', {className:'popoverBottomArea'});
		popoverWrap.appendChild(popoverBottomArea);
		
	},
	
	rebuildTheDarkness: function() {
		var objBody = document.getElementsByTagName("body").item(0);
		
		if(document.getElementById('overlayer')) {
			objBody.removeChild(document.getElementById('overlayer'));
		}		
		
		var overLayer = Builder.node('div', {id:'overlayer', style:'position:absolute; top:0px; left:0px; display:none; background-color:#000000; z-index:9999;'});
		objBody.appendChild(overLayer);
		
		var arrayPageSize = getPageSize();
		overLayer.style.width = "100%";
		overLayer.style.height = arrayPageSize[1]+"px";
		overLayer.onclick = function() { layerMaker.deactivate(); return false; };
	}
};
