// JavaScript Document
///////////////////////////////////////////////////////////////////////////////////
//
//		File:	GeneralValidation.js
//				Copyright (c) 2003 Catfish Software Inc.
//				All rights reserved.
//
//		Desc:   To perform the Cilent side input validations
//
//		Auth:	K.Sankar
//		Date:	03-May-2005
//
///////////////////////////////////////////////////////////////////////////////////
//		Modification History
//---------------------------------------------------------------------------------
//		Date:			Author:				Description:
//		--------		---------------		-------------------------------------------
//		03-May-2005		K.Sankar			Initial implementation
//
///////////////////////////////////////////////////////////////////////////////////
//		To Do:
//---------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////
//

// Following functions are included
// 1. funTrimString
// 2. isInteger
// 3. isDate
// 4. CheckNumber
// 5. chkMinLength
// 6. echeck
// 7. showPopup
// 8. ltrimChar
// 9. rtrimChar
//10. removeChar

<!--
function funTrimString(objStr)
{	
	if(objStr.value.charCodeAt(0)==32)
	{
		objStr.value = objStr.value.substr(1,objStr.value.length);
		funTrimString(objStr);
	}
	else if(objStr.value.charCodeAt(objStr.value.length-1)==32)
	{
		objStr.value = objStr.value.substr(0,objStr.value.length-1);
		funTrimString(objStr);
	}
}


// Declaring valid date character, minimum year and maximum year
		var dtCh = "/";
		//var minYear = 1900;
		var curDt = new Date();
		//var maxYear = curDt.getFullYear();
		
		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;
		}

//Check the date format in mm/dd/yyyy
	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  ){
		alert("Please enter a valid 4 digit year");
		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 for doing the Number validation
function CheckNumber(strNumber)
{
	var strGoodChars = "0123456789";	

	for (i = 0; i < strNumber.length; i++)
	{
		if (strGoodChars.indexOf(strNumber.charAt(i)) == -1)
		{			
			return false;
		} // End if statement
		
	} // End for loop
	
	return true;//passes the test
}
//Function for Validating MinLength
function chkMinLength(fieldName,strValue,minLength) 
	{
		str = new String(strValue);
		len = str.length;
		if (len < minLength) {
			alert('The minimum length of ' + fieldName + ' should be ' + minLength + '.');
			return false;
		}
		return true;
}

//Function for Validating MinLength
function chkMinLength1(fieldName,strValue,minLength) 
	{
		str = new String(strValue);
		len = str.length;
		if (len < minLength) {
//			alert('The minimum length of ' + fieldName + ' should be ' + minLength + '.');
			return false;
		}
		return true;
}

//function for validating Emails
function echeck(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
	   return false	

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)	
	   return false
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)	
	    return false	

	 if (str.indexOf(at,(lat+1))!=-1)
	    return false

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	    return false

	 if (str.indexOf(dot,(lat+2))==-1)
	    return false
		
	 if (str.indexOf(" ")!=-1)
	    return false

 	 return true					
}


// Function to show popup with 
// parameter : sPage => Page to be displayed
//			   sID   => Query string to the page

function showPopup(sPage,sID)
{
	var win;
	var strPage;
	strPage = sPage + sID
	win = window.open(strPage,"MyWin","width=680, height=550;location=no; scrollbars=1; resizable=1; ");
	win.focus();
}


// Function to remove leading character from a string
// parameter obj  - object reference contains string
//			 ch - character to remove
function ltrimChar(obj, ch)
{
	var str;
	str = obj.value;
	for(var i = 0; i < str.length; i++)
	{
		if( str.charAt(i) != ch)
			break;
	}
	
	obj.value = str.substring(i);
			
}

// Function to remove triling character from a string
// parameter obj  - object reference contains string
//			 ch - character to remove

function rtrimChar(obj, ch)
{
	var str;
	str = obj.value;
	for(var i = str.length-1; i >= 0; i--)
	{
		if( str.charAt(i) != ch)
			break;
	}
	obj.value = str.substring(0,i+1);
}

// Function to remove character from a string
// parameter obj  - object reference contains string
//			 ch - character to remove

function removeChar(obj, ch)
{
	var str1,str2;
	str1 = obj.value;
	str2 = "";
	for(var i = 0 ; i < str1.length; i++)
	{
		if( str1.charAt(i) != ch)
			str2 += str1.charAt(i);
	}
	obj.value = str2;
}

-->