// ******************************************************************************************
// ###########################################
// Amstel Standard JScript            
// ##########################################
// design and maintenance   : TvZ interactive
// www.tvz.nl
// Kleine Berg 12, Eindhoven
// Tel: 040 - 2375717 
// ##########################################
// Creation date: 25/01/2002 by PJR
// Update #1	:
// Update #2	:
// #########################################
// ******************************************************************************************
//-----------
// Functions.
//-----------
//
//	function stringCheck	-->	
//	function numCheck		-->
//  function dateCheck		-->
//  function emailCheck		-->
//
//-----------------------------------------
// VARIABLE DECLARATIONS
//-----------------------------------------
//
//  objField		-->	Field object
//	intMin			--> De eerste 4 chars van de hidden field geven de minimale lengte aan
//  intMax			--> De laatste 4 chars geven de maximale lengte aan
//
//-----------------------------------------
// CONSTANTE DECLARATIONS
//-----------------------------------------
//
//  var EmailOk  -->	true
//	var AtSym    -->	(@)
//	var Period   -->	(.) 
//	var Space    -->	(' ')
//	var Length   -->    Length of field 
//	TempYear	 -->	substring year 
//	TempMonth	 -->	substring Month 
//	TempDay		 -->	substring day
//	TempDate	 -->    complete date
//
// ******************************************************************************************
 
// ******************************************************************************************
// Validating a string
// ******************************************************************************************
function stringCheck(objField,intMin,intMax) 
{
	if ((intMin == -1) && (intMax != -1))
	{
		if (objField.value.length > intMax) 
		{
			objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax == -1))  
	{
		if (objField.value.length < intMin) 
		{
			objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax != -1))  
	{
		if ((objField.value.length < intMin) || (objField.value.length > intMax))
		{	
			objField.focus();
			return false;	
		}
	}	
	else
	{
		return true;
	}
}
// ******************************************************************************************
// Validating an integer
// ******************************************************************************************
function numCheck(objField,intMin,intMax) 
{
	if (isNaN(objField.value)==true)
	{
		objField.focus();
		return false;
	}
	if ((intMin == -1) && (intMax != -1))
	{
		if (objField.value > intMax) 
		{
			objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax == -1))  
	{
		if (objField.value < intMin) 
		{
			objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax != -1))  
	{
		if ((objField.value < intMin) || (objField.value > intMax))
		{	
			objField.focus();
			return false;	
		}
	}	
	else
	{
		return true;
	}
}		
// ******************************************************************************************
// Validating an email-field
// ******************************************************************************************
function emailCheck(objField)
{
	var EmailOk  = true	
	var AtSym    = objField.value.indexOf('@')
	var Period   = objField.value.lastIndexOf('.')
	var Space    = objField.value.indexOf(' ')
	var Length   = objField.value.length - 1   

	if ((AtSym < 1) ||                     // '@' cannot be in first position
		(Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
		(Period == Length ) ||             // Must be atleast one valid char after '.'
		(Space  != -1))                    // No empty spaces 
	{  
		EmailOk = false
		objField.focus();
	}
	return EmailOk
}
// ******************************************************************************************
// Validating an date-field
// ******************************************************************************************
function dateCheck(strBirthDate,intMin,intMax)
{
	//alert("start date");
	var err=0
	var psj=0;
	var Tempvalue	=	strBirthDate
	//alert("date waarde lengte: " + Tempvalue.length);
	if (Tempvalue.length != 8) err=1
	// YYYYMMDD
	TempYear	= Tempvalue.substring(0,4)// year 
	TempMonth	= Tempvalue.substring(4,6)// Month 
	TempDay		= Tempvalue.substring(6,8)// day
	//alert("TempValue: " + Tempvalue);
	//error checking
	if (TempMonth < 1 || TempMonth > 12) err = 1
	if (TempDay < 1 || TempDay > 31) err = 1
	if (TempYear < 0 || TempYear > 2999) err = 1
	// months with 30 days
	if (TempMonth==4 || TempMonth==6 || TempMonth==9 || TempMonth==11)
	{
		if (TempDay == 31) err=1
	}
	// february, leap year
	if (TempMonth == 2)
	{
		var g = parseInt(TempYear/4)
		if (isNaN(g)) 
		{
			err=1
		}

		if (TempDay > 29) err=1
		if (TempDay == 29 && ((TempYear/4) != parseInt(TempYear/4))) err=1
	}
	if (err==1)
		{
		//ESBirthDay.focus();
		return false;	
		}
	// Check for min and max date's
	if ((intMin == -1) && (intMax != -1))
	{
		if (Tempvalue > intMax) 
		{
			//objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax == -1))  
	{
		if (Tempvalue < intMin) 
		{
			//objField.focus();
			return false;	
		}
	}	
	else if ((intMin != -1) && (intMax != -1))  
	{
		if ((Tempvalue < intMin) || (Tempvalue > intMax))
		{	
			//objField.focus();
			return false;	
		}	
	}	
}
