﻿function Scripts2_GetObject(obj) {
    var theObj;
    if (document.all) {
        if (typeof obj == "string") {
            return document.all(obj);
        } else {
            return obj.style;
        }
    }
    if (document.getElementById) {
        if (typeof obj == "string") {
            return document.getElementById(obj);
        } else {
            return obj.style;
        }
    }
    return null;
}

function toCount(entrance, exit, text, characters) {
    //var entranceObj=Scripts2_GetObject(entrance);
    var entranceObj = entrance;
    var exitObj = Scripts2_GetObject(exit);
    var length = characters - entranceObj.value.length;
    if (length <= 0) {
        length = 0;
        text = '<span class="disable"> ' + text + ' </span>';
        entranceObj.value = entranceObj.value.substr(0, characters);
    }
    exitObj.innerHTML = text.replace("{CHAR}", length);
}



function ExtractPhone(obj, decimalPlaces, allowNegative, oFocus, focusLength) {
    var temp = obj.value;
    var reg0Str = '[0-9]*';
    reg0Str += '\\.?[0-9]*';
    reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
    reg0Str = reg0Str + '$';
    var reg0 = new RegExp(reg0Str);
    //	if (reg0.test(temp)) return true;
    if (oFocus != null) {
        if (temp.length >= focusLength) {
            var objFocus = document.getElementById(oFocus);
            objFocus.focus();
        }
    }
    obj.value = temp;
}
function BlockNonNumbers(obj, e, objDigit, allowDecimal, allowNegative, allowThousand) {
    var key;
    var isCtrl = false;
    var keychar;
    var reg;

    if (window.event) {
        key = e.keyCode;
        isCtrl = window.event.ctrlKey
    }
    else if (e.which) {
        key = e.which;
        isCtrl = e.ctrlKey;
    }

    if (isNaN(key)) return true;

    keychar = String.fromCharCode(key);

    if (key == 8 || isCtrl) {
        return true;
    }
    reg = /\d/;
    var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
    var isFirstD = allowDecimal ? keychar == objDigit && obj.value.indexOf(objDigit) == -1 : false;
    var isFirstT = allowThousand ? keychar == objThousand && obj.value.indexOf(objThousand) == -1 : false;
    return isFirstN || isFirstD || isFirstT || reg.test(keychar);
}

function ExtractNumber(obj, objDigit, objThousand, decimalPlaces, allowNegative, allowThousand) {
    var temp = obj.value; var reg0Str = '[0-9]*';
    if (decimalPlaces > 0) {
        reg0Str += '\\' + objDigit + '?[0-9]{0,' + decimalPlaces + '}';
    } else if (decimalPlaces < 0) {
        reg0Str += '\\' + objDigit + '?[0-9]*';
    }
    reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
    reg0Str = reg0Str + '$';
    var reg0 = new RegExp(reg0Str);
    if (allowThousand) {
        temp = addCommas(temp, objThousand);
    }

    if (reg0.test(temp)) return true;


    var reg1Str = '[^0-9' + (decimalPlaces != 0 ? objDigit : '')
                          + (allowNegative ? '-' : '') + ']';
    var reg1 = new RegExp(reg1Str, 'g');
    temp = temp.replace(reg1, '');

    if (allowNegative) {

        var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
        var reg2 = /-/g;
        temp = temp.replace(reg2, '');
        if (hasNegative) temp = '-' + temp;
    }

    if (decimalPlaces != 0) {
        var reg3 = /\./g;
        if (objDigit == ',') reg3 = /,/g;
        var reg3Array = reg3.exec(temp);
        if (reg3Array != null) {
            var reg3Right = temp.substring(reg3Array.index
                          + reg3Array[0].length);
            reg3Right = reg3Right.replace(reg3, '');
            reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
            temp = temp.substring(0, reg3Array.index) + objDigit + reg3Right;
        }
    }

    if (allowThousand) {
        temp = addCommas(temp, objThousand);
    }
    obj.value = temp;
}


function addCommas(sValue, objThousand) {
    var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');

    while (sRegExp.test(sValue)) {
        sValue = sValue.replace(sRegExp, '$1' + objThousand + '$2');
    }
    return sValue;
}

function ismaxlength(obj) {
    var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlen")) : ""
    if (obj.getAttribute && obj.value.length > mlength)
        obj.value = obj.value.substring(0, mlength)
}
//fires search button click event when pressed enter while search text box is active
function CallButtonClick(btnName, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        document.getElementById(btnName).click();
        return false;
    }
    else
        return true;
}

function CalculateLength(txtControl, lblControl, nMaxLength) {
    var txtLength = 0;
    if (txtControl.value != null || txtControl.value != undefined) {
        txtLength = txtControl.value.length;

        if (txtLength > nMaxLength)
            txtLength = nMaxLength;
    }

    lblControl.innerHTML = nMaxLength - txtLength;
}

function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.name)) {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}


function SetSubmitButton(evt, buttonName) {
    if (evt.which || evt.keyCode) {
        if ((evt.which == 13) || (evt.keyCode == 13)) {
            location = Scripts2_GetObject(buttonName).href;
            return true;
        }
        return true;
    }
}

function doBeforePaste(control) {
    maxLength = control.attributes["maxLength"].value;
    if (maxLength) {
        event.returnValue = false;
    }
}
function doPaste(control) {
    maxLength = control.attributes["maxLength"].value;
    value = control.value;
    if (maxLength) {
        event.returnValue = false;
        maxLength = parseInt(maxLength);
        var oTR = control.document.selection.createRange();
        var iInsertLength = maxLength - value.length + oTR.text.length;
        var sData = window.clipboardData.getData("Text").substr(0, iInsertLength);
        oTR.text = sData;
    }
}
function LimitInput(control) {
    if (control.value.length > control.attributes["maxLength"].value) {
        control.value = control.value.substring(0, control.attributes["maxLength"].value);
    }
    else {
        //document.getElementById(control.attributes["counter"].value).innerHTML = (control.attributes["maxLength"].value - control.value.length) + ' / ' + control.attributes["maxLength"].value;
        document.getElementById(control.attributes["counter"].value).innerHTML = control.value.length + '/' + control.attributes["maxLength"].value;
    }
};

function CheckDistrictCount(sender, args) {
    args.IsValid = false;
    var selectedItems = document.getElementById('lstSearchDistricthdnID').value;
    var arrSelected = selectedItems.split(',');
    if (arrSelected.length <= 150) {
        args.IsValid = true;
    }
}

function CheckCountyCount(sender, args) {
    args.IsValid = false;
    var selectedItems = document.getElementById('lstSearchCountyhdnID').value;
    var arrSelected = selectedItems.split(',');
    if (arrSelected.length <= 30) {
        args.IsValid = true;
    }
}
