
function imageControl (id, params) {
    if (id == undefined) id = -1;
    var url = "/eimage.aspx?id=" + id + (params != undefined ? "&p=" + params : "");
    window.open(url, "_blank", "width=500px, height=400px");
    window.event.returnValue = -1;
    return false; 
}

function _confirm(message) {
    var flag = window.confirm(message);
    if (window.event)
        window.event.returnValue = flag;
    return flag;
}

// Checkers //////////////////////////////////////////////////////////////////

var rNotBlank = "/.+/gi";
var rMail = "/^.+@[A-Za-z\\-\\.0-9]{2,}\.[A-Za-z]{2,4}$/gi"; 
var rDate =  "/^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d$/gi";

var checkers = new Array();
var _checkImageText = null;

function chGetObj(id) {
    var obj = document.getElementById(id);
    if (obj == null) obj = document.getElementById("#" + id);
    return obj;
}

function _setChecker(obj, regex, msg) {
    if (typeof(obj) == "string") obj = chGetObj(obj);
    if (obj != null) {
        obj.regex = regex;
        obj.message = msg;
        checkers[checkers.length] = obj;
    }
}

function check1() {
    var obj, flag = true, result, message = ''; 
    for (j = 0; j < checkers.length; j ++) {
        obj = checkers[j];
        if (typeof(obj.regex) == 'string') {
            result = eval(obj.regex + ".test(obj.value)");
        }else{
            result = obj.regex.test(obj.value);
        }
        /*
        alert("v: " + obj.value);
        alert("e: " + obj.regex);
        alert("r: " + result);
        */
        flag = flag && result;
        if (!result) message += ((message == '' ? '' : ',') + "\n" + obj.message);
    }
    if (_checkImageText != null) {
        if (window.img == -1) {
            message += (message == '' ? '' : ',') + "\n" + _checkImageText;
            flag = false;
        }
    } 
    
    for (var j = 0; j < arguments.length; j ++) {
        if (arguments[j] != null) {
            result = arguments[j][0];
            if (result != null) {
                flag = flag && result;
                if (!result) message += ((message == '' ? '' : ',') + "\n" + arguments[j][1]);
            }
        }
    } 
    
    if (message != '') alert(message + ".");
    if (window.event != undefined) 
        window.event.returnValue = flag;
    return flag;
}

/////////////////////////////////////////////////////////////////////////////////

function chState(id) {
    var obj = document.getElementById(id);
    obj.style.display = (obj.style.display == 'none') ? '' : 'none';
   return false; 
}

function dialog(url, width, height, arg) {
    // var features = "dialogWidth:" + width + "px; dialogHeight:" + height + "px; resizable:yes; center:yes;";
    features = ""; 
    return window.showModalDialog(url, null, features);
}

function _change(obj) {
    if (obj.style.display == 'none') {
        obj.style.display = '';
    }else{
        obj.style.display = 'none';
    }
}

function checkChange(id) {
    var obj = _obj(id);
    if (obj.type == 'checkbox')
        obj.checked = !obj.checked;
}

function _obj(id) {
    return document.getElementById(id);
}

function _open(url, width, height, target, type) {
    var feats; 
    if (type == undefined) type = 1;
    if (target == undefined) target = "";
    if ((width == undefined) || (width == -1)) width = 600;
    if ((height == undefined) || (height == -1)) height = 600;
    switch (type) {
        case 1:
            feats = "resizable=no, location=no, toolbar=no, scrollbars=no, ";
            break;
        case 2:
            feats = "resizable=yes, location=no, toolbar=no, scrollbars=yes, ";
            break;
    }
    var a = '_rand=' + String(parseInt(Math.random() * 1000));
    if (url.indexOf('?') == -1) a = '?' + a; else a = '&' + a;
    window.open(url + a, target, feats + "width=" + width + "px, height=" + height + ", ");
    window.event.returnValue = false; 
    return false; 
}

function isemail(value) {
    return /^.+@[A-Za-z\-\.0-9]{2,}\.[A-Za-z]{2,4}$/gi.test(value);
}

function isdate(value) {
    return /(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d/gi.test(value);
}

function validate(r, value) {
    return r.test(value);
}

function setChecker(obj, regex) {
    if (typeof(obj) == "string") obj = _obj(obj);
    obj.regex = regex;
    var _check = function () {
        this.style.color = this.regex.test(this.value) ? "#000000" : "#ff0000";
    }
    obj.onkeydown = _check;
    obj.onkeyup = _check; 
    obj.onkeypress = _check;
}

function _alert(message) {
    alert(message);
    window.event.returnValue = false;
    return false;
}

function _select(obj, value) {
    if (typeof(obj) == "string") obj = _obj(obj);
    if (obj == null) return false;
    for (var j = 0; j < obj.options.length; j ++)
        if (String(obj.options.item(j).value).toLowerCase() == String(value).toLowerCase()) {
            obj.selectedIndex = j;
            return true;
        }
    return false;
}
