var IMG_PATH = "images/";
var LEFTNAV_DIV_ID = "leftNav";
var CNTRIGHT_DIV_ID = "contentRight";
var CNT_HEIGHT_THRESH = 480;

var ALPHA_CHARCODE_BASE = 97;

var ABRV_ID = "abv";

var PRELOAD_IMG_SRC = new Array("headerLogo.gif",
				"headerGradient.gif",
				"navHome.gif", 
				"navHome_on.gif", 
				"navAbout.gif", 
				"navAbout_on.gif",
				"navServices.gif",
				"navServices_on.gif",
				"navGuide.gif",
				"navGuide_on.gif",
				"navInfo.gif",
				"navInfo_on.gif",
				"navQuiz.gif",
				"navQuiz_on.gif",
				"navContactUs.gif",
				"navContactUs_on.gif",
				"welcomeImg.jpg", 
				"bgFeaturedS.gif",
				"bgDoYouKnow.gif",
				"bgTakeQuiz.gif",
				"facilityConsult.jpg", 
				"facilityRecep.jpg", 
				"facilityRm.jpg", 
				"adSleepQuiz.jpg",
				"leftnavOverview.gif",				
				"leftnavOverview_on.gif",
				"leftnavPeople.gif",
				"leftnavPeople.on.gif",
				"leftnavFacilities.gif",
				"leftnavFacilities_on.gif",
				"leftnavAZ.gif",
				"leftnavAZ_on.gif",
				"leftnavLinks.gif",
				"leftnavLinks_on.gif",
				"ppl/bvazquez.jpg",
				"ppl/dluciano.jpg",
				"ppl/dmiles.jpg",
				"ppl/jlajoie.jpg",
				"ppl/mbhatt.jpg",
				"ppl/odevinsky.jpg",
				"ppl/rkuzniecky.jpg",
				"ppl/snadkarni.jpg",
				"ppl/snajjar.jpg",
				"ppl/spacia.jpg",
				"ppl/arodriguez.jpg",
				"ppl/wbarr.jpg"
				);	

var quizNumOfYes = 0;
var quizNumOfNo = 0;

var yPercent = 0;
var nPercent = 0;

function show(divid) {
	document.getElementById(divid).style.display = "block";
}

function hide(divid) {
	document.getElementById(divid).style.display = "none";
}

function updateShowHideText(textObj, showOrHide) {
	// Match one or more occurances of "show" regardless of the case
	
	var reShow = /show+/;
	var reHide = /hide+/;
	var re;
	var htmlReplaceTxt, titleReplaceTxt;
	if (showOrHide == "show") {
		re = reShow;
		htmlReplaceTxt = "hide";
		titleReplaceTxt = "hide";
		textObj.name = "hide";
	} else {		
		re = reHide;
		htmlReplaceTxt = "show";
		titleReplaceTxt = "show";
		textObj.name = "show";		
	}

	// Use ReExp to replace HTML and Title text
	textObj.innerHTML = textObj.innerHTML.replace(re, htmlReplaceTxt);
	textObj.title = textObj.title.replace(re, titleReplaceTxt);	
	
}

// Swap image when mouse hovers over top nav menu
function navMOver(imgId, ncId) {
	document.getElementById(ncId).className = "on";
	document.getElementById(imgId).src = IMG_PATH + getCookie("language")+'/' + imgId + "_on.gif";
}

// Swap image on mouseout event
function navMOut(imgId, ncId) {
	document.getElementById(ncId).className = "off";
	document.getElementById(imgId).src = IMG_PATH + getCookie("language")+'/'+ imgId + ".gif";
}

// Preload images when index page is displayed
function preloadImages(){
	var loadedImages = new Array();
	for (i=0; i<PRELOAD_IMG_SRC.length; i++){
		loadedImages[i] = new Image();
		loadedImages[i].src= IMG_PATH + PRELOAD_IMG_SRC[i];
	}
}

// Adjust the height of the left navigation to the scroll height
// used offsetHeight for IE5 Mac compatibility
function adjustLeftnavHeight() {
	//var h = document.getElementById(CNTRIGHT_DIV_ID).scrollHeight;
	var h = document.getElementById(CNTRIGHT_DIV_ID).offsetHeight;
	//alert(h);
	if (h < CNT_HEIGHT_THRESH) {
		document.getElementById(LEFTNAV_DIV_ID).style.height = CNT_HEIGHT_THRESH + 'px';
	} else {
		document.getElementById(LEFTNAV_DIV_ID).style.height = h-6 +'px';
	}
}

// Show or hide detailed information
function showHideDisplayDetails(detailDivId, txtDivId, showOrHide) {
	if (showOrHide == "show") {
		show(detailDivId);
	} else {
		hide(detailDivId);
	}	
	updateShowHideText(document.getElementById(txtDivId), showOrHide);
	adjustLeftnavHeight();
}

// Show or hide all details of sleep topics that belong to a particular alphabet
function showHideAll(divIdPrefix, txtDivId, showOrHide, numOfTopics) {
	updateShowHideText(document.getElementById(txtDivId), showOrHide);
	
	for (i=0; i<numOfTopics; i++) {			
		showHideDisplayDetails(divIdPrefix + i, txtDivId, showOrHide);
	}
}

// Show or hide absolutely positioned elements
function showHideAbsElem(showDivId, lnkDivId, showOrHide) {
	var elem = document.getElementById(showDivId);
	if (showOrHide == "show") {
		//var lnkPos = getElementPosition(lnkDivId);
		//alert(lnkPos.top + " " + lnkPos.left);
		elem.style.position = "absolute";
		elem.style.top = "135px";
		elem.style.left = "50.5%";
		//alert(elem.style.top + " " + elem.style.left);
		elem.style.display = "block";
	} else {
		elem.style.display = "none";
	}
	updateShowHideText(document.getElementById(lnkDivId), showOrHide);
}



// Generate Term of Use Content
function generateTermDetails() {
	var PFX_HREF = "termHref";
	var PFX_TITLE = "termTitle";
	var PFX_CONTENT = "term";
	
	document.write("<table class=\"term\">");
	for (i=0; i<termSecNum; i++) {
		document.write("<tr>");
		document.write("<td class=\"enum\"><a href=\"#" + eval(PFX_HREF+i) + "\" title=\"" + eval(PFX_TITLE+i) + "\"><img src=\"images/downArrow.gif\"/></a></td>");
		document.write("<td><a href=\"#" + eval(PFX_HREF+i) + "\" title=\"" + eval(PFX_TITLE+i) + "\">" + eval(PFX_TITLE+i) + "</a></td>");
		document.write("</tr>");
	}
	document.write("</table>");
	
	for (j=0; j<termSecNum; j++) {
		document.write("<hr/>");
		document.write("<a name=\"" + eval(PFX_HREF+j) + "\" class=\"bookmark\"><h1 class=\"term\">" + eval(PFX_TITLE+j) + "</h1></a>");
		var aryTermContent = eval(PFX_CONTENT+j);
		var list = false;
		for (k=0; k<aryTermContent.length; k++) {
			if (aryTermContent[k] == "<ul>") {
				list = true;
				document.write(aryTermContent[k]);
			} else if (aryTermContent[k] == "</ul>") {
				list = false;
				document.write(aryTermContent[k]);	
			} else {
				if (list) {
					document.write("<li>" + aryTermContent[k] + "</li>");
				} else {
					document.write("<p>" + aryTermContent[k] + "</p>");
				}
			}
		}
		document.write("<div class=\"backtotop\"><a href=\"#top\" title=\"" + toPageTop + "\"><img src=\"images/upArrow.gif\" width=\"13\" height=\"10\" />" + toPageTop + "</a></div>");
	}
}
			
// Generate A to Z index table
function generateTopicIndex() {
	var letter;
	for (i=0; i<26; i++) {
		letter = String.fromCharCode(i + ALPHA_CHARCODE_BASE);
		try { 
			eval("sleep_" + letter);
			document.write("<a class=\"index\" href=\"#" + letter + "\">" + letter + "</a> &nbsp;");
		} catch (er) {
			// enters this block when <letter>Num variable is not defined - eg no topics available in that alphabet
			document.write("<span class=\"index unavail\" title=\"No topics available\">" + letter + "</span> &nbsp;");
		}
	}
	
	document.write("&nbsp;|&nbsp;&nbsp;");
			
	// generate abbreivation index
	try {
		eval("sleep_" + ABRV_ID);
		document.write("<a class=\"index normalCase\" href=\"#" + ABRV_ID + "\">Abbreviations</a>");		
	} catch (er) {
		document.write("<span class=\"index normalCase unavail\" title=\"No abbreivations available\">Abbreviations</span>");
	}
	
}

// Generate listing of topics as well details of each topic on Sleep Health A to Z page
function generateTopics() {
	var letter;
	var topics, topicId, numOfTopic;
	var isErr, detailId, showHideId, jsShowHide;
	for (i=0; i<26; i++) {
		isErr = false;
		letter = String.fromCharCode(i + ALPHA_CHARCODE_BASE);
		try {
			topics = eval("sleep_" + letter);
			numOfTopics = topics.length;
			jsShowHide = '&nbsp;&nbsp;<a href="" class="index stdCopy" onclick="showHideAll(\'' + letter + '\',this.id,this.name,\'' + numOfTopics + '\'); return false;" title="show all" name="show" id="' + letter + 'ShowHideAll">[show all]</a>';
			document.write('<p class="sectionTitle">' + letter.toUpperCase() + '<a name="' + letter + '" class="bookmark"></a>' + jsShowHide +'</p>');
			for (j=0; j<numOfTopics; j++) {
				topicId = letter + j;
				showHideId = letter + j + "_showhide";
				document.write("<div class=\"azsubject\"><a href=\"\" id=\"" + showHideId + "\" name=\"show\" onclick=\"showHideDisplayDetails('" + topicId + "','" + showHideId + "',this.name); return false;\" title=\"show details\">" + eval(topicId) + "</a></div>");
				document.write("<div class=\"azdetail hidden\" id=\"" + topicId + "\">" + topics[eval(topicId)] + "</div>");
			}
			document.write("<div class=\"backtotop2\"><a href=\"#top\" title=\"" + toPageTop + "\"><img src=\"images/upArrow.gif\" width=\"13\" height=\"10\" />" + toPageTop + "</a></div>");
		} catch (er) { 
			continue;	
		}
	}

	// generate abbreivation details
	document.write("<a name=\"" + ABRV_ID + "\" class=\"bookmark\"><p class=\"sectionTitle\">Abbreviations</p></a>");
	topics = eval("sleep_" + ABRV_ID);
	numOfTopics = topics.length;
	for (k=0; k<numOfTopics; k++) {
		topicId = "abv" + k;
		document.write("<div class=\"azsubject\">" + eval(topicId) + " - <span class=\"normalWeight\">" + topics[eval(topicId)] + "</span></div>");
	}
	document.write("<div class=\"backtotop2\"><a href=\"#top\" title=\"" + toPageTop + "\"><img src=\"images/upArrow.gif\" width=\"13\" height=\"10\" />" + toPageTop + "</a></div>");
}

function submitQuiz(formObj) {
	// Initialize to 0 before computation
	quizNumOfYes = 0;
	quizNumOfNo = 0;
	
	for (i=0; i<ntNum; i++) {
		radioObj = eval("document." + formObj.name + ".nt" + i);
		tallyQuizResult(radioObj);
	}
	for (i=0; i<dtNum; i++) {
		radioObj = eval("document." + formObj.name + ".dt" + i);
		tallyQuizResult(radioObj);
	}
	
	//alert ("yes=" + quizNumOfYes + " no=" + quizNumOfNo);
	
	/*if ( (quizNumOfYes + quizNumOfNo) < (ntNum + dtNum)) {
		alert(errorMsg);
	} else {*/
		formObj.action = formObj.action + "?yes=" + quizNumOfYes + "&no=" + quizNumOfNo;
		formObj.submit();
	//}
}

function tallyQuizResult(radioObj) {
	for(j=0; j<radioObj.length; j++){
		if (radioObj[j].checked == true){
			if (radioObj[j].value == "1") {
				quizNumOfYes++;
			} else {
				quizNumOfNo++;
			}
		}
	}
}

function parseUrlParam(qryStr) {
	var aryObj = qryStr.split("&");
	var subAryObj;
	for (i=0; i<aryObj.length; i++) {
		subAryObj = aryObj[i].split("=");
		if (subAryObj[0] == "yes") {
			quizNumOfYes = parseInt(subAryObj[1]);
		} else {
			quizNumOfNo = parseInt(subAryObj[1]);
		}
	}
}

function validateContactUs(form){
	//make sure name, phone number, email address is not empty
	
	if(!form.firstname.value || !form.lastname.value){
		alert('Please enter First and Last name');
		return false;
	}
	
	if(!form.areacode.value || !form.phonenumber1.value || !form.phonenumber2.value){
		alert('Please enter ALL 10 digits of your phone number');
		return false;
	}
	
	if(!form.email.value ){
		alert('Please enter an email address at which we can reach you');
		return false;
	}
	
	form.submit();
	//return true;
}

function autoFocusTextField(fromToFieldId, toFieldId, numOfKeyStrokes) {
	if(document.getElementById(fromToFieldId).value.length == numOfKeyStrokes) {
		var o = document.getElementById(toFieldId);
		try {
			o.focus();
			o.select();
		} catch(e) {}
	}
}

function getElementPosition(elemId) {
    var offsetTrail = document.getElementById(elemId);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    return {left:offsetLeft, top:offsetTop};
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function getexpirydate( nodays){
	var UTCstring;
	Today = new Date();
	nomilli=Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

function setCookie(name,value,duration){
	cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration)+" ; path=/ ";
	document.cookie=cookiestring;
	//alert("get cookie back:"+getCookie(name));
	if(!getCookie(name)){
		return false;
	}
	else{
		return true;
	}
}

function writeHeadlines(){
		document.getElementById('doYouKnowText').innerHTML="<ul><li>"+headline1+"</li><li>"+headline2+"</li><li>"+headline3+"</li><li>"+headline4+"</li><li>"+headline5+"</li><li>"+headline6+"</li></ul>";
}

function writeNewsArticle(article){
	document.getElementById('doYouKnowText').innerHTML=eval(article) + headlineLink;
}