/**
 *  Konstansok
 */
var EREG_STRING      = '^[a-zA-Z0-9_\\u00A1-\\uFFFF+=\\-@\\s/!,;:\\.?$%&()"\\\']+$';
var EREG_URL         = '^http://[-_\\w\\b\\d/!,\\.?$%&()=]+$';
var EREG_WORD        = '^[\\w]+$';
var EREG_ALPHA       = '^[a-zA-Z0-9_\\u00A1-\\uFFFF ]+$';
var EREG_MAY_ALPHA   = '^([a-zA-Z0-9_\\u00A1-\\uFFFF ]+)?$';
var EREG_NUM         = '^[-]?[0-9]+$';
var EREG_MAY_NUM     = '^([-]?[0-9]+)?$';
var EREG_VALID       = '^[0-9]{4}-[0-9]{2}-[0-9]{2}$';
var EREG_MAY_VALID   = '^([0-9]{4}-[0-9]{2}-[0-9]{2})?$';
var EREG_EMAIL       = '^[-\\w\\._]+@(\\w[-\\w_]*\\.)+([\\w]+)$';
var EREG_PHONENUMBER = '^[-+\\(\\)0-9/ ]+$';
var EREG_MAY_PHONE   = '^([-+\\(\\)0-9/ ]+$)?$';
var EREG_NUM_LENGTH10= '^[0-9]{10}$';
var EREG_NUM_LENGTH8 = '^[0-9]{8}$';
var EREG_NUM_LENGTH4 = '^[0-9]{4}$';
var EREG_LENGTH18    = '^[\\w]{1,18}$';
var EREG_LENGTH18B   = '^[\\w]{0,18}$';
var EREG_CHECKBOX_ON = '^on$';
var EREG_DOUBLE      = '^[-]?[0-9]+(\\.[0-9]+)?$';
var EREG_MIXEDDOUBLE = '^[-]?[0-9]+([\\.\\,][0-9]+)?$';

// Ellenorzo utasitasok a mezokrol
var fields = new Array();

/*** Beallitasok vege ***/

function checksubmit(myform) {
    if (myform == null) {
        myform = document.getElementById('form');
    }
   
    allpassed=true;

    for (i=0; i<fields.length; i++) {
        if (myform.elements[fields[i][0]]!=undefined) {
            elem=myform.elements[fields[i][0]];
            passed=true;
         
            /** Szamok ellenorzese **/
            if (elem.type == 'text' &&
                fields[i][1] == 'number' &&
                elem.value != undefined)
            {
                passed = elem.value.match('^[-]?[0-9]+$') ? true : false;
                if (fields[i][3] != undefined) {
                    passed = passed && 
                        (elem.value>=fields[i][2]) &&
                        (elem.value<=fields[i][3]);
                } else {
                    passed = passed && (elem.value<=fields[i][2]);
                }
            } 

            /** 'feltételes mező' ellenőrzése */
            else if (fields[i][1] == 'relation') {
                var relArray = fields[i][2];
                for (j=0;j<relArray.length;j++) {
                    var relelem=myform.elements[relArray[j][0]];
                    if ((relelem.type != 'checkbox' && relelem.value.match(relArray[j][1])) ||
                        (relelem.type == 'checkbox' && relelem.checked==true)) {
                        if (!elem.value.match(relArray[j][2])) {
                            passed = false;
                        }
                    }
                }
            }

            /** Szoveg mezo ellenorzese EREG alapján **/
            else if ((elem.type == 'text' || elem.type == 'password') && 
                fields[i][1] != undefined && 
                elem.value != undefined) 
            {
                passed = elem.value.match(fields[i][1]) ? true : false;
            }

           /**
            *  Legordulo menuk ellenorzese
            */
            else if (elem.type == 'select-one') {
                passed = elem.value != '-1';
            }

           /**
            * Tobb elemu selectek ellenorzese
            */
            else if (elem.type == 'select-multiple') {
                passed = false;
                for (var j=0; j<elem.options.length; j++) {
                    passed = passed || elem.options[j].selected;
                }
            }
          
           /** 
            *  Radiogombok ellenorzese 
            *  (legalabb egynek kivalasztva kell lennie)
            */
            else if (elem.length != undefined && elem.length > 0) {
                passed=false;
                for (index=0; index<elem.length; index++) {
                    passed = passed || elem[index].checked;
                }
            }
         
            /** Kitoltes ellenorzese (nincs EREG) **/
            else if (elem.type == 'text' || elem.type == 'textarea') {
                passed = elem.value.match('^$') ? false : true;
            }
         
            warnspan = document.getElementById("w_"+fields[i][0]);
            if (warnspan != null) {
                warnspan.style.visibility= passed ? 'hidden' : 'visible';
            }
         
            allpassed = allpassed && passed;
        }
    }
    if (!allpassed) {
        alert('Campurile marcate cu * sunt obligatoriu de completat.');
        allpassed=false;
    }
    return allpassed;
}

