// value validation

function valuevalidation(entered, min, max, alertbox, datatype)

{

	// Value Validation by Henrik Petersen / NetKontoret

	// Explained at www.echoecho.com/jsforms.htm

	// Please do not remove this line and the two lines above.

	with (entered)

	{

		checkvalue=parseFloat(value);

		if (datatype)

		{

			smalldatatype=datatype.toLowerCase();

			if (smalldatatype.charAt(0)=="i")

			{

				checkvalue=parseInt(value)

			};

		}

		if ((parseFloat(min)==min && checkvalue<min) || (parseFloat(max)==max && checkvalue>max) || value!=checkvalue)

		{

			if (alertbox!="")

			{

				alert(alertbox);

			}

			return false;

		}

		else

		{

			return true;

		}

	}

}



// digit validation

function digitvalidation(entered, min, max, alertbox, datatype)

{

	// Digit Validation by Henrik Petersen / NetKontoret

	// Explained at www.echoecho.com/jsforms.htm

	// Please do not remove this line and the two lines above.

	with (entered)

	{

		checkvalue=parseFloat(value);

		if (datatype)

		{

			smalldatatype=datatype.toLowerCase();

			if (smalldatatype.charAt(0)=="i")

			{

				checkvalue=parseInt(value);

				if (value.indexOf(".")!=-1)

				{

					checkvalue=checkvalue+1

				}

			};

		}

		if ((parseFloat(min)==min && value.length<min) || (parseFloat(max)==max && value.length>max) || value!=checkvalue)

		{

			if (alertbox!="")

			{

				alert(alertbox);

			}

			return false;

		}

		else

		{

			return true;

		}

	}

}



//  empty validation

function emptyvalidation(entered, alertbox)

{

	// Emptyfield Validation by Henrik Petersen / NetKontoret

	// Explained at www.echoecho.com/jsforms.htm

	// Please do not remove this line and the two lines above.

	with (entered)

	{

		if (value==null || value=="")

		{

			if (alertbox!="") 

			{

				alert(alertbox);

			}

			return false;

		}

		else

		{

			return true;

		}

	}

}



// email validation

function emailvalidation(entered, alertbox)

{

	// E-mail Validation by Henrik Petersen / NetKontoret

	// Explained at www.echoecho.com/jsforms.htm

	// Please do not remove this line and the two lines above.

	with (entered)

	{

		apos=value.indexOf("@"); 

		dotpos=value.lastIndexOf(".");

		lastpos=value.length-1;

		if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2) 

		{

			if (alertbox) {alert(alertbox);} return false;}

			else

			{

				return true;

			}

		}

}



function digitvalidation(entered, min, max, alertbox) {

	if ((entered.value.length > max) || (entered.value.length < min)) {

		alert(alertbox);

		return false;

	} else {

		return true;

	}

}

function dateConverter(inputDate,field)
{
	if(inputDate !="" )
	{
		if (inputDate.length == 10 )
		{
			var convertedDate = new Date();
			var separator_1 = inputDate.indexOf("-",0);
			var separator_2 = inputDate.indexOf("-",4);
					
			if (separator_1 == 2 && separator_2== 5)	
			{		
				var inputDay = inputDate.substring(0,separator_1);
				var inputMonth = inputDate.substring(separator_1+1,separator_2)-1;
				var inputYear = inputDate.substring(separator_2+1,inputDate.length);
				
				var maxFeb = 0;
				var max31 = 31;
				var max30 = 30;
			
				if (inputYear%4 == 0){maxFeb = 29;} else{maxFeb = 28;}
				
				if (inputYear < 1900 || isNaN(inputYear) || inputYear > 2500) 
				   {alert("Please enter the correct year for "+field); return false;}
				else
				{
					if (inputMonth < 0 || inputMonth > 12 || isNaN(inputMonth)) 
						{alert("Please enter the correct month for "+field); return false;}
					else
					{
						if (inputMonth == 1)
						{
							if (inputDay < 0 || inputDay > maxFeb || isNaN(inputDay)) 
							{alert("Febuary in "+inputYear+" end at "+maxFeb+" for " +field); return false;}
						}
						else
						{
							if(inputMonth == 0 || inputMonth == 2 || inputMonth == 4|| inputMonth ==6 ||inputMonth ==7||inputMonth == 9|| inputMonth == 11)
							{
								if (inputDay < 0 || inputDay > max31 || isNaN(inputDay)) 
								 {alert("This month end at "+max31+"st for " +field); return false;}
							}
							else
							{
								if(inputMonth == 3 || inputMonth == 5 || inputMonth == 8|| inputMonth ==10)
								{
									if (inputDay < 0 || inputDay > max30 || isNaN(inputDay)) 
									{alert("This month end at "+max30+"th for " +field); return false;}
								}
								else
								{
									alert("Please enter the correct date between 0 and 31 for "+field+".");
									return false;
								}
							}
						}
					}
				}
				
		        convertedDate.setFullYear(inputYear,inputMonth,inputDay);
			
				return convertedDate;
			} else
			{
				alert("Please enter the correct format for the "+field+" date.");
				return false;
			}
		}
		else
		{
			alert("Please enter the date in DD-MM-YYYY format for "+field+".");
			return false;
		}
	}
	else
		return "nodate";
}

				
function eventDateValidation()
{
	var datevalidator = 0;
	var startdate;
	var enddate;
	var eventStatusField;
	
	eventStatusField = document.getElementById("event_status");
	theForm = document.admin_form;				
	with(theForm)
	{
		
		nowdate = new Date();
		startdate = dateConverter(event_date_start.value,"start date");	
		enddate = dateConverter(event_date_end.value,"end date");	
		
		if(startdate == false)
		{
				event_date_start.focus();
				return false;
		}	
		else
		{
			if(startdate != "nodate")
			{
				datevalidator++;
			}	
		}	

		if(enddate == false )
		{
			event_date_end.focus();
			return false;
					
		}
		else
		{
			if(enddate != "nodate")
			{
				datevalidator++;
			}	
		}	
		
		if(datevalidator == 2)
		{
			if (event_date_start.disabled == false)
			{
				if(startdate < nowdate)
				{
					alert("The date has been passed, Please enter another date for event start date.");
					event_date_start.focus();
					return false;
				}
			}
			
			if(event_date_end.disabled == false)
			{			
				if(enddate < nowdate)
				{
					alert("The date has been passed, Please enter another date for event end date.");
					event_date_end.focus();
					return false;
				}
			}
			
		 	if(startdate > enddate || enddate < startdate ) 
			{
				event_date_end.focus();
				alert("The event end date have to be after event start date");
				return false;
			}
			
				eventStatusField.innerHTML = "PROSPECT";
				
				if(event_booking_date.value != "")
				{
					if (event_booking_date.disabled == false)
					{
						bookingdate = dateConverter(event_booking_date.value,"booking date");
						if(bookingdate == false)
						{
							event_booking_date.focus();
							return false;
						}
					}
					eventStatusField.innerHTML = "EVENT/BOOKED";
				}
				
				return true;
		}
		else
		{
		 	if(datevalidator == 1)
		 	{
		 		event_date_start.focus();
				alert("Please Complete the event start date or the event end date")
				return false;
			}
			
			if(event_booking_date.value != "")
			{
					alert("Please fill the event start date and the event end date.")
					event_date_start.focus();
					event_booking_date.value = "";
					return false;
			}
			
				eventStatusField.innerHTML = "PROSPECT";
				return true;
			
		}
   }
}

function validateFilter(theForm)
{
	with(theForm)
	{
		if(filter_from_date.value == "")
		{
			alert("Please fill from date field.");
			return false;
		}
		else
		{
			if(filter_to_date.value == "")
			{
				alert("Please fill to date field");
				return false;
			}
			else
			{
				fromDate = dateConverter(filter_from_date.value,"From date");	
				
				if (fromDate == false)
					return false
				else
				{
					toDate = dateConverter(filter_to_date.value,"To date");	
					if (toDate == false)
						return false
					else
					{
						if(toDate< fromDate)
						{
							alert("To date field must be greater than From date fields.");
							return false
						}
						else
							return true;
					
						
					}
				}
			}
		}
	}
}
