//  ********************************************
//  *                                          *
//  *  variable definitions                    *
//  *                                          *
//  ********************************************

isError = false;
fieldToSelect = "";
totalBack = -1;
isPortalEdit = false;



//  ********************************************
//  *                                          *
//  *  startup definitions                     *
//  *                                          *
//  ********************************************

function startup()
{
	window.focus();
	if (isError)
	{
		if (document.all) {
			document.all.errorChanger.innerHTML=theError;
			midX = ((document.body.clientWidth/2)+document.body.scrollLeft)-125;
			midY = ((document.body.clientHeight/2)+document.body.scrollTop)-75;
		} else {
			document.getElementById("errorChanger").innerHTML=theError;
			midX = ((window.innerWidth/2)+window.pageXOffset)-125;
			midY = ((window.innerHeight/2)+window.pageYOffset)-75;
		}
		document.getElementById("errorLayer").style.top = midY;
		document.getElementById("errorLayer").style.left = midX;
		document.getElementById("errorLayer").style.visibility = "visible";
	}
	if (fieldToSelect != "")
	{
		document.thisForm[fieldToSelect].focus();
		document.thisForm[fieldToSelect].select();
	}
	if (isPortalEdit) startPortal();
	if ( navigator.userAgent.indexOf('iPhone')!=-1
	  || navigator.userAgent.indexOf('iPod')!=-1 )
    		setTimeout(scrollTo, 100, 0, 1);
}




//  ********************************************
//  *                                          *
//  *  message definitions                     *
//  *                                          *
//  ********************************************

var whichCheck = "";
function checkNumber(elementID)
{
	if ( document.getElementById(elementID).value == '' ) {
		return true;
	}
	if ( /^[0123456789\.x]+$/.test(document.getElementById(elementID).value) ) {
		return true;
	}
	var showText = "<b>" + document.getElementById(elementID).value + "</b> is invalid data.<br><br>Please correct and confirm data again.";
	if (document.all) {
		document.all.checkChanger.innerHTML=showText;
		midX = ((document.body.clientWidth/2)+document.body.scrollLeft)-125;
		midY = ((document.body.clientHeight/2)+document.body.scrollTop)-75;
	} else {
		document.getElementById("checkChanger").innerHTML=showText;
		midX = ((window.innerWidth/2)+window.pageXOffset)-125;
		midY = ((window.innerHeight/2)+window.pageYOffset)-75;
	}
	document.getElementById("checkLayer").style.top = midY;
	document.getElementById("checkLayer").style.left = midX;
	document.getElementById("checkLayer").style.visibility = "visible";

	whichCheck = elementID;
	document.getElementById(elementID).focus();
	document.getElementById(elementID).select();

	return false;
}

function killCheckError()
{
	document.getElementById("checkLayer").style.visibility = "hidden";
	document.getElementById("checkLayer").style.top = -500;

	if ( whichCheck != "" )
	{
		document.getElementById(whichCheck).focus();
		document.getElementById(whichCheck).select();
	}
}

function killError()
{
	document.getElementById("errorLayer").style.visibility = "hidden";
	document.getElementById("errorLayer").style.top = -500;
}





//  ********************************************
//  *                                          *
//  *  browser detection                       *
//  *                                          *
//  ********************************************

var detect = navigator.userAgent.toLowerCase(); 
isIE = false;
isSafari = false;

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

if (checkIt('safari')) isSafari = true;
if (checkIt('msie'))  isIE = true;






//  ********************************************
//  *                                          *
//  *  hover routines                          *
//  *                                          *
//  ********************************************

function hoverOn(caller)
{
	oldClass = caller.className;
	if (oldClass.indexOf('hover') < 0)
	{
		caller.className = oldClass+"-hover";
	}
}

function hoverOff(caller)
{
	oldClass = caller.className;
	oldClassLength = oldClass.length;
	if (oldClass.indexOf('hover') > -1)
	{
		caller.className = oldClass.substr(0,oldClassLength-6);
	}
}





//  ********************************************
//  *                                          *
//  *  wizard routines                         *
//  *                                          *
//  ********************************************

function wizardChange()
{
	if (document.getElementById("wizardCheckbox").checked)
	{
		frames['wizardChangeFrame'].location.href = (wizardChangeURL+"checked");
	} else {
		frames['wizardChangeFrame'].location.href = (wizardChangeURL);
	}
	wizardSetup();
}

function wizardSetup()
{
	if ((document.getElementById("wizardCheckbox").checked) && (wizardSteps != 0))
	{
		wizardStart();
	} else {
		wizardKill();
	}
}

function wizardStart()
{
	document.getElementById("wizard1").style.display = "block";
	document.getElementById("continue1").style.display = "block";
	for (loop = 2; loop <= wizardSteps; loop++)
	{
		document.getElementById("wizard"+loop).style.display = "none";
		document.getElementById("function"+loop).style.display = "none";
		document.getElementById("continue"+loop).style.display = "none";
	}
	document.getElementById("done").style.display = "none";
	if (fieldToSelect != "")
	{
		document.thisForm[fieldToSelect].focus();
		document.thisForm[fieldToSelect].select();
	}
}

function wizardKill()
{
	for (loop = 1; loop <= wizardSteps; loop++)
	{
		document.getElementById("wizard"+loop).style.display = "none";
		document.getElementById("continue"+loop).style.display = "none";
		document.getElementById("function"+loop).style.display = "block";
		document.getElementById("done").style.display = "block";
	}
}

function wizardNext(which,highlight)
{
	document.getElementById("wizard"+which).style.display = "none";
	document.getElementById("continue"+which).style.display = "none";
	document.getElementById("wizard"+(which+1)).style.display = "block";
	document.getElementById("function"+(which+1)).style.display = "block";
	document.getElementById("continue"+(which+1)).style.display = "block";
	if ((which+1) == wizardSteps)
	{
		document.getElementById("done").style.display = "block";
	}
	location.hash=("func"+(which+1));
	if (highlight != "")
	{
		document.thisForm[highlight].focus();
		document.thisForm[highlight].select();
	}
}

function wizardPrevious(which, highlight)
{
	document.getElementById("wizard"+which).style.display = "none";
	document.getElementById("continue"+which).style.display = "none";
	document.getElementById("function"+which).style.display = "none";
	document.getElementById("wizard"+(which-1)).style.display = "block";
	document.getElementById("continue"+(which-1)).style.display = "block";
	location.hash=("func"+(which-1));
	if (highlight != "")
	{
		document.thisForm[highlight].focus();
		document.thisForm[highlight].select();
	}
}

//  ********************************************
//  *                                          *
//  *  icon legend routines                    *
//  *                                          *
//  ********************************************

function helpChange()
{
	if (document.getElementById("helpCheckbox").checked)
	{
		frames['helpChangeFrame'].location.href = helpChangeURL+"checked";
	} else {
		frames['helpChangeFrame'].location.href = helpChangeURL;
	}
	helpSetup();
}

function helpSetup()
{
	if ((document.getElementById("helpCheckbox").checked) && (helpSteps != 0))
	{
		for (loop = 1; loop <= helpSteps; loop++)
		{
			document.getElementById("help"+loop).className = "";
			if (isIE)
			{		
				document.getElementById("help"+loop).style.display = "inline";
			}
		}
	} else {
		for (loop = 1; loop <= helpSteps; loop++)
		{
			document.getElementById("help"+loop).className = "hide";
			if (isIE)
			{		
				document.getElementById("help"+loop).style.display = "none";
			}
		}
	}
}

function popupHelpSetup()
{
	if (opener.document.getElementById("helpCheckbox").checked)
	{
		for (loop = 1; loop <= helpSteps; loop++)
		{
			if (document.getElementById("help"+loop))
			{
				document.getElementById("help"+loop).className = "";
				if (isIE)
				{		
					document.getElementById("help"+loop).style.display = "inline";
				}
			}		
		}
	} else {
		
		for (loop = 1; loop <= helpSteps; loop++)
		{
			if (document.getElementById("help"+loop))
			{
				document.getElementById("help"+loop).className = "hide";
				if (isIE)
				{		
					document.getElementById("help"+loop).style.display = "none";
				}
			}
		}
	}
}





//  ********************************************
//  *                                          *
//  *  contextual menu routines                *
//  *                                          *
//  ********************************************

urlAddition = "";
onSub = false;
whichMenu = "";
menuKillDelay = 1000;

function openCM(e,whichCM,addOn,nameGrabber)
{
	urlAddition = addOn;
	whichMenu = whichCM;
	if (isIE)
	{
		mX = event.clientX + document.body.scrollLeft;
		mY = event.clientY + document.body.scrollTop;
		sX = document.body.scrollLeft;
		sY = document.body.scrollTop;
		wX = document.body.clientWidth;
    		wY = document.body.clientHeight;
    		dX = document.getElementById("contextualMenu"+whichMenu).clientWidth;
    		dY = document.getElementById("contextualMenu"+whichMenu).clientHeight;
	} else {
		mX = e.pageX;
		mY = e.pageY;
		sX = window.pageXOffset;
		sY = window.pageYOffset;
		wX = window.innerWidth;
    		wY = window.innerHeight;
    		dX = document.getElementById("contextualMenu"+whichMenu).offsetWidth;
    		dY = document.getElementById("contextualMenu"+whichMenu).offsetHeight;
	}
	if ( (mY-sY) < (wY/2) )
	{
		document.getElementById("contextualMenu"+whichMenu).style.top = (mY-5);
	} else {
		document.getElementById("contextualMenu"+whichMenu).style.top = (mY-(dY-10));
	}
	if ( (mX-sX) < (wX/2) )
	{
		document.getElementById("contextualMenu"+whichMenu).style.left = (mX-25);
	} else {
		document.getElementById("contextualMenu"+whichMenu).style.left = (mX-(dX-20));
	}
	tempText = document.getElementById(nameGrabber).innerHTML + "...";
	document.getElementById("contextualMenu"+whichMenu+"Name").innerHTML = tempText;
	document.getElementById("contextualMenu"+whichMenu).style.visibility = "visible";
}

function saveCM()
{
	onSub = true;
}

function destroyCM()
{
	onSub = false;
	setTimeout("killCM('"+urlAddition+"');",menuKillDelay);
}

function killCM(which)
{
	if ((whichMenu != "") && (!onSub) && (which == urlAddition))
	{
		document.getElementById("contextualMenu"+whichMenu).style.visibility = "hidden";
		document.getElementById("contextualMenu"+whichMenu).style.left = -500;
		whichMenu = "";
		onSub = false;
	}
}

function clickCM(theURL,popper,addOn)
{
	if (!addOn)
	{
		urlAddition = "";
	}
	
	// alert(popper);
	
	switch (popper)
	{
		case 1:
			pWidth = 660;
			pHeight = 500;
			toolsOn = "no";
			winName = "popupWindowBW";
			break
		case 2:
			pWidth = 500;
			pHeight = 300;
			toolsOn = "no";
			winName = "popupWindowBW";
			break
		case 2.5:
			pWidth = 500;
			pHeight = 300;
			toolsOn = "no";
			winName = "popupWindowBWx";
			break
		case 3:
			pWidth = 450;
			pHeight = 200;
			toolsOn = "no";
			winName = "popupWindowBW";
			break
		case 4:
			pWidth = 700;
			pHeight = 560;
			toolsOn = "no";
			winName = "popupWindowBW2";
			break
		case 4.5:
			pWidth = 700;
			pHeight = 560;
			toolsOn = "no";
			winName = "popupWindowBW2x";
			break
		case 5:
			pWidth = 700;
			pHeight = 500;
			toolsOn = "no";
			winName = "help";
			break
		case 6:
			pWidth = 660;
			pHeight = 500;
			toolsOn = "yes";
			winName = "workoutWorksheet";
			break
	}
	if (popper > 0) 
	{
		screenW = screen.width;
		screenH = screen.height;
		pX = (screenW/2) - (pWidth/2);
		pY = (screenH/2) - (pHeight/2);
		newWin = this.open(theURL+urlAddition, winName, "toolbar="+toolsOn+",menubar="+toolsOn+",location=no,scrollbars=yes,resizable=yes,width="+pWidth+",height="+pHeight+",left="+pX+",top="+pY);
	} else {
		document.location = theURL+urlAddition;
	}
}








//  **********************************************************
//  *                                                        *
//  *                                                        *
//  *    section specific code                               *
//  *                                                        *
//  *                                                        *
//  **********************************************************

//  ********************************************
//  *                                          *
//  *  exercise targets                        *
//  *                                          *
//  ********************************************

function targetChange()
{
	setsToShow = document.getElementById("setsNumber").selectedIndex + 1;
	for (loop = 1; loop <= setsToShow; loop++)
	{
		document.getElementById("targetRow"+loop).className = "";
		if (isIE)
		{		
			document.getElementById("targetRow"+loop).style.display = "inline";
		}
	}
	for (loop = (setsToShow+1); loop <= 20; loop++)
	{
		document.getElementById("targetRow"+loop).className = "hide";
		if (isIE)
		{		
			document.getElementById("targetRow"+loop).style.display = "none";
		}
	}
}

function targetSubmit(targetURL)
{
	if (exType == "str")
	{
		for (loop = 1; loop <= setsToShow; loop++)
		{
			targetURL = targetURL + "&" + targetNameA[1][1] + loop + targetNameB[1][1];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"val1").value;			
			targetURL = targetURL + "&" + targetNameA[1][2] + loop + targetNameB[1][2];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"val2").value;			
		}
		for (loop = (setsToShow+1); loop <= 20; loop++)
		{
			targetURL = targetURL + "&" + targetNameA[1][1] + loop + targetNameB[1][1];
			targetURL = targetURL + "=";			
			targetURL = targetURL + "&" + targetNameA[1][2] + loop + targetNameB[1][2];
			targetURL = targetURL + "=";			
		}
		document.location = targetURL;
	}
	if (exType == "cardio")
	{
		for (loop = 1; loop <= 10; loop++)
		{
			if (targetLong[1][loop] != "")
			{
				if ( ! checkNumber("val"+loop) ) { return; }

				targetURL = targetURL + "&" + targetNameA[1][loop] + "1" + targetNameB[1][loop];
				targetURL = targetURL + "=" + document.getElementById("val"+loop).value;			
				targetURL = targetURL + "&" + targetNameA[1][loop] + "1" + targetNameB[1][loop];
				targetURL = targetURL + "=" + document.getElementById("val"+loop).value;			
			}
		}
		document.location = targetURL;
	}
}



//  ********************************************
//  *                                          *
//  *  exercise data                           *
//  *                                          *
//  ********************************************

function dataChange()
{
	setsToShow = document.getElementById("setsNumber").selectedIndex + 1;
	for (loop = 1; loop <= setsToShow; loop++)
	{
		document.getElementById("targetRow"+loop).className = "";
		if (isIE)
		{		
			document.getElementById("targetRow"+loop).style.display = "inline";
		}
	}
	for (loop = (setsToShow+1); loop <= 20; loop++)
	{
		document.getElementById("targetRow"+loop).className = "hide";
		if (isIE)
		{		
			document.getElementById("targetRow"+loop).style.display = "none";
		}
	}
}

function lostFocus()
{
	document.getElementById("dateChanger").className = "";
	document.getElementById("done").style.display = "none";
	document.getElementById("function2").style.display = "none";
	if (isIE)
	{		
		document.getElementById("dateChanger").style.display = "inline";
	}
}

function dateChange()
{
	dateChangeURL += "&day="+document.getElementById("day").value;
	dateChangeURL += "&month="+document.getElementById("month").value;
	dateChangeURL += "&year="+document.getElementById("year").value;
	document.location = dateChangeURL;
}



function dataSubmit(targetURL)
{
	if (exType == "str")
	{
		targetURL = targetURL + "&maxsets=" + setsToShow;
		for (loop = 1; loop <= setsToShow; loop++)
		{
			if ( ! checkNumber("set"+loop+"aval1") ) { return; }
			if ( ! checkNumber("set"+loop+"aval2") ) { return; }
			if ( ! checkNumber("set"+loop+"tval1") ) { return; }
			if ( ! checkNumber("set"+loop+"tval2") ) { return; }

			sqlCall = (dataNameA[loop][1] != "" ? dataNameA[loop][1] : "I")
			targetURL = targetURL + "&" + sqlCall + loop + dataNameB[1][1];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"aval1").value;			
			targetURL = targetURL + "&" + sqlCall + loop + dataNameC[1][1];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"tval1").value;
			sqlCall = (dataNameA[loop][2] != "" ? dataNameA[loop][1] : "I")
			targetURL = targetURL + "&" + sqlCall + loop + dataNameB[1][2];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"aval2").value;
			targetURL = targetURL + "&" + sqlCall + loop + dataNameC[1][2];
			targetURL = targetURL + "=" + document.getElementById("set"+loop+"tval2").value;			
		}
		for (loop = (setsToShow+1); loop <= 20; loop++)
		{
			sqlCall = (dataNameA[loop][1] != "" ? dataNameA[loop][1] : "I")
			targetURL = targetURL + "&" + sqlCall + loop + dataNameB[1][1];
			targetURL = targetURL + "=";
			targetURL = targetURL + "&" + sqlCall + loop + dataNameC[1][1];
			targetURL = targetURL + "=";
			sqlCall = (dataNameA[loop][2] != "" ? dataNameA[loop][1] : "I")
			targetURL = targetURL + "&" + sqlCall + loop + dataNameB[1][2];
			targetURL = targetURL + "=";
			targetURL = targetURL + "&" + sqlCall + loop + dataNameC[1][2];
			targetURL = targetURL + "=";
		}
		document.location = targetURL;
		//alert(targetURL);
	}
	if (exType == "cardio")
	{
		for (loop = 1; loop <= 10; loop++)
		{
			if (dataLong[1][loop] != "")
			{
				if ( ! checkNumber("aval"+loop) ) { return; }
				if ( ! checkNumber("tval"+loop) ) { return; }

				targetURL = targetURL + "&" + dataNameA[1][loop] + "1" + dataNameB[1][loop];
				targetURL = targetURL + "=" + document.getElementById("aval"+loop).value;
				targetURL = targetURL + "&" + dataNameA[1][loop] + "1" + dataNameC[1][loop];
				targetURL = targetURL + "=" + document.getElementById("tval"+loop).value;			
			}
		}
		document.location = targetURL;
	}
}

//  ********************************************
//  *                                          *
//  *  workouts targets                        *
//  *                                          *
//  ********************************************

function targetChangeW(which)
{
	setsToShow = document.getElementById("setsNumber"+which).selectedIndex + 1;
	ExerciseSets[which] = setsToShow;
	for (loop = 1; loop <= setsToShow; loop++)
	{
		document.getElementById(which+"targetRow"+loop).className = "";
		if (isIE)
		{		
			document.getElementById(which+"targetRow"+loop).style.display = "inline";
		}
	}
	for (loop = (setsToShow+1); loop <= 20; loop++)
	{
		document.getElementById(which+"targetRow"+loop).className = "hide";
		if (isIE)
		{		
			document.getElementById(which+"targetRow"+loop).style.display = "none";
		}
	}
}

function targetSubmitW()
{
	for (exer = 1; exer <= ExCount; exer++)
	{
		if (ExerciseType[exer] == "str")
		{
			for (set = 1; set <= ExerciseSets[exer]; set++ )
			{
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].id = "EID"+ExerciseID[exer]+"."+set+".1.T";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".1.T") ) { return; }
				}
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].id = "EID"+ExerciseID[exer]+"."+set+".2.T";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".2.T") ) { return; }
				}
			}
			for (set = (ExerciseSets[exer]+1); set <= 20; set++)
			{
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].value = "";
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].value = "";
			}
		}

		if (ExerciseType[exer] == "cardio")
		{
			for (loop = 1; loop <= 10; loop++)
			{
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"] ) {
//	alert("x"+document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"].value);
					if ( document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"].value != "" ) {
						document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"].id = "EID"+ExerciseID[exer]+".1."+loop+".T";
						if ( ! checkNumber("EID"+ExerciseID[exer]+".1."+loop+".T") ) { return; }
					}
				}
			}
		}
	}
	document.thisForm.submit();
}



//  ********************************************
//  *                                          *
//  *  workouts data                           *
//  *                                          *
//  ********************************************

function dataChangeW(which)
{
	setsToShow = document.getElementById("setsNumber"+which).selectedIndex + 1;
	ExerciseSets[which] = setsToShow;
	for (loop = 1; loop <= setsToShow; loop++)
	{
		document.getElementById(which+"targetRow"+loop).className = "";
		if (isIE)
		{		
			document.getElementById(which+"targetRow"+loop).style.display = "inline";
		}
	}
	for (loop = (setsToShow+1); loop <= 20; loop++)
	{
		document.getElementById(which+"targetRow"+loop).className = "hide";
		if (isIE)
		{		
			document.getElementById(which+"targetRow"+loop).style.display = "none";
		}
	}
}

function lostFocusW()
{
	document.getElementById("dateChanger").className = "";
	document.getElementById("done").style.display = "none";
	document.getElementById("function2").style.display = "none";
	if (isIE)
	{		
		document.getElementById("dateChanger").style.display = "inline";
	}
}

function dateChangeW()
{
	dateChangeURL += "&day="+document.getElementById("day").value;
	dateChangeURL += "&mon="+document.getElementById("month").value;
	dateChangeURL += "&year="+document.getElementById("year").value;
	document.location = dateChangeURL;
}



function dataSubmitW()
{
	for (exer = 1; exer <= ExCount; exer++)
	{
		if (ExerciseType[exer] == "str")
		{
			for (set = 1; set <= ExerciseSets[exer]; set++ )
			{
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.A"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.A"].id = "EID"+ExerciseID[exer]+"."+set+".1.A";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".1.A") ) { return; }
				}
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.A"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.A"].id = "EID"+ExerciseID[exer]+"."+set+".2.A";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".2.A") ) { return; }
				}
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].id = "EID"+ExerciseID[exer]+"."+set+".1.T";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".1.T") ) { return; }
				}
				if ( document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].value != "" ) {
					document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].id = "EID"+ExerciseID[exer]+"."+set+".2.T";
					if ( ! checkNumber("EID"+ExerciseID[exer]+"."+set+".2.T") ) { return; }
				}
			}
			for (set = (ExerciseSets[exer]+1); set <= 20; set++)
			{
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.A"].value = "";
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.A"].value = "";
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".1.T"].value = "";
				document.thisForm.elements["EID"+ExerciseID[exer]+"."+set+".2.T"].value = "";
			}
		}

		if (ExerciseType[exer] == "cardio")
		{
			for (loop = 1; loop <= 10; loop++)
			{
				if (ExerciseLabels[exer][loop] != "")
				{
					if ( document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".A"].value != "" ) {
						document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".A"].id = "EID"+ExerciseID[exer]+".1."+loop+".A";
						if ( ! checkNumber("EID"+ExerciseID[exer]+".1."+loop+".A") ) { return; }
					}
					if ( document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"].value != "" ) {
						document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".T"].id = "EID"+ExerciseID[exer]+".1."+loop+".T";
						if ( ! checkNumber("EID"+ExerciseID[exer]+".1."+loop+".T") ) { return; }
					}
					//alert(document.thisForm.elements["EID"+ExerciseID[exer]+".1."+loop+".A"].value);
					//alert(ExerciseData[exer][1][loop]);
				}
			}
		}
	}
	document.thisForm.submit();
}


//  ********************************************
//  *                                          *
//  *  edit / create workout                   *
//  *                                          *
//  ********************************************

//  variable declaration

reorderDelay = 250;
topName = "";
topType = "";
topNote = "";
bottomName = "";
bottomType = "";
bottomNote = "";
swapReady = true;
maxExercises = 40;

// debugging routine
function announce()
{
	announceVal = "";
	for (temp = 1; temp <= xNum; temp++)
	{
		announceVal += (temp+": "+exerciseIDlist[temp]+",   ");
	}
	alert(announceVal);
}


// reorder-only hover routines (for the arrows)

function orderOn(caller)
{
	thisID = caller.id;
	if (thisID.substr(0,3) == "Rup")
	{
		thisID = parseInt(thisID.substr(3));
		thisDir = "up";
	} else {
		thisID = parseInt(thisID.substr(5));
		thisDir = "down";
	}
	if (((thisID == 1) && (thisDir == "up")) || ((thisID == xNum) && (thisDir == "down")))
	{
	} else {
		oldClass = caller.className;
		if (oldClass.indexOf('hover') < 0)
		{
			caller.className = oldClass+"-hover";
		}
	}
}

function orderOff(caller)
{
	thisID = caller.id;
	if (thisID.substr(0,3) == "Rup")
	{
		thisID = parseInt(thisID.substr(3));
		thisDir = "up";
	} else {
		thisID = parseInt(thisID.substr(5));
		thisDir = "down";
	}
	if (((thisID == 1) && (thisDir == "up")) || ((thisID == xNum) && (thisDir == "down")))
	{
	} else {
		oldClass = caller.className;
		oldClassLength = oldClass.length;
		if (oldClass.indexOf('hover') > -1)
		{
			caller.className = oldClass.substr(0,oldClassLength-6);
		}
	}
}

//  reorder exercise functions

function up(which)
{
	if (which > 1)
	{
		reorderOne(which,(which-1));
	}
}

function down(which)
{
	if (which < xNum)
	{
		reorderOne((which+1),which);
	}

}

function reorderOne(alpha,beta)
{
	
	// note: added Rlink so we can also swap ids in the row, perhaps an easier way to do this?
	if (swapReady)
	{
		swapReady == false;
		topName = document.getElementById("Rname"+beta).innerHTML;
		topType = document.getElementById("Rtype"+beta).innerHTML;
		topNote = document.getElementById("Rnote"+beta).innerHTML;
		if (document.getElementById("Rlink"+beta)) topLink = document.getElementById("Rlink"+beta).innerHTML;
		bottomName = document.getElementById("Rname"+alpha).innerHTML;
		bottomType = document.getElementById("Rtype"+alpha).innerHTML;
		bottomNote = document.getElementById("Rnote"+alpha).innerHTML;
		if (document.getElementById("Rlink"+beta)) bottomLink = document.getElementById("Rlink"+alpha).innerHTML;
		document.getElementById("Rname"+beta).style.visibility = "hidden";
		document.getElementById("Rtype"+beta).style.visibility = "hidden";
		document.getElementById("Rnote"+beta).style.visibility = "hidden";
		if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+beta).style.visibility = "hidden";
		setTimeout("reorderTwo("+alpha+","+beta+");",reorderDelay);
		tempID = exerciseIDlist[alpha];
		exerciseIDlist[alpha] = exerciseIDlist[beta];
		exerciseIDlist[beta] = tempID;
	}
}

function reorderTwo(alpha,beta)
{
	document.getElementById("Rname"+beta).innerHTML = bottomName;
	document.getElementById("Rtype"+beta).innerHTML = bottomType;
	document.getElementById("Rnote"+beta).innerHTML = bottomNote;
	if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+beta).innerHTML = bottomLink;
	document.getElementById("Rname"+alpha).style.visibility = "hidden";
	document.getElementById("Rtype"+alpha).style.visibility = "hidden";
	document.getElementById("Rnote"+alpha).style.visibility = "hidden";
	if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+alpha).style.visibility = "hidden";
	document.getElementById("Rname"+alpha).innerHTML = topName;
	document.getElementById("Rtype"+alpha).innerHTML = topType;
	document.getElementById("Rnote"+alpha).innerHTML = topNote;
	if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+alpha).innerHTML = topLink;
	document.getElementById("Rname"+beta).style.visibility = "visible";
	document.getElementById("Rtype"+beta).style.visibility = "visible";
	document.getElementById("Rnote"+beta).style.visibility = "visible";
	if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+beta).style.visibility = "visible";
	setTimeout("reorderThree("+alpha+");",reorderDelay);
}

function reorderThree(alpha,beta)
{
	document.getElementById("Rname"+alpha).style.visibility = "visible";
	document.getElementById("Rtype"+alpha).style.visibility = "visible";
	document.getElementById("Rnote"+alpha).style.visibility = "visible";
	if (document.getElementById("Rlink"+beta)) document.getElementById("Rlink"+alpha).style.visibility = "visible";
	swapReady = true;
	//announce();
}

// view exercise function

function view(which)
{
	exerID = exerciseIDlist[which];
	viewURL = starterURL + "func=exercises&what=view&exercise_id="+exerID+"&window=1"
	clickCM(viewURL,1,false);
}

// view exercise snapshot function

function snapshot(theURL)
{
	pWidth = 400;
	pHeight = 300;
	screenW = screen.width;
	screenH = screen.height;
	//pX = (screenW/2) - (pWidth/2);
	pX = 0;
	pY = (screenH/2) - (pHeight/2);
	newWin = this.open(theURL, 'mediaWindow', "toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width="+pWidth+",height="+pHeight+",left="+pX+",top="+pY);
}

//  delete exercise function

function kill(which)
{
	for (loop = which; loop < xNum; loop++)
	{
		bottomName = document.getElementById("Rname"+(loop+1)).innerHTML;
		bottomType = document.getElementById("Rtype"+(loop+1)).innerHTML;
		bottomNote = document.getElementById("Rnote"+(loop+1)).innerHTML;
		document.getElementById("Rname"+loop).innerHTML = bottomName;
		document.getElementById("Rtype"+loop).innerHTML = bottomType;
		document.getElementById("Rnote"+loop).innerHTML = bottomNote;
		exerciseIDlist[loop] = exerciseIDlist[loop+1];
	}
	
	document.getElementById("exerciseRow"+xNum+"a").style.display = "none";
	document.getElementById("exerciseRow"+xNum+"b").style.display = "none";
	
	xNum--;
	
	if (xNum > 0)
	{
		document.getElementById("downImg"+xNum).src = "/gyms/"+gymID+"/templates/css/images/icon-down-null.gif";
	} else {
		document.getElementById("noneRow").className = "";
		
		if (isIE)
		{		
			document.getElementById("noneRow").style.display = "inline";
		}
	}
	//announce();
}

function addWorkout()
{
	clickCM(addWorkURL,4,false);
}
function addExercise()
{
	clickCM(addExerURL,4,false);
}

function addStepTwo(incomingID,incomingName,incomingType,incomingNote)
{
	if (xNum > maxExercises - 1) {
		var showText = "Workouts can have a maximum of 40 exercises.";
		if (document.all) {
			document.all.checkChanger.innerHTML=showText;
			midX = ((document.body.clientWidth/2)+document.body.scrollLeft)-125;
			midY = ((document.body.clientHeight/2)+document.body.scrollTop)-75;
		} else {
			document.getElementById("checkChanger").innerHTML=showText;
			midX = ((window.innerWidth/2)+window.pageXOffset)-125;
			midY = ((window.innerHeight/2)+window.pageYOffset)-75;
		}
		document.getElementById("checkLayer").style.top = midY;
		document.getElementById("checkLayer").style.left = midX;
		document.getElementById("checkLayer").style.visibility = "visible";
		return false;
	}

	for (x=0;x<=xNum;x++)
	{
		if (exerciseIDlist[x] == incomingID)
		{
			var showText = "<b>" + incomingName + "</b> not added.<br><br>The exercise already belongs to this workout.";
			if (document.all) {
				document.all.checkChanger.innerHTML=showText;
				midX = ((document.body.clientWidth/2)+document.body.scrollLeft)-125;
				midY = ((document.body.clientHeight/2)+document.body.scrollTop)-75;
			} else {
				document.getElementById("checkChanger").innerHTML=showText;
				midX = ((window.innerWidth/2)+window.pageXOffset)-125;
				midY = ((window.innerHeight/2)+window.pageYOffset)-75;
			}
			document.getElementById("checkLayer").style.top = midY;
			document.getElementById("checkLayer").style.left = midX;
			document.getElementById("checkLayer").style.visibility = "visible";
			return false;
		}
	}

	if (xNum == 0)
	{
		document.getElementById("noneRow").className = "hide";
		if (isIE)
		{		
			document.getElementById("noneRow").style.display = "none";
		}

	}

	if (xNum == xNumOriginal)
	{
		xNum++;
		xNumOriginal++;

		exerciseIDlist[xNum] = incomingID;
		document.getElementById("Rname"+xNum).innerHTML = incomingName;
		document.getElementById("Rtype"+xNum).innerHTML = incomingType;
		document.getElementById("Rnote"+xNum).innerHTML = incomingNote;

		document.getElementById("exerciseRow"+xNum+"a").className = "";
		document.getElementById("exerciseRow"+xNum+"b").className = "";

		if (isIE)
		{		
			document.getElementById("exerciseRow"+xNum+"a").style.display = "inline";
			document.getElementById("exerciseRow"+xNum+"b").style.display = "inline";
		}
		if (xNum > 1)
		{
			document.getElementById("downImg"+(xNum-1)).src = "/gyms/"+gymID+"/templates/css/images/icon-down.gif";
		}

	} else {
		xNum++;
		document.getElementById("exerciseRow"+xNum+"a").style.display = "";
		document.getElementById("exerciseRow"+xNum+"b").style.display = "";
		if (xNum > 1)
		{
			document.getElementById("downImg"+(xNum-1)).src = "/gyms/"+gymID+"/templates/css/images/icon-down.gif";
		}
		
		exerciseIDlist[xNum] = incomingID;
		document.getElementById("Rname"+xNum).innerHTML = incomingName;
		document.getElementById("Rtype"+xNum).innerHTML = incomingType;
		document.getElementById("Rnote"+xNum).innerHTML = incomingNote;
	}
	//announce();
}


function sendWorkoutEdit()
{
	document.thisForm["exercises"].value = "";
	if (xNum > 0)
	{
		for (loop = 1; loop < xNum; loop++)
		{
			document.thisForm["exercises"].value += (loop + ":" + exerciseIDlist[loop] + "|");
		}
		document.thisForm["exercises"].value += (xNum + ":" + exerciseIDlist[xNum]);
	}
	document.thisForm.submit();
}

function sendProgramEdit()
{
	document.thisForm.submit();
}

//  ********************************************
//  *                                          *
//  *  vitals charting                         *
//  *                                          *
//  ********************************************

function lockDataVitals(which)
{
	swapDataID = which;
	swapDataLabel = swapImageID;
}

function swapImage(setName)
{
	status = swapImageSet[setName].textToShow;
	document.images[swapImageSet[setName].imageToSwap].src = swapImageSet[setName].swapInImage.src;
}

function restoreImage(setName)
{
	status = defaultTextToShow;
	document.images[swapImageSet[setName].imageToSwap].src = swapImageDir + swapImageBase;
}

function vitalOn(which)
{
	swapImage(which);
	document.getElementById("feedback-layer").style.backgroundPosition = "0px "+(-(which*269))+"px";
}

function vitalOff(which)
{
	restoreImage(swapImageID);
	document.getElementById("feedback-layer").style.backgroundPosition = "0px "+(-(swapImageID*269))+"px";
}

function lockVital(which)
{
	switch(which)
	{
		case 1:
			vitalShown = "01";
			break;
		case 2:
			vitalShown = "02";
			break;
		case 3:
			vitalShown = "03";
			break;
		case 4:
			vitalShown = "04";
			break;
		case 5:
			vitalShown = "05";
			break;
		case 6:
			vitalShown = "06";
			break;
		case 7:
			vitalShown = "07";
			break;
		case 8:
			vitalShown = "08";
			break;
		case 9:
			vitalShown = "09";
			break;
		case 10:
			vitalShown = "10";
			break;
		case 11:
			vitalShown = "11";
			break;
		case 12:
			vitalShown = "12";
			break;
	}
	swapImageBase = "vitals-map-"+vitalShown+".gif";
	swapImageID = which;
	vitalOn(which);
}

defaultVitalOut = "Click a chart name to lock in place. Then, roll-over the chart for Bodymap&trade; data.";
defaultVitalOver = "You must click a chart name at left to lock it.";


function onDataVitals(theDate)
{
	if (swapImageID != 0)
	{
		document.getElementById("vitalOver").innerHTML = rollData[swapImageID][theDate];
	} else {
		document.getElementById("vitalOver").innerHTML = defaultVitalOver;
	}
}

function offDataVitals(theDate)
{
	if (swapDataID == 0)
	{
		document.getElementById("vitalOver").innerHTML = defaultVitalOut;
	} else {
		document.getElementById("vitalOver").innerHTML = rollData[swapDataLabel][swapDataID];
	}
}


//  ********************************************
//  *                                          *
//  *  scheduling                              *
//  *                                          *
//  ********************************************

function repeatSetup()
{
	isIndefinite = document.thisForm.LRD_mon.selectedIndex;
	if (isIndefinite == 0)
	{
		document.getElementById("restOfDate").className = "hide";
		if (isIE)
		{		
			document.getElementById("restOfDate").style.display = "none";
		}

	} else {
		document.getElementById("restOfDate").className = "";
		if (isIE)
		{		
			document.getElementById("restOfDate").style.display = "inline";
		}
	}
}



//  ********************************************
//  *                                          *
//  *  charts                                  *
//  *                                          *
//  ********************************************


function labelChange()
{
	which = document.theform.label.selectedIndex;
	if ((which == 0) || (which == 1))
	{
		document.getElementById("label-one").style.visibility = "visible";
	} else {
		document.getElementById("label-one").style.visibility = "hidden";
	}
	if ((which == 0) || (which == 2))
	{
		document.getElementById("label-two").style.visibility = "visible";
	} else {
		document.getElementById("label-two").style.visibility = "hidden";
	}
}

function overlayChange()
{
	which = document.theform.overlay.selectedIndex;
	theY = (which * 270) + 540;
	document.getElementById("overlays").style.backgroundPosition = "0px -"+theY+"px";
	if (which > 0)
	{
		document.getElementById("overlays").style.visibility = "visible";
	} else {
		document.getElementById("overlays").style.visibility = "hidden";
	}
}


function reallysubmitthis(theurl)
{
	which = document.theform.dataset.selectedIndex;
	realValue = document.theform.dataset[which].value;
	document.location = theurl+realValue;
}

function onData(which)
{
	document.getElementById("vitalOver").innerHTML = rollData[which];
}

function offData(which)
{
	document.getElementById("vitalOver").innerHTML = defaultVitalOut;
}

// old popup routine

function DailyPopup(givenURL)
{
	newWin = this.open(givenURL, "dailyCharts", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=200,height=265");
}




//  ********************************************
//  *                                          *
//  *  main nav popups                         *
//  *                                          *
//  ********************************************

function popupDataTrail()
{
	window.open('http://app.fitsync.com/website/popups/demoDataCycle.html','fitsyncPopupDemo','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,width=700,height=500');
}
