﻿function ClearSelectChildren(selectObjectName) {
    var selectObject = $get(selectObjectName);
    while (selectObject.firstChild) {
        selectObject.removeChild(selectObject.firstChild);
    }
}

function onAsyncOpFailed(error, context, methodName) {
    var errorMessage = error.get_message();
    alert(errorMessage);
}

function CreateOptionElement(selectElement, text, id, isSelected) {
    var opt = document.createElement('OPTION');
    selectElement.add(opt, 1);
    opt.text = text;
    opt.value = id;
    if (isSelected) opt.selected = true;
}

function HideElement(elementName) {
    $get(elementName).style.display = 'none';
}

function ShowElement(elementName) {
    $get(elementName).style.display = 'block';
}

function stripClientID(clientID) {
    if (clientID) {
        if (clientID.match(/input_/) || clientID.match(/select_/)) {
            var r = [];
            var rgxN = /Repeater_ctl(\d+)\w+$/;
            var n = clientID.match(rgxN, '$1');
            if (n) r[0] = parseInt(n[1]);
            var rgxI = /Repeater_ctl\d+_(\w+)$/;
            var i = clientID.match(rgxI, '$1');
            if (i) r[1] = i[1];
            if (r[1]) return r;
        }
    }
}

function removeComponent(componentName, elementId) {
    var cc = Sys.Application.getComponents();
    for (var i = 0; i < cc.length; i++) {
        if (cc[i]._name == componentName && cc[i]._element.id == elementId) {
            Sys.Application.removeComponent(cc[i]);
            break;
        }        
    }
}

function checkValidationFromComponent(componentName, elementId) {
    var cc = Sys.Application.getComponents();
    for (var i = 0; i < cc.length; i++) {
        if (cc[i]._name == componentName && cc[i]._element.id == elementId) {
            return cc[i]._isValid;
        }
    }
    return true;
}

function validatePhone(phoneNumberText) {
    var r = /\(\s*\d+\)\s*\d+\s*-\s*\d+|\s*1-?\s*\d+\s*-\s*\d+\s*-\s*\d+\s*|\s*\d+\s*-\s*\d+\s*-\s*\d+\s*|\d{10}|1-?\d{10}|\(1-?\s*\d+\)\s*\d+\s*-\s*\d+|\d{3}\D+\d{3}\D+\d{4}/;
    if (phoneNumberText.match(r)) return true;
    else return false;
}

function validateEmail(emailText) {
    if (emailText.match(/^\s*[\w-\.\d_]+@[\w-\d_]+\.\w{2,4}\s*$/)) return true;
    else return false;
}

function validateZip(zipText) {
    if (zipText.match(/^\s*(\d{5}|\d{9}|\d{5}\s*(-|\s)\s*\d{4})\s*$/)) return true;
    else return false;
}

function validateDate(dateText) {
    if (!dateText) return null;
    var s = Date.parse(dateText);
    if (isNaN(s)) {
        //try appending the year to the end
        s = Date.parse(dateText + ' ' + (new Date()).getFullYear().toString());
        if (isNaN(s)) return false;
    }
//    var d = new Date(s);
//    if (d.getFullYear() < 1970) d.setFullYear(d.getFullYear() + 100);
//    this._element.value = String.format("{0}/{1}/{2}", d.getMonth() + 1, d.getDate(), d.getFullYear());
//    return true;
}