
// JavaScript Document
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

var CurrentForm; 
var formInputs = new Array();
function validateForm(oForm){
	CurrentForm = oForm;
	
	var inputFields = oForm.getElementsByTagName('input');
	var selectFields = oForm.getElementsByTagName('select');
	var textareas = oForm.getElementsByTagName('textarea');
	
	for(i = 0; i <= inputFields.length; i++){
			
			if(inputFields[i] ){
				if(inputFields[i].id !='submit'){
				
				formInputs[i] = inputFields[i];
				}
				 
			}
			 
		}	
		
 
		
		for(i = 0; i <=  selectFields.length; i++){
			
			if(selectFields[i]){
				
				formInputs.push(selectFields[i]);
				 
			}
			 
		}
		
		 
		 
		for(i = 0; i <= textareas.length ; i++){
			 
			if(textareas[i]){				
				formInputs.push(textareas[i]);
				 
			}
			 
		}
	
	
		//validate values
		var ErrorExists = false;
		
		for(i = 0; i <= formInputs.length; i++){
				 
			try{
				if(formInputs[i]){
					if(formInputs[i].id){
					
						validateMe(formInputs[i]); 
						
						if(!ErrorExists && formInputs[i].ErrorExist !=undefined){
						   ErrorExists = formInputs[i].ErrorExist; 
						  
						}
					}
				}
			}
			catch(e){
			  alert(e);
			}
				 
		}
	
	 
	 
		 
	return  !ErrorExists;
	
	
	
	
	
	
	}
	
	
	
function validateMe(obj){
		
		var RegExpDate = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
	 
  
	
		switch(obj.name){
		
			case 'uEmail':
				//Validate Email
				var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
				var regex = new RegExp(emailReg);
				if(!regex.test(obj.value)){
					 
					_ShowError(obj,'Please Enter A Valid Email');						
					
					 obj.ErrorExist = true;
				}else{
					
					removeError(obj,"");						
					obj.ErrorExist = false;
				}
		
			
				
			break;
		 
		 	
			case 'dtStartDate':
					//Validate Date
					 
					var regex = new RegExp(RegExpDate);
					if(!regex.test(obj.value)){
						 
						_ShowError(obj,'Please Enter A Valid Arrival Date');						
						
						 obj.ErrorExist = true;
					}else{
						
						removeError(obj,"");						
						obj.ErrorExist = false;
					}

			break;
			
				
			case 'ReportTo':
					//Validate Date
					 
					var regex = new RegExp(RegExpDate);
					if(!regex.test(obj.value)){
						 
						_ShowError(obj,'Please Enter A Valid Departure Date');						
						
						 obj.ErrorExist = true;
					}else{
						
						removeError(obj,"");						
						obj.ErrorExist = false;
					}

			break;
			
			case 'BoatLength':
			
					if(obj.value.trim() == '') {
							
						_ShowError(obj,'Please Enter The Length of the Boat');		
						 obj.ErrorExist = true; 
					}else{
						removeError(obj,"");	
						obj.ErrorExist = false;
					}	
			break;
			
			case 'uName':
			
					if(obj.value.trim() == '') {
							
						_ShowError(obj,'Please Enter Your First Name');		
						 obj.ErrorExist = true; 
					}else{
						removeError(obj,"");	
						obj.ErrorExist = false;
					}	
			break;
			
			
			case 'uLName':
			
			 		if(obj.value.trim() == '') {
							
						_ShowError(obj,'Please Enter Your Last Name');		
						 obj.ErrorExist = true;  
					}else{
						removeError(obj,"");	
						obj.ErrorExist = false;
					}
			
				
			break;
		 
			
			
			case 'uMessage':
			
					if(obj.value.trim() == '') {
							
						_ShowError(obj,'Please Enter Your Comments');		
						 obj.ErrorExist = true;  
					}else{
						removeError(obj,"" );	
						obj.ErrorExist = false;
					}	
			break;
			
		 
			
			
			default:			
			
				setClass(obj, 'inputWrapper');	
		}
		
		

	}
	
	function _ShowError(ELocation, ErrorMessage){
		 
		 
	 	ELocation.className = 'text_longWrong';
		var EMonitor = document.getElementById('ErrorMon');
		EMonitor.style.display ='block';
			if(!document.getElementById(ELocation.id + 'EM')){//IF ELEMENT YOU ARE TRYING TO REMOVE DOESN'T EXIST				
				
				var EM_Message = document.createElement('li'); 
				
				EM_Message.setAttribute('class', 'EM_Message');
				EM_Message.setAttribute('id', ELocation.id + 'EM');
				EM_Message.innerHTML = ErrorMessage;
				EMonitor.appendChild(EM_Message);
			}
			document.location = '#ErrorScreen';
			
		
	
	}
	 
	
	function removeError(ELocation){

		var EMonitor = document.getElementById('ErrorMon');
	 
		if(document.getElementById(ELocation.id + 'EM')){ //IF ELEMENT YOU ARE TRYING TO REMOVE EXIST
					
			var ERemoveLocation = document.getElementById(ELocation.id +'EM');

		 
			EMonitor.removeChild(ERemoveLocation);
		}
	
	}
 
 
 function showSlipForm(){
	 
	 document.getElementById('MarinaForm').style.display = 'block';
	 document.getElementById('marinaCopy').style.display = 'none';
	 
	 
	 
	 }