	/*
	 * File:validation.js
	 * Desc:This file contains various utility functions used for form validations
	 * Version:
	 * Modifications:
	 * Author: SenthilRaja.V
	 * Date :18/01/2002
	 * Notes:
	 	This script contains the following functions;
	 	e.g, return_type function_name(arguments)
		=========================================
		String 		getSelectedOption(Obj)
		String 		trim(strText)

		boolean 	invalidemail(strText)
		boolean 	isNotNumeric(strText)
		boolean		containsBlank(strText)
		boolean		isBlank(StrText)
		boolean		optionSelected(Obj)
		boolean		isValidDate(iYear, iMonth, iDay)
		boolean		isAlphaNumeric(strText)
		boolean		isNull(strText)
		boolean		isMaxLength(strText,iNum)
		boolean		isMinLength(strText,iNum)
		boolean		isNumber(strText)
		boolean		isEmail(strText)
		boolean		isAlphabetic(strText)
		boolean		isTelephoneNumber(strText)
		boolean		isDate(idate,imonth,iyear)
		boolean		selectFocus(Obj)
		boolean		ValidateTextBox(strName,obj,bZeroLength,iMaxChars,bAlphabet,bNumeric,bAlphanumeric,bEmail,bTelNumber)
		boolean		ValidateDropdownList(strName,obj,bSelect,iMaxChars)
		boolean		ValidateRadioButton(strLabel,strRadioName,objForm,bChecked)
		boolean		ValidateCheckBox(strLabel,strCheckBoxName,objForm,bChecked)
		boolean		ValidateDateBox(strLabel,objForm,strDayName,strMonthName,strYearName,bselected)

		void			SelectAllCheckBoxes(strFormName,strSearchChars,strSelectAll)
		void			UnSelectCheckBox(strFormName,strSearchChars,strSelectAll)
		void			StoreSelectedCheckBoxes(strFormName,strHiddenName,strSearchChars)

		int 	len(strText)
		=========================================
	 */


	/*  Validation functions starts here..... */
	function invalidemail(y)
	{
		var len = y.length;
		if (len < 1)
		{
			return true;
		}
		var i = 0;
		for (i=0; i<len; i++)
		{
			if (!((y.charCodeAt(i) >= 65 && y.charCodeAt(i) <= 90)
			  || (y.charCodeAt(i) >= 97 && y.charCodeAt(i) <= 122)
			  || (y.charCodeAt(i) >= 48 && y.charCodeAt(i) <= 57)
			  || (y.charAt(i) == "@")
			  || (y.charAt(i) == "_")
              || (y.charAt(i) == "-")
			  || (y.charAt(i) == ".")))
			{
				return true;
			}
		}
		var at = y.indexOf("@");
		if (at < 0)
		{
			return true;
		}
		i = 0;
		var dot;
		dot = y.indexOf(".", at);
		if (!(dot > 1))
		{
			return true;
		}
		return false;
	}

	function isValidURL(strText)
	{
		var bcorrect=true;
		if(bcorrect && isNull(strText))
		{
			return true;
		}
		if(bcorrect && strText.indexOf("/")!=-1)
		{
			strText=strText.substring(0,strText.indexOf("/"));
		}

		var len = strText.length;

		//validate the characters allowed
		if(bcorrect)
		{
			var i = 0;
			for (i=0; i<len; i++)
			{
				if (!((strText.charCodeAt(i) >= 65 && strText.charCodeAt(i) <= 90)
				  || (strText.charCodeAt(i) >= 97 && strText.charCodeAt(i) <= 122)
				  || (strText.charCodeAt(i) >= 48 && strText.charCodeAt(i) <= 57)
				  || (strText.charAt(i) == "-")
				  || (strText.charAt(i) == "_")
				  || (strText.charAt(i) == ".")))
				{
					bcorrect=false;
				}
			}
		}

		if(bcorrect && strText.indexOf("..")!=-1)
			bcorrect=false;
		if(bcorrect && strText.indexOf("-")==0)
			bcorrect=false;
		if(bcorrect && strText.indexOf("_")==0)
			bcorrect=false;
		if(bcorrect && strText.indexOf(".")==0)
			bcorrect=false;
		if(bcorrect && strText.indexOf(".")==-1)
			bcorrect=false;

		//validate last index of '.' and number of chars next to that
		if(bcorrect)
		{
			var iLastPos=strText.lastIndexOf('.');
			var iMasphar=len - iLastPos;
			if(iMasphar<3 || iMasphar>5)
				bcorrect=false;
		}

		//validate extension
		if(bcorrect)
		{
			var strExtension=strText.substring(strText.lastIndexOf('.')+1);
			if(!isAlphaNumeric(strExtension))
				bcorrect=false;
		}
		return bcorrect;
	}

	function isNotNumeric(n)
	{
		if (n == "")
		{
			return true;
		}
		var len = n.length;
		var i = 0;
		for (i=0; i<len; i++)
		{
			if (!((n.charCodeAt(i) >= 48) && (n.charCodeAt(i) <= 57)))
			{
				return true;
			}
		}
		return false;
	}

	function containsBlank(s)
	{
		var len = s.length;
		for (i=0; i<len; i++)
		{
			if (s.charAt(i) == " ")
			{
				return true;
			}
		}
		return false;
	}

	function isBlank(StrText)
	{
		if (StrText.length < 0)
		{
			return true;
		}
		for (var i=0; i<StrText.length; i++)
		{
			if (StrText.charAt(i) != " ")
			{
				return false;
			}
		}
		return true;
	}

	function getSelectedOption(OItem)
	{
		var optionValue = "";
		for (var i=0; i<OItem.length; i++)
		{
			if (OItem.options[i].selected == true)
			{
				 optionValue = OItem.options[i].value;
				 return optionValue;
			}
		}
	}

	function optionSelected(OItem)
	{
		for (var i=0; i<OItem.length; i++)
		{
			if ((OItem.options[i].selected == true) && (OItem.options[i].value != ""))
			{
				return true;
			}
		}
		return false;
	}

	function isValidDate(iYear, iMonth, iDay)
	{
		if (isNaN(iYear) || isNaN(iMonth) || isNaN(iDay))
		{
		  return false;
		}
			var dtNewDate = new Date(iYear, (iMonth-1), iDay);
			if ((parseInt(dtNewDate.getFullYear()) == iYear)
				&& (parseInt(dtNewDate.getMonth()) == (iMonth-1))
				&& (parseInt(dtNewDate.getDate()) == iDay))
			{
				return true;
			}
		return false;
	}

	//Returns true if "text" is alphanumeric
	function isAlphaNumeric(text)
	{
		var str = new String(text);
		for (var i=0;i<str.length;i++)
		{
			if (!((str.charCodeAt(i)>=65 && str.charCodeAt(i)<=90) || (str.charCodeAt(i)>=97 && str.charCodeAt(i)<=122) || (str.charCodeAt(i)>=48 && str.charCodeAt(i)<=57)))
			{
				return false;
			}
		 }
		return true;
	}

	// returns true if the given text is Null
	function isNull(text)
	{
		if((trim(text) == "") || (text == null))
		{
			//alert("Must not be Null Sring");
			return true;
		}
		else
		{
			return false;
		}
	}

	// returns true if length of the text is greater than given num.
	function isMaxLength(text,num)
	{
		var strlen;
		var text=new String(text);
		strlen = len(text);
		if (strlen > num)
		{
			//alert(" Must not be greater than maximum " + num + " characters ");
			return true;
		}
		else
		{
			return false;
		}
	}

	// returns true if length of the text is less than given value.
	 function isMinLength(text,num)
	{
		var strlen;
		var text=new String(text);
		strlen = len(text);
		if (strlen < num)
		{
			//alert(" Must not be Less than minimum " + num + " characters ");
			return true;
		}
		else
		{
			return false;
		}
	}

	// returns true if the text is Number and false if it is not a number.
	function isNumber(text)
	{
		var ilen;
		var bflagNum=true;
		var text=new String(text);
		if (isNaN(text))
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	// returns true if valid Email.
	function isEmail(emailval)
	{
		var tempStr,icount;
		var blnmail,blnperiod;
		var lastoccofperiod,maxthree;
		var ampicount=0;
		var amppos;
		var servername = 1;
		var dots;
		icount=emailval.length;
		blnperiod = 1;
		maxthree = 1;
		specialchar = 0
		lastoccofperiod = 0;
		if (icount==0)
		{
			return true;
		}
		for(i=0;i<icount;i++)
		{
			tempStr = emailval.charAt(i);
			if ((tempStr >='a')&&(tempStr <='z'))
			{
				specialchar=specialchar+1;
			}
			else
			{
				if ((tempStr >='A')&&(tempStr <='Z'))
				{
					specialchar=specialchar+1;
				}
				else
				{
					if ((tempStr >= 0)&&(tempStr<=9))
					{
						specialchar=specialchar+1;
					}
					else
					{
						if ((tempStr=='_')||(tempStr=='-')||(tempStr=='.')||(tempStr=='@'))
						{
							specialchar=specialchar+1;
						}
						else
						{
							return false;
						}
					}
				}
			}
		}
		dots = emailval.indexOf('..');
		if (dots != -1)
		{
			return false;
		}
		espace = emailval.indexOf(' ');
		if (espace != -1)
		{
			return false;
		}
		lastoccofperiod = emailval.lastIndexOf('.');
		if (lastoccofperiod <= 0)
		{
			blnperiod = 0;
		}
		if (((icount - lastoccofperiod) > 4)||((icount - lastoccofperiod) < 3))
		{
			maxthree = 0;
		}
		 for(i=0;i<=icount;i++)
		{
			tempStr = emailval.charAt(i)
			if (tempStr=='@')
			ampicount=ampicount + 1;
		}
		amppos = emailval.indexOf('@');
		if (emailval.charAt(amppos+1) == '.')
		servername = 0;
		if(icount - emailval.charAt(amppos)< 5)
		servername = 0;
		if ((ampicount==1)&&(blnperiod==1)&&(maxthree==1)&&(servername==1))
		{
			blnmail=1;
		}
		else
		{
			 blnmail=0;
		}
		 //return blnmail;
		if (blnmail==0)
		{
			//alert('Please enter a valid email address');
			return false;
		}
		else
		{
			return true;
		}
	 }

	//returns true if the text carries only alphabets.
	function isAlphabetic(textval)
	{
		var text=new String(textval);
		var ilen;
		var bflag=true;
		for(ilen=0;ilen<=text.length;ilen++)
		{
			if(text.charCodeAt(ilen) < 65 || text.charCodeAt(ilen) > 90 && text.charCodeAt(ilen) < 97 || text.charCodeAt(ilen) > 122)
			{
				bflag=false;
			}
		}
		return bflag;
	}

	function isCurrency(text)
	{
		var bflag=true;
		if(text != "")
		{
			var k = len(text);
			var i;
			for (i=0; i<k; i++)
			{
				if (!((text.charCodeAt(i) >= 48 && text.charCodeAt(i) <= 57) || (text.charAt(i) == ".")))
				{
					bflag=false;
				}
			}
		}
		return bflag;
	}
	//isTelephoneNumber -returns true if it is valid Telephone or Fax Number.allowing +-.()
	function isTelephoneNumber(text)
	{
		var bflag=true;
		if(text != "")
		{
			var k = len(text);
			var i;
			for (i=0; i<k; i++)
			{
				if (!((text.charCodeAt(i) >= 48 && text.charCodeAt(i) <= 57) || (text.charAt(i) == "-")|| (text.charAt(i) == "(")|| (text.charAt(i) == ")") || (text.charAt(i) == "+") || (text.charAt(i) == ".")|| (text.charAt(i) == " ")))
				{
					bflag=false;
				}
			}
		}
		return bflag;
	}

	//returns true if it is valid date.
	function isDate(date,month,year)
	{
		var bflag=true;
		if (isNaN(year) || isNaN(month) || isNaN(date))
		{
			bflag=false;
		}
		if(bflag)
		{
			var dtnew = new Date(year,month-1,date);
			if ((parseInt(dtnew.getFullYear()) == year) && (parseInt(dtnew.getMonth()) == (month-1)) && (parseInt(dtnew.getDate()) == date))
			{
				bflag=true;
			}
			else
			{
				bflag=false;
			}
		}
		return bflag;
	}

	//returns string by removing whitespaces from both the ends.
	function trim(text)
	{
		var stext = new String(text);
		var sresult = "";
		//Remove leading spaces
		for (var i=0; i<stext.length; i++)
		{
			if (stext.charAt(i) != " ")
			{
				sresult = stext.substr(i, (stext.length - i));
				break;
			}
		}
		stext = sresult;
		//Remove trailing spaces
		for (var j=(stext.length - 1); j>=0; j--)
		{
			if (stext.charAt(j) != " ")
			{
				sresult = stext.substr(0, (j + 1));
				break;
			}
		}
		return sresult;
	}

	// returns length of the text
	function len(text)
	{
		var strText=new String(text);
		return strText.length;
	}

	// selecting & focusing on the element that holds asporrect value
	function selectFocus(element)
	{
		element.select();
		element.focus();
		return true;
	}

	//returns true if a radio button is checked
	function IsRadioChecked(objForm,strName)
	{
		var bcorrect;
		bcorrect=false;
		for(i=0; i<objForm.elements.length; i++)
		{
			var name=objForm.elements[i].name;
			var type=objForm.elements[i].type;
			if((type=="radio") && (name.indexOf(strName)!=-1))
			{
				var val=objForm.elements[i].checked;
				if(val==true)
				{
					bcorrect=true;
					break;
				}
			}
		}
		return bcorrect;
	}

	//returns true if atleast one check box is selected
	function IsCheckboxSelected(objForm,strName)
	{
		var bcorrect=false;
		for(var i=0; i<objForm.elements.length; i++)
		{
			var name=objForm.elements[i].name;
			var type=objForm.elements[i].type;
			if((type=="checkbox") && (name.indexOf(strName)!=-1))
			{
				var val=objForm.elements[i].checked;
				if(val==true)
				{
					bcorrect = true;
					break;
				}
			}
		}
		return bcorrect;
	}

	/*  Validation functions ends here. */


	/*  HTML Element Validation functions starts here..... */
	//HTML Element "Text box" validations (includes text area also.)
	function ValidateTextBox(strName,obj,bZeroLength,iMaxChars,bAlphabet,bNumeric,bAlphanumeric,bEmail,bTelNumber,bURL,bFile,strFileType,bCurrency)
	{
		var bCorrect=true;

		//Zerolength validation is optional, if bZeroLength is true then textbox value is checked for zerolength.
		if(bCorrect && bZeroLength)
		{
			if(isNull(obj.value))
			{
				bCorrect=false;
				alert(strName + " is blank.");
				selectFocus(obj);
			}
		}

		//MaxLength is not optional
		if(bCorrect)
		{
			if(isMaxLength(obj.value,iMaxChars))
			{
				bCorrect=false;
				alert(strName + " is greater than " + iMaxChars + " characters.");
				selectFocus(obj);
			}
		}

		//Alphabet validation is optional, if bAlphabet is true then textbox value is checked for Alphabets.
		if(bCorrect && bAlphabet)
		{
			if(!isAlphabetic(obj.value))
			{
				bCorrect=false;
				alert(strName + " must have only alphabets.");
				selectFocus(obj);
			}
		}

		//Numeric validation is optional, if bNumeric is true then textbox value is checked for Numeric.
		if(bCorrect && bNumeric)
		{
			if(!isNumber(obj.value))
			{
				bCorrect=false;
				alert(strName + " must have only numbers.");
				selectFocus(obj);
			}
		}

		//Alphanumeric validation is optional, if bAlphanumeric is true then textbox value is checked for Alphanumeric.
		if(bCorrect && bAlphanumeric)
		{
			if(!isAlphaNumeric(obj.value))
			{
				bCorrect=false;
				alert(strName + " must have only alphanumeric characters.");
				selectFocus(obj);
			}
		}

		//Email validation is optional, if bEmail is true then textbox value is checked for Email.
		if(bCorrect && bEmail)
		{
			if(!isEmail(obj.value))
			{
				bCorrect=false;
				alert(strName + " entered is not a valid email address.");
				selectFocus(obj);
			}
		}

		//TelNumber validation is optional, if bTelNumber is true then textbox value is checked for TelNumber.
		if(bCorrect && bTelNumber)
		{
			if(!isTelephoneNumber(obj.value))
			{
				bCorrect=false;
				alert(strName + " is not a valid telephone/fax number.");
				selectFocus(obj);
			}
		}

		//URL validation is optional, if bURL is true then textbox value is checked for URL.
		if(bCorrect && bURL)
		{
			if(!isValidURL(obj.value))
			{
				bCorrect=false;
				alert(strName + " is not a valid URL.");
				selectFocus(obj);
			}
		}
		if(bCorrect && bFile)
		{
			if(!isFile(obj.value,strFileType))
			{
				bCorrect=false;
				alert(strName + " is not a valid File Type.");
				selectFocus(obj);
			}
		}
		if(bCorrect && bCurrency)
		{
			if(!isCurrency(obj.value))
			{
				bCorrect=false;
				alert(strName + " is not a valid number.");
				selectFocus(obj);
			}
		}
		return bCorrect;
	}


	//HTML Element "Drop-down list" validations
	function ValidateDropdownList(strName,obj,bSelect,iMaxChars)
	{
		var bCorrect=true;

		//Select validation is optional, if bSelect is true then textbox value is checked for Selection.
		if(bCorrect && bSelect)
		{
			if(getSelectedOption(obj)=="")
			{
				bCorrect=false;
				alert(strName + " is not selected.");
				obj.focus();
			}
		}

		//MaxLength is not optional
		if(bCorrect)
		{
			if(isMaxLength(getSelectedOption(obj),iMaxChars))
			{
				bCorrect=false;
				alert(strName + " is greater than " + iMaxChars + " characters.");
				obj.focus();
			}
		}

		return bCorrect;
	}

	//HTML Element "Radio button" validations
	function ValidateRadioButton(strLabel,strRadioName,objForm,bChecked)
	{
		var bCorrect=true;

		//Radio button validation is optional, if bChecked is true then it is checked for Selection.
		if(bCorrect && bChecked)
		{
			if(!IsRadioChecked(objForm,strRadioName))
			{
				bCorrect=false;
				alert(strLabel + " is not selected.");
			}
		}
		return bCorrect;
	}

	//HTML Element "Check box" validations
	function ValidateCheckBox(strLabel,strCheckBoxName,objForm,bChecked)
	{
		var bCorrect=true;

		//Check box validation is optional, if bChecked is true then it is checked for Selection.
		if(bCorrect && bChecked)
		{
			if(!IsCheckboxSelected(objForm,strCheckBoxName))
			{
				bCorrect=false;
				alert(strLabel + " is not selected.");
			}
		}
		return bCorrect;
	}

	// validate date box.
	function ValidateDateBox(strLabel,obj,iDay,iMonth,iYear,bSelected,bFutureDate,bPastDate)
	{
		var bcorrect=true;
		if(bSelected)
		{
			if(bcorrect && !isDate(iDay,iMonth,iYear))
			{
				bcorrect=false;
				alert("Please select a valid " + strLabel + ".");
				obj.focus();
			}
		}
		if(iDay!="" && iMonth!="" && iYear!="")
		{
			if(bcorrect && !isDate(iDay,iMonth,iYear))
			{
				bcorrect=false;
				alert("Please select a valid " + strLabel + ".");
				obj.focus();
			}
		}
		if (bFutureDate)
		{
			if(bcorrect)
			{
				var dtnew = new Date(iYear,iMonth-1,iDay);
				var dtnow = new Date();
				if(dtnew<dtnow)
				{
					bcorrect=false;
					alert("Please select a valid future date.");
					obj.focus();
				}
			}
		}
		if(bPastDate)
		{
			if(bcorrect)
			{
				var dtnew = new Date(iYear,iMonth-1,iDay);
				var dtnow = new Date();
				if(dtnew>dtnow)
				{
					bcorrect=false;
					alert("Please select a valid past date.");
					obj.focus();
				}
			}
		}
		return bcorrect;
	}


	//select All checkboxes starting with..
	function SelectAllCheckBoxes(strFormName,strSearchChars,strSelectAll)
	{
		var objForm=eval("document." + strFormName);
		for(var i=0; i<objForm.length; i++)
		{
			if(objForm.elements[i].type == "checkbox")
			{
				var strCheckBoxName = new String(objForm.elements[i].name);
				if(strCheckBoxName.indexOf(strSearchChars) != -1)
				{
					var objCheckBox = eval("document." + strFormName + "." + strCheckBoxName);
					if(eval("document." + strFormName + "." + strSelectAll + ".checked")==true)
						objCheckBox.checked  = true;
					else
						objCheckBox.checked = false;
				}
			}
		}
	}

	//unselect the checkbox named "ALL" when any one of the other checkboxe(s) unselected.
	function UnSelectCheckBox(strFormName,strSearchChars,strSelectAll)
	{
		var bcheckbox=true;
		var objForm=eval("document." + strFormName);
		for(var i=0; i<objForm.length; i++)
		{
			if(objForm.elements[i].type == "checkbox")
			{
				var strCheckBoxName = new String(objForm.elements[i].name);
				if(strCheckBoxName.indexOf(strSearchChars) != -1)
				{
					var objCheckBox = eval("document." + strFormName + "." + strCheckBoxName);
					if(objCheckBox.checked==false)
						bcheckbox=false;
				}
			}
		}
		var objCheckBoxAll=eval("document." + strFormName + "." + strSelectAll);
		if (objCheckBoxAll != null)
		{
			if(bcheckbox)
				objCheckBoxAll.checked=true;
			else
				objCheckBoxAll.checked=false;
		}
	}

	//selected checkbox values are stored in the hidden field with "," as delimiter
	function StoreSelectedCheckBoxes(strFormName,strHiddenName,strSearchChars)
	{
		var objForm=eval("document." + strFormName);
		var objHidden=eval("document." + strFormName + "." + strHiddenName);
		var iLen=strSearchChars.length;
		eval("document." + strFormName + "." + strHiddenName).value="";
		for(var iLoop=0;iLoop<objForm.elements.length;iLoop++)
		{
			if(objForm.elements[iLoop].type=="checkbox")
			{
				var strCheckBoxName=new String(objForm.elements[iLoop].name);
				if(strCheckBoxName.slice(0,iLen)==strSearchChars)
				{
					if(objForm.elements[iLoop].checked==true)
					{
						objHidden.value+=(objHidden.value=="") ? strCheckBoxName.slice(iLen) : ("," + strCheckBoxName.slice(iLen));
					}
				}
			}
		}
		//alert(objHidden.value);
	}

	//Checks whether file type is ends with specified extension or not

	function isFile(strValue,strFileType)
	{
		var bCorrect=false;
		strImage=new String(strValue);
		var bHtml=false;
		var bAll=false;
		var bImage=false;
		if(strValue.length==0)
		{
			return true;
		}
		if(strFileType.toLowerCase()=="htm" || strFileType.toLowerCase()=="html")
		{
			bHtml=true;
		}
		if(strFileType.toLowerCase()=="all")
		{
			bAll=true;
		}
		if(strFileType.toLowerCase()=="img")
		{
			bImage=true;
		}
		if(strImage.indexOf(".")!=-1)
		{
			iIndex=strImage.indexOf(".");
			if(bAll==true)
			{
				strFile=strImage.substring(iIndex+1);
				if(strFile.length>=2)
				{
					bCorrect=true;
					return bCorrect;

				}
				else
				{
					bCorrect=false;
					return bCorrect;

				}
			}
			else	if(bImage==true)
			{
				if((strImage.substring(iIndex+1)).toLowerCase()=="gif" || (strImage.substring(iIndex+1)).toLowerCase()=="jpg" || (strImage.substring(iIndex+1)).toLowerCase()=="jpeg" || (strImage.substring(iIndex+1)).toLowerCase()=="bmp")
				{
					bCorrect=true;
					return bCorrect;

				}
				else
				{
					bCorrect=false;
					return bCorrect;

				}
			}
			else	if(bHtml==true)
			{
				if((strImage.substring(iIndex+1)).toLowerCase()=="htm" || (strImage.substring(iIndex+1)).toLowerCase()=="html")
				{
					bCorrect=true;
					return bCorrect;

				}
				else
				{
					bCorrect=false;
					return bCorrect;

				}
			}
			else
			{
				if((strImage.substring(iIndex+1)).toLowerCase()==strFileType.toLowerCase())
				{
					bCorrect=true;
					return bCorrect;

				}
				else
				{
					bCorrect=false;
					return bCorrect;

				}
			}
		}
		else
		{
			bCorrect=false;
			return bCorrect;
		}
	}
	/*  HTML Element Validation functions ends here. */


function isValidCreditCard(strValue)
{
	var b_correct = true;
	if(b_correct)
	{
		if(isNotNumeric(strValue))
		{
			b_correct = false;
		}
	}
	if(b_correct)
	{
		var str_len=strValue.length;
		var b=0;
		var a=1;
		for(var i=str_len;i>=1;i--)
		{
			if(a%2!=0)
			{
				b=b+parseInt(strValue.substring(i-1,i));
			}
			else
			{
				var j;
				j=strValue.substring(i-1,i)*2;
				if(j.toString().length>1)
				{
					for(var s=0;s<=1;s++)
					{
						b=b+parseInt((j.toString()).substring(s,s+1));
					}
				}
				else
				{
					b=b+j;
				}
			}
			a=a+1;
		}
		if(b%10==0)
		{
			b_correct=true;
		}
		else
		{
			b_correct=false;
		}
	}
	return b_correct;
}


//************** DD/MM/YYYY DATE VALIDATION STARTS HERE *******************************//
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s)
{
	var i;
    for (i = 0; i < s.length; i++)
		{
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
		{
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    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 is_ddmmyyyy(dtStr)
{
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=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 : dd/mm/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
}

 //************** DD/MM/YYYY DATE VALIDATION  ENDS HERE********************************//



//************** HH:MM:SS AM/PM format VALIDATION STARTS HERE********************************//
	function IsValidTime(timeStr)
	{
		// Checks if time is in HH:MM:SS AM/PM format.
		// The seconds and AM/PM are optional.
		var b_correct=true;

		if(!isNull(timeStr))
		{
			var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

			var matchArray = timeStr.match(timePat);
			if (b_correct && matchArray == null)
			{
				alert("Time is not in a valid format.");
				b_correct = false;
			}

			if(b_correct)
			{
				hour = matchArray[1];
				minute = matchArray[2];
				second = matchArray[4];
				ampm = matchArray[6];

				if (second=="") { second = null; }
				if (ampm=="") { ampm = null }
			}

			if (b_correct && hour < 0  || hour > 23)
			{
				alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
				b_correct = false;
			}
			if (b_correct && hour <= 12 && ampm == null)
			{
				//if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time"))
				//{
					alert("You must specify AM or PM.");
					b_correct = false;
			   //}
			}
			if  (b_correct && hour > 12 && ampm != null)
			{
				alert("You can't specify AM or PM for military time.");
				b_correct = false;
			}
			if (b_correct && minute<0 || minute > 59)
			{
				alert ("Minute must be between 0 and 59.");
				b_correct = false;
			}
			if (b_correct && second != null && (second < 0 || second > 59))
			{
				alert ("Second must be between 0 and 59.");
				b_correct = false;
			}
		}

		return b_correct;
	}
//************** HH:MM:SS AM/PM format VALIDATION ENDS HERE********************************//


//-->