// Javascript Document

//if(startadd && endadd)
//{
	//address = encodeURI("http://maps.google.com/maps?f=d&hl=en&geocode=&saddr=" +startadd+"&daddr="+endadd);
	//$('searchContainer').innerHTML = "<div id=\"asHeaderContainer\" style=\"width:955px;height:40px\" onMouseOver=\"dragWindow('searchContainer')\"><div id=\"asHeader\" style=\"width:860px\" ><h1 style=\"font-size:20px;color:#28903a;\">Public Courses Directions</h1></div><div class=\"closeBtn\"><a href=\"javascript:elementFade('searchContainer');\"><img src=\"/images/blueclose.gif\" alt=\"Close the search window\" width=\"24\" height=\"24\" border=\"0\" /></a></div><div class=\"clearDivs\"><!-- --></div></div><iframe id=\"searchframe\" name=\"searchframe\" width=\"955\" height=\"550\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\""+address+"\"></iframe><br>";
		 	//elementAppear('searchContainer');
//}
function textClear(ipt)
{
	if($(ipt).value == 'Email Address' || $(ipt).value == 'City or State' )
	{
		$(ipt).value == '';
	}
}

function doCourseLogin(f) 
{
		
	new Ajax.Request('/course-services/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: $(f).serialize(),
						onSuccess: function(transport)
						{
							//alert('Success');
							location.href = '/course-services/';
						},
   						onFailure: function(transport)
						{ 
							//alert('Failed');
							if(404 == transport.status)
								alert('Your UIN is incorrect.');
							if(409 == transport.status)
								alert('Your password is incorrect. Please Try again.');
							if(410 == transport.status)
							{
								renew = confirm('Your membership has expired. Would you like to renew?');
								if(renew)
									location.href = '/course-services/?cmd=renew&uin='+transport.responseText;
							}
							if(422 == transport.status)
								alert(transport.responseText);
							
							//self.location = '/course-services';
							
						}
	 				 }
					 ); 
}

function checkCoupon(f,price) 
{	
	new Ajax.Request('/course-services/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: {cmd: 'checkcoupon', coupon: f.value, aprice: price},
						onSuccess: function(transport)
						{
							if(transport.responseText !="noCoupon"){
							  $('couponerror').innerHTML = '&nbsp;';
							  //$('couponerror').className = '';
  							$('coupondiscount').value = transport.responseText;
	  						if($('coupondiscountTxt')){
		  						if(price-transport.responseText>0){
			  						var temp=price-transport.responseText;
				  				}else{
					  				var temp=0;
						  		}
							    $('coupondiscountTxt').innerHTML=temp;
  							}
	  						if($('discounted_price'))$('discounted_price').style.display="";
		  					if(transport.responseText >= price)
			   				{
					  			if($('card_display'))
						  			$('card_display').style.display = "none";
							  	else if($('renewCardNum')){
								  	$('renewCardNum').style.display = "none";
 									  $('renewCardExp').style.display = "none";
	  							}
		  						if($('cnumber'))$('cnumber').disabled='disabled';
			  					if($('cvv'))$('cvv').disabled='disabled';
				  				if($('expmonth'))$('expmonth').disabled='disabled';
					  			if($('expy'))$('expy').disabled='disabled';
						  		if($('cardtype'))$('cardtype').disabled='disabled';
  							}
							}else{
								if($('couponerror'))$('couponerror').innerHTML = '&nbsp;';
								if($('coupondiscount'))$('coupondiscount').value ="";
								if($('coupondiscountTxt')){
									$('coupondiscountTxt').innerHTML =price;
								}
							}
							return;
						},
						onFailure: function(transport)
						{ 
							//alert('Failed');
							if(404 == transport.status)
							{
								$('couponerror').innerHTML = 'Coupon code is not valid.';
								//$('couponerror').className = 'errorbox';
								if($('card_display'))
									$('card_display').style.display = "";
								else if($('renewCardNum')){
									$('renewCardNum').style.display = "";
									$('renewCardExp').style.display = "";
								}
								if($('coupondiscountTxt'))$('coupondiscountTxt').innerHTML=price;
   							if($('discounted_price'))$('discounted_price').style.display="none";
							}
						}
	 				 }
					 ); 
	/*if($('card_display'))
		$('card_display').style.display = "none";
	else if($('renewCardNum')){
		$('renewCardNum').style.display = "none";
		$('renewCardExp').style.display = "none";
	}*/
}

function checkUsername(field) 
{	
	if(checkInput(field))
	{
		error = get_field_id(field);
		new Ajax.Request('/course-services/index.php', 
						 {
						 	method: 'post',
		 				  	parameters: {cmd: 'checkusername', username: $(field).value},
							onSuccess: function(transport)
							{
		
								if(error.innerHTML != 'Username is a required field')
								{
									if(error.id != field+'box')
									{	
										error.className = "";
									}
									else {
										elementBlindUp(field+'box');
										error.style.display = "none";
									}
									error.innerHTML = "";
								
									$(field).style.border = "1px solid #1B6026";
									$(field).style.background = "#F2f7f3";
									//$('coupondiscount').value = transport.responseText;	
								}		
							},
							onFailure: function(transport)
							{ 
								//alert('Failed');
								if(404 == transport.status)
								{
									error.innerHTML = 'Username is already taken.';
									
									if(error.id != field+'box' || error.style.display == "")
									{	
										error.className = "errorbox";
									}
									else {
										elementBlindDown(field+'box');
										error.style.display = "";
									}		
		
									$(field).style.border = "1px solid #CC3300";
									$(field).style.background = "#FFDF5E";
								}							
							}
	 				 	}
					 	); 
	}
}

function updatePrice(v,type) 
{
	discount = parseFloat($('coupondiscount').value);
	norm = parseFloat(v);
	price =  norm-discount;
	if(norm != 0 && $('coupondiscount').value != '' )
	{
		$(type+'coupon').innerHTML = "( $"+price + " with the supplied coupon. )";
		$(type+'coupon').style.color = "#28903a";
	}
	else
		$(type+'coupon').innerHTML = "";
}

function addEvent() 
{		
	aewindow_width = get_document_window_width();
   	aewidth = convert_width(500,aewindow_width);
   	aewindow_height = get_document_window_height();
   	aeheight = convert_height(305,aewindow_height);
   	aeleft = calculate_left(aewidth,aewindow_width);
   	aetop = calculate_top(aeheight,aewindow_height);
   
	$('ajaxwindow').style.left = aeleft+'px';
	$('ajaxwindow').style.top = aetop+'px';
	elementAppear('ajaxwindow');
	
}

function verifyPlayers()
{
	var radioObj = document.forms['teetimeform'].players;
	var radioLength = radioObj.length;
	
	if(radioLength == undefined)
		if(radioObj.checked)
			return true;
		else
		{
			alert('Select the number of players.');
			return false;
		}
		
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return true;
		}
	}
	
	alert('Select the number of players.');
	return false;
}

function verifyForm(f)
{
	em = checkEmail('customerForm');
	p1 = checkPassword('customerForm');
	p2 = confirmPassword('customerForm')
	fn = checkInput('firstname');
	ln = checkInput('lastname');
	cp = checkInput('phone');
	
	if(!em || !p1 || !p2 || !fn || !ln || !cp)
	{
		alert("Please make sure your passwords match and/or that you have entered a first name, last name and a phone number.");
		//alert(em +' '+ p1 +' '+p2+' '+fn+' '+ln+' '+cp);
		return false;
	}
	else
	{
		return true;
	}
	
	//alert(em +' '+ p1 +' '+p2+' '+fn+' '+ln+' '+cp);
}

function verifyPaymentForm(f)
{
	cc = checkCard();
	nc = checkInput('nameoncard');
	ad = checkInput('address1');
	pc = checkZipcode(f);
	ce = checkExpiration();
	
	if(!cc || !nc || !ad || !pc || !ce || !$('teetimepolicy').checked )
	{
		if(!$('teetimepolicy').checked)
			alert("You must accept the course's tee time policy by clicking the checkbox.");
			//alert(cc +' '+ nc +' '+ad+' '+pc+' '+ce);
		return false;
	}
}

function verifyRegistrationForm(f)
{
	email = checkEmail(f);
	contact = checkInput('contact');
	cphone = checkPhone('phone');
	company = checkInput('company');
	uin = checkInput('uin');
	pass = checkInput('password');
	add1 = checkInput('add1');
	city = checkInput('city');
	state = checkInput('state');
	zip = checkZipcode(f);
	wphone = checkPhone('work_phone');
	
	if(!state || !uin || !pass || !email || !contact || !cphone || !company || !add1 || !wphone || !zip || !city || !$('forminformation').checked )
	{
		if(!$('forminformation').checked)
			alert("You must verify that you have read and agree to the terms and conditions described in PublicCourses.com's Internet Advertising Agreement. You also agree that the information you entered above is correct.");
			//alert(email +' '+ contact +' '+cphone+' '+company+' '+add1+' '+city+' '+zip+' '+wphone+' '+reg+' '+exe+' '+fee);
		return false;
	}
	else
	{
		return true;
		/*new Ajax.Request('/course-services/index.php', {
						 	method: 'post',
							parameters: $(f).serialize(),
							onSuccess: function(transport)
							{
								self.location = '/course-services/?cmd=checkout';
							},
							onFailure: function(transport)
							{ 
								self.location = '/course-services/?cmd=confirmation';
							}
						 }
						 ); */
	}
}

function checkEmail(f)
{
	var emailID=document.forms[f].email;
	var error1 = "Please make sure you have entered an email address.";
	var error2 = "Your email address is not in the correct format (abcdefgh@domain.com).";
	
	if($('emailerror'))
		field = $('emailerror');
	else
		field = $('emailbox');
		
	if ((emailID.value==null)||(emailID.value=="")){
		
		field.innerHTML = error1;
		
		if(field.id != 'emailbox' || field.style.display == "")
		{	
			field.className = "errorbox";
		}
		else {
			emailID.style.border = "1px solid #CC3300";
			emailID.style.background = "#FFDF5E";
			elementBlindDown('emailbox');
			field.style.display = "";
		}
		return false;
	}
	
	if (echeck(emailID.value)==false){
		
		field.innerHTML = error2;
		
		if(field.id != 'emailbox')
		{	
			field.className = "errorbox";
		}
		else {
			emailID.style.border = "1px solid #CC3300";
			emailID.style.background = "#FFDF5E";
			elementBlindDown('emailbox');
			field.style.display = "";
		}
		return false;
	}
	
	if(field.innerHTML == error1 || field.innerHTML == error2 )
	{
		if(field.id != 'emailbox')
		{	
			field.innerHTML = "";
			field.className = "";
		}
		else {
			elementBlindUp('emailbox');
		}
	}
	
	emailID.style.border = "1px solid #1B6026";
	emailID.style.background = "#F2f7f3";
	return true;
}

function checkPassword(f)
{
	var password=document.forms[f].password;
	
	if ((password.value==null)||(password.value=="")){
		$('passworderror').innerHTML = "You must enter a password";
		$('passworderror').className = "errorbox";
		password.focus();
		return false;
	}
	if ( password.value.length < 6 ) 
	{
		$('passworderror').innerHTML = "Your password must be 6 characters or greater";
		$('passworderror').className = "errorbox";
		password.focus();
		return false;
	}
	if(confirmPassword(f)){
		$('passworderror').innerHTML = "";
		$('passworderror').className = "";
		return true;
	}
}

function confirmPassword(f)
{
	var password=document.forms[f].password;
	var cpassword=document.forms[f].confirmpassword;
	
	if ((cpassword.value==null)||(cpassword.value=="")){
		$('passworderror').innerHTML = "You must enter a password";
		$('passworderror').className = "errorbox";
		cpassword.focus();
		return false;
	}
	if ( password.value != cpassword.value ) 
	{
		$('passworderror').innerHTML = "Your passwords do not match.";
		$('passworderror').className = "errorbox";
		cpassword.focus();
		return false;
	}
	
	$('passworderror').innerHTML = "";
	$('passworderror').className = "";
	return true;
}

function checkCard()
{
	if($('carderror'))
		error = $('carderror');
	else
		error = $('cardbox');
	
	if(document.forms['customerForm'].cardnumber)
	{
		var field = document.forms['customerForm'].cardnumber;
		var cc=document.forms['customerForm'].cardnumber.value;
	}
	else
	{
		var field = document.forms['customerForm'].cnumber;
		var cc=document.forms['customerForm'].cnumber.value;
	}
	
	var cclen = cc.length;
	var ValidChars = "0123456789";
  	var IsNumber=true;
   	var Char;
   
	if(cc != '' || cc != null)
	{
		if(cclen >= 13 && cclen <= 16)
		{
			for (i = 0; i < cclen && IsNumber == true; i++) 
			{ 
			  	Char = cc.charAt(i); 
			  	if (ValidChars.indexOf(Char) == -1) 
				{
					IsNumber = false;
				}
			}
			
			if(IsNumber)
			{
				check = cc.substring(0,1);
				if(check == 4)
					{	
						$('ctvisa').style.display = '';
						$('cardtype').value = 'Visa';
						error.innerHTML = "";
						if(error.id != 'cardbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							elementBlindUp('cardbox');
							error.style.display = "none";
							field.style.border = "1px solid #1B6026";
							field.style.background = "#F2f7f3";
						}
						return true;
					}
				else if(check == 3)
				{
					check2 = cc.substring(0,2);
					if(check2 == 34 || check2 == 37)
					{
						$('ctamex').style.display = '';
						$('cardtype').value = 'AMEX';
						error.innerHTML = "";
						if(error.id != 'errorbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							elementBlindUp('cardbox');
							error.style.display = "none";
							field.style.border = "1px solid #1B6026";
							field.style.background = "#F2f7f3";
						}
						return true;
					}
					//else if(check2 == 36 || check2 == 38)
						//$('ctdcvr').checked = true;
					//else if(check2 == 30)
					//{
						//check3 == ccnum.substring(0,3);
						//if(check3 == 305 || check3 == 300)
							//$('ctdcvr').checked = true;
					//}
				}
				else if(check == 5)
				{
					check4 = cc.substring(0,2);
					if(check4 > 50 && check4 < 56)
					{
						$('ctmc').style.display = '';
						$('cardtype').value = 'MasterCard';
						error.innerHTML = "";
						if(error.id != 'cardbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							elementBlindUp('cardbox');
							error.style.display = "none";
						}
						field.style.border = "1px solid #1B6026";
						field.style.background = "#F2f7f3";
						return true;
					}
				}
				else
				{
					error.innerHTML = "Invalid Card Number";
					if(error.id != 'cardrbox' || error.style.display == "")
					{	
						error.className = "errorbox";
					}
					else {
						elementBlindDown('cardbox');
						error.style.display = "";
					}
					field.style.border = "1px solid #CC3300";
					field.style.background = "#FFDF5E";
					return false;
				}
			}
			else
			{
				error.innerHTML = "Card Numbers cannot contain letters";
				if(error.id != 'cardbox' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					elementBlindDown('cardbox');
					error.style.display = "";
				}
				
				field.style.border = "1px solid #CC3300";
				field.style.background = "#FFDF5E";
				return false;
			}
		}
		else
		{
			error.innerHTML = "Card Number too short";
			if(error.id != 'cardbox' || error.style.display == "")
			{	
				error.className = "errorbox";
			}
			else {
				elementBlindDown('cardbox');
				error.style.display = "";
			}
			
			field.style.border = "1px solid #CC3300";
			field.style.background = "#FFDF5E";
			return false;
		}
	}
	else
	{
		error.innerHTML = "No Card Number Entered";
		if(error.id != 'cardbox' || error.style.display == "")
		{	
			error.className = "errorbox";
		}
		else {
			elementBlindDown('cardbox');
			error.style.display = "";
		}
		
		field.style.border = "1px solid #CC3300";
		field.style.background = "#FFDF5E";
		return false;
	}
}

function checkCard2()
{
	if($('cnumberErr'))
		error = $('cnumberErr');
	
	var field = $('cnumber');
	var cc=$('cnumber').value;
	
	var cclen = cc.length;
	var ValidChars = "0123456789";
  	var IsNumber=true;
   	var Char;
   
	if(cc != '' || cc != null)
	{
		if(cclen >= 13 && cclen <= 16)
		{
			for (i = 0; i < cclen && IsNumber == true; i++) 
			{ 
			  	Char = cc.charAt(i); 
			  	if (ValidChars.indexOf(Char) == -1) 
				{
					IsNumber = false;
				}
			}
			
			if(IsNumber)
			{
				check = cc.substring(0,1);
				if(check == 4)
					{	
						$('ctvisa').style.display = '';
						$('cardtype').value = 'Visa';
						error.innerHTML = "&nbsp;";
						if(error.id != 'cardbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							//lementBlindUp('cardbox');
							error.innerHTML= "&nbsp;";
							//field.style.border = "1px solid #1B6026";
							//field.style.background = "#F2f7f3";
						}
						return true;
					}
				else if(check == 3)
				{
					check2 = cc.substring(0,2);
					if(check2 == 34 || check2 == 37)
					{
						$('ctamex').style.display = '';
						$('cardtype').value = 'AMEX';
						error.innerHTML = "&nbsp;";
						if(error.id != 'errorbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							//elementBlindUp('cardbox');
							error.innerHTML= "&nbsp;";
							//field.style.border = "1px solid #1B6026";
							//field.style.background = "#F2f7f3";
						}
						return true;
					}
					//else if(check2 == 36 || check2 == 38)
						//$('ctdcvr').checked = true;
					//else if(check2 == 30)
					//{
						//check3 == ccnum.substring(0,3);
						//if(check3 == 305 || check3 == 300)
							//$('ctdcvr').checked = true;
					//}
				}
				else if(check == 5)
				{
					check4 = cc.substring(0,2);
					if(check4 > 50 && check4 < 56)
					{
						$('ctmc').style.display = '';
						$('cardtype').value = 'MasterCard';
						error.innerHTML = "&nbsp;";
						if(error.id != 'cardbox' || error.style.display == "")
						{	
							error.className = "";
						}
						else {
							//elementBlindUp('cardbox');
							error.innerHTML= "&nbsp;";
						}
						//field.style.border = "1px solid #1B6026";
						//field.style.background = "#F2f7f3";
						return true;
					}
				}
				else
				{
					error.innerHTML = "Invalid Card Number";
					if(error.id != 'cardrbox' || error.style.display == "")
					{	
						error.className = "errors";
					}
					else {
						//elementBlindDown('cardbox');
						error.innerHTML= "&nbsp;";
					}
					//field.style.border = "1px solid #CC3300";
					//field.style.background = "#FFDF5E";
					return false;
				}
			}
			else
			{
				error.innerHTML = "Card Numbers cannot contain letters";
				if(error.id != 'cardbox' || error.style.display == "")
				{	
					error.className = "errors";
				}
				else {
					//elementBlindDown('cardbox');
					error.innerHTML= "&nbsp;";
				}
				
				//field.style.border = "1px solid #CC3300";
				//field.style.background = "#FFDF5E";
				return false;
			}
		}
		else
		{
			error.innerHTML = "Card Number too short";
			if(error.id != 'cardbox' || error.style.display == "")
			{	
				error.className = "errors";
			}
			else {
				//elementBlindDown('cardbox');
				error.innerHTML= "&nbsp;";
			}
			
			//field.style.border = "1px solid #CC3300";
			//field.style.background = "#FFDF5E";
			return false;
		}
	}
	else
	{
		error.innerHTML = "No Card Number Entered";
		if(error.id != 'cardbox' || error.style.display == "")
		{	
			error.className = "errors";
		}
		else {
			//elementBlindDown('cardbox');
			error.innerHTML= "&nbsp;";
		}
		
		//field.style.border = "1px solid #CC3300";
		//field.style.background = "#FFDF5E";
		return false;
	}
}

function checkNumeric(field,vallen)
{
	var fieldarr = new Object();
	
	fieldarr.reg = "Regular Holes";
	fieldarr.exe = "Executive Holes";
	fieldarr.fee = "Greens Fee";
	fieldarr.cvv = "CVV";
	
	var error1 = fieldarr[field] +" can only contain numbers or a period.";
	var error2 = fieldarr[field] +" must be less than  "+vallen+" characters.";
	var error3 = fieldarr[field] +" is a required field. Please enter zero if you do not wish to enter zero if you do not wish to enter a value.";
	
	if($(field+'error'))
		error = $(field+'error');
	else
		error = $(field+'box');
		
	//alert(zip);
	var ziplen = $(field).value.length;
	var ValidChars = "0123456789.";
  	var IsNumber=true;
   	var Char;
   
   	
	if($(field).value != '' || $(field).value != null )
	{
		if(ziplen <= vallen)
		{
			for (i = 0; i < ziplen && IsNumber == true; i++) 
			{ 
			  	Char = $(field).value.charAt(i); 
			  	if (ValidChars.indexOf(Char) == -1) 
				{
					IsNumber = false;
				}
			}
			
			if(!IsNumber)
			{
				error.innerHTML = error1;
		
				if(error.id != field+'box' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					$(field).style.border = "1px solid #CC3300";
					$(field).style.background = "#FFDF5E";
					elementBlindDown(field+'box');
					error.style.display = "";
				}
				return false;
			}
			else 
			{
				if(error.value == error1)
				{
					if(error.id != field+'box')
					{
						
						error.innerHTML = "";
						error.className = "";
						return true;
					}
					else
					{
						$(field).style.border = "1px solid #1B6026";
						$(field).style.background = "#F2f7f3";
						elementBlindUp(field+'box');
					}
				}
			}			
		}
		else
		{
			vallen += 1;
			error.innerHTML = error2;
			
				if(error.id != 'errorbox' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					$(field).style.border = "1px solid #CC3300";
					$(field).style.background = "#FFDF5E";
					elementBlindDown(field+'box');
					error.style.display = "";
				}
				
			return false;
		}
	}
	else
	{
		error.innerHTML = error3;
		if(error.id != field+'box' || error.style.display == "")
		{
			error.className = "errorbox";
		}
		else {
			$(field).style.border = "1px solid #CC3300";
			$(field).style.background = "#FFDF5E";
					elementBlindDown(field+'box');
					error.style.display = "";
				}
		
		return false;
	}
	
	if(error.id != field+'box')
		{	
			error.innerHTML = "";
			error.className = "";
		}
		else {
			elementBlindUp(field+'box');
			$(field).style.border = "1px solid #1B6026";
			$(field).style.background = "#F2f7f3";
		}
	
	return true;
}

function phone_field_onkeydown(ev)
{
	if(!event)
		var event = ev;
		
	var keycode = event.keyCode;
	if(event.ctrlKey && ((keycode == 65) || (keycode == 67) || (keycode == 86) || (keycode == 88)))
	{
		if(event.target)
			var field = event.target;
		else
			var field = event.srcElement;
			
		if(field.onkeydown) return(field._onkeydown(ev));
		else return true;
	}
	
	if((keycode == 190) || (keycode == 110))
	{
		if(event.target)
			var field = event.target;
		else
			var field = event.srcElement;
		//if (field.value.indexOf(".") != -1) return false;
		if (field._onkeydown) return(field._onkeydown(ev));
		else return true;
	}
	else if(((keycode > 47) && (keycode < 58)) || ((keycode > 95) && (keycode < 106)) || (keycode == 188) || ((keycode > 34) && (keycode < 40)) || (keycode == 189) || (keycode == 9) || (keycode == 13) || (keycode == 27) || (keycode == 16) || (keycode == 8) || (keycode == 46) || (keycode == 109))
	{
		if(event.target)
			var field = event.target;
		else
			var field = event.srcElement;
		if(field._onkeydown) return(field._onkeydown(ev));
		else return true;
	}
	return false;
}

function phone_field_onfocus()
{
	this._onkeydown = document.onkeydown;
	document.onkeydown = phone_field_onkeydown;
	if(this._onfocus) return this._onfocus();
	return true;
}

function phone_field_onblur()
{
	this._onkeydown = document.onkeydown;
	if(this._onblur) return this._onblur();
	return true;
}

function onlyint(e,field)
{
	if (window.event) keynum = e.keyCode;
	else if (e.which) keynum = e.which;

	if (keynum == "0x08") return true;
	if (keynum == "0x09") return true;
  	if (keynum == "0x20" && field.id!='cvv') return true;
	if (keynum == "0x2d" && field == 'phone') return true;
	if (keynum == "0x2E" && field == 'currency') return true;
	if (keynum == "0x2F" && field == 'date') return true;
	if ((keynum >= "0x30") && (keynum <="0x39")) return true;
	return false;
}			

function checkPhone(zip)
{
	var error1 = "Telephone Numbers can only contain numbers. No Letters Or Symbols.";
	var error2 = "Telephone number must be 10 characters or greater.";
	var error3 = "This is a required field. Please enter the required information.";
	
	var ziplen = $(zip).value.length;
	var ValidChars = "0123456789";
  	var IsNumber=true;
   	var Char;
	var number;
   
   if($(zip+'error'))
		error = $(zip+'error');
	else
		error = $(zip+'box');
		
   	
	if($(zip).value != '' || $(zip).value != null)
	{
		if(ziplen < 10)
		{
			error.innerHTML = error2;
			
			if(error.id != zip+'box' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					elementBlindDown(zip+'box');
					error.style.display = "";
				}
				
					$(zip).style.border = "1px solid #CC3300";
					$(zip).style.background = "#FFDF5E";
				
			return false;
		}
	}
	else
	{
		error.innerHTML = error3;
		
		if(error.id != zip+'box' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					elementBlindDown(zip+'box');
					error.style.display = "";
				}
				
					$(zip).style.border = "1px solid #CC3300";
					$(zip).style.background = "#FFDF5E";
		
		return false;
	}
	
	//alert(error.id);
		if(error.id != zip+'box')
		{	
			error.className = "";
		}
		else 
		{
			elementBlindUp(zip+'box');
			error.style.display = "none";
		}
	
				
	$(zip).style.border = "1px solid #1B6026";
	$(zip).style.background = "#F2f7f3";
	
	return true;
}

function checkZipcode(f)
{
	if(document.forms[f].zipcode)
	{
		zipob = document.forms[f].zipcode;
		pre = 'zip';
		var zip=document.forms[f].zipcode.value;
	}
	else if($('zipcode'))
	{
		zipob = $('zipcode');
		pre = 'zip';
		var zip=$('zipcode').value;
	}
	else
	{
		zipob = $('postalcode');
		pre ='postalcode';
		var zip=document.forms[f].postalcode.value;
	}
	
	var error1 = "System only allows US residential postal codes.";
	var error2 = "Zipcode must be 5 characters or greater.";
	var error3 = "No Zipcode Entered";
	
	var ziplen = zip.length;
	var ValidChars = "0123456789-";
  	var IsNumber=true;
   	var Char;
   
   if($(pre+'error'))
		error = $(pre+'error');
	else
		error = $(pre+'box');
		
	if(zip != '' || zip != null)
	{
		if(ziplen >= 5)
		{
			for (i = 0; i < ziplen && IsNumber == true; i++) 
			{ 
			  	Char = zip.charAt(i); 
			  	if (ValidChars.indexOf(Char) == -1) 
				{
					IsNumber = false;
				}
			}
			
			if(!IsNumber)
			{
				
				error.innerHTML = error1;
				
				if(error.id != pre+'box' || error.style.display == "")
				{	
					error.className = "errorbox";
				}
				else {
					elementBlindDown(pre+'box');
					error.style.display = "";
				}
				
				zipob.style.border = "1px solid #CC3300";
				zipob.style.background = "#FFDF5E";
				return false;
				
			}
			else 
			{
				error.innerHTML = "";
				if(error.id != pre+'box')
				{	
					error.className = "errorbox";
				}
				else {
					elementBlindUp(pre+'box');
					error.style.display = "none";
				}
				zipob.style.border = "1px solid #1B6026";
				zipob.style.background = "#F2f7f3";
				return true;
			}			
		}
		else
		{
			error.innerHTML = error2;
			if(error.id != pre+'box' || error.style.display == "")
			{	
				error.className = "errorbox";
			}
			else {
				elementBlindDown(pre+'box');
				error.style.display = "";
			}
				
					zipob.style.border = "1px solid #CC3300";
					zipob.style.background = "#FFDF5E";
			return false;
		}
	}
	else
	{
		error.innerHTML = error3;
		
		if(error.id != 'errorbox' || error.style.display == "")
		{	
			error.className = "errorbox";
		}
		else {
			elementBlindDown(pre+'box');
			error.style.display = "";
		}
		
					zipob.style.border = "1px solid #CC3300";
					zipob.style.background = "#FFDF5E";
		return false;
	}
	
	if(error.innerHTML == error1 || error.innerHTML == error2 | error.innerHTML == error3)
				{
					if(error.id != pre+'box')
					{	
						error.className = "";
					}
					else {
						elementBlindUp(pre+'box');
						error.style.display = "none";
					}
					error.innerHTML = "";
				}
				
				zipob.style.border = "1px solid #1B6026";
				zipob.style.background = "#F2f7f3";
	return true;
}

function checkExpiration()
{
	if($('expired'))
		error = $('expired');
	else
		error = $('errorbox');
		
	if(document.forms['customerForm'].expmonth)
	{
		var cmh=document.forms['customerForm'].expmonth;
		var cm=document.forms['customerForm'].expmonth.value;
	}
	else
	{
		var cmh=document.forms['customerForm'].expm;
		var cm=document.forms['customerForm'].expm.value;
	}
	
	if(document.forms['customerForm'].expyear)
	{
		var cyr=document.forms['customerForm'].expyear;
		var cy=document.forms['customerForm'].expyear.value;
	}
	else
	{
		var cyr=document.forms['customerForm'].expy;
		var cy=document.forms['customerForm'].expy.value;
	}

	var ct = new Date();
	var cd = ct.getMonth()+1;
	var gy = ct.getFullYear();
	
	//alert(cm);
	if(cm < cd  && cy <= gy)
	{
		$('expired').innerHTML = 'Your Card is Expired. Please check your date or use a different card.';
		$('expired').className = "errorbox";
		cmh.style.border = "1px solid #CC3300";
		cmh.style.background = "#FFDF5E";
		cyr.style.border = "1px solid #CC3300";
		cyr.style.background = "#FFDF5E";
		return false;
	}
	
	$('expired').innerHTML = '';
	$('expired').className = "";
	
	cmh.style.border = "1px solid #1B6026";
	cmh.style.background = "#F2f7f3";
	cyr.style.border = "1px solid #1B6026";
	cyr.style.background = "#F2f7f3";
				
	return true;
	
}

function get_field_id(field)
{	
	if($(field+'error'))
		error = $(field+'error');
	else if($('generalerror'))
		error = $('generalerror');
	else
		error = $(field+'box');
	
	return error;
}

function checkInput(field)
{ 
	var fieldarr = new Object();
	
	fieldarr.company = "Course Name";
	fieldarr.uin = "Username";
	fieldarr.password = "Password";
	fieldarr.confirmpassword = "Confirm Password";
	fieldarr.contact = "Contact Name";
	fieldarr.fname = "First Name";
	fieldarr.lname = "Last Name";
	fieldarr.email = "Contact Email";
	fieldarr.phone = "Contact Phone";
	fieldarr.add1 = "Address 1";
	fieldarr.address1 = "Billing Address Line 1";
	fieldarr.city = "City";
	fieldarr.state = "State";
	fieldarr.reg = "Regular Holes";
	fieldarr.exe = "Executive Holes";
	fieldarr.fee = "Green Fees";
	fieldarr.cvv = "CVV";
	
	error = get_field_id(field);
		
	if($(field).value == '' || $(field).value == null)
	{
		error.innerHTML = fieldarr[field]+' is a required field';
		
		if(error.id != field+'box' || error.style.display == "")
		{	
			error.className = "errorbox";
		}
		else {
			elementBlindDown(field+'box');
			error.style.display = "";
		}		
		
		$(field).style.border = "1px solid #CC3300";
		$(field).style.background = "#FFDF5E";
		return false;
	}
	else if(field == 'confirmpassword')
	{
		if($(field).value != $('password').value)
		{
			error.innerHTML = fieldarr[field]+' and '+fieldarr['password']+' do not match.';
			
			if(error.id != field+'box' || error.style.display == "")
			{	
				error.className = "errorbox";
			}
			else {
				elementBlindDown(field+'box');
				error.style.display = "";
			}		
			
			$(field).style.border = "1px solid #CC3300";
			$(field).style.background = "#FFDF5E";
			return false;
		}
		
		if(error.innerHTML == fieldarr[field]+' and '+fieldarr['password']+' do not match.')
		{
			if(error.id != field+'box')
			{	
				error.className = "";
			}
			else {
				elementBlindUp(field+'box');
				error.style.display = "none";
			}
		
			error.innerHTML = "";
		}
				
		$(field).style.border = "1px solid #1B6026";
		$(field).style.background = "#F2f7f3";
		return true;
	}
	
	if(error.innerHTML == fieldarr[field]+' is a required field')
				{
					if(error.id != field+'box')
					{	
						error.className = "";
					}
					else {
						elementBlindUp(field+'box');
						error.style.display = "none";
					}
					error.innerHTML = "";
				}
				
				$(field).style.border = "1px solid #1B6026";
				$(field).style.background = "#F2f7f3";
	
	return true;
}

function echeck(str)
{
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    
		    return false
		 }

 		 return true					
	}

function doCourseSelect(f) 
{
		
	new Ajax.Request('/course-services/register.php', 
					 {
					 	method: 'post',
		 			  	parameters: $(f).serialize(),
						onSuccess: function(transport)
						{
							//alert('Success');
							self.location = '/course-services/register.php?cmd=process&company='+transport.responseText;
						},
   						onFailure: function(transport)
						{ 
							//alert('Failed');
							if(404 == transport.status)
							{
								alert('Your course does not exist in our database. You will be taken to our course registration form.');
								self.location = '/course-services/register.php?cmd=newcourse';
							}
							if(422 == transport.status)
								alert(transport.responseText);
						}
	 				 }
					 ); 
	return false;
}

function processPayment(f) 
{
	if($("coupondiscount").value != $("price").value )
		cc = checkCard();
		
	fn = checkInput('fname');
	ln = checkInput('lname');
	ad = checkInput('address1');
	ci = checkInput('city');
	st = checkInput('state');
	
	if($("coupondiscount").value != $("price").value )
		cv = checkInput('cvv');
		
	pc = checkZipcode(f);
	
	if($("coupondiscount").value != $("price").value )
		ce = checkExpiration();
	
	if(!cc || !st || !cv || !ci || !fn || !ln || !ad || !pc || !ce || !$('verifyinfo').checked )
	{
		if(!$('verifyinfo').checked)
		{
			alert("You must specify that you agree to the terms of use by marking the check box.");
			//alert(cc +' '+st+' '+cv+' '+ci+' '+fn+' '+ln+' '+ad+' '+pc+' '+ce);
		}
		return false;
	}
	return true;
}

function loadCourseUI(uin)
{
	new Ajax.Request( 'index.php', {
											 method: 'post',
											 parameters: { cmd: 'home', course: uin },
											 onSuccess: function(divupdate)
											 {
												 $('regSign').innerHTML = "<a href=\"javascript:doCourseLogout()\">Logout</a>";
												 $('ajaxupdate').innerHTML = divupdate.responseText;
												 elementBlindDown('ajaxupdate');
											 }
											 });
}

function loadLogin()
{
	new Ajax.Request( 'index.php', {
											 method: 'post',
											 parameters: { cmd: 'displaylogin'},
											 onSuccess: function(divupdate)
											 {
												 $('regSign').innerHTML = "";
												 $('ajaxupdate').innerHTML = divupdate.responseText;
												 elementBlindDown('ajaxupdate');		
											 }
											 });
}

function doCourseLogout()
{
	//elementBlindUp('ajaxupdate');
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'logout' },
					 onSuccess: function()
						{
							self.location = '/course-services';
						}
					 });
}

function changeValue(f)
{
	elementBlindUp(f.name);
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function(transport)
						{
							//alert(f.name);
							if(f.name == 'company')
								$('coursename').innerHTML = transport.responseText;
							if(f.name == 'address')
								$('courseaddress').innerHTML = transport.responseText;
							if(f.name == 'city')
								$('coursecity').innerHTML = transport.responseText;
							if(f.name == 'state')
								$('coursestate').innerHTML = transport.responseText;
							if(f.name == 'phone')
								$('coursephone').innerHTML = transport.responseText;
						}
					 });
}

function updateGeneral(f,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onLoading: function() { printProcessWindow('Updating Course General Info'); },
					 onComplete: function() { closeProcessWindow(); reloadGmap(cid) }
					 });
}
function updateAccount(f,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onLoading: function() { printProcessWindow('Updating Course Account Info'); },
					 onComplete: function() { closeProcessWindow(); reloadGmap(cid) }
					 });
}
function updateAmenities(f,cid)
{
	new Ajax.Updater( 'ajaxflash', 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function() { updateMessage(); reloadGmap(cid) }
					 });
	elementBlindDown('ajaxflash');
	setTimeout("elementBlindUp('ajaxflash')",10000);
}

function submitCoupon(f)
{
	new Ajax.Request('index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function(transport) {
						 updateList('cp',transport.responseText,'coupon');
						 updateMessage();
						 }
					 });
}

function updateList(ident,idn,type)
{
	field = ident+idn;
	if($(field))
	{
		new Ajax.Updater( field, 'index.php', {
						 method: 'post',
						 parameters: {cmd: 'updatelist', id: idn, listtype: type }
						 });
	}
	else
	{
		new Ajax.Updater( type+'list', 'index.php', {
						 method: 'post',
						 parameters: {cmd: 'updatelist', id: idn, listtype: type },
					 	 insertion: Insertion.Bottom
						 });
	}
}
function submitVideo(f,cid)
{
	new Ajax.Updater( 'vpreview', 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function() { 
	window.location.reload(); },
					 onFailure: function() { alert("You have entered an invalid embed coded"); }
					 });
}

function loadCoupon(pagenum,ci)
{
	new Ajax.Updater( 'couponview', 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'loadcoupon', num: pagenum, id: ci }
					 });
}

function submitAnnoun(f,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function(transport) { 
					 	reloadGmap(cid);
						 updateList('an',transport.responseText,'announ');
						 updateMessage();}
					 });
}

function submitEvent(f)
{
	new Ajax.Request('index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function(transport) {
						 updateList('ev',transport.responseText,'event');
						 updateMessage();}
					 });
}

function submitImage(f,cid)
{
	new Ajax.Request('index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function() { updateMessage(); reloadGmap(cid) }
					 });
}

function updateMessage()
{
	new Ajax.Updater( 'ajaxflash', 'index.php', {
					 method: 'post',
					 parameters: { cmd:'update' }
					 });
	elementBlindDown('ajaxflash');
	setTimeout("elementBlindUp('ajaxflash')",10000);
}
function previewImage(cp)
{
	new Ajax.Updater( 'previewimage', 'index.php', {
					 method: 'post',
					 parameters: { cmd:'previewimage', id:cp }
					 });
	//elementBlindDown('ajaxflash');
	//setTimeout("elementBlindUp('ajaxflash')",10000);
}
function previewCoupon(cp)
{
	new Ajax.Updater( 'cpprev'+cp, 'index.php', {
					 method: 'post',
					 parameters: { cmd:'previewcoupon', id:cp }
					 });
}
function updateMember(f,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onLoading: function() { printProcessWindow('Updating Course Membership Info'); },
					 onComplete: function() { closeProcessWindow(); reloadGmap(cid); }
					 });
}

function addimage(f)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: $(f).serialize(),
					 onSuccess: function(transport)
						{
							alert(transport.responseText);
						}
					 });
}

function checkVerified()
{
	if($('verifyinfo').checked)
		return true;
	else
	{
		alert("You must verify that the information you entered is correct by entering clicking on the check box above the Continue button.");
		return false;
	}
}

function checkRedirect(page)
{
	if(page == 'contact')
		slideWindow('contactFormDiv');
	if(page == 'notlisted' || page == 'updatenonmember')
	{
		var answer = confirm('You are being redirect to our Course Registration form. If you wish to update or add a course you must use the Course Registration Form. Please click ok if you wish to update or add a course.');
		if(answer)
			self.location = '/course-services/register.php';
		else
			alert('Please select "Contact Us" to continue');
	}
}
function deleteImage(img,cid)
{
	if(confirm('Are you sure you wish to delete this image?'))
	{
		new Ajax.Request( 'index.php', {
						 method: 'post',
						 parameters: { cmd: 'deleteimage', name: img},
						 onSuccess: function(transport)
							{
								elementFade('image'+transport.responseText);
								$('image'+transport.responseText).remove();
								reloadGmap(cid);
							}
						 });
	}
}
function reorderImagesLive(selId){
	//alert(ImArr);
	var testArr = new Array();
	for(var t=0;t<ImArr.length;t++){
	  testArr[t]=ImArr[t].id;
	}
	//alert(testArr);
	var newOrder = new Array();
	var current="";
	//find the positon of the selected image in the master array.
	for(var i=0;i<ImArr.length;i++){
	  if(ImArr[i].id==selId){
	    current=i;
		//alert("current: "+current);
	  }
	}
	//get the new position value for the selected image.
	var selected=ImArr[current].value;
	var newIdOrder= new Array();
	//alert("current: "+current+" and selected: "+selected);
	//if the selected value is less than the current value...
	//if(selected<current){
	  var o=0;
	  var addition=0;
	  if(current<selected){
	    addition=1;
	  }else{
	    addition=0;
	  }
	  for(i=0;i<ImArr.length;i++){
	    if(i==current)
			  o+=addition;
	  	if(i==selected){
		  	//place selected item
			  //alert("placing "+current+" in "+i);
			  newOrder[i]=ImArr[current];
				var temp = ImArr[current].id.split('|');
				newIdOrder[i]=temp[1];
		  }else{
			  //alert("placing "+o+" in "+i);
			  if(o == current)
			    o++;
			  newOrder[i]=ImArr[o];
				var temp = ImArr[o].id.split('|');
				newIdOrder[i]=temp[1];
			  o++;
		  }
		  newOrder[i].options[i].selected=true;
	  }
	//}
	ImArr=newOrder;
	//alert(newIdOrder);
	imageIds = newIdOrder;
	//alert(testArr);
}
function reorderImage(img,cid)
{
	var submitArr = new Array();
	for(var t=0;t<ImArr.length;t++){
	  submitArr[t]=ImArr[t].id.replace('imgOrderId|','');
	}
	new Ajax.Request('index2.php',{
					method: 'post',
					parameters:{ cmd: 'reorderImages', ids: submitArr.join('|'),courseid: cid},
					onSuccess: function(transport)
						{
							$('elementImageList').innerHTML=transport.responseText;
							reloadGmap(cid);
							ImArr = new Array();
							for(var i=0; i<numImgs; i++){
								ImArr[i]=$('imgOrderId|'+imageIds[i]);
							}
						}
					});
	/*if(confirm('Are you sure you wish to delete '+img))
	{
		new Ajax.Request( 'index.php', {
						 method: 'post',
						 parameters: { cmd: 'deleteimage', name: img},
						 onSuccess: function(transport)
							{
								elementFade('image'+transport.responseText);
								$('image'+transport.responseText).remove();
								reloadGmap(cid);
							}
						 });
	}*/
}
function deleteScoreCard(img,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'deletesc', name: img},
					 onSuccess: function(transport)
						{
							elementFade('sc'+transport.responseText);
							reloadGmap(cid);
						}
					 });
}

function editAnnoun(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'editannoun', id: img}
					 });
}

function clearForm(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'clear'+img}
					 });
}

function editCoupon(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'editcoupon', id: img}
					 });
}

function editEvent(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'editevent', id: img}
					 });
}

function deleteAnnoun(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'deleteannoun', id: img},
					 onSuccess: function(transport)
						{
							updateMessage();
							elementFade('an'+transport.responseText);
						}
					 });
}

function deleteEvent(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'deleteevent', id: img},
					 onSuccess: function(transport)
						{
							updateMessage();
							elementFade('ev'+transport.responseText);
						}
					 });
}

function deleteCoupon(img,pagenum,courseid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'deletecoupon', id: img},
					 onSuccess: function(transport)
						{
							elementFade('cp'+transport.responseText);
							updateMessage();
						}
					 });
}

function deleteCL(img)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'deletecl', name: img},
					 onSuccess: function(transport)
						{
							elementFade('cl'+transport.responseText);
						}
					 });
}

function makeFeature(img,cid)
{
	new Ajax.Request( 'index.php', {
					 method: 'post',
					 parameters: { cmd: 'makefeature', name: img},
					 onSuccess: function() { updateMessage(); reloadGmap(cid) }
					});
}

function reloadGmap(cid)
{
	new Ajax.Request( '/search/googlemap_search.php', {
			 		 method: 'get',
					 parameters: { action: 'advanced', course: cid}});

}

function editfield(field)
{
	if($(field).style.display == '')
		elementBlindUp(field);
	else
	{
		elementBlindDown(field);
		//$(field).element[0].focus();
	}
}

function getWeather(warea) 
{		
	new Ajax.Request('/search/googlemap_search.php', 
					 {
					 	method: 'post',
		 			  	parameters: {action:'getweather', area:warea, skipw:'true' },
						onLoading: function() { printProcessWindow('Getting Area Weather'); },
						onComplete: function() { closeProcessWindow(); },
						onSuccess: function(transport)
						{
							$('weatherbox').innerHTML = transport.responseText;
							elementAppear('weatherbox');
						},
   						onFailure: function(transport)
						{ 
							alert('Could not find Area');
						}
	 				 }
					 ); 
}
/* ----------------------------------------------------- Tee Times -------------------------------------------------- */
function checkVar(what)
{
  return Boolean(typeof what != 'undefined' && what);
}
function reloadTeeTimes() 
{	
	if($('teetime'))
	{

		if($('teetime').style.display != 'none')
			elementBlindUp('teetime');
		//alert(document.location.search);
		var searchAr =document.location.search.substring(1).split('&');
		var QueryAr = new Array();
		for(var index=0;index<searchAr.length;index++){
			var temp =searchAr[index].split('=');
			QueryAr[temp[0]]=temp[1];
		}
		if(checkVar(QueryAr['area'])){
			var tempArea = QueryAr['area'];
		}else{
			var tempArea =  "";
		}
		
		new Ajax.Request('/reserve-a-tee-time/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: { cmd: 'selectteetimes'},
						onLoading: function() { printProcessWindow('Loading Tee Times'); },
						onComplete: function() { closeProcessWindow(); },
						onSuccess: function(transport)
						{
							$('teetime').innerHTML = transport.responseText;
							elementBlindDown('teetime');
							updateCourseSelector(tempArea,'true');
						},
   						onFailure: function(transport)
						{ 
							if(423 == transport.status)
									alert('Please Select An Area to Golf in');
							if(424 == transport.status)
									alert('Your end date must be 7 days or less after your start date. Please adjust your end date accordingly.');
							if(425 == transport.status)
									alert('Your end date must be at least 1 day after your start date. Please adjust your start/end date accordingly.');
								if(422 == transport.status)
									alert(transport.responseText);
						}
	 				 }
					 ); 
	}
}

function getTeeTimes(f,getall) 
{		
		if(getall==0 || $('facility').value == 'none')
		$('facility').value = 'none';
	if($('teetime').style.display != 'none')
		elementBlindUp('teetime');
						
	new Ajax.Request('/reserve-a-tee-time/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: f.serialize(),
						onLoading: function() { printProcessWindow('Loading Tee Times'); },
						onComplete: function() { closeProcessWindow(); },
						onSuccess: function(transport)
						{
							$('teetime').innerHTML = transport.responseText;
							elementBlindDown('teetime');
							updateCourseSelector('','true');
						},
   						onFailure: function(transport)
						{ 
							if(423 == transport.status)
									alert('Please Select An Area to Golf in');
							if(424 == transport.status)
									alert('Your end date must be 7 days or less after your start date. Please adjust your end date accordingly.');
							if(425 == transport.status)
									alert('Your end date must be at least 1 day after your start date. Please adjust your start/end date accordingly.');
								if(422 == transport.status)
									alert(transport.responseText);
						}
	 				 }
					 ); 
}

function getTeeTimesCourse(fac,st,frd,td,si) 
{		
	if($('teetime').style.display != 'none')
		elementBlindUp('teetime');
						
	new Ajax.Request('/reserve-a-tee-time/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: {cmd: 'selectteetimes', facility:fac, state:st,from_date:frd,end_date:td},
						onLoading: function() { printProcessWindow('Loading Tee Times'); },
						onComplete: function() { closeProcessWindow(); },
						onSuccess: function(transport)
						{
							$('teetime').innerHTML = transport.responseText;
							elementBlindDown('teetime');
							document.forms['selectionForm'].facility.options[si].selected = true;
						},
   						onFailure: function(transport)
						{ 
							if(404 == transport.status)
									alert('Please Select An Area to Golf in');
							if(400 == transport.status)
									alert('Your end date must be 6 days or less after your start date. Please adjust your end date accordingly.');
								if(422 == transport.status)
									alert(transport.responseText);
						}
	 				 }
					 ); 
}

function updateCourseSelector(ar,nw)
{
	new Ajax.Request('/reserve-a-tee-time/index.php', 
					 { 
					 	method:'post',
						parameters: { cmd:'courseselector', area:ar, newarea:nw }
					});
}

function displayTeeTime(cid,td,ar,fac,teetime) 
{		
	if($('teetime').style.display != 'none')
		elementBlindUp('teetime');
						
	new Ajax.Request('/reserve-a-tee-time/index.php', 
					 {
					 	method: 'post',
		 			  	parameters: { cmd: 'displayteetime', tt: teetime, facility: fac, area: ar, from_date: td, end_date: td, course:cid} ,
						onLoading: function() { printProcessWindow('Displaying Tee Time Details'); },
						onComplete: function() { closeProcessWindow(); },
						onSuccess: function(transport)
						{
							$('teetime').innerHTML = transport.responseText;
							elementBlindDown('teetime');
							for(i=1;i<document.forms['selectionForm'].facility.options.length;i++)
							{
								if(document.forms['selectionForm'].facility.options[i-1].value == fac)
								   document.forms['selectionForm'].facility.options[i-1].selected = true;
							}
						},
   						onFailure: function(transport)
						{ 
							if(404 == transport.status)
									alert('Please Select An Area to Golf in');
							if(400 == transport.status)
									alert('Your end date must be 6 days or less after your start date. Please adjust your end date accordingly.');
								if(422 == transport.status)
									alert(transport.responseText);
						}
	 				 }
					 ); 
}

function createReservation(f) 
{
	if($('teetimepolicy').checked)
	{
		
		new Ajax.Request('/reserve-a-tee-time/booking/index.php', 
						 {
							method: 'post',
							parameters: $(f).serialize(),
							onLoading: function() { printProcessWindow('Creating Reservation'); },
							onComplete: function() { closeProcessWindow(); },
							onSuccess: function(transport)
							{
								self.location = '/reserve-a-tee-time/confirmation';
							},
							onFailure: function(transport)
							{ 
								alert(transport.responseText);
								
							}
						 }
						 ); 
	}
	else
	{
		alert('You must accept the course tee time policy before proceeding.');
	}
}

/* ----------------------------------------------------------------- Tee Times --------------------------------------------- */
function checkType(ccnum)
{
	if(ccnum != '')
	{
		check = ccnum.substring(0,1);
		if(check == 4)
		{
			$('ctvisa').style.display = '';
			$('ctamex').style.display = 'none';
			$('ctmc').style.display = 'none';
		}
		else if(check == 3)
		{
			check2 = ccnum.substring(0,2);
			if(check2 == 34 || check2 == 37)
			{
				$('ctvisa').style.display = 'none';
				$('ctamex').style.display = '';
				$('ctmc').style.display = 'none';
			}
			//else if(check2 == 36 || check2 == 38)
				//$('ctdcvr').checked = true;
			//else if(check2 == 30)
			//{
				//check3 == ccnum.substring(0,3);
				//if(check3 == 305 || check3 == 300)
					//$('ctdcvr').checked = true;
			//}
		}
		else if(check == 5)
		{
			check4 = ccnum.substring(0,2);
			if(check4 > 50 && check4 < 56 )
			{
				$('ctvisa').style.display = 'none';
				$('ctamex').style.display = 'none';
				$('ctmc').style.display = '';
			}
		}
	}
}

function swapContainers(active)
{
	if(active != 'other' && $('otherContainer').style.display != 'none')
	{
		elementFade('otherContainer');
		$('othertab').className = 'tabs';
	}
	if(active != 'images' && $('imagesContainer').style.display != 'none')
	{
		elementFade('imagesContainer');
		$('imagestab').className = 'tabs';
	}
	if(active != 'amenities' && $('amenitiesContainer').style.display != 'none')		
	{
		elementFade('amenitiesContainer');
		$('amenitiestab').className = 'tabs';
	}
	if(active != 'announ' && $('announContainer').style.display != 'none')		
	{
		elementFade('announContainer');
		$('annountab').className = 'tabs';
	}
	if(active != 'coupon' && $('couponContainer').style.display != 'none')		
	{
		elementFade('couponContainer');
		$('coupontab').className = 'tabs';
	}
	if(active != 'event' && $('eventContainer').style.display != 'none')		
	{
		elementFade('eventContainer');
		$('eventtab').className = 'tabs';
	}
	if(active != 'videoUpload' && $('videoUploadContainer').style.display != 'none')		
	{
		elementFade('videoUploadContainer');
		$('videotab').className = 'tabs';
	}
	if(active != 'cl' && $('clContainer').style.display != 'none')		
	{
		elementFade('clContainer');
		$('cltab').className = 'tabs';
	}
	if(active != 'sc' && $('scContainer').style.display != 'none')	
	{
		elementFade('scContainer');
		$('sctab').className = 'tabs';
	}
	if(active != 'account' && $('accountContainer').style.display != 'none')	
	{
		elementFade('accountContainer');
		$('accounttab').className = 'tabs';
	}
		
	elementAppear(active+'Container');
	$(active+'tab').className = 'active';
}

function textCounter(field,cntfield,maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
	{
		field.value = field.value.substring(0, maxlimit);
		alert("You have reached the maximum allowed characters for this field. Any excess characters have been removed.");
	}
		// otherwise, update 'characters left' counter
	else
		$(cntfield).innerHTML = field.value.length;
}	

function openCoupon(path, wname)
{
	 newwindow = window.open ('/course-services/?cmd=livecoupon&id='+path, wname,"menubar=0,resizable=0,width=500,height=400");
	 newwindow.focus();
}

function populateCity(sv) 
{
	new Ajax.Request('/course-services/', 
						 {
							method: 'post',
							parameters: { cmd:"populatecity", state:sv},
							onLoading: function() { printProcessWindow('Loading City List'); },
							onComplete: function() { closeProcessWindow(); }
							
						 }
						 ); 
	
}

function populateCourses(co) 
{
	new Ajax.Request('/course-services/', 
						 {
							method: 'post',
							parameters: { cmd:"populatecourses", city:$('searchcity').value, state:$('searchstate').value},
							onLoading: function() { printProcessWindow('Loading Course List'); },
							onComplete: function() { closeProcessWindow(); }
							
						 }
						 ); 
	
}
function populateFields() 
{
	new Ajax.Request('/course-services/', 
						 {
							method: 'post',
							parameters: { cmd:"populatefields", city:$('searchcity').value, state:$('searchstate').value, course:$('searchcourse').value},
							onLoading: function() { printProcessWindow('Populating Fields'); },
							onComplete: function() { closeProcessWindow(); }
							
						 }
						 ); 
	
}
function populateFields2() 
{
	new Ajax.Request('/course-services/', 
						 {
							method: 'post',
							parameters: { cmd:"populatefields2", city:$('searchcity').value, state:$('searchstate').value, course:$('searchcourse').value},
							onLoading: function() { printProcessWindow('Populating Fields'); },
							onComplete: function() { closeProcessWindow(); }
							
						 }
						 ); 
	
}

function checkState()
{
	if($('gsstate').value == 'State' || $('gsstate').value == '')
	{
		alert("You must select a state");
		return false;
	}
	else
		return true;
}

function checkFields()
{
	if(($('gscity').value == 'City or Zipcode' || $('gscity').value == '') && ($('gsstate').value != 'State' || $('gsstate').value != '') )
	{
		alert("You must enter a city or zipcode.");
		return false;
	}
	else
		return true;
}
function changeImage(dir,cid,total){
	//find current least unhidden;
	var currentHigh=false;
	var currentLow =false;
	var next=false;
	//var problems="dir: "+dir+", cid: "+cid+", total: "+total+"<br>";
	for(var i=0; i<=total; i++){
		if($(cid+'_image_'+i)){
			if($(cid+'_image_'+i).style.display == "block"){
				currentLow=$(cid+'_image_'+i);
				//problems+="currentLow: "+cid+'_image_'+i+"<br>";
				break;
			}
		}
	}
	//if fail to find an element -- should not happen;
	if(currentLow==null || currentLow==false){
		alert('ERROR 101: Failed to find displayed image.');
		return false;
	}
	//var currhighi = i+1;
	//currentHigh= $(cid+'_image_'+currhighi)
	//problems+="currentHigh: "+cid+'_image_'+currhighi+"<br>";
	//if(currentHigh==null || currentHigh==false){
	//	alert('ERROR 102: Failed to find displayed image.');
	//	return false;
	//}
	if(dir>0){
		//dir++;
		currentLow.style.display="none";
		//problems+="currentLow is now display:none<br>";
	}else{
		currentLow.style.display="none";
		//problems+="currentHigh is now display none<br>";
	}
	var itoUnhide = i+dir;
	//problems+="itoUnhide is now: "+itoUnhide+" ("+i+"+"+dir+")<br>";
	//problems+=itoUnhide+">"+total+"<br>";
	if(itoUnhide>=total){
		itoUnhide=0;
		//currentHigh.style.display="none";
		currentLow.style.display="none";
		$(cid+'_image_0').style.display="block";
		//problems+="currentHigh is now display none, itoUnide=1 AND "+cid+"_image_0 is now display:block;<br>";
	}
	//problems+=itoUnhide+"<=0<br>";
	if(itoUnhide<0){
		itoUnhide=total-1;
		currentLow.style.display="none";
		$(cid+'_image_'+itoUnhide).style.display="block";
		//problems+="currentLow: isn ow display none, itoUnhide is now "+(total-1)+" AND "+cid+"_image_"+total+"is now display:block;<br>";
	}
	next = $(cid+'_image_'+itoUnhide);
	//error handling;
	if(next==null || next==false){
		alert('ERROR 103: Failed to find displayed image.');
	}else{
		next.style.display="block";
	}
	//problems+="<br>";
	//$(cid+'_showerr').innerHTML=$(cid+'_showerr').innerHTML+problems;
	return true;
}
function bookmarksite(title, url)
{
    if (document.all) window.external.AddFavorite(url, title);
    else if (window.sidebar) window.sidebar.addPanel(title, url, "");
}
