//******************************
// Credit card validation
//******************************
function isCreditCard(st) {
	if (st.length > 19) return false
	if (st == '') return false

	sum = 0; mul = 1; l = st.length

	for (x = 0; x < l; x++) {
		digit = st.substring(l-x-1, l-x)
		if (digit != ' ')
		{
		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
}

//******************************
// Email validation
//******************************
function testemail(src) {
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	return regex.test(src);
}

//******************************
// Trim
//******************************
function LTrim(str)
{
	var i = 0;
	var j = str.length - 1;

	if (str == null)
		return ('');

	for (i = 0; i < str.length; i++)
	{
		if (str.substr(i, 1) != ' ' &&
		    str.substr(i, 1) != '\t')
			break;
	}

	if (i <= j)
		return (str.substr(i, (j + 1) - i));
	else
		return ('');
}

function RTrim(str)
{
	var i = 0;
	var j = str.length - 1;

	if (str == null)
		return ('');

	for(j = str.length - 1; j >= 0; j--)
	{
		if (str.substr(j, 1) != ' ' &&
			str.substr(j, 1) != '\t')
		break;
	}

	if (i <= j)
		return (str.substr(i, (j + 1) - i));
	else
		return ('');
}

function Trim(str) {
	if (str == null)
		return ('');
	return RTrim(LTrim(str));
}

//******************************
// Print window
//******************************
function PrintWindow() {
   bVer = parseInt(navigator.appVersion)
   if (bVer >= 4) window.print()
}

//******************************
// Date validation
//******************************
var dtCh= "/";

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;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var 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){
    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 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)
	if (strYr.charAt(0) == "0" && strYr.length > 3) strYr = strYr.substring(1)

	month = parseInt(strMonth)
	day = parseInt(strDay)
	year = parseInt(strYr)

	if (pos1 == -1 || pos2 == -1){
		alert("Date format should be: dd/mm/yyyy.")
		return false
	}
	if (strMonth.length < 1 || month < 1 || month > 12){
		alert("Please enter valid month.")
		return false
	}
	if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter valid day.")
		return false
	}
	if (strYear.length != 4 || year == 0){
		alert("Please enter 4 digit year.")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false){
		alert("Please enter valid date.")
		return false
	}
return true
}
