var errors = false; var errNum = 0; var radioGroup = null; //new fitures by DelphinŽ Copiright 20.09.2003; function errorMessageTitle(form, s){ return (form.elements["errormessage"]!=null && form.elements["errormessage"].value != "")?form.elements["errormessage"].value:s; } function parseForm(form){ var s = errorMessageTitle(form, "Find the following errors:"); errors = false; errNum = 0; radioGroup = null; for(i=0;i < form.elements.length;i++){ if(form.elements[i].name.substring(0,2)=="y_"){ if(form.elements[i-1].type == "radio"){ if(radioGroup != form.elements[i-1].name){ radioGroup = form.elements[i-1].name; s += parseRadioGroup(form,form.elements[i-1]); } }else{ s += parseElement(form,form.elements[i],form.elements[i+1]); } } } if(errors){ alert(s); return false; }else{ return true; } } function resetForm(el){ for(var i = 0; i < document.forms.length; i++){ for(var j=0; j < document.forms[i].elements.length; j++){ if(el == document.forms[i].elements[j]){ document.forms[i].reset(); break; } } } } function parseRadioGroup(form,obj){ var v=false; var s = ""; var errMess = ""; for(var i = form.elements.length-1; i >= 0; i--){ if(form.elements[i].name == obj.name){ errMess = form.elements[i+1].value.split('|')[2]; if(form.elements[i].checked){ v=true; } } } if(!v){ errors = true; errNum++; if(errMess==''){ s = "\n" + errNum + ". Choose one of:"; for(var i = 0; i < form.elements.length; i++){ if(form.elements[i].name == obj.name){ s+="\n - " + form.elements[i+1].value.split("|")[0]; } } }else{ s = "\n" + errNum + ". " + errMess; } } return s; } function parseElement(form,obj,hid){ if(obj!=null){ if(hid!=null){ params = hid.value.split("|"); switch (params[1]){ case "0": if(!isFill(obj)){ errors = true; errNum++; return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"is empty"); } break; case "1": if(!isDigits(obj.value)){ errors = true; errNum++; return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"is not a number"); } break; case "2": var res = isEmail(obj.value); if(res!=""){ errors = true; errNum++; return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:res); } break; case "3": if(!isURL(obj.value)){ errors = true; errNum++; return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"is not a link"); } break; } } return ""; } return ""; } function isFill(obj){ var v = true; if(obj.value=="") v=false; if(obj.value=="empty") v=false; /* for select */ if((obj.type=="checkbox")&&(!obj.checked)) v=false; return v; } function isDigits(s){ return ''!=s && !isNaN(s); } function isEmail(s){ if(s.indexOf("@") > -1){ var name = s.split("@")[0]; var serv = s.split("@")[1]; if(name != ""){ if(serv != ""){ if(serv.indexOf(".")>0){ var xxx = serv.split("."); for(var i = 0; i < xxx.length; i++){ if(xxx[i].length < 2) return "server name error(example: name@serv.com)"; } return ""; }else return "server name error(example: name@serv.com)"; }else return "server name error(example: name@serv.com)"; }else return "name is not specified(example: name@serv.com)"; }else return "symbol \"@\" didn't found (example: name@serv.ru)"; } function isURL(s){ if(s.indexOf(".")>-1){ var xxx = s.split("."); for(var i = 0; i < xxx.length; i++){ if(xxx[i].length < 2) return false; } return true; }else return false; } function fillSelectLists(){ for(var f = 0; f < document.forms.length; f++){ if(document.forms[f].elements!=null && document.forms[f].elements.length>0){ for(var i = 0; i < document.forms[f].elements.length; i++){ if(document.forms[f].elements[i].type == "select-one"){ var opt = null; var val = document.forms[f].elements[i-1].value; var a = val.split(","); var selRef = document.forms[f].elements[i]; for (var j=0; j < a.length; j++){ opt = new Option(a[j], a[j], false,false); selRef.options[j] = opt; } selRef.selectedIndex = 0; } } } } }