var form_storno = false; checkForm = { invalidMsg: "Formulár nie je vyplnený správne.\nProsím opravte tieto políčka:: %err", errorMsg: "\n- %err", errors: [], invalidClass: "invalid", requiredClass: "required", outsideInvalidClass: "outsideInvalid", submitOnceClass: "submitOnce", alreadySubmitedClass: "alreadySubmited", fieldType: [], defaultValue: [], // inicializacia skriptu init: function () { // ak mame k dispozicii kniznice evt a cls a browser je standards-compliant, mozeme zacat if (evt && cls && document.getElementById) { // prejdeme vsetky formulare a najdeme v nich vsetky fieldy, zavesime potrebne eventy var forms = document.getElementsByTagName("form"); for (var i = 0; i < forms.length; i++) { evt.add(forms[i], "submit", checkForm.checkForm); evt.add(forms[i], "image", checkForm.checkForm); evt.add(forms[i], "reset", checkForm.checkForm); var fields = checkForm.getFields(forms[i]); for (var j = 0; j < fields.length; j++) { evt.add(fields[j], "blur", checkForm.checkField); evt.add(fields[j], "focus", checkForm.checkField); evt.add(fields[j], "change", checkForm.checkField); if ((fields[j].tagName.toLowerCase() == "input") && ((fields[j].type == "text") || (fields[j].type == "password"))) { evt.add(fields[j], "keypress", checkForm.checkEnter); } } checkForm.checkForm(forms[i]); } return true; } return false; }, // vrati pole obsahujuce vsetky polia, ktore budeme kontrolovat getFields: function (frm) { if (frm && frm.getElementsByTagName) { var fields = []; var inputs = frm.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { if ( inputs[i].type == "text" || inputs[i].type == "hidden" || inputs[i].type == "checkbox" || inputs[i].type == "password" || inputs[i].type == 'file' ) { fields[fields.length] = inputs[i]; } } var textareas = frm.getElementsByTagName("textarea"); for (var i = 0; i < textareas.length; i++) { fields[fields.length] = textareas[i]; } var selects = frm.getElementsByTagName("select"); for (var i = 0; i < selects.length; i++) { fields[fields.length] = selects[i]; } return fields; } return false; }, // preveri validitu vsetkych policok a povoli alebo nepovoli submit checkForm: function (frm, bExternalCheck) { if (form_storno == true) return true; if (!frm || !frm.tagName || frm.tagName.toLowerCase() != "form") { e = evt.fix(frm); frm = e.target; } else { var e = false; } checkForm.errors = []; var fields = checkForm.getFields(frm); var fieldsOK = true; for (var i = 0; i < fields.length; i++) { fieldsOK = ((checkForm.checkField(fields[i]) == "valid") && fieldsOK) ? true : false; } //pokud existuje jeste dalsi testovani formulare,zavolam (existuje object advancedCheckForm) if (typeof (advancedCheckForm) == "object" && bExternalCheck != 2) fieldsOK = ((advancedCheckForm.check(frm)) && fieldsOK) ? true : false; if (fieldsOK) { // kontrola formularov, ktore sa mozu odosielat iba raz if (e && (e.type == "submit") && cls.has(frm, checkForm.submitOnceClass)) { if (cls.has(frm, checkForm.alreadySubmitedClass)) { e.preventDefault; return false; } else { cls.add(frm, checkForm.alreadySubmitedClass); } } if (typeof (swfu_ta2) == "object" && swfu_ta2.myform) { var stats = swfu_ta2.getStats(); if (stats.files_queued > 0) { swfu_ta2.startUpload(); if (e.preventDefault) e.preventDefault(); return false; } else if (stats.in_progress == 1) { if (e.preventDefault) e.preventDefault(); return false; } } return true; } else { if (e && (e.type == "reset")) { return; } if (bExternalCheck == true || bExternalCheck == 2 || (e && ((e.type == "submit") || (e.type == "image")))) { var err = ""; for (var i = 0; i < checkForm.errors.length; i++) { err += checkForm.errorMsg.replace("%err", checkForm.errors[i]); } alert(checkForm.invalidMsg.replace("%err", err)); if (typeof _mtm !== 'undefined') { _mtm.push({ 'event': 'check_form', 'eventLabel': err }); } if (e.preventDefault) { e.preventDefault(); } } } return false; }, //-----proveri validitu formulare pro modul TA2, vstup je id formulare----- checkFormTA2: function (id) { if (form_storno == true) return true; frm = document.getElementById(id); if (!frm || !frm.tagName || frm.tagName.toLowerCase() != "form") { return false; } e = false; //nastavuji zadny event (z duvodu ukladani editoru pres jeho disketu(je ve frame)) checkForm.errors = []; var fields = checkForm.getFields(frm); var fieldsOK = true; for (var i = 0; i < fields.length; i++) { fieldsOK = ((checkForm.checkField(fields[i]) == "valid") && fieldsOK) ? true : false; } //pokud existuje jeste dalsi testovani formulare,zavolam (existuje object advancedCheckForm) if (typeof (advancedCheckForm) == "object") fieldsOK = ((advancedCheckForm.check()) && fieldsOK) ? true : false; if (fieldsOK) { // kontrola formularov, ktore sa mozu odosielat iba raz if (e && (e.type == "submit") && cls.has(frm, checkForm.submitOnceClass)) { if (cls.has(frm, checkForm.alreadySubmitedClass)) { e.preventDefault; return false; } else { cls.add(frm, checkForm.alreadySubmitedClass); } } return true; } else { var err = ""; for (var i = 0; i < checkForm.errors.length; i++) { err += checkForm.errorMsg.replace("%err", checkForm.errors[i]); } alert(checkForm.invalidMsg.replace("%err", err)); if (typeof _mtm !== 'undefined') { _mtm.push({ 'event': 'check_form', 'eventLabel': err }); } if (e.preventDefault) { e.preventDefault(); } } return false; }, // preveri validitu policka a vrati "valid" alebo "invalid" checkField: function (elm) { if (!elm || !elm.tagName) { var e = evt.fix(elm); elm = e.target; } if ( elm && ( (elm.tagName.toLowerCase() == "input") || (elm.tagName.toLowerCase() == "select") || (elm.tagName.toLowerCase() == "textarea") ) ) { var fieldOK = true; var elmClasses = cls.get(elm); for (var i = 0; i < elmClasses.length; i++) { if (checkForm.fieldType[elmClasses[i]]) { var rule = checkForm.fieldType[elmClasses[i]]; if (fieldOK && typeof (rule) == "string") { // pravidlo je string if (elm.value != "") { fieldOK = (elm.value.search(new RegExp("^([" + rule + "]){1,}$")) < 0) ? false : true; } } else if (fieldOK && ((typeof (rule) == "function") || (typeof (rule) == "object")) && rule.source) { // Mozilla vracia RegExpu typ "function", zatial co ostatne browsery "object" // pravidlo je regExp if (elm.value != "") { fieldOK = (elm.value.search(rule) < 0) ? false : true; } } else if (fieldOK && (typeof (rule) == "function") && rule.prototype) { // pravidlo je funkcia fieldOK = rule(e, elm); } } /* default value if (e && checkForm.defaultValue[elmClasses[i]]) { var val = checkForm.defaultValue[elmClasses[i]]; if ((e.type == "focus") && (elm.value == "")) { elm.value = val; } if ((e.type == "blur") && (elm.value == val)) { elm.value = ""; } } */ } var outsideValidationOK = !cls.has(elm, checkForm.outsideInvalidClass); if (fieldOK && outsideValidationOK) { cls.remove(elm, "invalid"); } else { cls.add(elm, "invalid"); checkForm.errors[checkForm.errors.length] = checkForm.getFieldErrorMsg(elm); //(elm.checkFormErr) ? elm.checkFormErr : (elm.title) ? elm.title : (elm.name) ? elm.name : elm.toString(); } return (fieldOK && outsideValidationOK) ? "valid" : "invalid"; } return false; }, // prida novy typ policka addFieldType: function (cls, rule, defaultValue) { if (cls && (rule || defaultValue)) { if (rule) { checkForm.fieldType[cls] = rule; } if (defaultValue) { checkForm.defaultValue[cls] = defaultValue; } return true; } return false; }, getFieldErrorMsg: function (elm) { if (elm) { if (elm.checkFormErrorMsg) { return elm.checkFormErrorMsg; } if (elm.title) { return elm.title; } if (elm.id) { var labels = document.getElementsByTagName("label"); for (var i = 0; i < labels.length; i++) { if (labels[i].attributes["for"] && (labels[i].attributes["for"].value == elm.id)) { // Opera nezvlada atribut "for" var str = checkForm.getNodeText(labels[i]); return str; } } return elm.id; } if (elm.name) { return elm.name; } return elm.toString(); } return false; }, getNodeText: function (node) { var str = ""; if (node && node.hasChildNodes()) { for (var i = 0; i < node.childNodes.length; i++) { // TODO: skladanie toho stringu treba urobit nejak systemovejsie a prehladnejsie str += (node.childNodes[i].nodeType == 3) ? node.childNodes[i].nodeValue : checkForm.getNodeText(node.childNodes[i]); if ((node.childNodes[i].nodeType == 1) && (node.childNodes[i].tagName.toLowerCase() == "img") && (node.childNodes[i].attributes["alt"])) { str += node.childNodes[i].attributes["alt"].value; } } } return str; } } /* basic field types */ // required field checkForm.addFieldType( "required", function (evt, elm) { if (elm) { if (elm.tagName.toLowerCase() == "select") { return (elm.value) ? true : false; } else { if (elm.type == "checkbox") return (elm.checked) ? true : false; else return (elm.value.search(/\S/) < 0) ? false : true; } } return false; } ); // numbers only checkForm.addFieldType( "int", new RegExp("^\\-?[0-9]*$") ); // numbers only checkForm.addFieldType( "int_kladny", new RegExp("^[0-9]*$") ); // numbers only checkForm.addFieldType( "int_kladny_bez_nuly", new RegExp("^[1-9]+[0-9]*$") ); // numbers only checkForm.addFieldType( "float", new RegExp("^\\-?[0-9]*(\\.|,)?[0-9]*$") ); // numbers only checkForm.addFieldType( "float_kladny", new RegExp("^\\+?[0-9]*(\\.|,)?[0-9]*$") ); // numbers bettwen 0-1 checkForm.addFieldType( "float_nulajedna", function (evt, elm) { if (elm) { var re = new RegExp(','); var hodnota = parseFloat(elm.value.replace(re, '.')); return (hodnota < 0 || hodnota > 1) ? false : true; } return false; } ); // numbers only checkForm.addFieldType( "psc", new RegExp("^[0-9]{3}\\ ?[0-9]{2}$") ); // IDs - numbers divided by space checkForm.addFieldType( "ids", new RegExp("^[0-9 ]{1,}$") ); // safe characters (alphanumeric, numbers and underscore) checkForm.addFieldType( "safeChars", new RegExp("^[a-zA-Z0-9_]{1,}$") ); // e-mail checkForm.addFieldType( "email", new RegExp("^([\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)((\\.){1}[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)*@[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+((\\.){1}[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)*\\.(abogado|ac|academy|accountant|accountants|actor|ad|ads|adult|ae|aero|af|africa|ag|agency|ai|airforce|al|alsace|am|amsterdam|an|analytics|ao|apartments|app|aq|ar|arab|archi|army|art|as|asia|associates|at|attorney|au|auction|audio|author|auto|autos|aw|ax|az|ba|baby|band|bank|bar|barcelona|bargains|baseball|basketball|bayern|bb|bcn|bd|be|beauty|beer|berlin|best|bet|bf|bg|bh|bi|bible|bid|bike|bingo|bio|biz|bj|bl|black|blackfriday|blog|blue|bm|bn|bo|boats|boo|book|boston|bot|boutique|box|br|broadway|broker|brussels|bs|bt|budapest|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|call|cam|camera|camp|cancerresearch|capetown|capital|car|cards|care|career|careers|cars|casa|cash|x|cat|catering|catholic|cc|cd|center|ceo|cf|cg|ch|channel|charity|chat|cheap|christmas|church|ci|city|ck|cl|claims|cleaning|click|clinic|clothing|cloud|club|cm|cn|co|co.com|coach|codes|coffee|college|cologne|com|community|company|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corp|country|coupon|coupons|courses|cpa|cr|credit|creditcard|creditunion|cricket|cruise|cruises|cu|cv|cx|cy|cymru|cz|dad|dance|data|date|dating|day|dds|de|deal|deals|degree|delivery|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|diy|dj|dk|dm|do|docs|doctor|dog|domains|dot|download|dubai|dvr|dz|earth|eat|ec|eco|ecom|edu|education|ee|eg|eh|email|energy|engineer|engineering|enterprises|equipment|er|es|esq|estate|et|eu|eus|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|feedback|fi|film|final|finance|financial|finish|fish|fishing|fit|fitness|fj|fk|flights|florist|flowers|fly|fm|fo|foo|food|football|forsale|forum|foundation|fr|frl|fun|fund|furniture|futbol|fyi|ga|gal|gallery|game|games|garden|gay|gb|gd|ge|ged|gent|gf|gg|gh|gi|gift|gifts|gives|giving|gl|glass|global|gm|gmbh|gn|gold|golf|got|gov|gp|gq|gr|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guide|guitars|guru|gw|gy|hair|halal|hamburg|haus|health|healthcare|help|helsinki|here|hiphop|hiv|hk|hm|hn|hockey|holdings|holiday|home|homes|horse|hospital|host|hosting|hot|hoteis|hotel|hotels|house|how|hr|ht|hu|id|idn|ie|il|im|immo|immobilien|in|inc|industries|info|info.pl|ing|ink|institute|insurance|insure|int|international|investments|io|iq|ir|irish|is|islam|ismaili|ist|istanbul|it|je|jetzt|jewelry|jm|jo|jobs|joburg|jot|joy|jp|juegos|kaufen|ke|kg|kh|ki|kid|kids|kim|kitchen|kiwi|km|kn|koeln|kosher|kp|kr|kw|ky|kyoto|kz|la|land|lat|latino|law|lawyer|lb|lc|lease|legal|lgbt|li|life|lifeinsurance|lifestyle|lighting|like|limited|limo|link|live|living|lk|llc|llp|loan|loans|lol|london|love|lr|ls|lt|ltd|ltda|lu|luxe|luxury|lv|ly|ma|madrid|mail|maison|makeup|management|map|market|marketing|mba|mc|md|me|med|media|medical|meet|melbourne|meme|memorial|men|menu|mf|mg|mh|miami|mil|mk|ml|mls|mm|mn|mo|mobi|mobile|moda|moe|mom|money|mortgage|moscow|moto|motorcycles|mov|movie|mp|mq|mr|ms|mt|mu|museum|music|mutualfunds|mv|mw|mx|my|mz|na|nagoya|name|navy|nc|ne|net|network|new|news|nf|ng|ngo|ni|ninja|nl|no|now|np|nr|nrw|nu|nyc|nz|okinawa|om|one|ong|onl|online|ooo|org|organic|osaka|ott|pa|paris|pars|partners|parts|party|pay|pe|pet|pets|pf|pg|ph|phd|phone|photo|photography|photos|physio|pics|pictures|pid|ping|pink|pizza|pk|pl|place|play|plumbing|plus|pm|pn|a|politie|porn|pr|press|pro|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|py|qa|qpon|quebec|racing|radio|re|read|realestate|realtor|realty|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|retirement|review|reviews|rich|rip|ro|rocks|rodeo|roma|room|rs|rsvp|ru|rugby|ruhr|run|rw|ryukyu|sa|saarland|safe|safety|sale|salon|sari|sarl|save|sb|sc|scholarships|school|schule|science|scot|sd|se|search|secure|security|services|sex|sexy|sg|sh|shabaka|shabaka-arabic|shia|shiksha|shoes|shop|shopping|show|si|singles|site|sj|sk|ski|sl|sm|smile|sn|so|soccer|social|software|solar|solutions|song|soy|spa|space|sport|sports|spot|sr|srl|st|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|sv|swiss|sy|sydney|systems|sz|taipei|talk|tatar|tattoo|tax|taxi|tc|td|team|tech|technology|tel|tennis|tf|tg|th|thai|theater|theatre|tickets|tienda|tips|tires|tirol|tj|tk|tl|tm|tn|to|today|tokyo|tools|top|tours|town|toys|tp-|tr|trade|trading|training|travel|tt|tube|tv|tw|tz|ua|ug|uk|um|university|uno|us|us.com|uy|uz|va|vacations|vc|ve|vegas|ventures|versicherung|vet|vg|vi|viajes|video|villas|vin|vip|vision|vlaanderen|vn|vodka|vote|voting|voto|voyage|vu|wales|wang|watch|watches|weather|web|webcam|webs|website|wedding|wf|wien|wiki|win|wine|winners|work|works|world|wow|ws|wtf|xn--11b4c3d|xn--1qqw23a|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3pxu8k|xn--42c2d9a|xn--45q11c|xn--4gbrim|xn--55qw42g|xn--55qx5d|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80asehdb|xn--80aswg|xn--9dbq2a|xn--9et52u|xn--bck1b9a5dre4c|xn--c2br7g|xn--cck2b3b|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--e1a4c|xn--efvy88h|xn--fhbei|xn--fiq228c5hs|xn--fjq720a|xn--g2xx48c|xn--hxt814e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--kput3i|xn--mgbab2bd|xn--mgbca7dzdo|xn--mgbt3dhd|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbrx|xn--nqv7fs00ema|xn--nyqy26a|xn--p1acf|xn--pssy2u|xn--q9jyb4c|xn--rhqv96g|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--xhq521b|xn--zfr164b|xxx|xyz|yachts|ye|yoga|yokohama|you|yt|yu|za|zero|zip|zm|zone|zw)$") //new RegExp("^[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+@[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+\.[a-z]{2,4}$") //new RegExp("^[a-zA-Z0-9]+[a-zA-Z0-9\._-]*[a-zA-Z0-9]+@[a-zA-Z0-9]+[a-zA-Z0-9\._-]*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$") ); // url checkForm.addFieldType( "url", // new RegExp("^http\\:\\/\\/(\\w[\\w\\.\\-]*\\w+\\.)+[a-z]{2,4}(:[0-9]{2,})?(\\/)?((\\w[\\w\\.\\-\\/\\%\\#]+)*(\\?(\\w+[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~\\,\\@\\:\\.]*)?)?)?$") new RegExp('^(((ht|f)tp(s?))\:\/\/)?(((www\.|[a-zA-Z0-9]+\.)?[a-zA-Z0-9\.-]+\.(abogado|ac|academy|accountant|accountants|actor|ad|ads|adult|ae|aero|af|africa|ag|agency|ai|airforce|al|alsace|am|amsterdam|an|analytics|ao|apartments|app|aq|ar|arab|archi|army|art|as|asia|associates|at|attorney|au|auction|audio|author|auto|autos|aw|ax|az|ba|baby|band|bank|bar|barcelona|bargains|baseball|basketball|bayern|bb|bcn|bd|be|beauty|beer|berlin|best|bet|bf|bg|bh|bi|bible|bid|bike|bingo|bio|biz|bj|bl|black|blackfriday|blog|blue|bm|bn|bo|boats|boo|book|boston|bot|boutique|box|br|broadway|broker|brussels|bs|bt|budapest|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|call|cam|camera|camp|cancerresearch|capetown|capital|car|cards|care|career|careers|cars|casa|cash|x|cat|catering|catholic|cc|cd|center|ceo|cf|cg|ch|channel|charity|chat|cheap|christmas|church|ci|city|ck|cl|claims|cleaning|click|clinic|clothing|cloud|club|cm|cn|co|co.com|coach|codes|coffee|college|cologne|com|community|company|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corp|country|coupon|coupons|courses|cpa|cr|credit|creditcard|creditunion|cricket|cruise|cruises|cu|cv|cx|cy|cymru|cz|dad|dance|data|date|dating|day|dds|de|deal|deals|degree|delivery|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|diy|dj|dk|dm|do|docs|doctor|dog|domains|dot|download|dubai|dvr|dz|earth|eat|ec|eco|ecom|edu|education|ee|eg|eh|email|energy|engineer|engineering|enterprises|equipment|er|es|esq|estate|et|eu|eus|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|feedback|fi|film|final|finance|financial|finish|fish|fishing|fit|fitness|fj|fk|flights|florist|flowers|fly|fm|fo|foo|food|football|forsale|forum|foundation|fr|frl|fun|fund|furniture|futbol|fyi|ga|gal|gallery|game|games|garden|gay|gb|gd|ge|ged|gent|gf|gg|gh|gi|gift|gifts|gives|giving|gl|glass|global|gm|gmbh|gn|gold|golf|got|gov|gp|gq|gr|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guide|guitars|guru|gw|gy|hair|halal|hamburg|haus|health|healthcare|help|helsinki|here|hiphop|hiv|hk|hm|hn|hockey|holdings|holiday|home|homes|horse|hospital|host|hosting|hot|hoteis|hotel|hotels|house|how|hr|ht|hu|id|idn|ie|il|im|immo|immobilien|in|inc|industries|info|info.pl|ing|ink|institute|insurance|insure|int|international|investments|io|iq|ir|irish|is|islam|ismaili|ist|istanbul|it|je|jetzt|jewelry|jm|jo|jobs|joburg|jot|joy|jp|juegos|kaufen|ke|kg|kh|ki|kid|kids|kim|kitchen|kiwi|km|kn|koeln|kosher|kp|kr|kw|ky|kyoto|kz|la|land|lat|latino|law|lawyer|lb|lc|lease|legal|lgbt|li|life|lifeinsurance|lifestyle|lighting|like|limited|limo|link|live|living|lk|llc|llp|loan|loans|lol|london|love|lr|ls|lt|ltd|ltda|lu|luxe|luxury|lv|ly|ma|madrid|mail|maison|makeup|management|map|market|marketing|mba|mc|md|me|med|media|medical|meet|melbourne|meme|memorial|men|menu|mf|mg|mh|miami|mil|mk|ml|mls|mm|mn|mo|mobi|mobile|moda|moe|mom|money|mortgage|moscow|moto|motorcycles|mov|movie|mp|mq|mr|ms|mt|mu|museum|music|mutualfunds|mv|mw|mx|my|mz|na|nagoya|name|navy|nc|ne|net|network|new|news|nf|ng|ngo|ni|ninja|nl|no|now|np|nr|nrw|nu|nyc|nz|okinawa|om|one|ong|onl|online|ooo|org|organic|osaka|ott|pa|paris|pars|partners|parts|party|pay|pe|pet|pets|pf|pg|ph|phd|phone|photo|photography|photos|physio|pics|pictures|pid|ping|pink|pizza|pk|pl|place|play|plumbing|plus|pm|pn|a|politie|porn|pr|press|pro|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|py|qa|qpon|quebec|racing|radio|re|read|realestate|realtor|realty|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|retirement|review|reviews|rich|rip|ro|rocks|rodeo|roma|room|rs|rsvp|ru|rugby|ruhr|run|rw|ryukyu|sa|saarland|safe|safety|sale|salon|sari|sarl|save|sb|sc|scholarships|school|schule|science|scot|sd|se|search|secure|security|services|sex|sexy|sg|sh|shabaka|shabaka-arabic|shia|shiksha|shoes|shop|shopping|show|si|singles|site|sj|sk|ski|sl|sm|smile|sn|so|soccer|social|software|solar|solutions|song|soy|spa|space|sport|sports|spot|sr|srl|st|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|sv|swiss|sy|sydney|systems|sz|taipei|talk|tatar|tattoo|tax|taxi|tc|td|team|tech|technology|tel|tennis|tf|tg|th|thai|theater|theatre|tickets|tienda|tips|tires|tirol|tj|tk|tl|tm|tn|to|today|tokyo|tools|top|tours|town|toys|tp-|tr|trade|trading|training|travel|tt|tube|tv|tw|tz|ua|ug|uk|um|university|uno|us|us.com|uy|uz|va|vacations|vc|ve|vegas|ventures|versicherung|vet|vg|vi|viajes|video|villas|vin|vip|vision|vlaanderen|vn|vodka|vote|voting|voto|voyage|vu|wales|wang|watch|watches|weather|web|webcam|webs|website|wedding|wf|wien|wiki|win|wine|winners|work|works|world|wow|ws|wtf|xn--11b4c3d|xn--1qqw23a|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3pxu8k|xn--42c2d9a|xn--45q11c|xn--4gbrim|xn--55qw42g|xn--55qx5d|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80asehdb|xn--80aswg|xn--9dbq2a|xn--9et52u|xn--bck1b9a5dre4c|xn--c2br7g|xn--cck2b3b|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--e1a4c|xn--efvy88h|xn--fhbei|xn--fiq228c5hs|xn--fjq720a|xn--g2xx48c|xn--hxt814e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--kput3i|xn--mgbab2bd|xn--mgbca7dzdo|xn--mgbt3dhd|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbrx|xn--nqv7fs00ema|xn--nyqy26a|xn--p1acf|xn--pssy2u|xn--q9jyb4c|xn--rhqv96g|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--xhq521b|xn--zfr164b|xxx|xyz|yachts|ye|yoga|yokohama|you|yt|yu|za|zero|zip|zm|zone|zw))|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(\\[([a-fA-F0-9\:]+)\\]))(\:[0-9]+)*((/|//)($|[a-zA-Z0-9@\\[\\]\\:!\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$') // new RegExp("^http\:\/\/([a-zA-Z0-9_][a-zA-Z0-9_\.\-]*[a-zA-Z0-9_]+)+\.[a-z]{2,4}(:[0-9]{2,})?(\/)?(([a-zA-Z0-9_\/\%\#\.\-]+)*(\?([a-zA-Z0-9_]+[!a-zA-Z0-9_;\%\&\=\@\#\/\:\.\,\+\-]*)?)?)?$"); ); // telefon checkForm.addFieldType( "telefon", function (evt, elm) { let fieldOk = true; if (elm && elm.value.length !== 0) { let reg = new RegExp("((\\+|00)\\d{3})?\\d{3,10}((\\-|kl\\.)\\d{3})?$"); let tmp = elm.value.replace(/\s/g, ''); let phoneSplit = tmp.split(","); for (let j = 0; j < phoneSplit.length; j++) { let phone = phoneSplit[j].replace(new RegExp("([0-9])/([0-9])"), '$1$2'); if (phoneSplit[j].length - phone.length > 1) { fieldOk = false } else { if (phone.search(reg) !== 0) { fieldOk = false; } } } } return fieldOk; } ); // 158 // 112 // 00420 331 889 415-420 // 00420 331 889 415,00420 331 889 297 // +420 331 889 415-420 // +420 331 889 415,+420 331 889 297 // 313 884 235 kl. 208 // 737 077 322 // 737077322 // +420331889415 // 033/5571 026 // 0917/178 718 // 0908/799 055 // 0850 111 727 // 12 129 // 057/244 5 999 // 057/48 61 411 // 0850 850 850 // 057/4865 111 // 057/4422741 // 02 45248088 // +421 2 5920 3303 // +421 903 267 027 // 00421 2 5920 3303 // 00421 903 267 027 // 12129 checkForm.addFieldType( "mobil", new RegExp("^((\\d{5}|\\+\\d{3})?\\ ?\\d{3}\\ ?\\d{3}\\ ?\\d{3}(\\-\\d{3})?(\\ kl\\.\\ ?\\d+)?(\\ |\\ ?,\\ ?)?)+$") ); //00420 // +420 331 889 415-420 // +420 331 889 415,+420 331 889 297 // 313 884 235 kl. 208 checkForm.addFieldType( "username", new RegExp("^[a-zA-Z0-9](?=[a-zA-Z0-9\\.\\_\\-]{3,})((\\.|\\_|\\-)?[a-zA-Z0-9]{1,})+$") ); checkForm.addFieldType( "password", new RegExp("^.*(?=.{6,})(?=.*[0-9])(?=.*[a-zA-Z]).*$") // new RegExp("^.*(?=.*[a-z])(?=.*[0-9])(?=.{6,}).*$") ); checkForm.addFieldType( "time", function (evt, elm) { if (elm) { if (elm.value.length == 0) return true; var reg1 = /[0-9]+/g; var result = elm.value.match(reg1); if (result && result.length >= 1 && result.length <= 3) { var iHodin = parseInt(result[0], 10); var iMinut = (result.length >= 2 ? result[1] : 0); var iVterin = (result.length == 3 ? result[2] : 0); if (iHodin >= 0 && iHodin <= 24 && iMinut >= 0 && iMinut <= 59 && iVterin >= 0 && iVterin <= 59) return true; else return false; } return false; } return false; } ); checkForm.addFieldType( "email_multi", function (evt, elm) { if (elm) { if (elm.value.length == 0) return true; var reg1 = /[ ,;]+/; var reg2 = new RegExp("^([\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)((\\.){1}[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)*@[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+((\\.){1}[\\w\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\^\\{\\}\\|\\~]+)*\\.(abogado|ac|academy|accountant|accountants|actor|ad|ads|adult|ae|aero|af|africa|ag|agency|ai|airforce|al|alsace|am|amsterdam|an|analytics|ao|apartments|app|aq|ar|arab|archi|army|art|as|asia|associates|at|attorney|au|auction|audio|author|auto|autos|aw|ax|az|ba|baby|band|bank|bar|barcelona|bargains|baseball|basketball|bayern|bb|bcn|bd|be|beauty|beer|berlin|best|bet|bf|bg|bh|bi|bible|bid|bike|bingo|bio|biz|bj|bl|black|blackfriday|blog|blue|bm|bn|bo|boats|boo|book|boston|bot|boutique|box|br|broadway|broker|brussels|bs|bt|budapest|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|call|cam|camera|camp|cancerresearch|capetown|capital|car|cards|care|career|careers|cars|casa|cash|x|cat|catering|catholic|cc|cd|center|ceo|cf|cg|ch|channel|charity|chat|cheap|christmas|church|ci|city|ck|cl|claims|cleaning|click|clinic|clothing|cloud|club|cm|cn|co|co.com|coach|codes|coffee|college|cologne|com|community|company|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corp|country|coupon|coupons|courses|cpa|cr|credit|creditcard|creditunion|cricket|cruise|cruises|cu|cv|cx|cy|cymru|cz|dad|dance|data|date|dating|day|dds|de|deal|deals|degree|delivery|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|diy|dj|dk|dm|do|docs|doctor|dog|domains|dot|download|dubai|dvr|dz|earth|eat|ec|eco|ecom|edu|education|ee|eg|eh|email|energy|engineer|engineering|enterprises|equipment|er|es|esq|estate|et|eu|eus|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|feedback|fi|film|final|finance|financial|finish|fish|fishing|fit|fitness|fj|fk|flights|florist|flowers|fly|fm|fo|foo|food|football|forsale|forum|foundation|fr|frl|fun|fund|furniture|futbol|fyi|ga|gal|gallery|game|games|garden|gay|gb|gd|ge|ged|gent|gf|gg|gh|gi|gift|gifts|gives|giving|gl|glass|global|gm|gmbh|gn|gold|golf|got|gov|gp|gq|gr|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guide|guitars|guru|gw|gy|hair|halal|hamburg|haus|health|healthcare|help|helsinki|here|hiphop|hiv|hk|hm|hn|hockey|holdings|holiday|home|homes|horse|hospital|host|hosting|hot|hoteis|hotel|hotels|house|how|hr|ht|hu|id|idn|ie|il|im|immo|immobilien|in|inc|industries|info|info.pl|ing|ink|institute|insurance|insure|int|international|investments|io|iq|ir|irish|is|islam|ismaili|ist|istanbul|it|je|jetzt|jewelry|jm|jo|jobs|joburg|jot|joy|jp|juegos|kaufen|ke|kg|kh|ki|kid|kids|kim|kitchen|kiwi|km|kn|koeln|kosher|kp|kr|kw|ky|kyoto|kz|la|land|lat|latino|law|lawyer|lb|lc|lease|legal|lgbt|li|life|lifeinsurance|lifestyle|lighting|like|limited|limo|link|live|living|lk|llc|llp|loan|loans|lol|london|love|lr|ls|lt|ltd|ltda|lu|luxe|luxury|lv|ly|ma|madrid|mail|maison|makeup|management|map|market|marketing|mba|mc|md|me|med|media|medical|meet|melbourne|meme|memorial|men|menu|mf|mg|mh|miami|mil|mk|ml|mls|mm|mn|mo|mobi|mobile|moda|moe|mom|money|mortgage|moscow|moto|motorcycles|mov|movie|mp|mq|mr|ms|mt|mu|museum|music|mutualfunds|mv|mw|mx|my|mz|na|nagoya|name|navy|nc|ne|net|network|new|news|nf|ng|ngo|ni|ninja|nl|no|now|np|nr|nrw|nu|nyc|nz|okinawa|om|one|ong|onl|online|ooo|org|organic|osaka|ott|pa|paris|pars|partners|parts|party|pay|pe|pet|pets|pf|pg|ph|phd|phone|photo|photography|photos|physio|pics|pictures|pid|ping|pink|pizza|pk|pl|place|play|plumbing|plus|pm|pn|a|politie|porn|pr|press|pro|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|py|qa|qpon|quebec|racing|radio|re|read|realestate|realtor|realty|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|retirement|review|reviews|rich|rip|ro|rocks|rodeo|roma|room|rs|rsvp|ru|rugby|ruhr|run|rw|ryukyu|sa|saarland|safe|safety|sale|salon|sari|sarl|save|sb|sc|scholarships|school|schule|science|scot|sd|se|search|secure|security|services|sex|sexy|sg|sh|shabaka|shabaka-arabic|shia|shiksha|shoes|shop|shopping|show|si|singles|site|sj|sk|ski|sl|sm|smile|sn|so|soccer|social|software|solar|solutions|song|soy|spa|space|sport|sports|spot|sr|srl|st|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|sv|swiss|sy|sydney|systems|sz|taipei|talk|tatar|tattoo|tax|taxi|tc|td|team|tech|technology|tel|tennis|tf|tg|th|thai|theater|theatre|tickets|tienda|tips|tires|tirol|tj|tk|tl|tm|tn|to|today|tokyo|tools|top|tours|town|toys|tp-|tr|trade|trading|training|travel|tt|tube|tv|tw|tz|ua|ug|uk|um|university|uno|us|us.com|uy|uz|va|vacations|vc|ve|vegas|ventures|versicherung|vet|vg|vi|viajes|video|villas|vin|vip|vision|vlaanderen|vn|vodka|vote|voting|voto|voyage|vu|wales|wang|watch|watches|weather|web|webcam|webs|website|wedding|wf|wien|wiki|win|wine|winners|work|works|world|wow|ws|wtf|xn--11b4c3d|xn--1qqw23a|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3pxu8k|xn--42c2d9a|xn--45q11c|xn--4gbrim|xn--55qw42g|xn--55qx5d|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80asehdb|xn--80aswg|xn--9dbq2a|xn--9et52u|xn--bck1b9a5dre4c|xn--c2br7g|xn--cck2b3b|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--e1a4c|xn--efvy88h|xn--fhbei|xn--fiq228c5hs|xn--fjq720a|xn--g2xx48c|xn--hxt814e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--kput3i|xn--mgbab2bd|xn--mgbca7dzdo|xn--mgbt3dhd|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbrx|xn--nqv7fs00ema|xn--nyqy26a|xn--p1acf|xn--pssy2u|xn--q9jyb4c|xn--rhqv96g|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--xhq521b|xn--zfr164b|xxx|xyz|yachts|ye|yoga|yokohama|you|yt|yu|za|zero|zip|zm|zone|zw)$") var result = elm.value.split(reg1); if (result && result.length >= 1) { var bOk = true; for (var i = 0; result[i]; i++) { var fieldOK = (result[i].search(reg2) < 0) ? false : true; if (!fieldOK) bOk = false; } return bOk; } return false; } return false; } ); checkForm.addFieldType( "date", new RegExp("^[0-9]{1,2}\\.[0-9]{1,2}\\.[0-9]{4}$") ); checkForm.addFieldType( "date_usr", new RegExp("^[0-9]{1,2}\\.[0-9]{1,2}\\.[0-9]{4}$") ); checkForm.addFieldType( "date_noyear", new RegExp("^[0-9]{1,2}\\.[0-9]{1,2}\\.?$") ); checkForm.addFieldType( "date_usr_noyear", new RegExp("^[0-9]{1,2}\\.[0-9]{1,2}\\.?$") ); // numbers only checkForm.addFieldType( "time_text", new RegExp("^([0-9]{1,2})(:[0-9]{1,2}){0,2}$") ); checkForm.addFieldType( "iColorPicker", new RegExp('^#(([a-fA-F0-9]){3}){1,2}$') ); /** * Overi, ze je pridan soubor k uploadu pomoci DropZone */ checkForm.addFieldType('dz-file-check', function (evt, element) { if (typeof (element.parentElement.dropzone) === 'undefined') { return false; } var fieldDropzone = Dropzone.forElement(element.parentElement); if (fieldDropzone.files.length > 0) { return true; } return false; }); checkForm.addFieldType('file-size-check', function (evt, element) { let status = true; if (element.dataset.maxFileSize && element.files && element.files[0]) { status = Number(element.dataset.maxFileSize) > element.files[0].size; console.log('Check file size: ' + element.files[0].size); } return status; }) // zavolanie inicializacie checkForm-u pri zavedeni dokumentu evt.add(window, "load", checkForm.init);