//arrays til forbrndingsberegner
var kvindeArray = new Array();
var mandeArray = new Array();
var activityLevel = new Array();
kvindeArray[0] = "0.056+2.90"
kvindeArray[1] = "0.0615+2.08";
kvindeArray[2] = "0.0364+3.47";
kvindeArray[3] = "0.0386+2.88";
kvindeArray[4] = "0.0410+2.61";
mandeArray[0] = "0.074+2.75";
mandeArray[1] = "0.064+2.84";
mandeArray[2] = "0.0485+3.67";
mandeArray[3] = "0.0499+2.88";
mandeArray[4] = "0.041+2.61";
activityLevel[0] = "2";
activityLevel[1] = "1.8";
activityLevel[2] = "1.6";
activityLevel[3] = "1.4";
testarray = new Array();
testarray[0] = "hel";
var doAlert = false;
var doActiveTeaser = false;
var doAlertMes = new Array();
var doYogaCodeAlert = false;


window.onload = function() { 
	initColHeight();
	if (doFlashAlert) {
		alertbox(sFlashHeader,sFlashText);
	} 
	else if (doYogaCodeAlert) {
		alertbox(doAlertMes[0],doAlertMes[1],doYogaCodeAlert)
		doYogaCodeAlert = false;
	}
	else if (doActiveTeaser) {
	    teaserBox(doAlertMes[0],doAlertMes[1]);
	}
	else {
		if (doAlert) alertbox(doAlertMes[0],doAlertMes[1]);
	}
	addClass(document.body,"loaded");
}

function initColHeight() {
	setColHeight("resize","filler",40);
}

function setColHeight(resizeStr,fillerStr,minHeight) {
	var cols = new Array();
	var oResize = new Array();
	var oFiller = new Array();
	
	// set up page cols
	if (document.getElementById("col-left")) cols[cols.length] = document.getElementById("col-left");
	if (document.getElementById("col-middle")) cols[cols.length] = document.getElementById("col-middle");
	if (document.getElementById("col-right")) cols[cols.length] = document.getElementById("col-right");
	
	// remove campaign row if no childNodes
	if (document.getElementById("camp-row")) {
		var oRow = document.getElementById("camp-row");
		if (oRow.childNodes.length==0) {
			oRow.style.display = "none";
		}
	}

	for (var i=0; i<cols.length; i++) {
		var elms = cols[i].getElementsByTagName("div");
		
		for (var j=0;j<elms.length;j++) {
			if (elms[j].className.indexOf(resizeStr)!=-1) {
				oResize[i] = elms[j];
				oResize[i].style.height = "1px";
			}
			if (elms[j].className.indexOf(fillerStr)!=-1) {
				oFiller[i] = elms[j];
				oFiller[i].style.display = "none";
			}
		}
	}
	
	function getMaxHeight() {
		var n = 0;
		for (var i=0;i<cols.length;i++) {
			if (parseInt(cols[i].offsetHeight)>n) n = parseInt(cols[i].offsetHeight);
		}
		return n;
	}
	
	
	function toggleFillers() {
		for (var i=0;i<cols.length;i++) {
			if (oFiller[i] && oResize[i] && parseInt(cols[i].offsetHeight)<maxHeight) {
				if (oResize[i].parentNode == oFiller[i]) {
					oFiller[i].style.display = "block";
					oResize[i].style.height = minHeight - parseInt(oFiller[i].offsetHeight) + parseInt(oResize[i].offsetHeight) + "px";
				}
			}
		}
	}
	
	function setToMaxHeight() {
		for (var i=0;i<cols.length;i++) {
			if (oResize[i] && parseInt(cols[i].offsetHeight)<maxHeight) oResize[i].style.height = maxHeight - parseInt(cols[i].offsetHeight) + parseInt(oResize[i].offsetHeight) + "px";
		}
	}
	
	var maxHeight = getMaxHeight();
	toggleFillers();
	var maxHeight = getMaxHeight();
	setToMaxHeight();
}


function transferFormElements(fFrom, fTo) {

	for (var i=0;i<fFrom.elements.length;i++) {
		if (!fTo.elements[fFrom.elements[i].name]) {
			var o = document.createElement("input");
			o.setAttribute("name",fFrom.elements[i].name);
			o.setAttribute("type","hidden");
			fTo[o.name] = fTo.appendChild(o);
		}
		if (fTo) fTo[fFrom.elements[i].name].value = getElmValue(fFrom.elements[i]);
	}
	return true;
}

function getElmValue(o) {
	var val = "";
	
	if (o.type=="radio") {
		for (var i=0;i<o.form.elements.length;i++) {
			if (o.form.elements[i].name==o.name && o.form.elements[i].checked) {
				val = o.form.elements[i].value;
			}
		}
	}
	if (o.type=="checkbox") {
		val = (o.checked)? "on":"off";
	}
	if (o.type=="select") {
		val = o.options[o.selectedIndex].value;
	}
	if (o.type=="text" || o.type=="password" || o.type=="hidden" || o.type=="textarea" || o.type=="button" || o.type=="submit") {
		val = o.value;
	}
	
	return val;
}


function addClass(o,str) {
	remClass(o,str);
	o.className += " " + str;
}
function remClass(o,str) {
	o.className = o.className.replace(str,"");
	o.className = o.className.replace(/' '{2,}/gi," ");
}





function teaserBox(strHeader,strBody) {
	if (document.getElementById("teaser-box")) {
		var oPage = document.getElementById("page");
		var oTeaser = document.getElementById("teaser-box");
		var oBox = document.getElementById("teaser-content");
		var oShadow = document.getElementById("teaser-shadow");
		
		var oHeader = document.getElementById("teaser-box-header");
		var oContent = document.getElementById("teaser-box-content");
		
		var xOffset = 45;
		
		if (strHeader || strBody) 
		{
			oHeader.innerHTML = strHeader;
			oContent.innerHTML = strBody;
			
			oTeaser.style.display = "block";
			
			var scrollTop = document.body.scrollTop + document.documentElement.scrollTop;
			var ratio = (parseInt(oPage.offsetHeight)-scrollTop)/parseInt(oPage.offsetHeight);
			oTeaser.style.left = (parseInt(oPage.offsetLeft) + 200) + "px";
			//oTeaser.style.left =  + (parseInt(oPage.offsetWidth) - parseInt(oBox.offsetWidth))/2 + xOffset + "px"
			oTeaser.style.top =  scrollTop + ratio*45 + "px";
			
			
			oShadow.style.height = "1px";
			oShadow.style.height = parseInt(oBox.offsetHeight) - parseInt(oShadow.parentNode.offsetHeight) + parseInt(oShadow.offsetHeight) + "px";
		} 
		else 
		{
			oTeaser.style.display = "none";
		}
	}
}


function alertbox(strHeader,strBody,isYogaCode) {
	var oAlert = document.getElementById("alert-box");
	
	if (strHeader && strBody) {
		var oPage = document.getElementById("page");
		
		// Create the alert box if it is not found in the document	
		if( !oAlert ) {
			oAlert = document.createElement("div");
			oAlert.id = "alert-box";
			oAlert.style["display"] = "none";
			oAlert.innerHTML = "\
			<div id=\"alert-content\">\
				<div class=\"box-top\"></div>\
					<div class=\"article\">\
						<h1 id=\"alert-box-header\"></h1>\
						<div class=\"inner\">\
							<div id=\"alert-box-content\"></div>\
						</div>\
						<div class=\"float-fix\"></div>\
					</div>\
					<div class=\"box-bottom\"></div>\
				</div>\
				<div class=\"shadow\">\
					<div class=\"shadow-top\"></div>\
					<div id=\"alert-shadow\"></div>\
					<div class=\"shadow-bottom\"></div>\
				</div>\
			<div>\
			";
			
			oPage.parentNode.insertBefore( oAlert, oPage.parentNode.firstChild );
		}
		
		var oBox = document.getElementById("alert-content");
		var oShadow = document.getElementById("alert-shadow");
		
		var oHeader = document.getElementById("alert-box-header");
		var oContent = document.getElementById("alert-box-content");
		
		var xOffset = 70;
		
		oHeader.innerHTML = strHeader;
		oContent.innerHTML = strBody;
		
		/*if(isYogaCode) {
			xOffset +=85;
			oHeader.id = "alert-box-header-yogacode";
		}*/
		
		var scrollTop = document.body.scrollTop + document.documentElement.scrollTop;
		var ratio = (parseInt(oPage.offsetHeight)-scrollTop)/parseInt(oPage.offsetHeight);
		
		// show before calculating width/height
		oAlert.style.display = "block";
		
		oAlert.style.left = parseInt(oPage.offsetLeft) + (parseInt(oPage.offsetWidth) - parseInt(oBox.offsetWidth))/2 + xOffset + "px"
		oAlert.style.top =  scrollTop + ratio*140 + "px";
		
		oShadow.style.height = "1px";
		oShadow.style.height = parseInt(oBox.offsetHeight) - parseInt(oShadow.parentNode.offsetHeight) + parseInt(oShadow.offsetHeight) + "px";
	} else {
		if( oAlert )
			oAlert.style.display = "none";
	}
}


function errorMsg() {
	this.errors = new Array();
	
	this.add = function( str ) {
		this.errors.push( str );
	};
	
	this.show = function() {
		if (this.errors.length>0) {
			var errStr = this.errors.join("<br>");
			
			errStr = "<p class='bold'>"+errStr+"</p><p><a href='javascript:alertbox()' class='button'>"+sValidateButton+"<span class='arrow'>&nbsp;</span></a></p>";
			alertbox(sValidateHeader, errStr);
			
			return false;
		} else {
			return true;
		}
	}
}


function validateBMIinfo(o) {
	var height = parseInt(document.bmi.cm.value);
	var weight = parseInt(document.bmi.kg.value);
	var err = new errorMsg();
	
	if (isNaN(height)) err.add(sBmiHeightNaN);
	else if(height>=250 || height<=100) err.add(sBmiHeight);
	
	if (isNaN(weight)) err.add(sBmiWeightNaN);
	else if(weight>=200 || weight<=0) err.add(sBmiWeight);
	
	if (err.show()) {
		o.href += "?bmiHeight=" + height + "&bmiWeight=" + weight;
		return true;
	} else {
		return false;
	}
	
}


function beregnBMI(hideExplain){
	var bmi = 0;
	var height = parseInt(document.bmiform.cm.value);
	var weight = parseInt(document.bmiform.kg.value);
	var err = new errorMsg();
	
	if (isNaN(height)){
		err.add(sBmiHeightNaN);
	}else{
		if(height>=250 || height<=100) {
			err.add(sBmiHeight);
		}	
	}
	
	if (isNaN(weight)){
		err.add(sBmiWeightNaN);
	}else{
		if(weight>=200 || weight<=0) {
			err.add(sBmiWeight);
		}
	}
	
	if (err.show()){
		bmi = (weight/(height*height))*10000;
		bmi = Math.round(bmi*10) / 10;
		whichResult = getBMIExplain(bmi);
		document.getElementById("bmiquestion").style.display = "none";
		document.getElementById("bmianswer").style.display = "block";
		if(!hideExplain) {
			document.getElementById("resultText").innerHTML = bmiArray[whichResult];
		}
		document.bmianswerform.bminumber.value = bmi;
	} else {
		document.bmiform.cm.value = "";
		document.bmiform.kg.value = "";
	}
	if(!hideExplain) {
		toggleBMIExplain('block')
	}
}

function getBMIExplain(bmi) {
	whichResult = 0;
	if(bmi>30) {
		whichResult = 3;
	}
	else if(bmi>25 && bmi<=29.9) {
		whichResult = 2;
	}
	else if(bmi>18.5 && bmi<=24.9) {
		whichResult = 1;
	}
	else {
		whichResult = 0;
	}
	return whichResult;
}

bmiImported = false;
function initBMI(resultVisible) {
	
	var bmiHeight = window.location.search.match(/bmiHeight=[0-9]+/);
	var bmiWeight = window.location.search.match(/bmiWeight=[0-9]+/);
	if (!bmiImported && bmiHeight && bmiWeight) {
		bmiHeight = bmiHeight.toString().split("=")[1];
		bmiWeight = bmiWeight.toString().split("=")[1];
		
		document.bmiform.cm.value = bmiHeight;
		document.bmiform.kg.value = bmiWeight;
		
		bmiImported = true;
		resultVisible = "block";
		questionVisible = "none";
		
		beregnBMI();
		
	} else {
		
		document.bmiform.cm.value = "";
		document.bmiform.kg.value = "";
		if(resultVisible == "none") {
			//alert(resultVisible);
			questionVisible = "block";
		} else {
			questionVisible = "none";
		}
	}
		
		document.getElementById("bmiquestion").style.display = questionVisible;
		document.getElementById("bmianswer").style.display = resultVisible;
		
		toggleBMIExplain(resultVisible);
		//initColHeight();
	
}

function toggleBMIExplain(whichForm) {
	document.getElementById("bmiexplain").style.display = whichForm;
	initColHeight();
}

function showBMI(whichValue) {
	document.getElementById("bmiquestion").style.display = "none";
	document.getElementById("bmianswer").style.display = "block";
	document.bmianswerform.bminumber.value = whichValue;
	initColHeight();
}

function beregnCalo() {
	var weight = parseInt(document.burncalcquestionform.weight.value);
	var err = new errorMsg();
	if(isNaN(weight)) {
		err.add(sBmiWeightNaN);
		err.show()
	}
	else if(weight>=200 || weight<=0) {
		err.add(sBmiWeight);
		err.show()
	}
	else {
		staticValues = kvindeArray[document.burncalcquestionform.alder.selectedIndex].split("+");
		value1 = parseFloat(staticValues[0]);
		value2 = parseFloat(document.burncalcquestionform.weight.value);
		value3 = parseFloat(staticValues[1]);
		value4 = parseFloat(activityLevel[document.burncalcquestionform.activitylevel.selectedIndex]);
		calcsBurned = ((value1*value2)+value3)*value4;
		calcsBurned = (calcsBurned/4.18)*1000;
		document.getElementById("burncalcanswer").style.display = "block";
		document.getElementById("burncalcquestion").style.display = "none";
		document.burncalcanswerform.burncalcresult.value = Math.round(calcsBurned);  
	}
}

function initCalo() {
	
	document.burncalcquestionform.sex.selectedIndex = 0;
	document.burncalcquestionform.alder.selectedIndex = 0;
	document.burncalcquestionform.weight.value="";
	document.burncalcquestionform.activitylevel.selectedIndex = 0;
	document.getElementById("burncalcanswer").style.display = "none";
	document.getElementById("burncalcquestion").style.display= "block";
}

function initPoll(showAnswer) {
	if (!showAnswer)
	{
		document.getElementById("pollquestion").style.display = "block";
		document.getElementById("pollanswer").style.display = "none";
	}
	else
	{
		document.getElementById("pollanswer").style.display = "block";
		document.getElementById("pollquestion").style.display = "none";
	}
}

function doPoll() {
	var valueToSend = -1;
	var questionId = document.pollform.questionid.value;
	for(i=0;i<document.pollform.length-1;i++) {
		if(document.pollform.answer[i].checked) {
			valueToSend = document.pollform.answer[i].value;
			break;
		}
	}
	if(valueToSend == -1) {
		var err = new errorMsg();
		err.add(sQpChoose);
		err.show();
	}
	else {
		document.getElementById('poll').src='/sitecore modules/quickpolls/html/pollhandler.aspx?q='+questionId+'&a=' + valueToSend;
		document.getElementById("pollquestion").style.display = "none";
		document.getElementById("pollanswer").style.display = "block";
	}
}
var ie4 = (document.all)? true:false;
var dom = (document.getElementById)? true:false;
// functions for popUp-windows
var logWin;
function popUp(url,name,w,h,extra){
	if (dom && !ie4) { h = parseInt(h)+0; }
	str="height="+h+",width="+w+","+extra;
	if(parseInt(navigator.appVersion)>3) {
		str+=",left="+(screen.width-w)/2+",top="+parseInt((screen.height -h)/2);
		logWin=window.open(url,name,str);
		if( logWin ){
			logWin.focus();
		}

	}
}


/* Form validation for Challenge Sign-Up */

function validateChallenge(){
	f = document.getElementById("spk_cp");
	var err = new errorMsg();
	
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	
	if (err.show()){
		f.submit();
	}
	
} 

function getElmValue(o) {
	var val = "";
	
	if (o.type=="radio") {
		for (var i=0;i<o.form.elements.length;i++) {
			if (o.form.elements[i].name==o.name && o.form.elements[i].checked) {
				val = o.form.elements[i].value;
			}
		}
	}
	if (o.type=="checkbox") {
		val = (o.checked)? "on":"off";
	}
	if (o.type=="select") {
		val = o.options[o.selectedIndex].value;
	}
	if (o.type=="text" || o.type=="password" || o.type=="hidden" || o.type=="textarea" || o.type=="button" || o.type=="submit") {
		val = o.value;
	}
	
	return val;
}

/* Form validation for Win Jeans */
function validateJeans(){
	
	f = document.getElementById("spk_jeans");
	var err = new errorMsg();
	var radioChecked;
	
	for (i=0;i<f.elements["answer1"].length;i++){
		if(f.elements["answer1"][i].checked) radioChecked = true;
	}
	
	if (! radioChecked) err.add(sJeansQuestion);
	if (f.elements["motivationtext"].value == "") err.add(sJeansWhy);
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if (f.elements["phone"].value == "") err.add(sFormPhone);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	
	if (err.show()) f.submit();
}

function validateCompForm(whichForm, motivationtext) {
	f = document.getElementById(whichForm);
	
	var err = new errorMsg();
	var radioChecked;
	for (i=0;i<f.elements["answer1"].length;i++){
		if(f.elements["answer1"][i].checked) radioChecked = true;
	}
	
		if (! radioChecked) err.add(sJeansQuestion);
		if (f.elements["motivationtext"].value == "") err.add(motivationtext);
	
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if (f.elements["phone"].value == "") err.add(sFormPhone);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	
	if (err.show()) f.submit();
}

function validateBuyCodes(whichForm) {
	f = document.getElementById(whichForm);
	
	var err = new errorMsg();
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if (f.elements["phone"].value == "") err.add(sFormPhone);
	if (f.elements["address"].value == "") err.add(sFormAddress);
	if (f.elements["city"].value == "") err.add(sFormCity);
	if (f.elements["zip"].value == "") err.add(sFormZip);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	
	if (err.show()) f.submit();
}

function validateCodes(whichForm, isDanish) {
	var validateMore = true;
	f = document.getElementById(whichForm);
	var err = new errorMsg();
	//alert(f.elements["buyWithCode"][0].checked);
	if(f.elements["buyWithCode"][0].checked) {
		if(f.code1.value == "") {
			err.add(sNoCodes);
			validateMore = false;
		}
		if(!isDanish && validateMore) {
			if(f.code1.value == "") {
				err.add(sNoCodes);
				validateMore = false;
			}
		}
	}
	if(!validateMore) {
		err.show();
	}
	else {
		validateBuyCodes(whichForm);
	}
}
	
		


/* Form validation for My Page signup (Søren): */
function validateNumber(val){
	e = /(^[\d]{1,}$)/
	return (!val.match(e) || val == "" ? false : true)
}

function validateDecimalNumber(val){
	e = /(^[\d]{1,}[\,\.]{0,1}[\d]*$)/
	return (!val.match(e) || val == "" ? false : true)
}

function v_email(val){
	e = /^[\w\-\.]+\@[\w\-\.]+\.[a-zA-Z]{2,4}$/
	return (!val.match(e) || val == "" ? false : true)
}

function v_password(val){
	e = /^[\wa-zA-ZæøåÆØÅ0-9]*$/
	return (!val.match(e) || val == "" ? false : true)
}
function v_pw_short(val){
	var str = new String(val);
	var len = str.length;
	if(len < 4) return false;
	else return true;	
}
function v_pw_long(val){
	var str = new String(val);
	var len = str.length;
	if(len > 10) return false;
	else return true;	
}


function v_empty(val){
	return (val != "" ? true : false);
}
function v_int(val){
	e = /(^[\d]*$)/
	return (!val.match(e) || val == "")? false : true;
}

function v_regnum(val){
	e = /(^[\d]{4}$)/
	return (!val.match(e) || val == "")? false : true;
}


function validateSignupForm() {
	f = document.getElementById("signupForm");
		
	// BEGIN BULLDOG!
	var err = new errorMsg();
	if(!v_empty(f.elements["FirstName"].value)) err.add(sSignupFn);
	if(!v_empty(f.elements["LastName"].value)) err.add(sSignupLn);
	if(!v_email(f.elements["Email"].value)) err.add(sSignupEm);
	if(!v_empty(f.elements["telephone"].value)) err.add(sFormPhone);	
	if(!v_password(f.elements["Password"].value)) err.add(sSignupPwWrong);	
	if(!v_pw_short(f.elements["Password"].value)) err.add(sSignupPwShort);
	if(!v_pw_long(f.elements["Password"].value)) err.add(sSignupPwLong);
	
	if(!v_empty(f.elements["Repeat password"].value) || !v_empty(f.elements["Password"].value)) err.add(sSignupPwR);
	if(f.elements["Password"].value != f.elements["Repeat password"].value) err.add(sSignupPwDiff);

	if(err.show()) f.submit();
}
/* End form validation for My Page signup*/

/* form validation for my page*/
function setAverage(formelement) {
	var err = new errorMsg();
	var origVal = formelement.value;
	var copyVal = parseInt(origVal);
	formelement.value = copyVal;
	if(validateNumber(formelement.value)){
	
		var allFieldsFilled = false;
		var elementString = "";
		var average = 0;
		chosenWeek = formelement.name.substring(4,5);
		chosenElement = formelement.name.substring(6,7);
		var numWeeksWithData = 0;
		var tmpVal = 0;
		for(i = 1; i < 5; i++)
		{
			tmpVal =  parseFloat(eval("document.calendarform.week" + i + "_"+chosenElement+".value"));
			average += tmpVal;
			if(tmpVal > 0)			
			{
				numWeeksWithData++;
			}
		}
		
		if(numWeeksWithData > 0) 
		{
			average = Math.round(average/numWeeksWithData);
		}
		average = parseInt(average);
		document.getElementById("average_"+chosenElement).innerHTML = average.toString();
	}
	else {
		formelement.value = 0;
		setAverage(formelement);		
		
		err.add(sValidateNum);
		err.show();
		formelement.focus();
	}
}

function validateNewsletterSignup(){
	f = document.getElementById("signupform");
	var err = new errorMsg();
	
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	
	if (err.show()){
		f.submit();
	}
	
} 


function validateBrunchSignup(){
	f = document.getElementById("signupform");

	var err = new errorMsg();
	
	//check the radio buttons from the question form (frm_brunch) 
	//and set the hidden fields qa1, qa2, qa3 according to the selected radio buttons:
	if(document.getElementById("q1a").checked)
		f.elements["a1"].value = "a";//document.getElementById("q1a").value;
	else if(document.getElementById("q1b").checked)
		f.elements["a1"].value = "b";//document.getElementById("q1b").value;
	if(document.getElementById("q2a").checked)
		f.elements["a2"].value = "a";//document.getElementById("q2a").value;
	else if(document.getElementById("q2b").checked)
		f.elements["a2"].value = "b";//document.getElementById("q2b").value;

	if(document.getElementById("q3a").checked)
		f.elements["a3"].value = "a";//document.getElementById("q3a").value;
	else if(document.getElementById("q3b").checked)
		f.elements["a3"].value = "b";//document.getElementById("q3b").value;
		
	if (f.elements["a1"].value == "" || f.elements["a2"].value =="" || f.elements["a3"].value == "") 
		err.add(sBrunchAllQuestions);
	if (f.elements["firstname"].value == "") err.add(sFormFirstname);
	if (f.elements["lastname"].value == "") err.add(sFormLastname);
	if(!v_email(f.elements["email"].value)) err.add(sFormEmail);
	if (err.show()) {
		return true;
	} else {
		return false;
	}
}

function displayServerError(msg){
    var errors = new errorMsg();
    errors.add(msg);
    errors.show();
}


function validateRedThreadSignup(){
   	f = document.getElementById("__aspnetForm");
   	var errors = new errorMsg();
	
	if (f.elements["name"].value == "") 
	    errors.add(sFormName);
	if (f.elements["email1"].value != "" || f.elements["email2"].value != ""){
	    if(v_email(f.elements["email1"].value)){
	        if(f.elements["email1"].value != f.elements["email2"].value)
	            errors.add(sNonMatchingEmail);
	    }
	    else{
	        errors.add(sFormEmail);
	        }
	}   
	else{
	    errors.add(sFormEmail);
	}
	
	if (errors.show()) {
		return true;
	} else {
		return false;
	}
}

function validateRedThreadCalendar(){
   	
   	f = document.getElementById("__aspnetForm");
   	
   	var errors = new errorMsg();
	if(f.elements["nameField"].value == "" | f.elements["ageField"].value == "" | !isRadioChecked(f.radio1) | !isRadioChecked(f.radio2) | !isRadioChecked(f.radio3))
		errors.add(sFormMissingField);
	
	if (errors.show()) {
		return true;
	} else {
		return false;
	}
}

function isRadioChecked(radio){
    for (i=0;i<radio.length;i++) {
        if (radio[i].checked) {
		    return true;
	    }
    }
    return false;
}

function validateRunningTeamSignup(){
	f = document.getElementById("signupform");
	var errRunningTeam = new errorMsg();
	if (f.elements["firstname"].value == "") 
	    errRunningTeam.add(sFormFirstname);
	if (f.elements["lastname"].value == "") 
	    errRunningTeam.add(sFormLastname);
	if (!v_email(f.elements["email"].value)) 
	    errRunningTeam.add(sFormEmail);
	
	if (f.elements["friend_01_firstname"].value != "" || f.elements["friend_01_lastname"].value != "" || f.elements["friend_01_email"].value != ""){
	    if(f.elements["friend_01_firstname"].value == "" || f.elements["friend_01_lastname"].value == "")
	        errRunningTeam.add(sRequiredFieldsNotFilled);        
	    if (!v_email(f.elements["friend_01_email"].value)) 
	        errRunningTeam.add(sFormEmail);
	    }
	
   
    if (f.elements["friend_02_firstname"].value != "" || f.elements["friend_02_lastname"].value != "" || f.elements["friend_02_email"].value != ""){
	    if(f.elements["friend_02_firstname"].value == "" || f.elements["friend_02_lastname"].value == "")
	        errRunningTeam.add(sRequiredFieldsNotFilled);        
	    if (!v_email(f.elements["friend_02_email"].value)) 
	        errRunningTeam.add(sFormEmail);
	    }
 	
	if (f.elements["friend_03_firstname"].value != "" || f.elements["friend_03_lastname"].value != "" || f.elements["friend_03_email"].value != ""){
	    if(f.elements["friend_03_firstname"].value == "" || f.elements["friend_03_lastname"].value == "")
	        errRunningTeam.add(sRequiredFieldsNotFilled);        
	    if (!v_email(f.elements["friend_03_email"].value)) 
	        errRunningTeam.add(sFormEmail);
	    }
	
	if (errRunningTeam.show()) {
		return true;
	} else {
		return false;
	}
} 

function validateRunningTeamAcceptInvite(){
	f = document.getElementById("signupform");
	var errRunningTeamAcceptInvite = new errorMsg();
	
	if (f.elements["firstname"].value == "" || f.elements["lastname"].value == "" || !v_email(f.elements["email"].value))
	    errRunningTeamAcceptInvite.add(sRequiredFieldsNotFilled);
	if(!f.elements["signupCheck"].checked)
		errRunningTeamAcceptInvite.add(sCompetitionNotConfirmed);
		
	if (errRunningTeamAcceptInvite.show()) {
		return true;
	} else {
		return false;
	}
} 

function setAverageDecimal(formelement) {
	var err = new errorMsg();
	var origVal = formelement.value;
	if(validateDecimalNumber(formelement.value)){
		var allFieldsFilled = false;
		var elementString = "";
		var average = 0.0;
		//chosenWeek = formelement.name.substring(4,5);
		chosenElement = formelement.name.substring(6,7);
		var numWeeksWithData = 0;
		var tmpVal = 0;
		for(i = 1; i < 5; i++)
		{
			tmpVal =  parseFloat(eval("document.calendarform.week" + i + "_"+chosenElement+".value"));
			average += tmpVal;
			if(tmpVal > 0)			
			{
				numWeeksWithData++;
			}
		}
		
		if(numWeeksWithData > 0) 
		{
			average = Math.round(average/numWeeksWithData);
		}
		average = parseFloat(average);
		
		document.getElementById("average_"+chosenElement).innerHTML = average.toString();
	}
	else {
		formelement.value = 0;
		setAverageDecimal(formelement);
		
		err.add(sValidateNum);
		err.show();	
		formelement.focus();
	}
}


/** end formvalidation for my page **/
/* calculate, burn with sports */
function setBurnSportIntensity(aId){
	oSelectTo = document.getElementById("burnsport_intensity");

	if (aId) {
		// reset dropdown
		oSelectTo.options.length=0;
				
		if ( isNaN(aActivities[aId.value])) {
			oSelectTo.style.backgroundColor = "";
			oSelectTo.removeAttribute("disabled");
			if ( aActivities[aId.value] ){
				aFirstOptions = aActivities[aId.value];
				for (i=0; i<aFirstOptions.length; i++){
					aSecondOptions = aFirstOptions[i];
					sNewOption = document.createElement("OPTION");
					oNewText = document.createTextNode(aSecondOptions[1]);
					sNewOption.setAttribute("value", aSecondOptions[0]);
					sNewOption.appendChild(oNewText);
					oSelectTo.appendChild(sNewOption);
				}
			}
		} else {
			oSelectTo.setAttribute("disabled", "true");
			oSelectTo.style.backgroundColor = "silver";
			sNewOption = document.createElement("OPTION");
			sNewOption.setAttribute("value", aActivities[aId.value]);
			oSelectTo.appendChild(sNewOption);
		}
	}
}

function calculateShape(b) {
	var oCalc = document.getElementById("shape-calc");
	var oPear = document.getElementById("shape-pear");
	var oApple = document.getElementById("shape-apple");
	
	var frm = document.frm_shape;
	var sex = frm.sex.options[frm.sex.selectedIndex].value;
	var ratio = frm.waist.value / frm.hip.value;
	var shape = -1;
	
	if (frm.waist.value!="" && frm.hip.value!="") {
		if (!b) {
			oPear.style.display = "none";
			oApple.style.display = "none";
			oCalc.style.display = "block";
		} else {
			
			if (sex==0) shape = (ratio>0.8)? 0:1;
			else shape = (ratio>1)? 0:1;
			
			oCalc.style.display = "none";
			if (shape==0) oApple.style.display = "block";
			if (shape==1) oPear.style.display = "block";
		}
	}
}

function calculateBurnSport(){
	iIntensity = parseFloat(document.getElementById("burnsport_intensity").value);
	iTime = parseFloat(document.getElementById("burnsport_time").value);
	iWeight = parseFloat(document.getElementById("burnsport_weight").value);
	oKcal = document.getElementById("burnsport_kcal");
	oBurnSportResult1 = document.getElementById("burnsportResult1");
	oBurnSportResult2 = document.getElementById("burnsportResult2");
	var err = new errorMsg();
			
	// form: (iIntensity * iWeight) * (iTime/60) = kcal
	if (isNaN(iIntensity)) err.add(sBurnIntensity);
	if (isNaN(iTime)) err.add(sBurnMinute);
	if (isNaN(iWeight)) err.add(sBurnWeight);
			
	if (err.show()){
		iKcal = (iIntensity * iWeight) * (iTime/60)
		oKcal.value = Math.round(iKcal);
		oBurnSportResult1.style.visibility = "visible";
		oBurnSportResult2.style.visibility = "visible";
	}
}
function goParent(whichURL) {
	location.href = whichURL;
	//parent.opener.location.href = "../../../"+whichURL;
	//parent.opener.focus();
}


function goYogaDVD() {
	location.href = "/spk/Yoga/buyDVD.aspx#yogaformstart";
}

function doPopup(o,w,h) {
	var popupWin = window.open(o.href,"popWin","width="+w+",height="+h+",status=0,resizable=0");
	return false;
}

function gotoURL(whichURL) {
	parent.opener.location.href=whichURL;
	top.close();
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


function validateHabitPoll() {
	var err = new errorMsg();
	for(k = 1; k <= 16; k++)
	{
		if (!document.getElementById('chk_' + k + '_a').checked
			&& !document.getElementById('chk_' + k + '_b').checked)
		{
			//document.getElementById('chk_' + k + '_a').checked = true;
			err.add(sHabitsAllQuestions);
			break;
		}
	}
	return err.show();
}

function validateMorningHabitPoll() {
	var err = new errorMsg();
	for(k = 1; k <= 16; k++)
	{
		if (!document.getElementById('chk_' + k + '_a').checked
			&& !document.getElementById('chk_' + k + '_b').checked
				&& !document.getElementById('chk_' + k + '_c').checked)
		{
			//document.getElementById('chk_' + k + '_a').checked = true;
			err.add(sHabitsAllQuestions);
			break;
		}
	}
	return err.show();
}


function alreadySignedUp() {
	var errStr = "You are already signed up";
	errStr = "<p class='bold'>"+sSignupDupUser+"</p><p><a href='javascript:alertbox()' class='button'>"+sValidateButton+"<span class='arrow'>&nbsp;</span></a></p>";
	doAlert = true;
	doAlertMes = new Array(sValidateHeader,errStr);
}

var strAnswerForm = "";
function validateHabitSignup() {
	var err = new errorMsg();
	var frm = document.getElementById('signupform');
	frm.answers.value = strAnswerForm;
	
	if(!v_empty(frm.firstname.value)) err.add(sSignupFn);
	if(!v_empty(frm.lastname.value)) err.add(sSignupLn);
	if(!v_email(frm.email.value)) err.add(sSignupEm);
	/*
	if (frm.firstname.value == '' || frm.lastname.value == '' || frm.email.value == ''
		|| (!frm.program[0].checked && !frm.program[1].checked))
	{
		err.add('Alle felter skal udfyldes og et program vælges.');
	}
	*/
	return err.show();
}
function validateHabitUnsubscribe() {
	var err = new errorMsg();
	var frm = document.getElementById('unsubscribeform');
	
	var iVal = -1;
	for (var i=0;i<frm.elements.length;i++) {
		if (frm.elements[i].name=="reason" && frm.elements[i].checked) {
			iVal = frm.elements[i].value;
			break;
		}
	}
	if (iVal==-1) err.add(sQpChoose);
	return err.show();
}

/* weekly challenges */
	function showWeekly(node) {
		var sel = -1;
		var nodes = document.getElementById("weekly-nav").getElementsByTagName("a");
		
		if (nodes.length>0) {
			for (var i=0;i<nodes.length;i++) {
				if (nodes[i]==node) sel = i;
				nodes[i].parentNode.className = "";
			}
			
			if (sel>0) nodes[sel-1].parentNode.className = "sel-pre";
			nodes[sel].parentNode.className = "sel";
			if (sel<nodes.length-1) nodes[sel+1].parentNode.className = "sel-post";
			node.parentNode.parentNode.className = (sel==nodes.length-1)? "sel-last" : "";
			
			nodes = document.getElementById("weekly-content").getElementsByTagName("li");
			for (var i=0;i<nodes.length;i++) nodes[i].className = (sel==i)? "sel":"";
			
		}
		node.blur();
		initColHeight();
		return false;
	}
	
	



/* TAB CONTROLLER */
function changeCssClass(o, to, from) {
	if( isObject(o) ) {
		var className = o.className;
		
		if( from !== undefined && from != "" )
			className = className.replace( new RegExp("(^|[\s| ]+)"+ from +"(\b|$)", "g"), "" );
							
		if( to !== undefined && to != "" ) {
			className = className.replace( new RegExp("(^|[\s| ]+)"+ to +"(\b|$)", "g"), "" );
			className += " "+ to;
		}
							
		o.className = className;
	}				
}

function getNode( id ) {
	if( typeof(id) == "string" )
		id = document.getElementById(id);
	
	return id;
}

function isObject( obj ) {
	return (obj !== undefined && typeof(obj) == "object" && obj !== null);
}

function isArray( obj ) {
	return (isObject(obj) && String(obj.constructor).indexOf("array") > -1 );
}

function getQueryString( varName ) {
	var query = window.location.search;
	var Exp = new RegExp("([&]|[?])"+ varName +"[=](([^&]|$)+)?", "i");
	var qs = String(query).match( Exp );
	
	if( qs !== null )
		return qs[2];
	
	return "Query: "+ varName +" - not found";
}

var oTabController = {
	tabList : new Array(),
	errors : new Array(),
	
	register : function( tab, area ) {
		try {
			tab = getNode(tab);
			area = getNode(area);
			
			if( !tab )
				throw "Tab not defined!";
			
			if( !area )
				throw "Area not defined";
				
			
			this.tabList.push( [ tab, area ] );
			
		} catch( ex ) {
			this.registerError(ex, "register");
		}
	},
		
	toggle : function( elm ) {
		try {
			elm = getNode(elm);
									
			if( !isObject(elm) )
				throw "Element not defined!";
			
			this.hideAll();
			this.show( this.getTabIndex(elm) );
			initColHeight();
			
		} catch( ex ) {
			this.registerError(ex, "toggle");
		}
	},
					
	hideAll : function( showList ) {
		for( var i=0, arr=this.tabList; i < arr.length; i++ ) {
			var tab = arr[i];
			var exclude = false;
			
			if( isArray(showList) ) {
				for( var j=0; j < showList.length && !exclude; j++ )
					exclude = this.isTab( showList[j], i );
				
			} else if( isObject(showList) ) {
				exclude = this.isTab( showList, i );
			}
			
			if( !exclude )					
				this.hide( i );
		} 
	},
	
	showAll : function( hideList ) {
		for( var i=0, arr=this.tabList; i < arr.length; i++ ) {
			var tab = arr[i];
			this.show( i );
		}
	},
	
	hide : function( tabIndex ) {
		var tab = this.tabList[ this.correctTabIndex(tabIndex) ];
		changeCssClass(tab[0], "", "tab-selected");
		changeCssClass(tab[1], "off", "");
		
		tab[2] = 0;
	},
	
	show : function( tabIndex ) {
		var tab = this.tabList[ this.correctTabIndex(tabIndex) ];					
		changeCssClass(tab[0], "tab-selected");
		changeCssClass(tab[1], "", "off");
		
		tab[2] = 1;
	},
	
	isInTabList : function( elm ) {
		var ok = false;
		
		for( var i=0, arr=this.tabList; i < arr.length && !ok; i++ )
			ok = this.isTab( elm, i );
		
		return ok;
	},
	
	isTab : function( elm, tabIndex ) {
		var tab = this.tabList[ tabIndex ];
		return (tab[0] == elm || tab[1] == elm);
	},
	
	correctTabIndex : function( tabIndex ) {
		if( isNaN(tabIndex) || tabIndex < 0 )
			tabIndex = 0;
		
		if( tabIndex >= this.tabList.length )
			tabIndex = (this.tabList.length -1);
		
		return tabIndex;
	},
	
	getTabIndex : function( elm ) {
		if( isObject(elm) ) {
			var tabIndex = -1;
			
			for( var i=0, arr=this.tabList; i < arr.length && tabIndex == -1; i++ ) {
				if( this.isTab( elm, i ) )
					tabIndex = i;
			}
			
			return tabIndex;
		}
			
	},
	
	registerError : function( ex, funcName ) {		
		this.errors.push( funcName +" :: "+ ex.toString() );
	},
	
	reportErrors : function() {
		if( this.errors.length > 0 )
			alert( "ERRORS:\r\n\t"+ this.errors.join("\r\n\t") );
	},
				
	getShownTabIndex : function() {
		for( var i=0, arr=this.tabList; i < arr.length; i++ ) {
			if( arr[i][2] == 1 )
				return i;
		}
		
		return -1;
	},
	
	getTab : function( elmOrIndex ) {
		var index = ( isObject(elmOrIndex) )? this.getTabIndex(elmOrIndex) : elmOrIndex;
				
		return ( isNaN(index) || index < 0 || index > (this.tabList.length -1) )? null :  this.tabList[ index ];
	}
}