//////////////////////////////////////////////////////////////////////////////////////////////////
// File            : validate.js
// Description     : validating user input according to the locale setting
// Version         : 1.0
// Created         :
// Author (s)      : Sachin Shakya <sachin.shakya@procit.com>/<sachin_shakya@msn.com>
// History		   : 
//					 25-Sep-2002 : added function to validate postal code and telephone number.
//					 26-Sep-2002 : added function to check the end date and start date.
//					 04-Dec-2002 : added a code for checking date format like ddmmyyyy/mmddyyyy	
// Copyright PROCIT B.V., The Netherlands, 2002
// Merelhoven 283
// 2902 KE, Capelle ad IJssel
// The Netherlands
// info@ Procit.com
// +31(0)871901794


// This program is the intellectual property of Procit B.V., The Netherlands ("Procit").
// The program may be used, modified and/or copied only with the written permission of
// Procit or in accordance with the terms and conditions stipulated in the
// agreement/contract under which the program has been supplied.
/////////////////////////////////////////////////////////////////////////////////////////////////

var ErrStr='';
var dateFormat,timeFormat,decimalSeparator,digitSeparator;
var countryCode;

var isProcitDate=false;
var isProcitTime=false;

//Error message variables for Dutch and English error messages according to the country code
var cLeapYearMsg;
var cNonLeapYearMsg;
var cInvalidDateMsg;
var cInvalidDateSeparatorMsg;

var cInvalidDayMsg;
var cInvalidMonthMsg;
var cInvalidYearMsg;

var cInvalidTimeMsg;
var cInvalidTimeSeparatorMsg;

var cInvalidHourMsg;
var cInvalidMinuteMsg;
var cInvalidSecondMsg;

var cInvalidNumberMsg;
var cNotANumberMsg;
var cInvalidDecimalSeparator;

var cRequiredFieldMsg;
var cGeneralInvalidMsg;

var cZipCodeErrMsg;
var cTelNumErrMsg;

var cStartEndDateErrMsg;

var cQuoteErrMsg;

var TwoDaysCheckErrMsg;

var arrSDate='';
var arrEDate='';

var temp2Day='';

// Variables containing error messages for different types
var mReqdFields = '';					// required fields

var mInvalidDate = '';					// date fields
var mInvalidDay = '';
var mInvalidMonth = '';
var mInvalidYear = '';
var mNonLeapYearDay31 = '';
var mNonLeapYearDay30 = '';
var mNonLeapYearDay28 = '';
var mLeapYear = '';
var mStartEndDateErr = '';
var mTwoDaysCheckErr = '';

var currentTime = new Date()
var mCurrentYear = currentTime.getFullYear();
var mNextYear = currentTime.getFullYear() + 1;

var mInvalidTime = '';					// time fields
var mInvalidHour = '';
var mInvalidMinute = '';
var mInvalidSecond = '';

var mQuoteErr = '';						// other fields
var mNotANumber= '';
var mZipCodeError = '';
var mTelNumErr = '';
var mEmailAddress = '';

function validateAll(objform,cCode)
{
	
	RemoveWhiteSpace(objform)
	var i, obj,retval;
	var cType;
	retval=true;
	switch(cCode) 
	{ 
		case 1043:  //Dutch
		
			dateFormat='dmy';
			timeFormat='hms';
			decimalSeparator=',';
			digitSeparator='.';
			countryCode=1043;

			cLeapYearMsg = "In een schrikkeljaar, kies een datum tussen 1 en 29 februari." + '\n';
			cNonLeapYearDay31Msg="Kies een datum tussen 1 en 31." + '\n';
			cNonLeapYearDay30Msg="Kies een datum tussen 1 en 30." + '\n';
			cNonLeapYearDay28Msg="Kies een datum tussen 1 en 28 februari." + '\n';
					
			cInvalidDateMsg="Datum formaat ongeldig" + '\n';
			cInvalidDateSeparatorMsg="Scheidingsteken in de datum is ongeldig" + '\n';

			cInvalidDayMsg="Ongeldige dag in de datum " + '\n';
			cInvalidMonthMsg="Ongeldige maand in de datum  " + '\n';
			cInvalidYearMsg="Ongeldig jaar in de datum " + '\n'; 

			cInvalidTimeMsg="Tijdformaat is ongeldig" + '\n';
			cInvalidTimeSeparatorMsg="Scheidingsteken in de tijd is ongeldig" + '\n';

			cInvalidHourMsg="Ongeldig uur in de tijd" + '\n';
			cInvalidMinuteMsg="Ongeldige minuten in de tijd " + '\n';
			cInvalidSecondMsg="Ongeldige seconden in de tijd" + '\n';

			cInvalidNumberMsg="Ongeldig formaat getal" + '\n';
			cNotANumberMsg="Het veld heeft een ongeldig getal" + '\n';
			cInvalidDecimalSeparator="Decimalen ongeldig" +'\n';

			cRequiredFieldMsg="Het volgende veld moet ingevuld worden" + '\n';
			
			cZipCodeErrMsg="Het volgende veld heeft een ongeldige postcode" + '\n';
			cTelNumErrMsg="Ongeldig telefoonnummer" + '\n';
			
			cStartEndDateErrMsg="Einddatum is voor de startdatum" + '\n';
			
			cQuoteErrMsg="Waarde bevat \"" + '\n';
			TwoDaysCheckErrMsg="Datum verschil moet kleiner of gelijk zijn aan 2"  + '\n';
			
			cInvalidEmailAddress = "Ongeldig e-mail adres"+'\n';
			
			//cLimitDateUse ="In verband met de indexering van de tarieven, kunt u evenementen die na 15 januari 2011 plaatsvinden, pas vanaf 5 januari aangeven via deze website."+'\n';				
			cLimitDateUse ="In verband met de indexering van de tarieven, kunt u evenementen die na 15 januari " + mNextYear + " plaatsvinden, pas vanaf 5 januari aangeven via deze website."+'\n';				
		break;
		case 3084: //Frence
			dateFormat='dmy';
			timeFormat='hms';
			decimalSeparator=',';
			digitSeparator='.';
			countryCode=1043;
			
			cLeapYearMsg="Dans une année bissextile, choisissez une date entre 1 et 29 février." + '\n';
			cNonLeapYearDay31Msg="Choisissez une date entre 1 et 31. " + '\n';
			cNonLeapYearDay30Msg="Choisissez une date entre 1 et 30. " + '\n';
			cNonLeapYearDay28Msg=" Choisissez une date entre 1 et 28 février. " + '\n';
					
			cInvalidDateMsg="Format de date non valide " + '\n';
			cInvalidDateSeparatorMsg="Séparateur dans la date n’est pas valide " + '\n';

			cInvalidDayMsg="Jour dans la date non valide " + '\n';
			cInvalidMonthMsg="Mois dans la date non valide  " + '\n';
			cInvalidYearMsg="Année dans la date non valide  " + '\n';

			cInvalidTimeMsg="Format de l’heure non valide " + '\n';
			cInvalidTimeSeparatorMsg="Séparateur dans le temps n’est pas valide" + '\n';

			cInvalidHourMsg="Heure dans le temps non valide " + '\n';
			cInvalidMinuteMsg="Minutes dans le temps non valides " + '\n';
			cInvalidSecondMsg="Secondes dans le temps non valides " + '\n';

			cInvalidNumberMsg="Format du nombre non valide " + '\n';
			cNotANumberMsg="Le champ contient un nombre non valide " + '\n';
			cInvalidDecimalSeparator="Décimales non valides " + '\n';

			cRequiredFieldMsg="Le champ suivant doit être complété " + '\n';

			cZipCodeErrMsg="Le champ suivant a un code postal non valide " + '\n';
			cTelNumErrMsg="Numéro de téléphone non valide " + '\n';
			
			cStartEndDateErrMsg="La date de fin est antérieure à la date de commencement" + '\n';
			
			cQuoteErrMsg="Valeur contient \" " + '\n';
			TwoDaysCheckErrMsg="La différence entre les dates doit être inférieure ou égale à 2"  + '\n';
			
			cInvalidEmailAddress ="Adresse e-mail non valide"+'\n';	
			
			//cLimitDateUse ="En raison de l'indexation des tarifs, la déclaration via ce site web d'événements ayant lieu à partir du 15 janvier 2011, ne sera possible qu'à partir du 5 janvier 2011."+'\n';
			cLimitDateUse ="En raison de l'indexation des tarifs, la déclaration via ce site web d'événements ayant lieu à partir du 15 janvier " + mNextYear + ", ne sera possible qu'à partir du 5 janvier " + mNextYear + "."+'\n';

				
		break;
		case 1033:	//English 
			dateFormat='mdy';
			timeFormat='hms';
			decimalSeparator='.';
			digitSeparator=',';
			countryCode=1033;

			cLeapYearMsg="Description: Day must be between 1 to 29 for the month of February in Leap Year." + '\n';
			cNonLeapYearDay31Msg="Description: Day must be between 1 to 31 for this month." + '\n';
			cNonLeapYearDay30Msg="Description: Day must be between 1 to 30 for this month." + '\n';
			cNonLeapYearDay28Msg="Description: Day must be between 1 to 28 for the month of February." + '\n';
					
			cInvalidDateMsg="Date format is invalid!" + '\n';
			cInvalidDateSeparatorMsg="Date separator is invalid!" + '\n';

			cInvalidDayMsg="Invalid Day in following Date field: " + '\n';
			cInvalidMonthMsg="Invalid Month in following Date field: " + '\n';
			cInvalidYearMsg="Invalid Year in following Date field: " + '\n';

			cInvalidTimeMsg="Time format is invalid!" + '\n';
			cInvalidTimeSeparatorMsg="Time separator is invalid." + '\n';

			cInvalidHourMsg="Invalid Hour in following Time field: " + '\n';
			cInvalidMinuteMsg="Invalid Minute in following Time field: " + '\n';
			cInvalidSecondMsg="Invalid Second in following Time field: " + '\n';

			cInvalidNumberMsg="Number format is invalid" + '\n';
			cNotANumberMsg="Following field contains invalid number: " + '\n';
			cInvalidDecimalSeparator="The decimal separator is Invalid." + '\n';

			cRequiredFieldMsg="Following field must be filled: " + '\n';

			cZipCodeErrMsg="Following field contains invalid PostCode: " + '\n';
			cTelNumErrMsg="Invalid Telephone Number!!" + '\n';
			
			cStartEndDateErrMsg="End date is less then Start Date." + '\n';
			
			cQuoteErrMsg="Value contains Double Quote. " + '\n';
			TwoDaysCheckErrMsg="Date Difference must be less than equals to 2 "  + '\n';
			
			cInvalidEmailAddress = "Invalid email address in ";
		break;
	}
	clearVariables();		// clear variables to start fresh error message
	for(i=0;i<objform.elements.length;i++)
	{			
	   
		obj=objform.elements[i];
	    if(obj.getAttribute("controlType"))
		{	
		
			cType=obj.getAttribute("controlType")
			cType=cType.toLowerCase();
			
			switch(cType) 
			{ 
				case 'date': 					
					var cVal;
				    cVal=checkRequired(obj);
				
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
					
					else if(cVal==2)
					{
						var tempStr;
						tempStr = checkExtDate(obj,countryCode);
						
						//NB: Added only for certain time--------------------------------------
						//KL 20090105: not needed anymore--------------------------------------
						//if(obj.id == "txtStartDate" )
						//{
						//   var outDateUse =  fnlimitDateUse(obj.value);
						//  
						//   if(outDateUse == false)
						//        ErrStr =   ErrStr + cLimitDateUse;
						// 
						//}
						//---------------------------------------------------------------------
					}
				break;

				case 'time': 
					var cVal;
					cVal=checkRequired(obj);
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
					else if(cVal==2)
					{
						var tempStr;
						tempStr=checkExtTime(obj,countryCode);
					}
					break;
					
				case 'datetime':
				    var cVal;
					cVal=checkRequired(obj);
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
							
					else if(cVal==2)
					{
						var tempStr;
						tempStr = validDateTime(obj,countryCode);
					}
				    break;

				case 'number':
						
				  	cVal=checkRequired(obj);
				  	
					if(checkSigns(obj)!=0)
					{
					
						mQuoteErr = mQuoteErr + obj.getAttribute("caption") + '\n';
					}
					
					if(cVal!=1 && cVal!=2)
					{
					
						mReqdFields = mReqdFields + cVal + '\n';
					}
					else if(cVal==2)
					{
				
						var tempStr;
						tempStr=checkExtNumber(obj,countryCode);
					}
					
					break;
					
				case 'text': 
				    
				    cVal=checkRequired(obj);
					if(checkSigns(obj)!=0)
					{   
						mQuoteErr = mQuoteErr + obj.getAttribute("caption")+ '\n';
					}
					if(cVal!=1 && cVal!=2)
					{   
						mReqdFields = mReqdFields + cVal + '\n';
					}
				break;
	
				case 'postalcode': 
					cVal=checkRequired(obj);
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
					else if(cVal==2)
					{
						var tempStr;
						tempStr=checkPostalCode(obj);
					}
					break;

				
				case 'phonenumber': 
					cVal=checkRequired(obj);
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
					else if(cVal==2)
					{
						var tempStr;
						tempStr=checkTelephoneNumber(obj,countryCode);
						if(tempStr!=true)
						{
							mTelNumErr = mTelNumErr + tempStr + '\n';
						}
					}
				break;
				
				case 'email' :
					var cVal;
					cVal=checkRequired(obj);
					if(cVal!=1 && cVal!=2)
					{
						mReqdFields = mReqdFields + cVal + '\n';
					}
					else if(cVal==2)
					{
						if(!validateEmail(obj))
							mEmailAddress = mEmailAddress + obj.getAttribute("caption") + '\n';
					}
					break;

				/*
				case 'OptionalNumber': 
					var tempStr;
					tempStr=OptionalNumericFields(obj);
					if(tempStr!=true)
					{
						ErrStr = ErrStr + tempStr + '\n';
					}
					break;
				*/
			} 
		}
	 }
		
	// required fields
	if (mReqdFields != '')
			ErrStr = ErrStr + cRequiredFieldMsg + mReqdFields + '\n';
		
	// date fields		
	if (mInvalidDate != '')
			ErrStr = ErrStr + cInvalidDateMsg + mInvalidDate + '\n';
	if (mInvalidDay != '')
			ErrStr = ErrStr + cInvalidDayMsg + mInvalidDay + '\n';
	if (mInvalidMonth != '')
			ErrStr = ErrStr + cInvalidMonthMsg + mInvalidMonth + '\n';
	if (mInvalidYear != '')
			ErrStr = ErrStr + cInvalidYearMsg + mInvalidYear + '\n';
	if (mNonLeapYearDay31 != '')
			ErrStr = ErrStr + cNonLeapYearDay31Msg + mNonLeapYearDay31 + '\n';
	if (mNonLeapYearDay30 != '')
			ErrStr = ErrStr + cNonLeapYearDay30Msg + mNonLeapYearDay30 + '\n';		
	if (mNonLeapYearDay28 != '')
			ErrStr = ErrStr + cNonLeapYearDay28Msg + mNonLeapYearDay28 + '\n';
	if (mLeapYear != '')
			ErrStr = ErrStr + cLeapYearMsg + mLeapYear + '\n';	
	if (mStartEndDateErr != '')
			ErrStr = ErrStr + mStartEndDateErr + '\n';
	if (mTwoDaysCheckErr != '')
			ErrStr = ErrStr + mTwoDaysCheckErr + '\n';		
		
	// time fields
	if (mInvalidTime != '')
			ErrStr = ErrStr + cInvalidTimeMsg + mInvalidTime + '\n';
	if (mInvalidHour != '')
			ErrStr = ErrStr + cInvalidHourMsg + mInvalidHour + '\n';		
	if (mInvalidMinute != '')
			ErrStr = ErrStr + cInvalidMinuteMsg + mInvalidMinute + '\n';
	if (mInvalidSecond != '')
			ErrStr = ErrStr + cInvalidSecondMsg + mInvalidSecond + '\n';
		
	// other fields
	if (mQuoteErr != '')
			ErrStr = ErrStr + cQuoteErrMsg + mQuoteErr + '\n';
	if (mNotANumber != '')
			ErrStr = ErrStr + cNotANumberMsg + mNotANumber + '\n';		
	if (mZipCodeError != '')
			ErrStr = ErrStr + cZipCodeErrMsg + mZipCodeError + '\n';
	if (mTelNumErr != '')
			ErrStr = ErrStr + cTelNumErrMsg + mTelNumErr + '\n';
	if (mEmailAddress != '')
			ErrStr = ErrStr + cInvalidEmailAddress + mEmailAddress + '\n';
			
	if (ErrStr!='')
	{	
		alert(ErrStr);
		ErrStr='';
		nretVal=true;
		retval=false;
	}
	else
	{
		retval =true;
	}
		
	return retval;
}

function validateEmail(emailField) 
{
	emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9]+)+$/;
	
	if(!emailpat.test(emailField.value)) 
		return false;
	else
		return true;
}

function checkSigns(obj)
{
	var tempData;
	tempData = obj.value;
	return 0;
	/*
	if(tempData.indexOf('"')==-1)
	{
		return 0;
	}
	else
	{
		return 1;
	}*/
}

function checkExtNumber(objElement,countryCode)
{
	
		var tempArray;
		var tempData;
		var tempPos;
		var nretVal = true;
		var tempMessage = '';
		
		tempData = '' + objElement.value;
		
		if (tempData != '')
		{						
			if(countryCode==1033)
			{
				if(tempData.indexOf('.')!=-1 && tempData.indexOf(',')!=-1)
				{
					tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}

				if(tempData.indexOf(',')!=-1)
				{
					if (tempMessage == '')
						tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}
				
				tempArray = tempData.split(".");
				
				if(tempArray.length>2)
				{
					if (tempMessage == '')
						tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}
				
				if(tempArray.length ==1)
				{
					if(isNaN(tempArray[0]))
					{
						if (tempMessage == '')
							tempMessage = objElement.getAttribute("caption") + '\n';
						nretVal = false;
					}
					else
					{
						objElement.value = '' + objElement.value //+ "." + '00';
						if (tempMessage != '')
							mNotANumber = mNotANumber + tempMessage;
						return true;
					}
				}
				
				if(tempArray.length ==2)
				{
					if(isNaN(tempArray[0]) || isNaN(tempArray[1])||(tempArray[0].indexOf('e')!==-1) || (tempArray[0].indexOf('E')!==-1) ||  (tempArray[1].indexOf('e')!==-1) || (tempArray[1].indexOf('E')!==-1))
					{
						if (tempMessage == '')
							tempMessage = objElement.getAttribute("caption") + '\n';
						nretVal = false;
					}
					else
					{
						objElement.value =  tempArray[0] + "." + tempArray[1]; 	
						if (tempMessage != '')
							mNotANumber = mNotANumber + tempMessage;		
						return true;
					}
				}
			}
			else if(countryCode==1043)
			{
				if(tempData.indexOf('.')!=-1 && tempData.indexOf(',')!=-1)
				{
					if (tempMessage == '')
						tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}
				
				if(tempData.indexOf('.')!=-1)
				{
					if (tempMessage == '')
						tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}
				
				tempArray = tempData.split(",");
				
				if(tempArray.length > 2)
				{
					if (tempMessage == '')
						tempMessage = objElement.getAttribute("caption") + '\n';
					nretVal = false;
				}
				
				if(tempArray.length ==1)
				{
					if(isNaN(tempArray[0]))
					{
						if (tempMessage == '')
							tempMessage = objElement.getAttribute("caption") + '\n';
						nretVal = false;
					}
					else
					{ 
					    if (objElement.id == "txtTotalEntranceFee" ||objElement.id == "txtEntranceFee"||objElement.id == "txtEntranceFee_ExtraHall"||objElement.id == "txtEntranceFee_Tournament_ExtraHall") 
					        objElement.value = '' + (objElement.value).replace('.', ',')
					    else
					    {   objElement.value = '' + (objElement.value).replace('.', ',') //+ "," + '00';
					        if (tempMessage != '')
							mNotANumber = mNotANumber + tempMessage;
					    }
						
						return true;
					}
				}
				
				if(tempArray.length ==2)
				{
				
				
					if(isNaN(tempArray[0]) || isNaN(tempArray[1])|| (tempArray[0].indexOf('e')!==-1) || (tempArray[0].indexOf('E')!==-1) || (tempArray[1].indexOf('e')!==-1) || (tempArray[1].indexOf('E')!==-1)||(fntrim(tempArray[0])==''&&fntrim(tempArray[1])==''))
					{
						if (tempMessage == '')
							tempMessage = objElement.getAttribute("caption") + '\n';
						nretVal = false;
					}
					else
					{
						objElement.value =  tempArray[0] + "," + tempArray[1]; 
						if (tempMessage != '')
							mNotANumber = mNotANumber + tempMessage;			
						return true;
					}
				}
			}
		}
		
		if (tempMessage != '')
			mNotANumber = mNotANumber + tempMessage;
	
		return nretVal;
}

function checkExtDate(objElement,countryCode)
{
	
		var retVal = true;
		var strSeparator;
		var dateArray;
		var strDate = objElement.value;
		var tempRetVal='';
		var tempMessage = '';
		
		
		//KL activated 20101013: check for dates till 15-01-2010 --------------------------
		////NB: Added only for certain time--------------------------------------
		/* */
		if(objElement.id == "txtStartDate" || objElement.id=="tempSeperateDays")
		{
		   var outDateUse =  fnlimitDateUse(objElement.value);
						  
		   if(outDateUse == false)
		   {
		        ErrStr =   ErrStr + cLimitDateUse;
				return false;
		   }
						 
		}
		////---------------------------------------------------------------------
			  
		if(strDate.length > 10)
		{			
			mInvalidDate = mInvalidDate + objElement.getAttribute("caption") + '\n';
			return false;
		}
		strSeparator = "";

		if(strDate.indexOf("-")!=-1)
			strSeparator = "-";
		else if(strDate.indexOf("/")!=-1)
			strSeparator = "/";
		else
		{
			strSeparator = "";
		}

		if(strSeparator=="") 
		{
			if (strDate.length == 8)
			{
				isProcitDate=false;
				strDate = strDate.substr(0,2) + '-' + strDate.substr(2,2) + '-'+ strDate.substr(4,4) 
				if(strDate!='')
				{
					strSeparator='-';
					dateArray = strDate.split('-');
				}
			}
			else
			{
				tempMessage = objElement.getAttribute("caption") + '\n';
				retVal = false;
				dateArray = new Array(); // simply make array to avoid error, while checking length
			}
		}		
		
		if(strSeparator=='-' || strSeparator=='/')
		{	
				dateArray = strDate.split(strSeparator);
		}
		
		if(dateArray.length <3)
		{ 
			if (tempMessage == '')
				tempMessage = objElement.getAttribute("caption") + '\n';
			retVal = false;
		}
		else
		{
			if(countryCode==1043)
			{
				//check for day
				if((parseInt(dateArray[0],10)>31)||(parseInt(dateArray[0],10)==0)||(dateArray[0]=='00')||(isNaN(parseInt(dateArray[0],10))))
				{
					mInvalidDay = mInvalidDay + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}

				//check for month
				if((parseInt(dateArray[1],10)<1 || parseInt(dateArray[1],10)>12)||(parseInt(dateArray[1],10)==0)||(dateArray[1]=='00')||(isNaN(parseInt(dateArray[1],10))))
				{
					mInvalidMonth = mInvalidMonth + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}

				//check for year
				if((parseInt(dateArray[2],10)>9999)||(parseInt(dateArray[2],10)<1800)||(isNaN(parseInt(dateArray[2],10))))
				{
					mInvalidYear = mInvalidYear + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}

				var temp;
				temp=parseInt(dateArray[1],10);
				if((temp==1 || temp==3 || temp==5|| temp==7|| temp==8|| temp==10|| temp==12) && (parseInt(dateArray[0],10)<1 || parseInt(dateArray[0],10)>31))
				{
					mNonLeapYearDay31 = mNonLeapYearDay31 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}				
				else if((temp==4 || temp==6 || temp==9|| temp==11) && (parseInt(dateArray[0],10)<1 || parseInt(dateArray[0],10)>30))
				{
					mNonLeapYearDay30 = mNonLeapYearDay30 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
				else if((temp==2) && (parseInt(dateArray[0],10)<1 || parseInt(dateArray[0],10)>28) && (parseInt(dateArray[2],10)%4!=0 && parseInt(dateArray[2],10)%100!=0 && parseInt(dateArray[2],10)%400!=0))
				{
					mNonLeapYearDay28 = mNonLeapYearDay28 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
				else if((temp==2) && (parseInt(dateArray[0],10)<1 || parseInt(dateArray[0],10)>29) && (parseInt(dateArray[2],10)%4==0 && parseInt(dateArray[2],10)%100==0 && parseInt(dateArray[2],10)%400==0))
				{
					mLeapYear = mLeapYear + objElement.getAttribute("caption")+ '\n';
					tempRetVal = false;
				}
			}
			else if(countryCode==1033)
			{
				//check for month
				if((parseInt(dateArray[0],10)>12)||(parseInt(dateArray[0],10)==0)||(dateArray[0]=='00')||(isNaN(parseInt(dateArray[0],10))))
				{
					mInvalidMonth = mInvalidMonth + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
					
				//check for day
				if((parseInt(dateArray[1],10)>31)||(parseInt(dateArray[1],10)==0)||(dateArray[1]=='00')||(isNaN(parseInt(dateArray[1],10))))
				{
					mInvalidDay = mInvalidDay + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}

				//check for year
				if((parseInt(dateArray[2],10)>9999)||(parseInt(dateArray[2],10)<1900)||(isNaN(parseInt(dateArray[2],10))))
				{
					mInvalidYear = mInvalidYear + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}

				var temp;
				temp=parseInt(dateArray[0],10);
				if((temp==1 || temp==3 || temp==5|| temp==7|| temp==8|| temp==10|| temp==12) && (parseInt(dateArray[1],10)<1 || parseInt(dateArray[1],10)>31))
				{
					mNonLeapYearDay31 = mNonLeapYearDay31 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}	
				else if((temp==4 || temp==6 || temp==9|| temp==11) && (parseInt(dateArray[1],10)<1 || parseInt(dateArray[1],10)>30))
				{
					mNonLeapYearDay30 = mNonLeapYearDay30 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
				else if((temp==2) && (parseInt(dateArray[1],10)<1 || parseInt(dateArray[1],10)>28) && (parseInt(dateArray[2],10)%4!=0 && parseInt(dateArray[2],10)%100==0 && parseInt(dateArray[2],10)%400==0))
				{
					mNonLeapYearDay28 = mNonLeapYearDay28 + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
				else if((temp==2) && (parseInt(dateArray[1],10)<1 || parseInt(dateArray[1],10)>29) && (parseInt(dateArray[2],10)%4==0 && parseInt(dateArray[2],10)%100==0 && parseInt(dateArray[2],10)%400==0))
				{
					mLeapYear = mLeapYear + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
			}
			
			//for checking enddate and startdate
			var tempCaption;
			tempCaption = objElement.getAttribute("caption");
			tempCaption=tempCaption.toLowerCase();
			
			if(tempCaption.indexOf("start date")!=-1 || tempCaption.indexOf("end date")!=-1)
			{
			
				var tempRVal;
				tempRVal = checkStartEndDate(objElement,dateArray,countryCode);
				if(tempRVal!= true)
				{
					mStartEndDateErr = cStartEndDateErrMsg;
					tempRetVal = false;
				}	
			}

			tempName=objElement.getAttribute("altCaption")
			if(tempName)
			{
				tempName=tempName.toLowerCase();
				if(tempName=='sdate' || tempName=='edate')
				{
					var tVal;
					tVal=check2Day(objElement,countryCode,dateArray);
					if(tVal!=true)
					{
						mTwoDaysCheckErr = TwoDaysCheckErrMsg;
						tempRetVal = false;
					}
				}
			} 

			if (tempRetVal!='')
			{
				retVal= tempRetVal;
			}
		}
		
		if (tempMessage != '')
			mInvalidDate = mInvalidDate + tempMessage;
			
		if (retVal==true)
		{
			if (dateArray[0].length==1 && isProcitDate==false) 
				dateArray[0]= "0" + dateArray[0];
			if (dateArray[1].length==1 && isProcitDate==false) 
				dateArray[1]= "0" + dateArray[1]	
			//if(isProcitDate==false)
				objElement.value=dateArray[0] + strSeparator + dateArray[1]+ strSeparator + dateArray[2] 
		}
		return retVal;
}

function daysInAMonth(intMonth,intYear)
{
	if((intMonth==1) || (intMonth==3) || (intMonth==5) || (intMonth==7) || (intMonth==8) || (intMonth==10) || (intMonth==12))
		return 31
	if((intMonth==4) || (intMonth==6) || (intMonth==9) || (intMonth==11))
		return 30
	if(intMonth==2)
	{
	if((intYear % 400 == 0) || ((intYear % 4 == 0) && (intYear % 100 != 0)))
		return 29
	else
		return 28
	}
}

function check2Day(obj,cCode,dArray)
{
	var startdate,enddate;
	var returnVal=true;
	var tempenddate,tempendmonth,tempendyear;
	var tempstartdate,tempstartmonth,tempstartyear
	var tempCap,tName;
	var temp1=new Array();		
	tempCap=obj.caption;
	tempCap=tempCap.toLowerCase();
	if(cCode==1033)
	{
		temp1 = dArray;
	}
	else if(cCode==1043)
	{
		temp1[0]=dArray[1];
		temp1[1]=dArray[0];
		temp1[2]=dArray[2];
	}
	temp1[0]=MakeTwo(temp1[0]);
	temp1[1]=MakeTwo(temp1[1]);
	temp1[2]=MakeTwo(temp1[2]);
	if(tempCap.indexOf("end date")!=-1)					
	tName=obj.name;
	var tDate;
	if(temp2Day=='' && tempCap.indexOf("start date")!=-1)
	{
		temp2Day=temp1[0] + '/' + temp1[1] + '/' + temp1[2];
	}
	else if(temp2Day!=tDate && tempCap.indexOf("start date")!=-1)
	{
		tDate=MakeTwo(temp1[0]) + '/' + MakeTwo(temp1[1]) + '/' + temp1[2];
		temp2Day=tDate;
	}
	else if(tempCap.indexOf("end date")!=-1)
	{
		startdate=temp2Day;
		enddate=MakeTwo(temp1[0]) + '/' + MakeTwo(temp1[1]) + '/' + temp1[2];
		var enddatearr=new Date(parseInt(temp1[2]),parseInt(temp1[0]),parseInt(temp1[1]));
		var startdatearr = new Date(parseInt(startdate.substr(6)),parseInt(startdate.substr(0,2)),parseInt(startdate.substr(3,2)))
		var addDate = new Date(parseInt(startdate.substr(6)),parseInt(startdate.substr(0,2)),2)
		if((enddatearr-startdatearr)>172800000)
		{
			document.all(tName).value='';
			returnVal=TwoDaysCheckErrMsg;
			temp2Day='';
		}
		else
		{
			returnVal=true;
		}
	}
	return returnVal;
}

function checkStartEndDate(obj,dArray,ccode)
{
	var retVal=true;
	var tempCap,temp1;
	tempCap = obj.getAttribute("caption");
	tempCap=tempCap.toLowerCase();
	temp1 = new Array();
	
	if(ccode==1033)
	{
		temp1 = dArray;
	}
	else if(ccode==1043)
	{
		temp1[0]=dArray[1];
		temp1[1]=dArray[0];
		temp1[2]=dArray[2];
	}
	//alert('darray=' + dArray[0] + dArray[1] + dArray[2]+ ccode + '\n' + temp1[0] + temp1[1] + temp1[2])
	temp1[0]=MakeTwo(temp1[0]);
	temp1[1]=MakeTwo(temp1[1]);
	temp1[2]=MakeTwo(temp1[2]);
	
	if(arrSDate=='')
	{
		if(tempCap.indexOf("start date")!=-1)
			arrSDate=tempCap.substring(0,(tempCap.indexOf("start date"))) + '_' + temp1[0] + '/' + temp1[1] + '/' + temp1[2];
		else if(tempCap.indexOf("end date")!=-1)
			arrEDate=tempCap.substring(0,(tempCap.indexOf("end date"))) + '_' + temp1[0] + '/' + temp1[1] + '/' + temp1[2];
	}
	else
	{
		var tDate;
		if(tempCap.indexOf("start date")!=-1)
			tDate=MakeTwo(temp1[0]) + '/' + MakeTwo(temp1[1]) + '/' + temp1[2];
		else
			tDate=arrSDate.substring(arrSDate.indexOf("_")+1,arrSDate.length)
		
  		if(arrSDate.substring(arrSDate.indexOf("_")+1,arrSDate.length)!=tDate)
		{
		   	if(tempCap.indexOf("start date")!=-1)
		   		arrSDate=tempCap.substring(0,(tempCap.indexOf("start date"))) + '_' + MakeTwo(temp1[0]) + '/' + MakeTwo(temp1[1]) + '/' + temp1[2];
		}

		if(tempCap.indexOf("end date")!=-1)
		{
			
			var temp;
			temp = tempCap.indexOf("end date");
			var tempFirst;
			tempFirst = tempCap.substring(0,temp);
			
			if(tempFirst == arrSDate.substring(0,(arrSDate.indexOf("_"))))
			{
				var sd,ed,aDate;
				sd = MakeTwo(temp1[0]) + '/' + MakeTwo(temp1[1]) + '/' + temp1[2];
				aDate = arrSDate.substring(arrSDate.indexOf("_")+1,arrSDate.length);
				if(aDate.indexOf('/')!=-1)
					sd = aDate.split('/');
				else if(aDate.indexOf(':')!=-1)
					sd = aDate.split(':');

				if(temp1[2]<sd[2])						
				{
					retVal = cStartEndDateErrMsg + '\n';
				}
				else if(temp1[2]==sd[2])						
				{
					if(MakeTwo(temp1[0])<sd[0])
					{
						retVal = cStartEndDateErrMsg + '\n';
					}
					else if(MakeTwo(temp1[0])==sd[0])
					{
						if(MakeTwo(temp1[1])<sd[1])
						{
							retVal = cStartEndDateErrMsg + '\n';
						}
					}
				}
			}
		}
	}
	return retVal;
}	

function MakeTwo(valNumber)
{
	var temp;
	if(valNumber.length<2)
		temp='0' + valNumber;
	else
		temp=valNumber;
	return temp;
}

function checkExtTime(objElement,countryCode)
{
		var retVal = true;
		var strSeparator;
		var timeArray = new Array();
		var strTime = objElement.value;
		var tempRetVal='';
		var tempMessage='';
		
		if(strTime.length < 2 || strTime.length > 10)
		{	
			mInvalidTime  = mInvalidTime  + objElement.getAttribute("caption") + '\n';
			return false;
		}
		strSeparator = '';
		
		if(strTime.indexOf(":")!=-1)
		{
			strSeparator = ':';
		}
		else
		{
			if(strTime.indexOf('')!=-1 && (strTime.length==4 || strTime.length==6))
			{
				strSeparator=':';
				isProcitTime=true;
			}
			else
			{
				mInvalidTime  = mInvalidTime  + objElement.getAttribute("caption") + '\n';
				return false;
			}
		}
		
		if(strSeparator=='') 
		{
			if(strTime.length==4)
				strTime=strTime.substring(0,2) + ':' + strTime.substring(2,4)
			else if(strTime.length==6 )
				strTime=strTime.substring(0,2) + ':' + strTime.substring(2,4)+ ':' + strTime.substring(4,6)
			strSeparator=":"
		}
		
		if(strSeparator==':')				
		{
			timeArray[2]="00";
			timeArray = strTime.split(strSeparator);
		}
			
		if(timeArray.length < 2 || timeArray.length >3)
		{ 
			tempMessage  = objElement.getAttribute("caption") + '\n';
			retVal = false;
		}
		else if(timeArray.length==3) 
		{
			if(countryCode==1043 || countryCode==1033)
			{
				//check for hour
				if((parseInt(timeArray[0],10)<0 || parseInt(timeArray[0],10)>23)||(isNaN(parseInt(timeArray[0],10))))
				{
					mInvalidHour = mInvalidHour + objElement.getAttribute("caption")+ '\n';
					tempRetVal = false;
				}
				//check for minute
				if((parseInt(timeArray[1],10)<0 || parseInt(timeArray[1],10)>60)||(isNaN(parseInt(timeArray[1],10))))
				{
					mInvalidMinute = mInvalidMinute + objElement.getAttribute("caption")+ '\n';
					tempRetVal = false;
				}
				//check for second
				if((parseInt(timeArray[2],10)>59)||(parseInt(timeArray[2],10)<0)||(isNaN(parseInt(timeArray[2],10))))
				{
					mInvalidSecond = mInvalidSecond + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
			}	
		}	
		else if(timeArray.length==2) 
		{
			
			if(countryCode==1043 || countryCode==1033)
			{		
				//check for hour
				if((parseInt(timeArray[0],10)<0 || parseInt(timeArray[0],10)>23)||(isNaN(parseInt(timeArray[0],10))))
				{
					mInvalidHour = mInvalidHour + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
				//check for minute
				if((parseInt(timeArray[1],10)<0 || parseInt(timeArray[1],10)>60)||(isNaN(parseInt(timeArray[1],10))))
				{
					mInvalidMinute = mInvalidMinute + objElement.getAttribute("caption") + '\n';
					tempRetVal = false;
				}
			}
		}
		else if(timeArray.length==1 && timeArray[0].length!=4)
		{
			if (tempMessage == '')
					tempMessage = objElement.getAttribute("caption") + '\n';
			tempRetVal = false;
		}
		else if(timeArray.length==1 && timeArray[0].length==4)
		{
			var temp,temp1;
			temp= timeArray.substr(1,2);
			temp1=timeArray.substr(3,2);
			timeArray[0]=temp;
			timeArray[1]=temp1;
		}
		
		if (retVal==true)
		{
			if (timeArray[0].length==1) 
				timeArray[0]= "0" + timeArray[0];
			if (timeArray[1].length==1) 
				timeArray[1]= "0" + timeArray[1];	
			if(timeArray.length==2)
				timeArray[2]= "00";
			if(timeArray.ubound > 2)
			{
				if (timeArray[2].length!=0 && timeArray[2].length==1) 
					timeArray[2]= "0" + timeArray[2];
				//if (timeArray[2].length==0)
				//	timeArray[2]= "00";
			}
			if(isProcitTime==false)
			objElement.value=timeArray[0] + strSeparator + timeArray[1]+ strSeparator + timeArray[2]; 
			else
			objElement.value=timeArray[0] + strSeparator + timeArray[1]+ strSeparator + timeArray[2]; 
			//objElement.value=timeArray[0] + timeArray[1]+ timeArray[2]; 
		}
		
		if (tempMessage != '')
			mInvalidTime  = mInvalidTime + tempMessage + '\n';
		
		if (tempRetVal!='')
		{
			retVal=tempRetVal;
		}

		return retVal;
}

function checkRequired(objElement)
{
	var cType;
	cType=objElement.getAttribute("isRequired")
	cType=cType.toLowerCase();
	
	if(cType=='yes' && fntrim(objElement.value) =='')
	{
		
	    return objElement.getAttribute("caption");
	}
	else if(cType=='no' && objElement.value=='')
	{
		return 1;
	}
	else
	{
		return 2;
	}
	
}

function checkPostalCode(obj)
{
	var x;
	var ret;
	var objValue;
	objValue=obj.value;
	re= /(^(\d{4}))(\s)?(([a-z|A-Z]{2})$)/;
	x= objValue.match(re)
	if (x!= null)
	{
		ret=true;
	}
	else
	{
		ret = false;
	}
	
	if (ret==false)
	{
		mZipCodeError = mZipCodeError + obj.getAttribute("caption") + '\n';
	}
	return ret;
}

function checkTelephoneNumber(obj,countryCode)
{
		var retVal = true;
		var strTelNumber = obj.value;
		var tempRetVal='';
		var tSign,tCCode,tAreaCode,tNum;
		
		var tempStr = strTelNumber.split("-");
		
		if(tempStr.length>1)
		{
			if(isNaN(tempStr[0]) || isNaN(tempStr[1]))
			{
				retVal = obj.getAttribute("caption") + '\n';
				return retVal;
			}
		}

		else
		{
			if(isNaN(strTelNumber))
			{
				retVal = obj.getAttribute("caption")+ '\n';
				return retVal;
			}
		}
		return retVal;
		
/*		
		if(countryCode==1043)
		{
			if(strTelNumber.length<10)
			{
				retVal = obj.getAttribute("caption") + '\n';
				return retVal;
			}
			var tempLen;
			tempLen = strTelNumber.length;

			if(tempLen==15)
			{
				tSign=strTelNumber.substring(0,1);
				tCCode=strTelNumber.substring(1,3);
				tAreaCode=strTelNumber.substring(3,6);
				tNum=strTelNumber.substring(6,(strTelNumber.length));
			
				if(tSign!='+')
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
				}
			
				if(tCCode.length!=2 && isNaN(tCCode))
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
				}

				if(tAreaCode.length!=3 || (tAreaCode.substring(0,1)!='(') || (tAreaCode.substring(2,tAreaCode.length)!=')') || (isNaN(tAreaCode.substring(1,2))))
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
				}
			
				if((isNaN(tNum)) || (tNum.indexOf('e')!==-1) || (tNum.indexOf('E')!==-1))
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
				}
			}
			else if(tempLen>=10 && tempLen<12)
			{
				var tempSeparator,tempArray;

				if(strTelNumber.indexOf('-')==-1)
					tempSeparator = ' ';
				else
					tempSeparator = '-';
				if(tempSeparator==' ')
				{
				if(isNaN(strTelNumber) || (strTelNumber.indexOf('e')!==-1) || (strTelNumber.indexOf('E')!==-1))
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
					return tempRetVal;
				}
				}	
				else
				{
					tempArray = strTelNumber.split(tempSeparator);
					if(tempArray.length<2)
					{
						tempRetVal = obj.getAttribute("caption") + '\n'; 
						return tempRetVal;
					}
				
					if((tempArray[0].length<2 || tempArray[0].length>4) || isNaN(tempArray[0]) || (tempArray[0].indexOf('e')!==-1) || (tempArray[0].indexOf('E')!==-1))
					{
						tempRetVal = obj.getAttribute("caption") + '\n'; 
					}
					if(isNaN(tempArray[1]) || (tempArray[1].indexOf('e')!==-1) || (tempArray[1].indexOf('E')!==-1))
					{
						tempRetVal = obj.getAttribute("caption") + '\n'; 
					}
				}
			}
			else
			{
				tempRetVal = obj.getAttribute("caption") + '\n'; 
			}
			if(tempRetVal!='')
			{
				retVal=tempRetVal;
			}
		}
		
		else if(countryCode==1033)
		{
			if(strTelNumber.length<13)
			{
				retVal = obj.getAttribute("caption") + '\n';
				return retVal;
			}

			tCCode=strTelNumber.substring(0,5);
			tAreaCode=strTelNumber.substring(5,8);
			tSeparator=strTelNumber.substring(8,9);
			tNum=strTelNumber.substring(9,(strTelNumber.length));

			if(tCCode.length!=5 || tCCode.substring(0,1)!='(' || tCCode.substring(4,5)!=')' || isNaN(tCCode.substring(1,4)))
			{
				tempRetVal = obj.getAttribute("caption") + '\n'; 
			}
			
			if(tSeparator!='-')
			{
				if(tSeparator!=' ')
				{
					tempRetVal = obj.getAttribute("caption") + '\n'; 
				}
			}

			if(tAreaCode.length!=3 || isNaN(tAreaCode) || (tAreaCode.indexOf('e')!==-1) || (tAreaCode.indexOf('E')!==-1))
			{
				tempRetVal = obj.getAttribute("caption") + '\n'; 
			}
			
			if(isNaN(tNum) || (tNum.indexOf('e')!==-1) || (tNum.indexOf('E')!==-1))
			{
				tempRetVal = obj.getAttribute("caption") + '\n'; 
			}
			
			if(tempRetVal!='')
			{
				retVal=tempRetVal;
			}
		}
		return retVal;
	*/
}

function validDateTime(objDateTime,countryCode)
	{
	var strDateTime
	var DateTime
	strDateTime = objDateTime.value;	
	
	DateTime = strDateTime.split(" ");	
	objDateTime.value = DateTime[0]
	
	var tempStr;
	tempStr=checkExtDate(objDateTime,countryCode);
	var tempStr1;
	if (DateTime.length > 1 ) 
		{
			objDateTime.value = DateTime[1]				
			tempStr1=checkExtTime(objDateTime,countryCode);
		}
	else
		{
			tempStr1 = true;			
		}
		
	if ((tempStr==true) && (tempStr1==true))
		{
		objDateTime.value= strDateTime
		return true;
		}
	else
		{
			objDateTime.value= strDateTime;
			if ((tempStr1 != true) && (tempStr != true))
				return false;
			else if ((tempStr1 == true) && (tempStr != true))
				return false;
			else 
				return true;
		}
}

function validateTime(obj)
{
  if(obj.value.length==2 || obj.value.length ==5)
  {obj.value = obj.value +":";}
}

function clearVariables()
{
	ErrStr = '';
	mReqdFields = '';					// required fields
	
	mInvalidDate = '';					// date fields
	mInvalidDay = '';
	mInvalidMonth = '';
	mInvalidYear = '';
	mNonLeapYearDay31 = '';
	mNonLeapYearDay30 = '';
	mNonLeapYearDay28 = '';
	mLeapYear = '';
	mStartEndDateErr = '';
	mTwoDaysCheckErr = '';

	mInvalidTime = '';					// time fields
	mInvalidHour = '';
	mInvalidMinute = '';
	mInvalidSecond = '';
	
	mQuoteErr = '';					// other fields
	mNotANumber= '';
	mZipCodeError = '';
	mTelNumErr = '';
	mEmailAddress = '';
}




//--------------------For Future USE--------------------
/*	
function JStrim(strVal)
{
	var i;
	if(strVal != '')
		while(strVal.charAt(0)== ' ')
		{
			strVal = strVal.substr(1); 
		}
	return strVal;
}


function OptionalNumericFields(obj)
	{	
	// PURPOSE:	validate the optional Numeric fields before subbmittin
	// IN:		myform - the current form to validate
	// OUT:		Boolean (validation = OK)
	
	var retVal = true;
	
	var err = '';
				
			if(JStrim(eval(obj.value)!='')
				{
					if (!validNumber(eval(obj.value))
						{
						retVal = false;	 	
						err = err + "Field - " + obj.getAttribute("Caption") + " must be numeric.\n";
						}
				}
											
		if(err!= '')
			{
				alert(err);
				retVal = false;
			}
		return retVal;
	}

	function validNumber(value)
		{
			// PURPOSE:	validate the Numeric field
			// IN:		value
			// OUT:		true/false
			
			if(value =='')
		      return false;
		    if(isNaN(value))
			  return false;
			
		return true;
		}

*/
//------------------------------------------------------




//********************************COMMON FUNCTIONS USED IN ALL PAGES********************************	
//********************************for a temporary use********************************	
/*
function DateObject(strValue)
{
this.value = strValue;
//this.caption	= 
}
	
function fnCalPopUp(strTextBox)
{
	var iTop, iLeft, iWidth, iHeight;
	var fldname;
	fldname = strTextBox
	
	iHeight = 206; iWidth = 162;
			
	iTop = event.clientX;
	iLeft = event.clientY;
		
	var strTextBox = new CalendarPopup();
	strTextBox.offsetX = iLeft ;
	
	strTextBox.top = iTop
	strTextBox.showYearNavigation();
	strTextBox.showYearNavigationInput();

	strTextBox.select(document.getElementById(fldname),'',fldname,'dd-MM-yyyy');
	
}

function fnCalPopUpTwoArgs(strDateBox, strTimeBox)
{
	var iTop, iLeft, iWidth, iHeight;
	var fldname;
	fldname = strDateBox
	
	iHeight = 206; iWidth = 162;
			
	iTop = event.clientX;
	iLeft = event.clientY;
		
	var strDateBox = new CalendarPopup();
	strDateBox.offsetX = iLeft ;
	
	strDateBox.top = iTop
	strDateBox.showYearNavigation();
	strDateBox.showYearNavigationInput();

	strDateBox.select(document.getElementById(fldname),document.all(strTimeBox),fldname,'dd-MM-yyyy');
}

function fnGetDateTime(obj)
{		
	eval("document.forms(0)." + obj).value = document.all(obj+"1").value + ' ' + document.all(obj+"2").value
}

function onpopupClick()
{
	//this line has nothing to do with application function
	//but it must be there.
	var dummy = 1;
}	

function openList(strForeignTableKeyField,strURL)
{
	var iTop,iLeft, iWidth, iHeight;
	iWidth = 900; iHeight = 400;
	iTop = (window.screen.height - iHeight)/2;
	iLeft = (window.screen.width - iWidth)/2;
			
	window.open(strURL,strForeignTableKeyField ,'top=' + iTop + ',left=' + iLeft + ',width=' + iWidth + ',height=' + iHeight + ',tltlebar=no,toolbar=no,location=no,menubar=no');
		
	try{
		eval("document.forms(0)." + strForeignTableKeyField).value = '';
		//document.all(strForeignTableKeyField).value = '';	
	}catch(err){}
}

function returnedToPage(strForeignTableKeyField,idfieldvalue, descfieldvalue,desc1,desc1value,desc2,desc2value,desc3,desc3value,des4,desc4value)
{
	eval("document.forms(0)."+strForeignTableKeyField).value = idfieldvalue;
	eval("document.forms(0).slListDesc"+strForeignTableKeyField).value = descfieldvalue;
	if (desc1!="")
	{
	
		try{eval("document.forms(0)."+desc1).value = desc1value;
			eval("document.forms(0)."+desc2).value = desc2value;
			eval("document.forms(0)."+desc3).value = desc3value;
			eval("document.forms(0)."+desc4).value = desc4value;
			}
		catch(e){}
	}
}
	
function returnedToEditable(strForeignTableKeyField,idfieldvalue, descfieldvalue)
{
	eval("document.forms(0).fld_"+strForeignTableKeyField+intId).value = idfieldvalue;
	eval("document.forms(0).slListDescfld_"+strForeignTableKeyField+intId).value = descfieldvalue;
}

function rTrim(strText)
{
	while(''+ strText.charAt(strText.length-1)==' ')
		strText=strText.substring(0,strText.length-1);
	return strText;
}

function lTrim(strText)
{
	while(''+strText.charAt ==' ')
		strText=strText.substring(1,strText.length);
	return strText;
}

function Trim(strText)
{
	strText = rTrim(strText);	
	return lTrim(strText);
}

function fnDoSubmit()
{
	document.forms(0).submit();
}

function fnFilterSubmit()
{

	if(event.keyCode == 13)
	{
	//alert();
	document.forms(0).submit();
	}
}

function fnSwapCheckbox(obj, strObjName)
{
	if (strObjName=="")
		strObjName = "fldHiddenActive";
	
	if(obj)
	{
		if(obj.checked)
			document.all(strObjName).value = "true";
		else
		{
			document.all(strObjName).value = "false";
			document.all("o").value = "1";	
		}
		
		try{document.all("p").value	= "1";} catch(e){}	
		document.forms(0).submit();
	}
}

function fnSwapHistoryActive(objThis)
{		
	var objActive = document.all("fldHiddenActive");
	var objHistory = document.all("fldHiddenHistory");
	if (objThis == document.all("fldActive"))
	{	
		if(objThis.checked)
		{
			document.all("o").value = "1";
			objActive.value = "true";
			objHistory.value = "false";
		}
		else
			objActive.value = "false";
	}
	else if (objThis == document.all("fldShowHistory"))
	{
		if(objThis.checked)
		{
			objHistory.value = "true";
			objActive.value = "false";
		}
		else
		{
			objHistory.value = "false";
			document.all("o").value = "1";
		}	
	}
	try{document.all("p").value	= "1";} catch(e){}	
	document.forms(0).submit();
}

function SetFocus(objStr)
{
	var obj;
	try
	{
	obj = document.all(objStr);
	obj.focus();
	}
	catch(e){}
}

function fnFlipDivision(strDivName)
{
	var objFrame = document.all(strDivName);
	if (objFrame.style.display=='')
		objFrame.style.display = 'none';
	else
		objFrame.style.display = '';
					
}
*/
	
//********************************COMMON FUNCTIONS USED IN ALL PAGES********************************	

// temp solution to animation caused by tabs hover.
try {
parent.doHover(parent.document.getElementById("tdTab1"));
parent.doStandard(parent.document.getElementById("tdTab1"));
} catch (e) {}

function Trim(STRING)
{
	STRING = LTrim(STRING);
	return RTrim(STRING);
}

function RTrim(STRING)
{
	while(STRING.charAt((STRING.length -1))==" ")
	{STRING = STRING.substring(0,STRING.length-1);}
	return STRING;
}


function LTrim(STRING)
{
	while(STRING.charAt ==" ")
	{STRING = STRING.replace(STRING.charAt ,"");}
	return STRING;
}

		
function RemoveWhiteSpace(objform)
{
	for(var i = 0;i<objform.elements.length;i++)
	{
		if(objform.elements[i].type =="text")
		{
			objform.elements[i].value = Trim(objform.elements[i].value)
		}
	}
}	

//identify the browser type 

function fnGetBrowser()
{
	if (navigator.appName == "Microsoft Internet Explorer") // IE
		return true;	
	else  // Mozilla, Safari, ...
		return false;	
}

//Wait Functions
	
var timerID = 0;
var tStart  = null;
	
function UpdateTimer(waitingTimeInSecond)
	{
		if(timerID) 
		{
			clearTimeout(timerID);
			clockID  = 0;
		}

		if(!tStart)
			tStart   = new Date();

		var   tDate = new Date();
		var   tDiff = tDate.getTime() - tStart.getTime();

		tDate.setTime(tDiff);
		timerID = setTimeout("UpdateTimer("+waitingTimeInSecond+")", 1000);
		if(tDate.getSeconds() > waitingTimeInSecond)
		{
			clearTimeout(timerID);
			timerID  = 0;
			tStart = null;
			doTimerAction();									
		}
}

function StartTimer(waitingTimeInSecond) 
{
	tStart   = new Date();
	timerID  = setTimeout("UpdateTimer("+waitingTimeInSecond+")", 1000);
}
function doTimerAction()
{}

//LEFT-TRIM 
function fntrim(item)
{
    var trimedindex="";
    var index,x;
	
    for(x=0;x < item.length;x++)
    {
	    index = item.charAt(x);//It provides the value at a praticular position
	    if( index!= " ")
    	    trimedindex = trimedindex + index;//concatenation Of strings
    }
    return trimedindex;
}

function fnlimitDateUse(Date)
{
    var day     =   Date.substring(0,2);
    var month   =   Date.substring(3,5);
    var year    =   Date.substring(6,10);
   

    //if(year > "2011")
    if(year > mNextYear)
    {
         return false;
    }
    //else if(year == "2011")
    else if(year == mNextYear)
    {
            if(month < "02")
            {
                if(day > "15")
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            else
                return false;
    }
    else
        return true;
}
		

//function fnlimitDateUse(Date)
//{
//    var day     =   Date.substring(0,2);
//    var month   =   Date.substring(3,5);
//    var year    =   Date.substring(6,10);
//   
//    if(year < "2010")
//    {
//         if(year == "2009")
//         {
//            if(month < "02")
//            {
//                if(day > "12")
//                {
//                    return false;
//                }
//                else
//                {
//                    return true;
//                }
//            }
//            else
//                return false;
//         }
//         else
//            return true;
//            
//    }
//    else
//        return false;
//}
						    

