﻿function keyIsNum(e)
{
    var key = getKeyCode(e);
	if (key<48 || key>57){
	    if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) {
                return true}
	    return false;}
	return true;
}

function isNumber(value)
{
	return (!isNaN(value) && value != '' && value.indexOf(".") == -1);
}

function Trim(str)
{
	var startIndex, endIndex;
	for(startIndex=0; startIndex < str.length; startIndex++)
		if(str.charAt(startIndex) != ' ') break;
	for(endIndex=str.length-1; endIndex >= startIndex; endIndex--)
		if(str.charAt(endIndex) != ' ')  break;
	return ((startIndex > endIndex) ? "" : str.substring(startIndex,endIndex+1));
}	

function isDate(date)
{
	var arrDate = date.split('/');
	if (arrDate.length != 3) return false;
	if (!isNumber(arrDate[0]) || !isNumber(arrDate[1]) || !isNumber(arrDate[2])) return false;
	if (1*arrDate[1] > 12 || 1*arrDate[1] < 1) return false;
	var m = arrDate[1];
	if ((m==4) || (m==6) || (m==9) || (m==11))
		{if (1*arrDate[0] > 30 || 1*arrDate[0] < 1) return false;}
	else if (m==2) 
		{if (1*arrDate[0] > 29 || 1*arrDate[0] < 1) return false;}
	else
		if (1*arrDate[0] > 31 || 1*arrDate[0] < 1) return false;				
	if (1*arrDate[2] < 1900 || 1*arrDate[2] > 9999) return false;
	return true;
}

function isDateTime(dateTime)
{
	var arrDateTime = dateTime.split(' ');
	// time isn't mandatory
	if (arrDateTime[1] != null  &&  arrDateTime[1] != "") { if(!isTime(arrDateTime[1])) return false; }
	if (!isDate(arrDateTime[0])) return false;
	return true;
}

function isTime(time)
{
	var arrTime = time.split(':');
	if (arrTime.length != 3) return false;
	if (!isNumber(arrTime[0]) || !isNumber(arrTime[1]) || !isNumber(arrTime[2])) return false;
	if (1*arrTime[0] > 24 || 1*arrTime[0] < 0) return false;
	if (1*arrTime[1] > 59 || 1*arrTime[1] < 0) return false;
	if (1*arrTime[2] > 59 || 1*arrTime[2] < 0) return false;
	return true;
}

function phoneValidation(e)
{
    var key = getKeyCode(e);
	if(!keyIsNum(e) && (key != 45) && (key != 43)){
	    if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) {
                return true}
	    return false;}
	return true;
}

function userNameValidChars(e)
{
	var key = getKeyCode(e);
	if(!(key>=65 && key <=90) && !(key>=97 && key <=122) && !(key>=48 && key <=57)  && !(key==95) && !(key==45) && !(key==46) && !(key==33) && !(key==127)){
        if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) {
            return true}
        return false;}	
    return true;
}

function emailValidChars(e)
{
	var key = getKeyCode(e);
	if(key == 64){return true;}
	else{return userNameValidChars(e);}
}
	

//general for input
function validChars(e)
{
    var key = getKeyCode(e);
	if((key==33 || key==47 || key==60 || key==62 || key==63 || key==92 || key==94 || key==123 || key==125) || (key>=35 && key<=39)){
	    if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) {
                return true}
	    return false;}
	return true;		
}

// Checking if the the given Payment Detail is valid
function IsValidPaymentDetails()
{
    var key = event.keyCode;
	if ((key == 60) || (key == 38) || (key == 34)) // Invalid chars for XML: < & "
	{
	    if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0)
	        return true
        
	    return false;
	}
	return true;
}

function getKeyCode(e)
{
    return (window.event ? e.keyCode : (e.which ? e.which : null));
}