window.onload = handleLinks;
//document.onkeydown = doAlert;
//function doAlert(evt)
//{
	//var thisKey = (evt)?evt.which : window.event.keyCode;
	//alert( thisKey );
//}
initPage(handleLinks);
initPage(fixHeightC);

// a plus sign doesn't make it through the Javascript escape function ...

function escapePlus(expr) {
	var escapedExpr = expr; 
	escapedExpr = escapedExpr.replace(/\+/g, '&#43;'); 
	return escape(escapedExpr);
}

function fixHeightC() {
	handleLinks();
	var mySidebar = document.getElementById("sidebar");
	var myMainContent = document.getElementById("content");
	if ( mySidebar  && myMainContent )
	{
		if ( mySidebar.offsetHeight )
		{
			var sideHeight = mySidebar.offsetHeight;
			var mainHeight = myMainContent.offsetHeight;
			var newHeight = Math.max(sideHeight, mainHeight);
			newHeight = Math.max(newHeight, 440);   
			newHeight2 = newHeight + 5;
			newHeightString = newHeight + 'px';
			newHeightString2 = newHeight2 + 'px';
			changeStyle('content', 'minHeight', newHeightString2);
			changeStyle('sidebar', 'minHeight', newHeightString);
			if ( navigator.userAgent.indexOf('MSIE 6') > 0 )
			{
				changeStyle('content', 'height', newHeightString);
				changeStyle('sidebar', 'height', newHeightString);	
			}
			if ( document.sidebarInner )
			changeStyle('sidebarInner', 'minHeight', newHeightString);
		}
	}
}

function changeStyle( objectID, cssProperty, newValue )
{
	var myObj = document.getElementById(objectID);
	myObj.style[cssProperty] = newValue;
}

function getStyle ( objectID, cssProperty )
{
	var myObj = document.getElementById(objectID);
	var myStyle = myObj.style[cssProperty];
	return myStyle;
}

function showDiv( divName) {
	var myDiv = document.getElementById(divName);
	myDiv.setAttribute("style", "display:block");
	myDiv.style.cssText="display:block";	
}

function showDivInline( divName) {
	var myDiv = document.getElementById(divName);
	myDiv.setAttribute("style", "display:block");
	myDiv.style.cssText="display:inline";	
}

function hideDiv( divName) {
	var myDiv = document.getElementById(divName);
	myDiv.setAttribute("style", "display:none");
	myDiv.style.cssText="display:none";	
}

function toggleDiv ( objectID )
{
	var myObj = document.getElementById(objectID);
	var myStyle = getStyle (objectID, 'display');
	if ( myStyle == 'none' )
		showDiv ( objectID );
	else
		hideDiv ( objectID );
	fixHeight();
}

function initPage(myFunction) {
	var oldHandler = window.onload;
	
	if ( typeof oldHandler == "function" )
	{
		window.onload = function()
		{
			if ( oldHandler )
			{
				oldHandler();
			}
			myFunction();
		}
	}
	else
	{
		window.onload = myFunction;
	}
}

function handleLinks() 
{
	for (var i=0; i<document.links.length; i++)
	{
		var ranNum = Math.floor((Math.random() * document.links.length));
		var tarName = "Win" + i + ranNum;
		if (document.links[i].className == "doTarget" )
			document.links[i].target = tarName;
		if (document.links[i].className == "doWindow" )
			document.links[i].onclick = doWindow;
	}
	
	function doWindow()
	{
		var ranNum = Math.floor((Math.random() * document.links.length));
		var winName = "Win" + ranNum;
		var myNewWindow = window.open(this.href, winName,'width=900,height=600');
		myNewWindow.focus();
		return false;
	
	}
}

/* Athletics Backend */
/* Probably should ditch this function */


function openNewWindow(newPage, myW, myH, mySB)
{
	var myScroll = (mySB == 1 ? "yes" : "no" );
	var ranNum = Math.floor((Math.random() * document.links.length));
	var winName = "Win" + ranNum;
	var myWin = window.open(newPage,winName,'width=' + myW + ',height=' + myH + ',location=no,toolbar=no,resizable=yes,scrollbars=' + myScroll + ',left=100,top=100');
	myWin.focus(); 
	return false;
}

function doNotSubmit()
{
	// usage in script: onkeypress="return doNotSubmit();"
	return !(window.event && window.event.keyCode == 13);
}
function subForm(x) {
	
	document.forms[x].target="newWin";
	document.forms[x].submit();
			
}

function subFormSame(x) {

	//alert("Forms I see are: " + document.forms[0].name + " " + document.forms[1].name  + " " + document.forms[2].name + " " + document.forms[3].name);
	document.forms[x].submit();
			
}

function goBack(myHref)
{
	window.location=myHref;
}

// I think I can get rid of this one 
function subFormById(whichForm) {
	
	//var myForm = whichForm;
	//document.myForm.submit();
	document.forms[whichForm].target="newWin";
	document.forms[whichForm].submit();
			
}

function isChecked( myForm, myElt )
{
	//alert( myForm + " " +  myElt );
	if ( document.forms[myForm].elements[myElt].checked == true )
		return true;
	else
		return false;
}
		
function checkElement( myForm, myElt )
{
	document.forms[myForm].elements[myElt].checked = true;
}
		
function unCheckElement( myForm, myElt )
{
	document.forms[myForm].elements[myElt].checked = false;
}

function focusElement( formName, elementName )
{
	var myElement=document.forms[formName].elements[elementName];
	myElement.focus();
	myElement.select();
}
		
function checkPassword(myElement) 
{
	 var myString = myElement.value;
	 var myExp = /[\d]+/;
	 if ( !myString.match(myExp) )
	{
		alert("Your password does not appear to contain any numbers.");
		setTimeout("focusElement('" + myElement.form.name + "', '" + myElement.name + "')", 0);	
		return false;
	}
	else
	{
		return true;
	}

}
		
function getValue(myElement) 
{
	 var myString = myElement.value;
		return myString;
}


function matchFields(myField1, myField2) 
{
	 var myString1 = myField1.value;
	 var myString2 = myField2.value
	 if ( !( myString1 == myString2) )
	{
		alert("Your entries do not match");
		setTimeout("focusElement('" + myField1.form.name + "', '" + myField1.name + "')", 0);	
		return false;
	}
	else
	{
		return true;
	}

}

/* 11.19.2006 not working as I wish */
function matchFields2(myField1, myField2, myForm) 
{
	 var myString1 = myField1.value;
	 var myString2 = myField2.value
	 if ( !( myString1 == myString2) )
	{
		alert("Your entries do not match");
		setTimeout("focusElement('" + myField1.form.name + "', '" + myField1.name + "')", 0);	
		return false;
	}
	else
	{
		alert (myForm.name);
		document.myForm.name.submit.disabled=false;
		return true;
	}

}
		
function isValidRadio(myRadio)
{
	var isValid = false;
	for ( var i = 0; i < myRadio.length; i++ )
	{
		if ( myRadio[i].checked )
		{
			return true;
		}
	}
	alert( "Please choose a Gender.");
	return false;

} //end function isValidRadio

function isNotEmpty(myElement) 
{
	var myString = myElement.value;
	var myName = myElement.name;
	var myLabel = "blank field";
	if ( myName.indexOf("first") != -1 )
		myLabel = "First Name";
	if ( myName.indexOf("last") != -1 )
		myLabel = "Last Name";	
	if ( myName.indexOf("add") != -1 )
		myLabel = "first line of Address";
	if ( myName.indexOf("city") != -1 )
		myLabel = "City";	
	if ( myName.indexOf("zip") != -1 )
		myLabel = "Zip Code";
	if ( myName.indexOf("phone") != -1 )
		myLabel = "Home Phone";
	if ( myName.indexOf("oldPassword") != -1 )
		myLabel = "Old Password";
	if ( myName.indexOf("medDetails") != -1 )
		myLabel = "Medication Details";
	if ( myName.indexOf("allergyDetails") != -1 )
		myLabel = "Allergy Details";
	if ( myName.indexOf("conditionDetails") != -1 )
		myLabel = "Medical Condition Details";
		
	var myRegExp = /\w+/;
	
	if ( !myString.match(myRegExp) )
	{
		alert("Please fill in " + myLabel + ".");
		setTimeout("focusElement('" + myElement.form.name + "', '" + myElement.name + "')", 0);
		myElement.style.backgroundColor="#FFFF99";
		return false;
	}
	else
	{
		return true;
	}

} //end function isNotEmpty()
			
function isValidZip(myElement) 
{
	var myString = myElement.value;
	var myRegExp = /^(\d{5})(\-?)(\d{4})?$/;
	
	if ( !myString.match(myRegExp) )
	{
		alert("Please enter a valid 5-digit or zip+4 code.");
		setTimeout("focusElement('" + myElement.form.name + "', '" + myElement.name + "')", 0);
		return false;
	}
	else
	{
		return true;
	}

} //end function isNotZip()
			
function validPhoneNumber(myElement)
{
	var myRegExp = /^\(?(\d{3})\)?[\.\- ]?(\d{3})[\.\- ]?(\d{4})$/;
	validNumber = myRegExp.exec(myElement.value);
	if (validNumber)
	{
		myElement.value="(" + validNumber[1] + ") " + validNumber[2] + "-" + validNumber[3];
		return true;
	}
	else 
	{
		alert("Please enter as (xxx)xxx-xxxx or xxxxxxxxxx");
		if ( myElement.form )
			setTimeout("focusElement('" + myElement.form.name + "', '" + myElement.name + "')", 0);
		else
			myElement.focus();
		return false;
	}

} //end function validPhoneNumber
	

function validEMail(myElement)
{
	var myRegExp = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	var myString = myElement.value;
	if ( !myString.match(myRegExp) )
	{
		alert("The e-mail address does not appear to be valid.");
		setTimeout("focusElement('" + myElement.form.name + "', '" + myElement.name + "')", 0);
		return false;
	}
	else
	{
		return true;
	}

} //end function validEMail
		
// only check the required fields
function validateInqForm(myForm)
{
	if (isNotEmpty(myForm.firstName)) 
	{
		if (isNotEmpty(myForm.lastName))
		{
			if (isNotEmpty(myForm.address1))
			{
				if (isNotEmpty(myForm.city))
				{
					if (isValidZip(myForm.zip))
					{
						return true;
					}
				}
			}
		}
	}
					
	return false;
} // end function validateForm
	
function checkCaptions(myForm, myNum)
{
	var thisName = "";
	var numCaptions = 0;
	var numElements = 2*myNum;
	for ( var i = 0; i < numElements; i++ )
	{
		//alert (myForm.elements[i].name);
		thisName = myForm.elements[i].name;
		if ( thisName.indexOf("caption") != -1 )
		{
			if (	isNotEmpty(myForm.elements[i]) )
				numCaptions++;
			//alert("The current value of numCaptions is " + numCaptions);
		}
	}
	if ( numCaptions != myNum )
	{
		alert( "Please be sure each photo has a caption." );
		return false;
	}
	else
	{
		//alert(numCaptions);	
		return true;
	}
}

function validateForm(myForm)
{
	if (isNotEmpty(myForm.firstName)) 
	{
		if (isNotEmpty(myForm.lastName))
		{
			if ( isValidRadio(myForm.gender))
			{
				if (isNotEmpty(myForm.address1))
				{
					if (isNotEmpty(myForm.city))
					{
					 	if ( isNotEmpty(myForm.zip) )
					 	{
							if (isNotEmpty(myForm.guardian))
							{
								if (isNotEmpty(myForm.prefix))
								{
									if (isNotEmpty(myForm.parentFName))
									{
										if (isNotEmpty(myForm.parentLName))
										{
											if (isNotEmpty(myForm.parentPhone))
											{
												if (isNotEmpty(myForm.parentEmail))
												{
													return true;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
					
	return false;
} // end function validateForm
	
function validateAccountForm(myForm)
{
	if (isNotEmpty(myForm.username)) 
	{
		if (checkPassword(myForm.password))
		{
			if (matchFields(myForm.password, myForm.passwordA))
			{
					
				if (isNotEmpty(myForm.email))
				{
					if (matchFields(myForm.email, myForm.emailA))
					{
							return true;
					}
				}
			}
		}
	}
					
	return false;
} // end function validateAccountForm
			
			
function validParent(myForm)
{
	if (isNotEmpty(myForm.firstName)) 
	{
		if (isNotEmpty(myForm.lastName))
		{
			if (isNotEmpty(myForm.relationship))
			{
				if (isNotEmpty(myForm.addLine1))
				{
					if (isNotEmpty( myForm.city ))
					{
						if (isNotEmpty( myForm.zip ) )
						{	
							if (isNotEmpty(myForm.phoneH))
							{
									return true;
							}
						}
					}
				}
			}	
		}
	}
					
	return false;
} // end function validParent

 function validCamper(myForm)
{
	if ( (myForm.medication[0].checked == true && !(isNotEmpty(myForm.medDetails))) || (myForm.allergies[0].checked == true && !(isNotEmpty(myForm.allergyDetails))) || (myForm.medCondition[0].checked == true && !(isNotEmpty(myForm.conditionDetails))))
	{
		return false;
	}
	if (isNotEmpty(myForm.firstNameC)) 
	{
		if (isNotEmpty(myForm.lastNameC))
		{
			if (isNotEmpty(myForm.gender))
			{
				if (validDOB(myForm.birthYear))
				{
					return true; 
				}
			}
		}
	}
					
	return false;
} // end function validCamper
	
function validDOB( myElement )
{
	var myDOB = myElement.value;
	var myToday = new Date(2010,06,21);
	//myToday.setFullYear(2007,07,09);
	var myFY = myToday.getFullYear();
	var myDateDiff = myFY - myDOB;
	if ( myDateDiff < 4 )
	{
		alert( "Please note: Campers must be at least 4 years old." );
		return false;
	}
	else
		return true;
}
 function validContact(myForm)
{
	if (isNotEmpty(myForm.firstName ))
	{
		if (isNotEmpty(myForm.lastName ))
		{
			if (validPhoneNumber(myForm.phoneNumber)) 
			{
				 return true; 
			}
		}
	}
	return false;
} // end function validContact
			