//smartsite site root: equivalent to ~/
var siteroot = (typeof(fullsiteroot) == "function") && (typeof(sitehost) == "function") ? fullsiteroot().replace(sitehost(), "") : "/";
//language
var lang = location.href.indexOf("/en/") > - 1 ? "en" : "fr";
//fixes double slash in URLs
var normalizePath = function(string) {return string.replace(/(\/+)|\\+/g, "/");}
//escapes <, > & and " into corresponding html entities
var escapeHTML = function(string) {return string.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");}
//rounds a number to two decimals places. Returns a string
var toCurrency = function(number) {return number.toFixed(2);}

var currentUrlEnc = hex_md5(location.href).substr(0,5); // encode current page for unique cookie
var currentAccordionCookie = "accordianopen~" +  currentUrlEnc; // save accordion cookie based on indie page
var currmovie;
//IE background image cache script
//@cc_on document.execCommand("BackgroundImageCache", false, true);

// xDocSize r1, Copyright 2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL
function xDocSize(){
var b=document.body, e=document.documentElement;var esw=0, eow=0, bsw=0, bow=0, esh=0, eoh=0, bsh=0, boh=0;
if (e) {esw = e.scrollWidth;eow = e.offsetWidth;esh = e.scrollHeight;eoh = e.offsetHeight;}
if (b) {bsw = b.scrollWidth;bow = b.offsetWidth;bsh = b.scrollHeight;boh = b.offsetHeight;}
return {w:Math.max(esw,eow,bsw,bow),h:Math.max(esh,eoh,bsh,boh)};
}

//Modal mask
/* modal mask */
var Modal = {
	openMask : function(options) {
		this.quickClose();//close if open	
		var hasMask, maskStyle;
		if (options){
			hasMask = options.hasMask;
		}		
		maskStyle = (hasMask) ? "modalDark" : "modalLight";
		var modalcontainer = $("modalcontainer");
		var modalmask = $("modalmask")
		if (modalcontainer && modalmask)
		{
			if (modalcontainer.hasClassName("hidden")) modalcontainer.removeClassName("hidden");		
			modalcontainer.setStyle({top : "0", left: "0"})
			var pageDimensions = xDocSize();
			modalmask.className = "modalmask";
			modalmask.addClassName(maskStyle);
			modalmask.setStyle ({ 	
				height : pageDimensions["h"] + "px",
				width : pageDimensions["w"] + "px"
			})
		}
	},
	close : function() {
		var modalcontainer = $("modalcontainer");
		if (!modalcontainer.hasClassName("hidden")) modalcontainer.addClassName("hidden");
		$$('.layout')[0].removeClassName('printmemory'); // for print memory test
		if($('video')) $('video').remove()// kill flash
		if (String(typeof(window.onModalClose)) == 'function') {
			window.onModalClose();
		}
	},
	quickClose : function() {
		var modalcontainer = $("modalcontainer");
		if (!modalcontainer.hasClassName("hidden")) modalcontainer.addClassName("hidden");
	},
	resizeHandler : function(){
		var modalcontainer = $("modalcontainer");
		if (modalcontainer && !modalcontainer.hasClassName("hidden")){
			Modal.close();
			Modal.openMask();
		}
	},
	open :function(options){	
		
		$("modalcontent").innerHTML ="<img src='"+ fullsiteroot() +"local/images/loading.gif' />";
		var width, url, contentEl, hasMask;
		var modalbody = $("modalbody");
		if (options){
			width = options.width || 400;
			url = options.url || "";	
			contentEl = options.contentEl || "";
			var modaltitle = options.modaltitle || "";			
			hasMask = options.hasMask;
			extraClassName = 'alertbox';
		}

		//safari doesn't like document.documentElement.scrollTop & IE7 doesn't like window.pageYOffset
		var safariOffset = 0;
		if (document.documentElement.scrollTop==0 && !isNaN(window.pageYOffset)) safariOffset = 0 + window.pageYOffset;
		else safariOffset = 0 + document.documentElement.scrollTop;

		Modal.openMask({hasMask: hasMask});
		modalbody.setStyle({
			width: width + "px",
			top:(100 + safariOffset) + "px",
			left:(document.body.offsetWidth / 2) - (width / 2) + "px"
		});	
		// switch for 2 diff classes on modal box
		if (contentEl.match(/ref/)) $('modalcontainer').removeClassName(extraClassName)
		else $('modalcontainer').addClassName(extraClassName);
		
		if (url != ""){
			new Ajax.Updater("modalcontent",options.url,{evalScripts:true} );	
		} 
		else if (contentEl != ""){
			$("modalcontent").innerHTML = '';
			$("modalcontent").insert($(contentEl).innerHTML.replace(/PopupOD/g, "ModalOD"));
			/*
			$("modalcontent").innerHTML = $(contentEl).innerHTML;
			//insanely crappy hack, to appease IE6 and it's refusal to re-render <img>s
			setTimeout(function(){
				$("modalcontent").innerHTML = $("modalcontent").innerHTML
			}, 50);
			*/
			
		}
		if (modaltitle) $("modaltitle").innerHTML = modaltitle;
		if (contentEl.match(/ref/)) $("modalmask").style.display = 'none';
	}
}
Event.observe (window,"resize",Modal.resizeHandler);
Event.observe(window,"load",function(){									 
	if ($("modalcloser"))Event.observe ("modalcloser","click",Modal.close);
})
/* font size increase */
function smallText() {	
 size = '100';
 text = $$('.content')[0];
 text.style.fontSize = size + '%';
 Cookie.set('fontCookie',size,100);
 pageTracker._trackEvent("Text Size","Click","Small");
}

function mediumText() {
 size = '110';
 text = $$('.content')[0];
 text.style.fontSize = size + '%';
 Cookie.set('fontCookie',size,100);
 pageTracker._trackEvent("Text Size","Click","Medium");
}

function largeText() {
 size = '120';	
 text = $$('.content')[0];
 text.style.fontSize =  size + '%';
 Cookie.set('fontCookie',size,100);
 pageTracker._trackEvent("Text Size","Click","Large");
}


	/* language toggle */
var languageToggle =  function(){		
		switchLang = (lang == "en" ) ? "fr" : "en";
		url = location.href.toString().replace(lang, switchLang)
		location.href  = url;	
}											
											

document.observe("dom:loaded",function() {
	
									   
	/* font stuff */
	
	$$('.navfontsmall').invoke('observe','click', smallText);
	$$('.navfontmed').invoke('observe','click',mediumText);
	$$('.navfontbig').invoke('observe','click',largeText);
	
	// watch button flv stuff
	$$('#watchbutton').invoke('observe','click',launchFlv);
	
	//set font size on load

	var maincontent = $$('.content')[0];
	var cookieValue = Cookie.get('fontCookie');
	if (cookieValue != null) maincontent.style.fontSize = cookieValue + '%';
	
	//home page flv
	if(location.href.match(/home/)) window.createFlv("flashbanner","963x245","", true);
	
	/*if($('brochureform')) 
		$('brochureform').src = (lang=='en') ? 'http://www.ddxhealth.ca/onmemory/brochure_order.aspx': 'http://www.ddxhealth.ca/onmemory/fr/brochure_order.aspx';		
*/

	//google pixel
	$('google-pixel').src = 'http://leadback.advertising.com/adcedge/lb?site=695501&srvc=1&betr=pfizpix_cs=2&betq=9495=408253';
	
	//launchHomeModal();

})

var launchFlv = function(){
	
	ele = $("watchbutton");
	myvideosource = ele.getAttribute("videosource");
	mymodaltitle = ele.getAttribute("modaltitle");
	Modal.open({url: siteroot + 'elements/widgets/video_widget/?videosource=' + myvideosource, width:'403', modaltitle: mymodaltitle})
	currMovie = "video_" + mymodaltitle.replace(/\W/g, "-");
	}
/** home page banner functions **/

var takeTest = function(){
	location.href= siteroot +  lang + "/signs_symptoms/memory_test/";	
	}
	
var lemons = function(){
	if(lang=='en') {
		Modal.open({url: siteroot +  'en/tv_ads/lemons/', width:'912', modaltitle:'TV ad: Lemons'})
	} else {
		Modal.open({url: siteroot + 'fr/tv_ads/lemons/', width:'912', modaltitle:'Publicit&eacute; t&eacute;l&eacute;vis&eacute;e : Citrons'})
	}
	
	currMovie = "tvad_lemon";
	 
} 
var coat = function(){

	if(lang=='en') {
		Modal.open({url: siteroot + 'en/tv_ads/coats/', width:'912', modaltitle:'TV ad: Coat'})
	} else {
		Modal.open({url: siteroot + 'fr/tv_ads/coats/', width:'912', modaltitle:'Publicit&eacute; t&eacute;l&eacute;vis&eacute;e: Manteau'})
	}
	currMovie = "tvad_coat";
} 
/** end home page banner functions **/

var Accordian = Class.create();
Accordian.prototype = {
	initialize:function(){
		var self = this;
		this.accordiancontainer = $("accordiancontainer");
		this.hasScrollTo = this.accordiancontainer.hasClassName("scrollto");
		this.allExpanders = this.accordiancontainer.select(".accordianexpander");
		this.allBodies = this.accordiancontainer.select(".accordianbody");
		//alert(currentAccordionCookie + " : cookie : " + Cookie.get(currentAccordionCookie));
		this.currentCookie = (Cookie.get(currentAccordionCookie) != null || Cookie.get(currentAccordionCookie) != "") ? $(Cookie.get(currentAccordionCookie)) : null;	
		this.currentlyOpen = null;
		if (this.currentCookie == null) {
			this.currentlyOpen = $("accordianitem01");
			Cookie.set(currentAccordionCookie, "accordianitem01");
		} else {
			this.currentlyOpen = $(this.currentCookie); // get first index which is accordion item id
		}
		//alert("current " + this.currentlyOpen);
		this.allExpanders.each(function(el){
			Event.observe(el,"click",function(){	
				// scroll to
				if(self.hasScrollTo) {
					containerTop = Element.cumulativeOffset("accordiancontainer");
					window.scrollTo(0, containerTop[1]);
				}
				var accordianitem = el.up(".accordianitem");
				var accordianbody = accordianitem.down(".accordianbody");
				self.reset(accordianitem);				
				if(accordianitem.hasClassName("accordiancollapsed")){
					accordianitem.removeClassName("accordiancollapsed")	
					new Effect.BlindDown(accordianbody, {duration:.4 })	
					Cookie.set(currentAccordionCookie,accordianitem.id)
					//GA
					pageTracker._trackPageview(location.pathname + accordianitem.down(".accordianprettyname").id + "/")
				} else {
					accordianitem.addClassName("accordiancollapsed")	
					new Effect.BlindUp(accordianbody,{duration:.2 });	
					Cookie.set(currentAccordionCookie,"")
				}
				
				

			}.bind(this));													
		})

		if (this.currentlyOpen){
			this.currentlyOpen.down(".accordianbody").setStyle({"display":""});
			this.currentlyOpen.removeClassName("accordiancollapsed");
			//GA
			var accorianID = this.currentlyOpen.down(".accordianprettyname").id;
			Event.observe(window,"load",function(){pageTracker._trackPageview(location.pathname + accorianID + "/");});
		}
		
		
	},
	getContainer: function(){
		return this.accordiancontainer;	
	},
	getAllExpanders: function(){
		return this.allExpanders;	
	},
	reset: function(clickedEl){
		this.allBodies.each(function(el){			
			if (el != clickedEl.down(".accordianbody") && !el.up(".accordianitem").hasClassName("accordiancollapsed")) {	
				el.up(".accordianitem").addClassName("accordiancollapsed");
				Effect.BlindUp(el);
			}
		})
	}
	
}

var accordian;
var initializeAccordian = function(){
	accordian = new Accordian();

}


window.appendvid = function(src, dimensions){
	if (src == ''){
		$("video").innerHTML = "Empty Content";
	} else {
		flvdimensions = (dimensions) ? dimensions : '334x279';
		window.createFlv('video', flvdimensions ,src,'true');
	}
}

window.createFlv = function(id, flv_dimensions, flvfile, autoplay) {	

	//see if dimensions not set
	if(!flv_dimensions){
		alert("There is no flv dimensions set for ID: " + id);
		return;
	}
	
	if ($(id)){
		if (swfobject.hasFlashPlayerVersion("8.0.0")) {
			var flashvars = {};
			var attributes = {};
			var re = '\/local\/';
			
			flv_playerSplit = flv_dimensions.split("x"); // this will split 475x262 
			width = flv_playerSplit[0];
			height = flv_playerSplit[1];			
			
			if(id=='flashbanner') { // home page stuff
				flashvars.video1Source= siteroot + "local/flash/" + 'LEMONS_ENG_689x245.flv'; 
				flashvars.video2Source= siteroot + "local/flash/" + 'COAT_ENG_689x245.flv';
				if(lang == 'fr') flv_dimensions = "fr_" + flv_dimensions;
				
				
			} else {
				flashvars.videoSource =  siteroot + "local/flash/" + flvfile.replace(re,''); // get the relative url	
			}
			//flashvars.playerSkin = siteroot + "local/flash/SteelExternalAll.swf";
			flashvars.autoplay = (autoplay.toString().toLowerCase() == "true" ? "true" : "false");
			
						
			
			var params = {wmode: "transparent"}
			var swffile = siteroot + "local/flash/VideoPlayer_" + flv_dimensions + ".swf";
		
			swfobject.embedSWF(swffile, id, width, height, "8.0.0", "expressInstall.swf" , flashvars, params, attributes);
			
		}
		else 
		{
			message = (lang=="en") ? "Your browser currently does not support Flash Player 8.0, Click on OK if you wish to navigate away from this site and install this plug-in or click on Cancel if you wish to proceed without the plug-in. By clicking on Cancel the site may not function correctly." : "Votre navigateur n'est pas équipé de la version d'Adobe Flash Player 8.0. Si vous désirez naviguer hors de ce site, cliquez sur OK et installez ce plugiciel ou appuyez sur Annuler si vous désirez continuer sans l'aide du plugiciel. Si vous cliquez sur Annuler, il se peut que le site ne fonctionne pas correctement.";
			var getflash = confirm (message);
			if (getflash) window.open('http://www.adobe.com/products/flashplayer/');
		}
	} 
	else 
	{
		window.status ="Mismatched ID: " + id;
	}
};


var videoStart = function(){
	pageTracker._trackPageview(location.pathname + currMovie + "/start/");
}

var videoEnd = function(){
	pageTracker._trackPageview(location.pathname + currMovie + "/end/");
}

var printPage = function(){
	var currLocation = location.pathname;
	
	if (currLocation.indexOf("/memory_test") > -1){
		$("testprintheader").hide()
		$("banner").addClassName("dontprint")
	}
	//	printout();	
	//} else {
		window.print();	
	//}
	
}

var launchHomeModal = function(){
	
	var flashcookie = false;//Cookie.get('flashmodal');
	var flashmodal = $('flashmodal');

	var today = new Date();
	var limit = new Date(2011,02,01);
	var isjan2011 = today < limit;
	
	if(flashmodal && flashcookie != 'true' && isjan2011){
		//flash setup
		var flashid = 'flashobject';
		var flashfile = siteroot + 'local/flash/home_modal_' + lang + '.swf';
		var width = 893;
		var height = 210;
		var params = {wmode: "transparent"};
		var flashvars = {};
		var attributes;

		var modalmask = $('flashmodalmask');
		var pageDimensions = xDocSize();
		modalmask.setStyle ({ 	
			height : pageDimensions["h"] + "px",
			width : pageDimensions["w"] + "px"
		})

		//safari doesn't like document.documentElement.scrollTop & IE7 doesn't like window.pageYOffset
		var safariOffset = 0;
		if (document.documentElement.scrollTop==0 && !isNaN(window.pageYOffset)) safariOffset = 0 + window.pageYOffset;
		else safariOffset = 0 + document.documentElement.scrollTop;

		var modalbody = $('flashcontainer');
		modalbody.setStyle({
			top:(100 + safariOffset) + "px",
			left:(document.body.offsetWidth / 2) - (width / 2) + "px"
		});	


		swfobject.embedSWF(flashfile, flashid, width, height, "8.0.0", "expressInstall.swf" , flashvars, params, attributes);
		
		flashmodal.removeClassName('hidden');
		
		//Cookie.set('flashmodal','true',768);
	}
}

var close = function(){
	$('flashmodal').addClassName('hidden');
}

var flash_takeTest = function() {
	pageTracker._trackEvent('Memory Test Popup','Memory Test click','/'+lang+'/signs_symptoms/memory_test/');
	window.setTimeout(function() {location.href = siteroot + lang + "/signs_symptoms/memory_test/";}, 100);
}
