// JavaScript Document

	/************************************************
	 bool ValidateName(string input)
	**************************************************/
	function ValidateName(theinput){
	 var s=theinput;
	 if(s.search)
	  return (s.search(new RegExp("^[A-Za-z'0-9 ]{1,49}$","gi"))>=0);
	 else
	  return false;
	}
	 
	/******************************************************************
	 bool ValidateDate(string input)
	 Return true or false
	 if the date is valid or not.
	 acepts format (YYYY-MM-DD)
	******************************************************************/
	function ValidateDate(theinput){
		var $valid=false
		var $s=theinput;
		var $formatIsGood=false;
		var $month;
		var $day;
		var $ano;
		if($s.search){
			if($s.search(new RegExp("^[1-2]{1}[0-9]{3}[-]{1}[0-9]{2}[-]{1}[0-9]{2}$","gi"))>=0){
				$formatIsGood=true;
				$ano = parseInt($s.substr(0,4),10);
				$month = parseInt($s.substr(5,2),10);
				$day = parseInt($s.substr(8,2),10);
			}
		}
		// Test if month is valid
		if($formatIsGood && (1<=$month) && ($month<=12)){
			// Test if day is valid
			switch ($month) {
			case 2 :
				  if (($ano % 4 == 0) && (($ano % 100 != 0) || ($ano % 400 == 0))){
					if((1<=$day)&&($day<=29)) $valid = true; 
				  } else if((1<=$day)&&($day<=28)) $valid = true; 
				  break
			case 4:
			case 6:
			case 9:
			case 11:
				  if((1<=$day)&&($day<=30)){
					 $valid = true; 
				  }
				  break
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
			  if((1<=$day)&&($day<=31)){
				 $valid = true; 
			  }
			  break
			} 
		}
		return $valid
	}
	
	/******************************************************************
	 bool ValidateTime(string input)
	 Return true or false
	 if the time is valid or not.
	 acepts format (HH:MM:SS)
	******************************************************************/
	function ValidateTime(theinput){
		var $valid=false
		var $s=theinput;
		var $formatIsGood=false;
		var $hours;
		var $minutes;
		var $seconds;
		if($s.search){
			if($s.search(new RegExp("^[0-2]{1}[0-9]{1}[:]{1}[0-9]{2}[:]{1}[0-9]{2}$","gi"))>=0){
				$formatIsGood=true;
				$hours = parseInt($s.substr(0,2));
				$minutes = parseInt($s.substr(3,2));
				$seconds = parseInt($s.substr(6,2));
			}
		}
		// Test if month is valid
		if($formatIsGood && (0<=$hours) && ($hours<=23)
						&& (0<=$minutes) && ($minutes<=59)
						&& (0<=$seconds) && ($seconds<=59))
			$valid = true;
		return $valid
	}
	
	/************************************************
	 bool ValidateZip(string input)
	 Return true or false
	 if the zip is valid or not.
	 acepts leters and numbers
	**************************************************/
	function ValidateZip(theinput)
	{
	 var s=theinput;
	 if(s.search)
	  return (s.search(new RegExp("[a-zA-Z0-9]+","gi"))>=0);
	 if(s.length<3)
	  return false;
	 else
	  return true;
	}
	 
	/************************************************
	 bool ValidateEmail(string input)
	 Return true or false
	 if the email is valid or not.
	 checks for @ and .
	**************************************************/
	function ValidateEmail(theinput){
	 var s=theinput;
	 if(s.search)
	  return (s.search(new RegExp("^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}$","gi"))>=0);
	 if(s.indexOf)
	 {
	  at_character=s.indexOf('@');
	  if(at_character<=0 || at_character+4>s.length)
	   return false;
	 }
	 if(s.length<6)
	  return false;
	 else
	  return true;
	}
	 
	/************************************************
	 bool ValidatePhone(string input)
	 Return true or false
	 if the phone number is valid or not.
	 acepts - and + symbols
	**************************************************/
	function ValidatePhone(theinput){
	 var s=theinput;
	 if(s.search)
	  return (s.search(new RegExp("[-+0-9]+","gi"))>=0);
	 if(s.length<5)
	  return false;
	 else
	  return true;
	}
	 
	/******************************************************************
	 showInviteCustomer()
	******************************************************************/
	function showInviteCustomer(){
		if(document.getElementById('eventtype').value!='-1'){
			document.getElementById('divisiondiv').style.visibility='visible';
			document.getElementById('eventtypediv').style.visibility='hidden';
		} else {
			document.getElementById('divisiondiv').style.visibility='hidden';
			document.getElementById('eventtypediv').style.visibility='visible';
		}
	}

	/******************************************************************
	 ChangeEventTypeFormSelection()
	******************************************************************/
	function ChangeEventTypeFormSelection(){
		if(document.getElementById('eventtype').value!='-1'){
			document.getElementById('divisiondiv').style.visibility='visible';
		} else {
			document.getElementById('divisiondiv').style.visibility='hidden';
			document.frmRegister.division.value = -1;
			ChangeEventFormSelection();
		}
	}

	/******************************************************************
	 ChangeEventFormSelection()
	******************************************************************/
	function ChangeEventFormSelection(){
		if(olddivision!='-1')
			document.getElementById('regions_'+olddivision).style.visibility='hidden';
		document.getElementById('eventdata').style.visibility='hidden';
		division = document.frmRegister.division.value;
		if(division!='-1'){
			document.getElementById('eventdata').style.visibility='visible';
			document.getElementById('regions_'+division).style.visibility='visible';
			olddivision = division;
		}
	}

	/******************************************************************
	 ChangeDivisionFormSelection()
	******************************************************************/
	function ChangeDivisionFormSelection(){
		if(document.getElementById('division').value!='-1')
			document.getElementById('eventdiv').style.visibility='visible';
		else
			document.getElementById('eventdiv').style.visibility='hidden';
	}

	/******************************************************************
	 CheckRegionEventForm()
	******************************************************************/
	function CheckRegionEventForm(){
		if(document.frmRegister.checkregion.length>1){
			for (var x=0; x < document.frmRegister.checkregion.length; x++) {
				if(document.frmRegister.checkregion[x].checked) {
					if(document.frmRegister.allocations[x].value==0)
						document.frmRegister.allocations[x].value = 1;
				} else {
					document.frmRegister.allocations[x].value = 0;
				}
			}
		} else if(typeof(document.frmRegister.checkregion)!="undefined"){
				if(document.frmRegister.checkregion.checked) {
					if(document.frmRegister.allocations.value==0)
						document.frmRegister.allocations.value = 1;
				} else {
					document.frmRegister.allocations.value = 0;
				}
		}
		UpdateTotalAllocatedEventForm();
	}

	/******************************************************************
	 ChangeRegionEventForm()
	******************************************************************/
	function ChangeRegionEventForm(){
		if(document.frmRegister.checkregion.length>1){
			for (var x=0; x < document.frmRegister.checkregion.length; x++) {
				if(document.frmRegister.allocations[x].value!=0) {
					document.frmRegister.checkregion[x].checked=true;
				}
			}
		} else if(typeof(document.frmRegister.checkregion)!="undefined"){
			if(document.frmRegister.allocations.value!=0) {
				document.frmRegister.checkregion.checked=true;
			}
		}
		UpdateTotalAllocatedEventForm();
	}

	/******************************************************************
	 UpdateTotalAllocatedEventForm()
	******************************************************************/
	function UpdateTotalAllocatedEventForm(){
		if(document.frmRegister.total.length>1){
			for (var x=0; x < document.frmRegister.total.length; x++)
				document.frmRegister.total[x].value = 0;
			for (var x=0; x < document.frmRegister.allocations.length; x++) {
				document.frmRegister.total[document.frmRegister.divisionind[x].value].value = 
					parseInt(document.frmRegister.total[document.frmRegister.divisionind[x].value].value) + parseInt(document.frmRegister.allocations[x].value);
			} 
		} else if(typeof(document.frmRegister.total)!="undefined"){
			document.frmRegister.total.value = 0;
			if(document.frmRegister.allocations.length>1){
				for (var x=0; x < document.frmRegister.allocations.length; x++) {
					document.frmRegister.total.value = 
						parseInt(document.frmRegister.total.value) + parseInt(document.frmRegister.allocations[x].value);
				} 
			} else {
				document.frmRegister.total.value = document.frmRegister.allocations.value;
			}
		}
	}

	/******************************************************************
	 CheckEventForm()
	******************************************************************/
	function CheckEventForm(){
		var error="";
	
		if(document.frmRegister.division.value=='-1')
			error+="\tSelect a Division\n";
		if(!ValidateName(document.frmRegister.eventname.value))
			error+="\tEvent Name\n";

		document.frmRegister.namesdueby.value = document.frmRegister.namesduebyYear.value+
								"-"+document.frmRegister.namesduebyMonth.value+
								"-"+document.frmRegister.namesduebyDay.value;
		reminderDate1 = document.frmRegister.reminderYear1.value+
								"-"+document.frmRegister.reminderMonth1.value+
								"-"+document.frmRegister.reminderDay1.value;
		reminderDate2 = document.frmRegister.reminderYear2.value+
								"-"+document.frmRegister.reminderMonth2.value+
								"-"+document.frmRegister.reminderDay2.value;
		reminderDate3 = document.frmRegister.reminderYear3.value+
								"-"+document.frmRegister.reminderMonth3.value+
								"-"+document.frmRegister.reminderDay3.value;
		if(!ValidateDate(document.frmRegister.namesdueby.value)&&
                            (ValidateDate(reminderDate1)||ValidateDate(reminderDate2)||ValidateDate(reminderDate3))
                   )
			error+="\tNames Due By\n";

		document.frmRegister.eventdate.value = document.frmRegister.eventdateyear.value+
											"-"+document.frmRegister.eventdatemonth.value+
											"-"+document.frmRegister.eventdateday.value;
		if(!ValidateDate(document.frmRegister.eventdate.value))
			error+="\tEvent Date\n";

		hour = parseInt(document.frmRegister.eventtimehour.value);
		
                if(document.frmRegister.eventtimeampm.value=='am'){
                    if(hour==12)
                        hour = 0; // 12AM = 0HS
                    else
                        hour = document.frmRegister.eventtimehour.value;
                } else {
                    if(hour<12)
                        hour = parseInt(hour)+12;
                }

                if(hour<10) hour = "0"+hour;
		document.frmRegister.eventtime.value = hour+":"+document.frmRegister.eventtimeminutes.value+":00";
		if(!ValidateTime(document.frmRegister.eventtime.value))
		//if(document.frmRegister.eventtimeminutes.value==-1 && document.frmRegister.eventtimehour.value==-1)
			error+="\tEvent Time\n";
		
		for (var x=0; x < document.frmRegister.allocations.length; x++) {
			if((error=="")&&(document.frmRegister.allocations[x].value< 0))
				error+="\tThe allocated amount must be greater than 0\n";
		}

		if(error!="")
			alert("Error! Please check:\n"+error);
		else {
			document.frmRegister.submit();
		}
		return;
	}

	/******************************************************************
	 CheckRequestForm()
	******************************************************************/
	function CheckRequestForm(clientID){
		document.getElementById('amount').value = document.getElementById('amount_'+clientID).value;
		document.frmRequest.clientID.value=clientID;
		document.frmRequest.submit();
	}

	/******************************************************************
	 CheckRegisterFormStep1()
	******************************************************************/
	function CheckRegisterFormStep1(){
		var error="";
		if(document.frmRegister.fname.value=="" || document.frmRegister.fname.value.lenght<3)
			error="First Name\n";
		if(document.frmRegister.lname.value=="" || document.frmRegister.lname.value.lenght<3)
			error+="Last Name\n";	
		if(document.frmRegister.address1.value=="" || document.frmRegister.address1.value.lenght<10)
			error+="Address\n";
		if(document.frmRegister.city.value=="" || document.frmRegister.city.value.lenght<5)
			error+="City\n";
		if(document.frmRegister.state.value==-1)
			error+="State\n";
		if(!ValidateZip(document.frmRegister.zip.value))
			error+="Zip\n";		
		if(!ValidateEmail(document.frmRegister.email.value))
			error+="Email\n";			
		if(!ValidatePhone(document.frmRegister.ophone.value))
			error+="Office Phone\n";
		if(document.frmRegister.password.value=="" || document.frmRegister.password.value.lenght<5)
			error+="Password\n";		
		if(document.frmRegister.password.value!=document.frmRegister.passwordcheck.value)
			error+="Confirmation Password Is Different.\n";				
		if(error!="")
			alert("Error! Please check:\n"+error);
		else {
			document.getElementById('reg_step_1').style.display='none';
			document.getElementById('reg_step_2').style.display='block';
			document.frmRegister.reg_step.value=2;
		}
		return;
	}

	/******************************************************************
	 BackRegisterFormToStep1()
	******************************************************************/
	function BackRegisterFormToStep1(){
			document.getElementById('reg_step_2').style.display='none';
			document.getElementById('reg_step_1').style.display='block';
			document.frmRegister.reg_step.value=1;
		return;
	}

	/******************************************************************
	 CheckRegisterFormStep2()
	******************************************************************/
	function CheckRegisterFormStep2(){
		error = "Please selected a or more regions.\n";
		for (i=1; (i<document.frmRegister.regions.length)&&(error!=""); i++)
			if(document.frmRegister.regions[i].checked == true) error="";
		if(error!="")
			alert("Error!:\n"+error);
		else {
			document.frmRegister.reg_step.value=3;
			document.frmRegister.submit();
		}
		return;
	}

	/******************************************************************
	 DeleteRecord(loc)
	******************************************************************/
	function DeleteRecord(loc){
		if(confirm('are you sure you want to remove this record?')) document.location.href=loc;
	}
	
	/******************************************************************
	 CheckDocumentUploadForm()
	******************************************************************/
	function CheckDocumentUploadForm(){
		if(document.getElementById('frmDocumentUpload').idevent.value=='-1')
			alert('Select Event');
		else
			document.getElementById('frmDocumentUpload').submit();
	}
	
	/******************************************************************
	 CheckGolfTeamForm()
	******************************************************************/
	function CheckGolfTeamForm(){
		var error="";
		if(document.frmRegister.regionID.value=='')
			error+="Region\n";
		if(document.frmRegister.idEvent.value=='')
			error+="Event\n";
		if(document.frmRegister.name.value=='')
			error+="Team\n";
		if((document.frmRegister.player1Name.value=='')||(document.frmRegister.player2Name.value=='')||(document.frmRegister.player3Name.value=='')||(document.frmRegister.player4Name.value==''))
			error+="Player\n";
		if((document.frmRegister.player1Company.value=='')||(document.frmRegister.player2Company.value=='')||(document.frmRegister.player3Company.value=='')||(document.frmRegister.player4Company.value==''))
			error+="Company\n";
		if(error!="")
			alert("Error!:\n"+error);
		else {
			document.frmRegister.addEdit.value=2; 
			document.frmRegister.submit();
		}
		return;
	}

	/******************************************************************
	 AddCustomerCheck()
	******************************************************************/
	
	function AddCustomerCheck(){
		var error="";
                
		if(document.frmRegister.Companyname.value=="" || document.frmRegister.Companyname.value.lenght<3)
			error="Company Name\n";
			
                if(document.frmRegister.customertype.value=="3"){
                    if(document.frmRegister.SHIPPINGSTREET.value=="" && document.frmRegister.BILLINGSTREET.value=="")
                            error+="Address\n";
                    if(document.frmRegister.SHIPPINGCITY.value=="" && document.frmRegister.BILLINGCITY.value=="")
                            error+="City\n";
                    if(document.frmRegister.SHIPPINGSTATE.value==-1 && document.frmRegister.BILLINGSTATE.value==-1)
                            error+="State\n";
                    if(!ValidateZip(document.frmRegister.SHIPPINGPOSTALCODE.value) && !ValidateZip(document.frmRegister.BILLINGPOSTALCODE.value))
                            error+="Zip\n";
                } else if(document.frmRegister.customertype.value=="2") {
                    if(document.frmRegister.SHIPPINGSTREET.value=="" && document.frmRegister.BILLINGSTREET.value=="")
                            error+="Address\n";
                    if(document.frmRegister.SHIPPINGCITY.value=="" && document.frmRegister.BILLINGCITY.value=="")
                            error+="City\n";
                    if(document.frmRegister.SHIPPINGSTATE.value==-1 && document.frmRegister.BILLINGSTATE.value==-1)
                            error+="State\n";
                    if(!ValidateZip(document.frmRegister.SHIPPINGPOSTALCODE.value) && !ValidateZip(document.frmRegister.BILLINGPOSTALCODE.value))
                            error+="Zip\n";		
                    if(!ValidateEmail(document.frmRegister.EMAIL.value))
                            error+="Email\n";			
                    if(!ValidatePhone(document.frmRegister.PHONE.value))
                            error+="Phone\n";
                    if(document.frmRegister.ContactFIRSTNAME.value=="" || document.frmRegister.ContactFIRSTNAME.value.lenght<3)
                            error+="First Name\n";
                    if(document.frmRegister.ContactLASTNAME.value=="" || document.frmRegister.ContactLASTNAME.value.lenght<3)
                            error+="Last Name\n";
                } else {
                    if(document.frmRegister.Customer_ID.value=="")
                            error+="Customer ID\n";
                    
                }

                if(document.frmRegister.Division.value=="")
                        error+="Division\n";
                if(document.frmRegister.Region.value=="")
                        error+="Region\n";
                
		
			
		if(error!="")
			alert("Error! Please check:\n"+error);
		else {
		document.frmRegister.addEdit.value=2; 
 	    document.frmRegister.submit();	
		}
		return;
	}

	/******************************************************************
	 changeCustomerType()
	******************************************************************/
	
	function changeCustomerType(){
		if(document.frmRegister.customertype.value=='1') {
			document.frmRegister.Customer_ID.value='';
			document.getElementById('cidlabel').style.visibility='visible';
			document.getElementById('cidinput').style.visibility='visible';
		} else {
			document.getElementById('cidlabel').style.visibility='hidden';
			document.getElementById('cidinput').style.visibility='hidden';
			if(document.frmRegister.customertype.value=='2') document.frmRegister.Customer_ID.value='9999999';
			if(document.frmRegister.customertype.value=='3') document.frmRegister.Customer_ID.value='9999998';
			if(document.frmRegister.customertype.value=='4') document.frmRegister.Customer_ID.value='9999997';
		}
	}

	/******************************************************************
	 customerInvite()
	******************************************************************/

	function customerInvite(clientID){
            document.frmEvent.amount.value=document.getElementById("amount"+clientID).value;
            document.frmEvent.clientID.value=clientID;
            if(document.frmEvent.amount.value>0){
                document.frmEvent.submit();
            } else {
                alert("You must choose a Ticket Quantity");
            }
        }