var dtCh = "/";
var minYear = 1900;
var maxYear = 2100;

//var maxYear = Date();
//maxYear = maxYear.substring(maxYear.length,maxYear.length-4);

//var maxYear=d

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 showPopupWindow(strPageName, strPageTitle, intWindowHeight, intWindowWidth) {
    var lintWindowTopPosition = eval(screen.height - intWindowHeight) / 2;
    var lintWindowLeftPosition = eval(screen.width - intWindowWidth) / 2;
    strPageTitle = replaceAll(strPageTitle, ' ', '');
    return window.open(strPageName, strPageTitle, "top=" + lintWindowTopPosition + ",left=" + lintWindowLeftPosition + ",height=" + intWindowHeight + ",width=" + intWindowWidth + ",toolbar=none,scrollbars=1");
}

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 dateKeyPress(objInput) {
    if ((event.keyCode >= 48 && event.keyCode <= 59) || (event.keyCode == 45) || (event.keyCode == 13))
        return true;
    else
        return false;
}
function ZipKeyPress(objInput, objCountry) {

    //alert(objCountry.value);
    /*var len ;
    len = objInput.value.length ; 	
    if (objCountry.value == 'US')	
    {
    if(len<5 && ((event.keyCode >= 48 && event.keyCode <=59) || (event.keyCode==45) || (event.keyCode==13)))
    return true;
    else 
    return false;
    }
    else
    {
    if(len<6 && ((event.keyCode>=45 && event.keyCode<=57) || (event.keyCode >= 65 && event.keyCode <=90) || (event.keyCode >= 97 && event.keyCode <=122) || (event.keyCode==13) || (event.keyCode==32)))
    return true;
    else 
    return false;	
    }*/

    /* new 08April2009 */

    //08april2009 0 and 8  is added for firefox compatability
    var len;
    len = objInput.value.length;
    var key_code;
    if (window.event) {
        key_code = window.event.keyCode;
    }
    else {
        if (event.which) {
            key_code = event.which;
        }
        else
            key_code = null;
    }

    if (objCountry.value == 'US') {

        if (len < 5 && ((key_code >= 48 && key_code <= 59) || (key_code == 45) || (key_code == 13) || (key_code == 8) || (key_code == 0)))
            return true;
        else
            return false;
    }
    else {
        if (len < 6 && ((key_code >= 45 && key_code <= 57) || (key_code >= 65 && key_code <= 90) || (key_code >= 97 && key_code <= 122) || (key_code == 13) || (key_code == 8) || (key_code == 0) || (key_code == 32)))
            return true;
        else
            return false;
    }
}


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
}
*/

/* Start: The Change Which  in Kalpesh Sir System in Writable Mode*/

function isDate(dtStr, alertFlg) {
    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) {
        if (!alertFlg)
            alert("The date format should be : MM/DD/YYYY")
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        if (!alertFlg)
            alert("Please enter a valid month")
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        if (!alertFlg)
            alert("Please enter a valid day")
        return false
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        if (!alertFlg)
            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) {
        if (!alertFlg)
            alert("Please enter a valid date")
        return false
    }
    return true
}

function isalphanum(obj) {
    if (obj.value.search(/[^0-9^a-z^A-Z]/) != -1) {
        //alert('Value should be alphanumeric.');
        //obj.value="";
        obj.focus();
        return false;
    }
    return true;
}

function IsAlphaNumSpace(obj) {
    if (obj.value.search(/[^0-9^a-z^A-Z^ ]/) != -1) {
        //alert('Value should be alphanumeric.');
        //obj.value="";
        obj.focus();
        return false;
    }
    return true;
}


function istext(obj) {
    if (obj.value.search(/[^0-9^a-z^A-Z]/) != -1) {
        alert('Value should be in chararacters.');
        //obj.value="";
        obj.focus();
        return false;
    }
    return true;
}


function trim(strComp) {
    ltrim = /^\s+/
    rtrim = /\s+$/
    strComp = strComp.replace(ltrim, '');
    strComp = strComp.replace(rtrim, '');
    return strComp;
}


function validateZIP(field) {
    var valid = "0123456789-";
    var hyphencount = 0;

    if (field.length != 5 && field.length != 10) {
        alert("Please enter your 5 digit or 5 digit+4 zip code.");
        return false;
    }
    for (var i = 0; i < field.length; i++) {
        temp = "" + field.substring(i, i + 1);
        if (temp == "-") hyphencount++;
        if (valid.indexOf(temp) == "-1") {
            alert("Invalid characters in your zip code.  Please try again.");
            return false;
        }
        if ((hyphencount > 1) || ((field.length == 10) && "" + field.charAt(5) != "-")) {
            alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
            return false;
        }
    }
    return true;
}



function isZip(field) {
    var valid = "0123456789-";
    var hyphencount = 0;

    if (field.length != 5 && field.length != 10) {
        alert("Please enter your 5 digit or 5 digit+4 zip code.");
        return false;
    }
    for (var i = 0; i < field.length; i++) {
        temp = "" + field.substring(i, i + 1);
        if (temp == "-") hyphencount++;
        if (valid.indexOf(temp) == "-1") {
            alert("Invalid characters in your zip code.  Please try again.");
            return false;
        }
        if ((hyphencount > 1) || ((field.length == 10) && "" + field.charAt(5) != "-")) {
            alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
            return false;
        }
    }
    return true;
}



function isNumber(obj) {
    if (obj.value.search(/[^0-9^.^ ]/) != -1 || obj.value.indexOf(".") != obj.value.lastIndexOf(".")) {

        //obj.value="";
        obj.focus();
        return false;
    }


    return true;

}

function isEmail(obj) {
    var flg = true;
    var index = obj.value.indexOf("@");
    var spc = obj.value.indexOf(" ");
    if (spc == -1) {
        if (index > 0) {
            var pindex = obj.value.indexOf(".", index);
            if (!(pindex > index + 1) && (obj.value.length > pindex + 1)) {
                alert("Please Enter valid e-mail i.e 'xyz@aol.com'");
                flg = false;
            }
        }
        else {
            alert("E-mail must have '@'. Please Enter valid e-mail.");
            flg = false;
        }
    }
    else {
        alert("Space is not allowed in E-mail Address");
        flg = false;
    }
    if (flg) {
        SingleQuote = obj.value.indexOf("'");
        if (SingleQuote != -1) {
            alert("Single Quote is not allowed in E-mail Address");
            flg = false;
        }
    }
    if (!flg) {
        //	obj.value='';
        obj.focus();
        return false;
    }
    return true;
}


function isUsername(obj) {

    if (obj.value.search(/[^0-9^a-z^A-Z^?^.^'^"^ ]/) != -1) {
        //obj.value="";
        obj.focus();
        return false;
    }

    return true;

}

function SSNValidation(ssn) {
    var matchArr = ssn.match(/^(\d{3})-?\d{2}-?\d{4}$/);
    var numDashes = ssn.split('-').length - 1;
    if (matchArr == null || numDashes == 1) {
        alert('Invalid SSN. Must be 9 digits or in the form NNN-NN-NNNN.');
        //msg = "does not appear to be valid";
        return false;
    }
    else
        if (parseInt(matchArr[1], 10) == 0) {
            alert("Invalid SSN: SSN's can't start with 000.");
            //msg = "does not appear to be valid";
            return false;
        }
        else {
            //msg = "appears to be valid";
            //alert(ssn + "\r\n\r\n" + msg + " Social Security Number.");
            return true;
        }
}
/**********************************************************
* This function is used for debugging purpose
**********************************************************/
function displayProperties(obj) {
    var str = ""; var arrProp = new Array();
    var prop;
    var arrIndex = 0;

    if (typeof (obj) == "undefined") {
        alert('displayProperties: Parameter is not an object!');
        return false;
    }

    if (typeof (obj[0]) != "undefined") {
        for (prop = 0; prop < obj.length; prop++) {
            str += "\n" + prop + "=" + obj[prop];
            arrProp[arrIndex++] = "\n" + prop + "=" + obj[prop];
        }
    } else {
        for (prop in obj) {
            str += "\n" + prop + "=" + eval("obj." + prop);
            arrProp[arrIndex++] = "\n" + prop + "=" + obj[prop];
        }
    }
    alert(arrProp.sort());
}


function displayProperties(obj) {
    var str = ""; var arrProp = new Array();
    var prop;
    var arrIndex = 0;

    if (typeof (obj) == "undefined") {
        alert('displayProperties: Parameter is not an object!');
        return false;
    }

    if (typeof (obj[0]) != "undefined") {
        for (prop = 0; prop < obj.length; prop++) {
            str += "\n" + prop + "=" + obj[prop];
            arrProp[arrIndex++] = "\n" + prop + "=" + obj[prop];
        }
    } else {
        for (prop in obj) {
            str += "\n" + prop + "=" + eval("obj." + prop);
            arrProp[arrIndex++] = "\n" + prop + "=" + obj[prop];
        }
    }
    alert(arrProp.sort());
}

function CheckFirstChar(obj) {
    if (typeof (obj) != "undefined" && obj.value != "") {
        var Value = obj.value
        Value = Value.substring(0, 1);
        var AlphaNumericFilter = /^[a-zA-Z0-9]*$/
        if (!AlphaNumericFilter.test(Value))
            return false;
        return true;
    }
    else
        return false;
}
function getkey(e, objInput) {
    if (window.event)
        return window.event.keyCode;
    else if (e)
        return e.which;
    else
        return null;
}
function CheckInteger(e, objInput) {
    var key, keychar;
    key = getkey(e, objInput);
    if (key == null) return true;
    if (key == 45)
        return false;
    if (key != 45) {
        if ((key < 48) || (key > 57))
            return false;
        else
            return true;
    }
    else
        return true;
}
function CheckDecimal(e, objInput) {
    var key, keychar;
    key = getkey(e, objInput);
    if (key == null) return true;
    if (key != 45) {
        if (key == 46) {
            var strValue = objInput.value;
            if (strValue.indexOf(".") != -1)
                return false;
        }
        else if ((key < 48) || (key > 57))
            return false;
        else
            return true;
    }
    else
        return true;
}
function ValidateNumber(ctrl) {

    var regExp;

    //regExp = new RegExp("^\\d+(\\.\\d{2})?$");
    regExp = new RegExp("^\\d+(\\.\\d{1,2})?$");

    //arg.IsValid = regExp.test(arg.value);

    if (ctrl.value != "") {
        if (!regExp.test(ctrl.value)) {
            //alert("OOPS!  Only numeric characters (0 through 9) or a decimal point (.) are allowed in this field!  Please go back and remove any comma's (,) or dollar signs ($) from this field.");
            alert("Please enter numeric characters (0 through 9) or a decimal point (.). Also enter atmost 2 numeric character after decimal point.");
            document.getElementById(ctrl.id).focus();
        }

    }
}

function ValidateInteger(ctrl) {
    if (ctrl.value != "") {
        Decimal = ctrl.value.indexOf(".");
        if (Decimal != -1) {
            alert("Please enter numeric characters (0 through 9).");
            document.getElementById(ctrl.id).focus();
            return false;
        }
    }
}

//Added by Hema
function CheckSSNFormat(e, objInput) {

    var key, keychar;
    key = getkey(e, objInput);
    if (key == null) return true;
    if (key == 13) return true;
    if (objInput.value.length > 10)
        return false;
    if (objInput.value.length == 3 || objInput.value.length == 6) {
        if (key != 45) {
            if ((key < 48) || (key > 57))
                return false;
            else {
                objInput.value = objInput.value + '-';
            }
        }
        else
            return true;
    }
    else if (objInput.value.length != 3 || objInput.value.length != 6) {
        if ((key < 48) || (key > 57))
            return false;
        else
            return true;
    }
}
function CheckPhoneFormat(e, objoutput) {
    var key, keychar;
    key = getkey(e, objoutput);
    if (key == null) return true;
    if (key == 13) return true;
    if (objoutput.value.length > 13)
        return false;
    if (key != 45) {
        if ((key < 48) || (key > 57))
            return false;
        else {
            if (objoutput.value.length == 1)
                objoutput.value = '(' + objoutput.value;
            else if (objoutput.value.length == 4) {
                objoutput.value = objoutput.value + ')' + " ";
            }
            else if (objoutput.value.length == 9) {
                objoutput.value = objoutput.value + '-';
            }


        }
    }
    else
        return true;
}

function ShowHideCalender(id, event, dateCtrl) {
    if (document.getElementById("popFrame").style.visibility == "hidden") {
        popFrame.fPopCalendar(id, event, dateCtrl);
    }
    else if (document.getElementById("popFrame").style.visibility == "visible") {
        document.getElementById("popFrame").style.visibility = "hidden";
    }
    return true;
}
function RadioCheckbox(chkbox1, chkbox2, chkbox3, chkbox4, chkbox5, chkbox6, chkbox7) {
    var chkBox1 = document.getElementById(chkbox1);
    var chkBox2 = document.getElementById(chkbox2);
    var chkBox3 = document.getElementById(chkbox3);
    var chkBox4 = document.getElementById(chkbox4);
    var chkBox5 = document.getElementById(chkbox5);
    var chkBox6 = document.getElementById(chkbox6);
    var chkBox7 = document.getElementById(chkbox7);

    var blnChecked = true;
    if (chkBox1 && chkBox1.checked == true) {
        chkBox1.checked = true;
        if (chkBox2)
            chkBox2.checked = false;
        if (chkBox3)
            chkBox3.checked = false;
        if (chkBox4)
            chkBox4.checked = false;
        if (chkBox5)
            chkBox5.checked = false;
        if (chkBox6)
            chkBox6.checked = false;
        if (chkBox7)
            chkBox7.checked = false;
    }
    return true;
}

function OpenCityZipSearch(obj) {
    //../Web/UI/SearchCity.aspx
    //../SearchCity.aspx
    //SearchCity.aspx
    //../../../Web/UI/SearchCity.aspx
    var i = obj;
    var str1 = '../SearchCity.aspx?v=' + i + '&state=00';
    var left = (screen.availWidth - 450) / 2;
    var top = (screen.availHeight - 450) / 2;
    window.open(str1, '', 'width=450,height=450,left=' + left + ',top=' + top + ',resizable=1,scrollbars=1');
}

function CountCheckBox(objTable, column, node, checAll) {
    var jCount;
    var kCount;
    jCount = 0;
    kCount = 0;
    var objTable = document.getElementById(objTable);
    var objChk;
    for (i = 1; i < objTable.rows.length - 1; i++) {
        objChk = objTable.rows[i].cells[column].childNodes[node]
        if (objChk != null) {
            if (objChk.checked)
                jCount++;
            kCount++;
        }
    }
    /*for(i = 0; i < document.forms[0].elements.length; i++) 
    {
    elm = document.forms[0].elements[i]
    if (elm.type == 'checkbox') 
    {
    if (elm.checked)
    jCount++;
    }
    }*/
    if (jCount < kCount)
        document.getElementById(checAll).checked = false
    else
        document.getElementById(checAll).checked = true
}

function AlphaNumericKeypress(passedEvent) {
    //alpha-numeric characters are not allowed
    //08april2009 changed for keycode 0 and 8 added 0 and 8 case

    var objEvent = (passedEvent == null) ? window.event : passedEvent; //for mozilla compatibility
    var keyCode = (navigator.appName == "Netscape") ? objEvent.which : objEvent.keyCode;
    if ((keyCode >= 45 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (keyCode == 0) || (keyCode == 8) || (keyCode == 13) || (keyCode == 32))
        return true;
    else
        return false;
}

function OpenCitySearch(obj) {
    var i = obj;
    var str1 = '../SearchCity.aspx?v=' + i + '&state=00';
    var left = (screen.availWidth - 450) / 2;
    var top = (screen.availHeight - 450) / 2;
    window.open(str1, '', 'width=450,height=450,left=' + left + ',top=' + top + ',resizable=1,scrollbars=1');
}

function getValidSQLString(sValue) {
    /*if (sValue != null && sValue.Trim() != "")
    {				
    sValue = sValue.replace("'","''");
    sValue = sValue.replace("*","");
    sValue = sValue.replace("%","");
    }
    return sValue;*/
}

function TextCharNotAllowed(StrText) {
    if ((trim(StrText).indexOf("'") > -1) || (trim(StrText).indexOf("%") > -1) || (trim(StrText).indexOf("/") > -1)
		|| (trim(StrText).indexOf("*") > -1) || (trim(StrText).indexOf("<") > -1) || (trim(StrText).indexOf(">") > -1)
		|| (trim(StrText).indexOf("[") > -1) || (trim(StrText).indexOf("]") > -1)) {
        return false;
    }
    else {
        return true;
    }


}
