validField = '#FFFFFF'; invalidField = '#E7DDCF'; required = /^req_/; elem = ''; el = ''; validForm = true; validLink = ''; validChrs = /[0-9a-zA-Z]/ validFormSubmitTo = "/form.php"; // script where the valid VALID will be sent to - leave empty for same as action defined in the
tag defaultSubmitTo = "/auto.php" // script where the INVALID form will be sent to - leave empty for same as action defined in the tag function validate(element, msg, doAlert, msgId) { var valid = true; temp = ""; elem = element; switch (element.type) { case 'text': { temp = text(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } case 'textarea': { temp = textarea(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } case 'select-one': { temp = selectOne(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } case 'select-multiple': { temp = selectMultiple(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } case 'checkbox': { temp = checkbox(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); //document.getElementById(element.id).style.backgroundColor = invalidField; } break; } case 'radio': { temp = radio(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); //document.getElementById(element.id).style.backgroundColor = invalidField; } break; } case 'password': { temp = password(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } case 'file': { temp = testFile(element); if (!temp) { valid = temp; createmsg(msg, doAlert, msgId); document.getElementById(element.id).style.backgroundColor = invalidField; } else { document.getElementById(element.id).style.backgroundColor = validField; } break; } } if (valid == false) { return false; } } function text(element) { var number = /number$/; var notNumber = /[^0-9]/; var isEmail = /email/; var uniqueEmail = /unique/; var isURL = /website/; var isUser = /username/; var validChar = /[^0-9a-zA-Z]/; temp = ""; id = element.id if (!validChrs.test(document.getElementById(id).value) && required.test(id)) { return false; } else if (isUser.test(id)) { if (document.getElementById(id).value.length < 3) { return false; } else if (validChar.test(document.getElementById(id).value)) { return false; } else { type = 'user'; process(element, type); } } else if (isEmail.test(id)) { temp = emailCheck(document.getElementById(id).value); if(temp && document.getElementById(id).value != '') { if (uniqueEmail.test(id)) { type = 'email'; process(element, type); } else { return true; } } else { return false; } } else if (number.test(id)) { if (required.test(id)) { if (notNumber.test(document.getElementById(id).value) || document.getElementById(id).value == "") { return false; } else { return true; } } else { if (document.getElementById(id).value == '') { return true; } else if (document.getElementById(id).value != '' && notNumber.test(document.getElementById(id).value)) { return false; } else { return true; } } } else if (isURL.test(id)) { if (document.getElementById(id).value == '') { return false; } else if (!CheckDomain(id)) { return false; } else { return true; } } else if (document.getElementById(id).value == '' && required.test(id)) { return false; } else { return true; } } function password(element) { id = element.id if (document.getElementById(element).id == 'req_password' && (document.getElementById(element).value == '' || document.getElementById(element).value.length < 6)) { return false; } else if (document.getElementById(element).id == 'req_password_conf' && (document.getElementById(element).value == '' || document.getElementById(element).value != document.getElementById('req_password').value || document.getElementById('req_password').value.length < 6)) { return false; } else if (document.getElementById(element).value == '') { return false; } else { return true; } } function selectOne(element) { id = element.id if (document.getElementById(id).options[document.getElementById(id).selectedIndex].value == 'null') { return false; } else { return true; } } function selectMultiple(element) { id = element.id if (document.getElementById(element).value == '') { return false; } else { return true; } } function checkbox(element) { id = element.id checked = false; elem = document.getElementsByName(element.name); for (i = 0; i < elem.length; i++) { if (elem[i].checked == true) { checked = true; } } if (checked == true) { return true; } else { return false; } } function radio(element) { id = element.id checked = false; elem = document.getElementsByName(element.name); for (i = 0; i < elem.length; i++) { if (elem[i].checked == true) { checked = true; } } if (checked == true) { return true; } else { return false; } } function textarea(element) { id = element.id if (!validChrs.test(document.getElementById(element).value)) { return false; } else if (document.getElementById(element).value == '') { return false; } else { return true; } } function testFile(element) { id = element.id if (document.getElementById(element).value == '') { return false; } else { return true; } } function nextstep(form, doAlert, msg) { form.action = defaultSubmitTo; validForm = true; focusedEl = ''; for (j = 0; j < form.elements.length; j++) { if (required.test(form.elements[j].id) && form.elements[j].style.visibility != 'hidden') { if (validate(form.elements[j], '', false) == false) { validForm = false; if (focusedEl == '') { focusedEl = form.elements[j]; } } } } if (validForm == false) { if (doAlert == true) { alert(msg); focusedEl.focus(); } return false; } else { if (validFormSubmitTo != "") form.action = validFormSubmitTo; return true; } } function resetForm(form) { for (i = 0; i < form.elements.length; i++) { if (form.elements[i].type != 'submit' && form.elements[i].type != 'reset' && form.elements[i].type != 'button' && form.elements[i].type != null) { //alert(form.elements[i].type + ' - ' + form.elements[i].value); form.elements[i].style.backgroundColor = validField; switch (form.elements[i].type) { case 'text': { form.elements[i].value = ''; break; } case 'select-one': { form.elements[i].options[form.elements[i].selectedIndex].value = 'null'; break; } case 'checkbox' || 'radio': { form.elements[i].checked = ''; } } } } form.elements[1].focus(); } function emailCheck(email) { var at="@"; var dot="."; var lat=email.indexOf(at); var lastChr=email.length; var ldot=email.indexOf(dot); if (lat==-1) { return false; } if (lat==-1 || lat==0 || lat==lastChr) { return false; } if (ldot==-1 || ldot==0 || ldot==lastChr-1) { return false; } if (email.indexOf(at,(lat+1))!=-1) { return false; } if (email.substring(lat-1,lat)==dot || email.substring(lat+1,lat+2)==dot) { return false; } if (email.indexOf(dot,(lat+2))==-1) { return false; } if (email.indexOf(" ")!=-1) { return false; } return true; } function createmsg(msg, doAlert, msgId) { if (msg != '') { if (msgId && doAlert != true) { writeMessage = document.getElementById(msgId); //if the message will be displayed in another tag or element, this would be its id writeMessage.innerHTML = msg; } else if (doAlert == true && msgId != "") alert (msg); } } function CheckDomain(element) { var arr = new Array( '.com','.net','.org','.biz','.coop','.info','.museum','.name', '.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag', '.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw', '.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm', '.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc', '.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr', '.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz', '.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm', '.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm', '.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm', '.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq', '.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki', '.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li', '.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg', '.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt', '.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng', '.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf', '.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py', '.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg', '.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv', '.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn', '.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um', '.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws', '.wf','.ye','.yt','.yu','.za','.zm','.zw'); url = document.getElementById(element).value; if (url.toUpperCase().indexOf("HTTP://")==0) { url = url.substring(7,url.length); } else if (url.toUpperCase().indexOf("HTTPS://")==0) { url = url.substring(8,url.length); } var mai = url; var val = true; var ext; var directory; var temp = mai.substring(0,mai.indexOf("/")); if (temp=="") { temp=mai; } var dot = temp.lastIndexOf("."); var dname = mai.substring(0,dot); var slash = mai.indexOf("/"); if (slash>=0) { ext = mai.substring(dot,slash); } else { ext = mai.substring(dot,mai.length); } if(dot>2 && dot<57) { for(var i=0; i < arr.length; i++) { if(ext == arr[i]) { val = true; break; } else { val = false; } } if(val == false) { document.getElementById(element).style.backgroundColor = invalidField; document.getElementById(element+'_span').className = 'invalidfield'; document.getElementById(element+'_span').firstChild.nodeValue = ext+" is not a correct domain extension!"; return false; } else { for(var j=0; j < dname.length; j++) { var dh = dname.charAt(j); var hh = dh.charCodeAt(0); if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46) { if((j==0 || j==dname.length-1) && hh == 45) { document.getElementById(element).style.backgroundColor = invalidField; document.getElementById(element+'_span').className = 'invalidfield'; document.getElementById(element+'_span').firstChild.nodeValue = "Domains cannot begin or end with '-'!"; return false; } } else { document.getElementById(element).style.backgroundColor = invalidField; document.getElementById(element+'_span').className = 'invalidfield'; document.getElementById(element+'_span').firstChild.nodeValue = "Domains should not contain special characters"; return false; } } } } else { document.getElementById(element).style.backgroundColor = invalidField; document.getElementById(element+'_span').className = 'invalidfield'; document.getElementById(element+'_span').firstChild.nodeValue = "Invalid domain"; return false; } return true; } function ShowResults(response) { if (response == true) { validForm = true; response = 'OK'; messageId = elem.id+'_span'; message = document.getElementById(messageId); message.firstChild.nodeValue = response; message.className = 'validfield'; document.getElementById(elem.id).style.backgroundColor = validField; } else { validForm = false; messageId = elem.id+'_span'; message = document.getElementById(messageId); message.firstChild.nodeValue = response; message.className = 'invalidfield'; document.getElementById(elem.id).style.backgroundColor = invalidField; } } function process(element, type) { elem = element; val = document.getElementById(id).value; x_search(val, type, ShowResults); } function spiderSearch(element) { el = element; val = document.getElementById(id).value x_checkLinkExchange(val, reciprocalResult) } function reciprocalResult(response) { if (response == true) { validLink = true; response = 'Thank You!'; messageId = el.id+'_span'; message = document.getElementById(messageId); message.firstChild.nodeValue = response; message.className = 'validfield'; document.getElementById(elem.id).style.backgroundColor = validField; } else { validLink = false; messageId = el.id+'_span'; message = document.getElementById(messageId); message.firstChild.nodeValue = response; message.className = 'invalidfield'; document.getElementById(el.id).style.backgroundColor = invalidField; document.getElementById(el.id).focus(); } }