
var monthname=new Array(" ","January","February","March",
				"April","May","June",
				"July","August","September",
				"October","November","December");
var weekday=new Array("Sunday","Monday","Tuesday","Wednesday",
				"Thursday","Friday","Saturday");

//============================================================================
function isValidDate(dateStr)
{
//		dml=formname;
//		len = dml.elements.length;
		if(Trim(dateStr).length == 0)
			return true;
//		var datePat = /^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/; // requires 4 digit year
		var datePat = /^(\d{2})(\/)(\d{1,2})(\/)(\d{1,4})$/; // requires 4 digit year

		var matchArray = dateStr.match(datePat); // is the format ok?
		
//		if (matchArray == null)
//		{
//			alert(" Please enter a valid date format (dd/mm/yyyy).")
//			return false;
		//	if(isIE)
		//	{
		//		formname(ctrlname).value = ""
		//		formname(ctrlname).select()
		//		formname(ctrlname).focus()
		//	}
		//	else
		//	{
		//		formname[ctrlname].value = ""
		//		formname[ctrlname].focus()
		//		formname[ctrlname].select()
		//	}
//		}
//		year = matchArray[1];
//		month = matchArray[3];// parse date into variables
//		day = matchArray[5];

	//	month = matchArray[3];
	//	day = matchArray[1];// parse date into variables
	//	year = matchArray[5];
		month = document.thisForm.TMonth.value	
		day = document.thisForm.TDay.value
		year = document.thisForm.TYear.value

		if (month < 1 || month > 12) { // check month range
			alert("Month must be between 1 and 12.");
			//if(isIE)
			//{
			//	formname(ctrlname).focus()
			//	formname(ctrlname).select()
			//}
			//else
			//{
			//	formname[ctrlname].focus()
			//	formname[ctrlname].select()
			//}
			return false;
		}
		if (day < 1 || day > 31) {
			alert("Day must be between 1 and 31.");
			//if(isIE)
			//{
		//		formname(ctrlname).focus()
		//		formname(ctrlname).select()
		//	}
		//	else
		//	{
		//		formname[ctrlname].focus()
		//		formname[ctrlname].select()
		//	}
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			alert(" "+monthname[month]+" doesn't have 31 days!")
			document.thisForm.TDay.value="1"
			//if(isIE)
			//{
			//	formname(ctrlname).focus()
			//	formname(ctrlname).select()
			//}
			//else
			//{
			//	formname[ctrlname].focus()
			//	formname[ctrlname].select()
			//}
			return false;
		}
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) {
				alert("February " + year + " doesn't have " + day + " days!");
				document.thisForm.TDay.value="1"
				//if(isIE)
				//{
				//	formname(ctrlname).focus()
				//	formname(ctrlname).select()
				//}
				//else
				//{
				//	formname[ctrlname].focus()
				//	formname[ctrlname].select()
				//}
				return false;
			}
		}
/*		today=new Date()
		month=today.getMonth()+1
		day=today.getDate()
		year=today.getYear()
		edate=new Date(dateStr)
		vtoday=new Date(month+"/"+day+"/"+year)
		if (edate.valueOf() < vtoday.valueOf()){
			alert("Date Should be atleast today's date")
			//if(isIE)
			//{
			//	formname(ctrlname).focus()
			//	formname(ctrlname).select()
			//}
			//else
			//{
			//	formname[ctrlname].focus()
			//	formname[ctrlname].select()
			//}
			return false
		}*/
	//	return true;

  }

 function myisValidDate(val)
	{
	//alert(fname + "  " + val + " " + str + "  " + cname )
	var cval = val 
	var myobj = document.fname
	var pos = cval.indexOf("/")
	var m = cval.substr(0,pos)
	if(m.length == 1)
		m = "0"+m
	cval = cval.substr(pos+1)
	pos = cval.indexOf("/")
	var d = cval.substr(0,pos)
	if (d.length == 1)
		d = "0"+d
	cval = cval.substr(pos+1)
	var y = cval
	
	//document[fname][cname].value=m+"/"+d+"/"+y
	if(isValidDate(fname,val,str,cname)==false)
	{
		//document[fname][cname].focus()
		return false
	}
	//return true
}

//============================================================================
function CheckNumber(ChkVal){
	var IndexPos
	var inputStr
	inputStr=ChkVal.toString()
	if(Trim(inputStr).length == 0){
		return true;
	}
	for (var i=0; i<inputStr.length; i++){
	  var oneChar=inputStr.charAt(i)
	  oneChar = oneChar.toString().charCodeAt(0)
	  if (oneChar < 48 ||oneChar > 57){
	   	 	return false
	  }
	}
    return true
}

function Trim(str)
{
        return RTrim(LTrim(str));
}

function LTrim(str)
{
        var whitespace = new String(" \t\n\r");

        var s = new String(str);

        if (whitespace.indexOf(s.charAt(0)) != -1) {
            var j=0, i = s.length;
            while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
                j++;
            s = s.substring(j, i);
        }

        return s;
}
                           
function RTrim(str)
{
        var whitespace = new String(" \t\n\r");
        var s = new String(str);
        if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
            var i = s.length - 1;       // Get length of string
            while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
                i--;
            s = s.substring(0, i+1);
        }

        return s;
}

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

/** general purpose function to check whether a string input consists of all alphabets */
function isCharacter(inputStr) {
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.substring(i, i + 1);
		if (oneChar >= "0" && oneChar <= "9") {
			return false;
		}
	}
	return true;
}

/** function to check whether a date is valid */
function isValidDate2(dateStr) {
	var dateArr = dateStr.split('-');

	if ( dateArr.length != 3 || isNaN(dateArr[0]) || isNaN(dateArr[1]) || isNaN(dateArr[2])) {
		return false;
	} else if ( dateArr[0].length > 2 || dateArr[1].length > 2 || dateArr[2].length > 4 ) {
		return false;		
	} else if ( (dateArr[0] < 1 || dateArr[0] > 31) || (dateArr[1] < 1 || dateArr[1] > 12) || (dateArr[2] < 1900 || dateArr[2] > 2500)) {
		return false;
	} else if ( Number(dateArr[1]) == 2 && Number(dateArr[0]) > 29) {
		return false;
	} else if ( Number(dateArr[1]) == 2 && Number(dateArr[0]) == 29 && Number(dateArr[2]) % 4 != 0 ) {
		return false;
	} else if ( Number(dateArr[0]) == 31 && ( Number(dateArr[1]) == 4 || Number(dateArr[1]) == 6 || Number(dateArr[1]) ==  9 || Number(dateArr[1]) == 11 )) {
		return false;
	} else if ( Number(dateArr[1]) == 2 && Number(dateArr[0]) == 29 && Number(dateArr[2]) % 4 == 0 && dateArr[2].substring(2) == '00' && Number(dateArr[2]) % 400 != 0) {
		return false;
	} else {
		return true;
	}
}

/*  ================================================================
    FUNCTION:  isCreditCard(st)
 
    INPUT:     st - a string representing a credit card number

    RETURNS:  true, if the credit card number passes the Luhn Mod-10
		    test.
	      false, otherwise
    ================================================================ */

function isCreditCard(st) {
  // Encoding only works on cards with less than 19 digits
  if (st.length > 19)
    return (false);

  sum = 0; mul = 1; l = st.length;
  for (i = 0; i < l; i++) {
    digit = st.substring(l-i-1,l-i);
    tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }

  if ((sum % 10) == 0)
    return (true);
  else
    return (false);
} // END FUNCTION isCreditCard()

/*  ================================================================
    FUNCTION:  isVisa()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid VISA number.
		    
	      false, otherwise

    Sample number: 4111 1111 1111 1111 (16 digits)
    ================================================================ */

function isVisa(cc)
{
  if (((cc.length == 16) || (cc.length == 13)) &&
      (cc.substring(0,1) == 4))
    return isCreditCard(cc);
  return false;
}  // END FUNCTION isVisa()

/*  ================================================================
    FUNCTION:  isMasterCard()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid MasterCard
		    number.
		    
	      false, otherwise

    Sample number: 5500 0000 0000 0004 (16 digits)
    ================================================================ */

function isMasterCard(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) &&
      ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  return false;
} // END FUNCTION isMasterCard()