var VsaForm=Class.create({initialize:function(c,b,a){this.domRootElement=c;this.data=b;
this.fields=[];this.options={dataType:"XML",debug:false,inputId:1,validation:false,showWarnBox:false};
Object.extend(this.options,a||{})},getDataType:function(){return this.options.dataType
},getData:function(){var a=$H("");switch(this.getDataType()){case"XML":a=this.data;
break;case"JSON":a=$H(this.data);break;default:a=$H("")}return a},addPost:function(){var a=this.getPost();
if(a!=""){a="&"+a}return a},getPost:function(){var a="";this.fields.each(function(b){if(a!=""){a+="&"
}a+=b.domValue.getPost(b.xmlField)}.bind(this));return a},getValuesJSON:function(){return Object.toJSON(this.getValues())
},getValues:function(){var a=new Object();this.fields.each(function(b){a[b.xmlField]=b.domValue.value
}.bind(this));return a},getJSON:function(){return this.fields},getValueData:function(b){var a=null;
switch(this.getDataType()){case"XML":a=getXmlValue(this.getData(),b);break;case"JSON":a=this.getData().get(b);
break;default:a=null}return a},addText:function(a,c,b){if(this.debug){console.info("vsaForm addText")
}return this.addField(a,c,"",b)},addInput:function(a,c,b){if(this.debug){console.info("vsaForm addInput")
}return this.addField(a,c,"input",b)},addArea:function(a,c,b){if(this.debug){console.info("vsaForm addArea")
}return this.addField(a,c,"textarea",b)},addSelect:function(a,c,b){if(this.debug){console.info("vsaForm addSelect")
}return this.addField(a,c,"select",b)},addField:function(l,d,q,t){var v=this.domRootElement;
var e=this.getData();var s=d+"-"+this.options.inputId;if(this.debug){console.info("addDomField field %s value %s",d,this.getValueData(d))
}var c={comment:"",info:null,inputSize:20,inputCols:53,inputRows:5,inputType:q,optionsHash:{1:"Aktiv",0:"Inaktiv"},defaultValue:null,preInput:null,postInput:null,showInfoBox:false,infoBoxOptions:{},optionsNull:null,verify:false,required:false};
Object.extend(c,t||{});var o=new Element("div",{className:"valueBox"});v.insert(o);
if(l!=""){var m=new Element("label");if(l.match(/icon\-/)){m.addClassName("label-icon")
}m.update(l+":");o.insert(m)}if(c.comment.length>0){var h=new Element("p",{id:"help-"+s,className:"HelpButton"});
h.appendText("i");o.insert(h)}var x=this.getValueData(d);if(x==null&&c.defaultValue!=null){x=c.defaultValue
}var p;switch(q){case"select":p=new Element("select",{id:s,name:s,className:"fromSelect"});
if(!Object.isUndefined(c.optionsNull)&&c.optionsNull!=null){var y=new Element("option",{value:0});
if(x==0){y.selected="true"}y.appendText(c.optionsNull);p.insert(y)}if(Object.isArray(c.optionsHash)){var z=c.optionsHash;
for(var k=0,u=z.length;k<u;++k){var b=z[k];var y=new Element("option",{value:b});
if(b==x){y.selected="true"}y.appendText(b);p.insert(y)}}else{var g=$H(c.optionsHash);
g.each(function(B){var A=new Element("option",{value:B.key});if(B.key==x){A.selected="true"
}A.appendText(B.value);p.insert(A)})}break;case"textarea":p=new Element("textarea",{id:s,name:s,className:"fromArea",cols:c.inputCols,rows:c.inputRows});
p.appendText(x);break;case"checkbox":p=new Element("input",{id:s,name:s,type:"checkbox",value:1,className:"checkbox"});
break;case"input":p=new Element("input",{id:s,name:s,className:"fromInput",size:c.inputSize,type:"text",value:x});
break;default:p=new Element("div");p.appendText(x)}if(!Object.isUndefined(c.preInput)&&c.preInput!=null){var n=new Element("span",{className:"pre"}).appendText(c.preInput);
o.insert(n)}o.insert(p);if(!Object.isUndefined(c.postInput)&&c.postInput!=null){var w=new Element("span",{className:"info"}).appendText(c.postInput);
o.insert(w)}if(!Object.isUndefined(c.info)&&c.info!=null){if(c.showInfoBox){new InlineInfoBox(o,c.info,c.infoBoxOptions)
}else{o.insert(new Element("div",{className:"comment"}).appendText(c.info))}}var j={formOptions:c,domValueBox:o,domValue:p,xmlField:d};
switch(q){case"select":case"textarea":case"input":case"checkbox":this.fields.push(j)
}if((c.verify||c.required)&&Object.isElement(p)){Event.observe(p,"blur",this.validateEvent.bindAsEventListener(this,j))
}if(c.comment.length>0){h.observe("click",function(B){var C=Event.element(B);var A=$("content-"+C.id);
if(A.visible()){A.hide()}else{A.show()}});var f=new Element("div",{id:"content-help-"+s});
f.hide();o.insert(f);var r=c.comment.split("\n");for(i=0;i<r.length;i++){var a=new Element("p",{className:"text-comment"});
a.appendText(r[i]);f.insert(a)}}return p},verifyAllFields:function(){var a=this;var b=false;
this.fields.each(function(e){if((e.formOptions.verify||e.formOptions.required)&&Object.isElement(e.domValue)){if(!a.validate(e)){b=true
}}}.bind(this));if(this.options.showWarnBox){var d=new WarningBox();if(b){var c="Alle markierten Felder müssen überprüft und korrekt eingetragen werden. ";
c+="Details zu den Meldungen sind jeweils innerhalb der Markierungen unter dem Eingabe oder Auswahl bereich angeben. ";
c+="Unter Umständen können Fehler in nicht geöffneten Bereichen (fieldset) enthalten sein.\n";
d.show("Die Datenvalierung ist felgeschlagen",c)}else{d.hide()}}return !b},validateEvent:function(a){objVerifyeField=$A(arguments)[1];
this.validate(objVerifyeField)},validate:function(e){if(e.formOptions.inputType=="input"){e.domValue.value=e.domValue.value.replace(/^\s+/,"");
e.domValue.value=e.domValue.value.replace(/\s+$/,"")}var b=new Verify();var d=false;
if(e.domValue.value==""&&!e.formOptions.required){d=true}else{switch(e.formOptions.verify){case"function":b=e.formOptions.verify_function(e.domValue);
d=!b.isError();break;case"checkbox":d=b.checkbox(e.domValue.checked);break;case"text":d=b.text(e.domValue.value);
break;case"plain_text":d=b.plain_text(e.domValue.value);break;case"cert_text":d=b.cert_text(e.domValue.value);
break;case"strict_text":case"var_name":case"path_name":d=b.strict_text(e.domValue.value);
break;case"name":d=b.name(e.domValue.value);break;case"date":case"datum":d=b.datum(e.domValue.value);
break;case"phone":d=b.phone(e.domValue.value);break;case"email":case"mail":d=b.email(e.domValue.value);
break;case"ip":d=b.ip(e.domValue.value);break;case"ipPart1_3":case"ip_part1_3":d=b.ipPart1_3(e.domValue.value);
break;case"ipPart":case"ip_part":d=b.ipPart(e.domValue.value);break;case"number":case"nummer":d=b.number(e.domValue.value);
break;case"hostname":case"hostName":case"fqdn":d=b.hostname(e.domValue.value);break;
default:console.warn("undefined validation for VsaForm: "+e.formOptions.verify)}var a="";
if(!d){a=b.getError()}else{if(e.formOptions.required&&e.domValue.value.length==0){a="Es muss ein Wert angeben werden";
d=false}}(e.domValueBox.childElements()).each(function(f){if(f.hasClassName("text-enlight")){f.remove()
}});if(!d){var c=new Element("div",{className:"text-enlight"}).update(a);e.domValueBox.insert(c);
e.domValueBox.addClassName("table-enlight")}else{e.domValueBox.removeClassName("table-enlight")
}}return d}});function validTabFeld(g,c,h,d){console.info("Form validTabFeld deprecated");
var f=new Verify();var a="";if(typeof(g)!==undefined&&g!=null){if(g.value.length<1){a="Unzeireichende Eingabe. \n"
}var b=g.parentNode.parentNode;switch(c){case"sld":if(g.value.length<1){a="Second Level Domain Name zu kurz.\n"
}else{if(!f.sld(g.value)){a="Second Level Domain Name ungueligt. Nur Kleinbuchstaben verwenden. Beispiel ( Richtig: spepp-maier Falsch: sepp-maier.de)\n"
}}break;case"email":if(!f.email(g.value)){a="Falsche E-Mail-Adresse. \n"}break;case"phone":if(!f.phone(g.value)){a="Format der Telefonnummer falsch. Beispiel: +49 123 4567890. \n"
}break;case"fax":if(!f.phone(g.value)){a="Format der Faxnummer falsch. Beispiel: +49 123 4567890. \n"
}break;case"country":if(g.value.length<2){a="Laendercode sollte min. zwei Buchstaben sein.\n"
}break;case"plz":if(!f.plz(g.value,h.value)){a="Postleitzahl Falsch. \n"}break;case"stdStr":if(!f.stdName(g.value)){a='Eingabe "'+g.value+'" enhält ungültige Zeichen. Es sind keine Umlaute oder Sonderzeichen erlaubt. \n'
}break;case"stdStr2":if(g.value.length!=0){if(!f.stdName(g.value)){a="Eingabe enhält ungültige Zeichen. Es sind keine Umlaute oder Sonderzeichen erlaubt. \n"
}}else{a=""}break;case"number":if(!f.number(g.value)){a=f.getError()}break;case"currency":if(!f.currency(g.value)){a=f.getError()
}break;case"config_text":if(!f.config_text(g.value)){a=f.getError()}break;default:a="Nicht definierte validierung. October Labs Support verständigen.\n";
break}if(typeof(b)!="undefined"){if(a!=""){b.addClassName("table-enlight")}else{b.removeClassName("table-enlight")
}}}if(a==""&&c!="config_text"){var e=g.value;e=e.replace(/^\s+/,"");e=e.replace(/\s+$/,"");
g.value=e}if(typeof(d)!="undefined"&&d=="hideErrorBox"){}else{showErrorBox(a)}return a
};