// Global Functions
function radioVal(obj) {
	var retVal;
	for (var i=0;i<obj.length;i++) {
		if (obj[i].checked) {
			retVal = obj[i].value;
			break;
		}
	}
	return retVal;
}

function selectVal(obj) {
	var retVal;
	retVal = obj.options[obj.selectedIndex].value;
	return retVal;
}

function CheckVal(obj) {
	var retVal;
	if (obj.checked)
		retVal = obj.value;
	return retVal;
}

function setCheck(val, obj) {
	if (val)
		obj.checked = true;
}

function indexMatch(obj, toFind) {
	var retVal = -1
	for(var i = 0; i < obj.length; i++) if (obj[i].value == toFind) {
		retVal = i
		break;
	}
	return retVal;
}

function IsEmpty(szFieldName) {
   var i; var ch;
   TrimField(szFieldName);
   if (szFieldName.value == "")	return true;
   if (parseInt(szFieldName.value.length) == 0) return true;
   for (i=0; i<parseInt(szFieldName.value.length); i++) {
     ch = szFieldName.value.charAt(i);
     if (ch != ' ' && ch != '\t')
       return false;
   }
   return true;
}

function IsNumeric(szFieldName) {
	var i; var IsNum; var ch;

	IsNum=true;
	TrimField(szFieldName);
	for(i=0; i<parseInt(szFieldName.value.length); i++) {
		ch=szFieldName.value.charAt(i);
		if ((ch >= "0") && (ch <= "9"))
			IsNum= true;
		else
			return false;
	}
	return IsNum;
}

function IsDecimal(szFieldName) {
	var i; var IsDec; var ch;

	IsDec=true;
	TrimField(szFieldName);
	for(i=0; i<parseInt(szFieldName.value.length); i++) {
		ch=szFieldName.value.charAt(i);
		if ((ch >= "0") && (ch <= "9"))
			IsDec= true;
		else if ((ch == ".") && (i>0) && (i<parseInt(szFieldName.value.length)-1))
			IsDec = true;
		else
			return false;
	}
	return IsDec;
}

function IsTelcoNum(szFieldName) {
	var i; var IsNum; var ch;

	IsNum=true;
	TrimField(szFieldName);
	for (i=0; i<parseInt(szFieldName.value.length); i++) {
		ch=szFieldName.value.charAt(i);
		if ((ch >= "0") && (ch <= "9"))
			IsNum=true;
		else  
		{
			if ( ch=="(" || ch==")" || ch=="-" || ch==" " )
				IsNum=true;
			else
				return false;
		}	
	}
	return IsNum;
}

function IsValidEmail(szFieldName) {
	var IsEmail;
	var ch;
	var checkAT;
	var checkPERIOD;

	checkAT = 0; 
	checkPERIOD = 0;
	if (IsEmpty(szFieldName)) return false;
	if (szFieldName.value.indexOf("@")==-1) return false;
	if (szFieldName.value.indexOf("@")==0) return false;
	if (szFieldName.value.indexOf("@")==(parseInt(szFieldName.value.length)-1)) return false;
	if (szFieldName.value.indexOf(" ") != -1) return false;

	for(i=0; i<parseInt(szFieldName.value.length); i++) {
		ch= szFieldName.value.charAt(i)
		if (ch == "@") {
			checkAT = checkAT + 1;
			if (checkAT >= 2) {
				IsEmail = false;
				break;
			}
		}
	if (ch == ".") {
		checkPERIOD = checkPERIOD + 1;
	}
	if ((( ch >= "A") && (ch <= "Z")) || ((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) || 
		(ch == "$") || (ch == "-") || (ch == ".") || (ch == "&") || (ch == "+") || (ch == "!") ||
		(ch == "*") || (ch == "`") || (ch == "(") || (ch == ")") || (ch == ",") || (ch == "@") ||
		(ch == "_")) {
	IsEmail= true;
	}
	else {
	IsEmail= false;
	break;
	}
	}

	if (checkPERIOD == 0) {
	 	return false;
	}
    if (!IsEmail) {
        return false;
    }
   return true;
}

function TrimField(szFieldName) {
	var szNewStr;
	if (szFieldName.value != "") { 	
		szNewStr = TrimString(szFieldName.value);
		szFieldName.value = szNewStr;
	}
}

function TrimString(szString)  {
	var i = 0; var j = 0;
	for (i=0; i<parseInt(szString.length); i++) {
            if (szString.charAt(i) != " ") {
                  for (j=parseInt(szString.length) - 1; j > i; j--) {
                        if (szString.charAt(j) != " ") {
                              break;
                        }
                  }
                  break;
            }
      }
      if (i > j)
            i = j;
      if (szString.length > 0 && szString.charAt(j) != " ")
            j++;
      return szString.substring(i, j);
}

function lessChar(szFieldName,minNo) {
	TrimField(szFieldName);
	if (szFieldName.value == "")	return true;
	if (parseInt(szFieldName.value.length) <= minNo) return true;
	return false;
}

function bfnIsDate (day,month,year) 
{
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else
        return false
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function fieldLength(szFieldName) {
   var i; var ch;
   TrimField(szFieldName);
   if (szFieldName.value == "")	return 0;
   if (parseInt(szFieldName.value.length) == 0) return 0;
   return parseInt(szFieldName.value.length);
}

/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
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 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 || 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
}

function alphanumeric(alphane)
{
	var numaric = alphane.value;
	for(var j=0; j<numaric.length; j++)
		{
		  var alphaa = numaric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123))
		  {
		  }
		else	{
			 return false;
		  }
		}
 return true;
}