function checkArray(form, arrayName) 
{ 
	var retval = new Array(); 
	for(var i=0; i < form.elements.length; i++) 
	{ var el = form.elements[i]; 
		if(el.type == "checkbox" && el.name == arrayName && el.checked) 
		{ retval.push(el.value); 
		} 
	} 
	return retval; 
} 


	 	var dtCh= "/";
		var minYear=1900;
		var maxYear=2100;

		function isInteger(s)
		{
					var i;
				    for (i = 0; i < s.length; i++)
					{   
				        var c = s.charAt(i);
				        if (((c < "0") || (c > "9"))) return false;
				    }
				    return true;
				}
		
		function daysInFebruary (year)
				{
				    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
				}
				function DaysArray(n) 
				{
					for (var i = 1; i <= n; i++)
					 {
						this[i] = 31
						if (i==4 || i==6 || i==9 || i==11) 
						{this[i] = 30}
						if (i==2) {this[i] = 29}
				   } 
				   return this
				}
		
		function stripCharsInBag(s, bag)
		{
					var i;
				    var returnString = "";
				    for (i = 0; i < s.length; i++)
					{   
				        var c = s.charAt(i);
				        if (bag.indexOf(c) == -1) returnString += c;
				    }
				    return returnString;
				}
		
		
		function isDate(dtStr)
				{
					var daysInMonth = DaysArray(12)
					var pos1=dtStr.indexOf(dtCh)
					var pos2=dtStr.indexOf(dtCh,pos1+1)
					var strMonth=dtStr.substring(0,pos1)
					var strDay=dtStr.substring(pos1+1,pos2)
					var strYear=dtStr.substring(pos2+1)
					strYr=strYear
					if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
					if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
					for (var i = 1; i <= 3; i++)
					 {
						if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
					}
					month=parseInt(strMonth)
					day=parseInt(strDay)
					year=parseInt(strYr)
					if (pos1==-1 || pos2==-1)
					{
						alert("The date format should be : MM/DD/YYYY")
						return false
					}
					if (strMonth.length<1 || month<1 || month>12)
					{
						alert("Please enter a valid month")
						return false
					}
					if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
					{
						alert("Please enter a valid day")
						return false
					}
					if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
					{
						alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
						return false
					}
					if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
					{
						alert("Please enter a valid date")
						return false
					}
				return true
				}
				function NetE_Validate_Zip (objval)
				{
					if (objval.length == 0)
						return true;
					if (objval.length != 5 && objval.length != 10)
						return false;
		
					if (objval.charAt(0) == "-" || objval.charAt(0) == "+")
						return false;
					if (! NetE_Validate_Integer (objval.substring(0,5)))
						return false;
					if (objval.length == 5)
						return true;
					if (objval.charAt(5) != "-" && objval.charAt(5) != " ")
						return false;
		
					if (objval.charAt(6) == "-" || objval.charAt(6) == "+")
						return false;
					return ( NetE_Validate_Integer (objval.substring(6,10)));
				}
				function NetE_Validate_Zip1 (objval)
				{
					if (objval.length == 0)
						return true;
					if (objval.length != 6)
						return false;
					if (objval.charAt(0) == "-" || objval.charAt(0) == "+")
						return false;
					if (! NetE_Validate_Integer (objval.substring(0,6)))
						return false;
					if (objval.length == 6)
						return true;
					if (objval.charAt(6) != "-" && objval.charAt(6) != " ")
						return false;
					if (objval.charAt(7) == "-" || objval.charAt(7) == "+")
						return false;
					return ( NetE_Validate_Integer (objval.substring(1,6)));
				}
				function NetE_Validate_Integer (objval)
				{
					 if (objval.length == 0)
						return true;
					var check_char=-1;
					for(var j=0 ; j < objval.length; j++)
					{
						if( objval.charAt(j) == "." )
						{
							check_char = j;
							break;
						}
					}
		
					if (check_char < 0)
						return NetE_Validate_Number(objval);
					else
						return false;
				}
		
				function  NetE_Validate_Number ( objval )
				{
					if (objval.length == 0) return true;
		
					var start_format = " 0123456789$.";
					var number_format = " .0123456789";
					var check_char=-1;
					var decimal = false;
					var trailing_blank = false;
					var digits = false;
		
					for(var j=1 ; j < start_format.length; j++)
						if( objval.charAt(0) == start_format.charAt(j) )
						{
							check_char = j;
							break;
						}
		
					if (check_char == 1)
						decimal = true;
					else if (check_char < 1)
						return false;
		
					for (var i = 1; i < objval.length; i++)
					{
						check_char =-1;
						for( j=1 ; j <number_format.length; j++)
							if( objval.charAt(i) == number_format.charAt(j) )
							{
								check_char = j;
								break;
							}
							if (check_char < 0)
								return false;
							else if (check_char == 1)
							{
								if (decimal)
									return false;
								else
									decimal = true;
							}
							else if (check_char == 0)
							{
								if (decimal || digits)
									trailing_blank = true;
							}
							else if (trailing_blank)
								return false;
							else
								digits = true;
					}
					return true
				}
			 function isBlank(s)
				{
					var len,k,flg;
					flg=true;
					if(s!=null)
					{
						len=s.length;
						for(k=0;k<len;k++)
						{
							if(s.substring(k,k+1) != " ")
							flg=false;
						}
					}
					return flg;
				}
				function ischarc(objval)
			      {
					    var i=0;
					    var j=0;
					    var k=objval.length;
			            for (i=0;i<k;i++)
					     {
						   j=objval.charCodeAt(i); 
						   if(j > 64 && j < 91) 
						    {
							   flg=false;
						    }	
						   else if (j > 96 && j < 123)
						    {
						       flg=false;
						    }
						    else
						    {
							    flg=true;
							break;
						    }	
			            }
							     return flg;
				   }
			
			function validate()
			{
			var f = window.document.frmwedding;
				if(isBlank(f.dateproposal.value))
				{
					alert("Please enter Date of proposal received.");
					f.dateproposal.value="";
					f.dateproposal.focus();
					return false;
				}
				
	     		 if(!isBlank(f.dateproposal.value))
		 	     {	 
	               	var value = new Date();
					var mm= value.getMonth()+1;
					var dd= value.getDate();
					var yy=value.getFullYear();
					var currDate = new Date(mm+"/"+dd+"/"+yy);

					var strArrivalDate = new Date(f.dateproposal.value);

					
					
					
					if(!isDate(f.dateproposal.value))
					{   f.dateproposal.value="";
	                    f.dateproposal.focus();
						return false;
					}
					if(strArrivalDate < currDate)
					{ 
	                   alert("Date proposal received cannot be a past date.");
					    f.dateproposal.value="";
						f.dateproposal.focus();
						return false;
					}
	            }
					if(isBlank(f.first.value))
				    {
					
					alert("Please enter First Name.")
					f.first.value="";
					f.first.focus();
					return false;
					}
					
					if(isBlank(f.last.value))
					{   
						alert("Please enter Last Name.")
						f.last.value="";
						f.last.focus();
						return false;
					}
					if(isBlank(f.txtFinancePartner.value))
					{   
						alert("Please enter Fiancé/Partner.")
						f.txtFinancePartner.value="";
						f.txtFinancePartner.focus();
						return false;
					}
					
					if(isBlank(f.street.value))
					{   
						alert("Please enter Street.")
						f.street.value="";
						f.street.focus();
						return false;
					}
					if(isBlank(f.city.value))
					{   
						alert("Please enter City.")
						f.city.value="";
						f.city.focus();
						return false;
					}
					if(isBlank(f.state.value))
					{   
						alert("Please enter State.")
						f.state.value="";
						f.state.focus();
						return false;
					}
					if(isBlank(f.zip.value))
					{
						alert("Please enter Zip.");
						f.zip.value="";
						f.zip.focus();
						return false;
					}
					/*
					if(!(NetE_Validate_Zip(f.zip.value)))
					{
						alert("Please enter a valid Zip similar to either of the 2 formats: 99999-9999 or 99999.");
						f.zip.value="";
						f.zip.focus();
						return false;
					}
					*/
					var txtEmailStr1 = f.email.value;
					if(isBlank(txtEmailStr1))
					{
						alert("Please enter E-mail.");
						f.email.value="";
						f.email.focus();
						return false;
					}
					var txtEmailPat=/^(.+)@(.+)$/
					var specialChars="\\(\\)<>\\@%&,;:\\\\\\\"\\.\\[\\]"
					var validChars="\[^\\s" + specialChars + "\]"
					var quotedUser="(\"[^\"]*\")"
					var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
					var atom=validChars + '+'
					var word="(" + atom + "|" + quotedUser + ")"
					var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
					var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
					var matchArray=txtEmailStr1.match(txtEmailPat);
					if (matchArray==null)
					{
						alert("Please enter valid E-mail.");
						f.email.value="";
						f.email.focus();
						return false;
					}
					var user=matchArray[1]
					var domain=matchArray[2]
		
					if (user.match(userPat)==null)
					{
					    alert("Please enter valid E-mail.");
					    f.email.value="";
						f.email.focus();
					    return false;
					}
		
					var IPArray=domain.match(ipDomainPat);
					if (IPArray!=null)
					{
						for (var i=1;i<=4;i++)
						{
							if (IPArray[i]>255)
							{
						        alert("Destination IP address in E-mail is invalid!");
						       	f.email.value="";
								f.email.focus();
								return false;
						    }
					    }
					}
					var domainArray=domain.match(domainPat);
					if (domainArray==null)
					{
						alert("The domain name in E-mail does not seem to be valid.");
						f.email.value="";
						f.email.focus();
						return false;
					}
		
					var atomPat=new RegExp(atom,"g");
					var domArr=domain.match(atomPat);
					var len=domArr.length;
					if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
					{
					   alert("The E-mail must end in a three-letter domain, or two letter country.");
					   f.email.value="";
					   f.email.focus();
					   return false;
					}
					if (len<2)
					{
					   var errStr="The E-mail is missing a hostname!";
					   alert(errStr);
					   f.email.value="";
					   f.email.focus();
					   return false;
					}	
					if(isBlank(f.phone1.value))
						{
							alert("Please enter Phone.")
							f.phone1.value="";
							f.phone1.focus();
							return false;
						}
						if(isNaN(f.phone1.value))
						{
							alert("Please enter valid Phone.")
							f.phone1.value="";
							f.phone1.focus();
							return false;
						}
						var p1=f.phone1.value.length;
						if(p1!=3)
						{
							alert("Please enter valid Phone.")
							f.phone1.value="";
							f.phone1.focus();
							return false;
						}
						if(isBlank(f.phone2.value))
						{
							alert("Please enter Phone.")
							f.phone2.value="";
							f.phone2.focus();
							return false;
						}
						if(isNaN(f.phone2.value))
						{
							alert("Please enter valid Phone.")
							f.phone2.value="";
							f.phone2.focus();
							return false;
						}
						var p2=f.phone2.value.length;
						if(p2!=3)
						{
							alert("Please enter valid Phone.")
							f.phone2.value="";
							f.phone2.focus();
							return false;
						}
						if(isBlank(f.phone3.value))
						{
							alert("Please enter Phone.")
							f.phone3.value="";
							f.phone3.focus();
							return false;
						}
						if(isNaN(f.phone3.value))
						{
							alert("Please enter valid Phone.")
							f.phone3.value="";
							f.phone3.focus();
							return false;
						}
						var p3=f.phone3.value.length;
						if(p3!=4)
						{
							alert("Please enter valid Phone.")
							f.phone3.value="";
							f.phone3.focus();
							return false;
						}
						if(!isBlank(f.phone4.value))
						{
							if(isNaN(f.phone4.value))
							{
								alert("Please enter valid Phone Ext.");
								f.phone4.value="";
								f.phone4.focus();
								return false;
							}
						}
					
					if((document.frmwedding.services1.checked==false) && (document.frmwedding.services2.checked==false) && (document.frmwedding.services3.checked==false))
					{
						alert("Please select Which event are you interested in?.")
						f.services1.focus();
						return false;			
					}
								
					
					/*
					
					if((document.frmwedding.services[0].checked==false) && (document.frmwedding.services[1].checked==false) && (document.frmwedding.services[2].checked==false))
					{
						alert("Please select Which event are you interested in?.")
						f.services[0].focus();
						return false;			
					}
					
					*/
					
					
					if(isBlank(f.date1.value))
					{
						alert("Please enter Event Date.")
						f.date1.value="";
						f.date1.focus();
						return false;
					}
						
					if(!isBlank(f.date1.value))
				     {	 
			                 var value = new Date();
							var mm= value.getMonth()+1;
							var dd= value.getDate();
							var yy=value.getFullYear();
							var currDate = new Date(mm+"/"+dd+"/"+yy);

							var strArrivalDate = new Date(f.date1.value);
							if(!isDate(f.date1.value))
							{   f.date1.value="";
			                    f.date1.focus();
								return false;
							}
							if(strArrivalDate < currDate)
							{ 
			                    alert("Event Date cannot be a past date.");
								f.date1.value="";
								f.date1.focus();
								return false;
							}
	            	}
					if(isBlank(f.guests.value))
					{
						alert("Please enter Number of guests.");
							f.guests.value="";
							f.guests.focus();
							return false;
					}
					else if(isNaN(f.guests.value))
					{
						alert("Please enter Number of guests in number.");
							f.guests.value="";
							f.guests.focus();
							return false;
					}
					if(isBlank(f.guestrooms.value))
					{
						alert("Please enter Number of guestrooms.");
							f.guestrooms.value="";
							f.guestrooms.focus();
							return false;
					}
					else if(isNaN(f.guestrooms.value))
					{
						alert("Please enter Number of guestrooms in number.");
							f.guestrooms.value="";
							f.guestrooms.focus();
							return false;
					}
					
				  if(f.rbFlexDate[0].checked==false && f.rbFlexDate[1].checked==false)
					{   
						alert("Please Select option Flexible Dates.")
						f.rbFlexDate[0].focus();
						return false;
					}	
						
						
					/*if(f.prefweekDays.value == "")
					{   
						alert("Please Select Preferred days of the week.")
						f.prefweekDays.focus();
						return false;
					}*/
					
					//var userArray = document.forms['frmwedding'].elements['prefweekDays[]'].value;
					//var userArray = document.forms['frmwedding'];
					//alert("test"+userArray)
					
					
					if(document.frmwedding["prefweekDays[]"].value == "")
					{
						alert("Please Select Preferred days of the week.")
						document.frmwedding["prefweekDays[]"].focus();
						return false;
					}
					
					
					if((document.frmwedding.Response1.checked==false) && (document.frmwedding.Response2.checked==false) && (document.frmwedding.Response3.checked==false) && (document.frmwedding.Response4.checked==false))
					{
						alert("Please select option for us to respond.")
						f.Response1.focus();
						return false;			
					}
					
					if(f.projBudget.value == "")
					{   
						alert("Please Select Projected budget.")
						f.projBudget.focus();
						return false;
					}	 
					if(f.rbWeddPlanner[0].checked==false && f.rbWeddPlanner[1].checked==false)
					{   
						alert("Have you hired a wedding planner ?")
						f.rbWeddPlanner[0].focus();
						return false;
					}	
					
					
			}
	
	
