function __get(id) {

    if (document.layers) { return document.layers[id]; }
    if (document.getElementById) { return document.getElementById(id); }       
    if (document.all) { return document.all[id]; }
}

var winCol = new Date();
function wshow(url, width, height)
{
    if (!width) width = 640;
    if (!height) height = 480;
    window.open(url, (winCol++), 
                'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=' 
                + width + 
                ',height=' + height + 
                ',left=' + ((screen.width - width) / 2) + 
                ',top=' + ((screen.height - height) / 2));
    return false;
}

function trim(str) {

    beg = 0;
    while (str.charAt(beg) == " ") { beg++; }
    end = str.length - 1;
    while (str.charAt(end) == " ") { end--; }

    if (beg <= end) { return str.substring(beg, end + 1); }
    else            { return ""; }
}


// проверка на полей на заполнение с проверкой корректности
// формат массива inputItem:
// inputItem[i][0] - id поля
// inputItem[i][1] - обязательно или нет для заполнения
// inputItem[i][2] - сообщение об ошибке, если обязательно для заполнения поле пустое (inputItem[i][1])
// inputItem[i][3] - формат поля ("numP" - целое число > 0, "text" - текстовое поле, "mail" - e-mail)
// inputItem[i][4] - сообщение о вводе корректного значения, если число не соответствует формату (inputItem[i][3])
function perform(inputItem, formName) {

    for (i = 0; i < inputItem.length; i++) {

        q = __get(inputItem[i][0]);
        q.value = trim(q.value);
        eFlag = false;

        // проверка на заполнение поля, если оно необходимо для заполнения
        if ((inputItem[i][1]) && (q.value == "")) { eFlag = 2; }

        
        if ((q.value != "") && (eFlag == false)) {

            switch(inputItem[i][3]) { // проверки корректности заполненных полей
        
                case "numP": // проверка на корректность числового поля

                    var re = /\D/g;
                    if (re.test(q.value)) { eFlag = 4; }
                    if (!eFlag && (q.value <= 0)) { eFlag = 4; }
                    break;
        
                case "mail": // проверка на корректность e-mail
        
                    var re = /[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i;
                    if (!re.test(q.value)) { eFlag = 4; }
                    break;
            }
        }


        if (eFlag) { // вывод собщения об ошибке inputItem[i][2] или inputItem[i][4]
        
            alert(inputItem[i][eFlag]);
            q.focus();
            return false;
        }
    }

    width = "900px";
    height = "400px";
    window.open("about:blank", "newWindow", 
                'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=' 
                + width + 
                ',height=' + height + 
                ',left=' + ((screen.width - width) / 2) + 
                ',top=' + ((screen.height - height) / 2));
    return true;
}
