/*
Gossweiler Media AG © 2008,2009,2010
v 1.20
Send Funktion bei polytext Formularen
*/


function ptSetFormRequired(myObj,tField,del){
	aField=tField.split(del);

	m=aField.length
	for(n=0;n<m;n++){
		aFieldElm=aField[n].split('[02]');
		if(aFieldElm.length > 2){	// neue Methode 2010
			// feld[02]typ[02]wert[02]text
			fieldName	=aFieldElm[0];
			requiredType	=aFieldElm[1];
			requiredVal	=aFieldElm[2];
			if(aFieldElm.length >3){
				fieldText=aFieldElm[3];
			}else{
				fieldText=fieldName+" required"
			}

		}else{				// alte Methode
			// feld=text
			requiredType="";
			requiredVal="";
			pos=aField[n].indexOf("=");
			if(pos>-1){
				fieldName=aField[n].substring(0,pos);
				fieldText=aField[n].substring(pos+1,aField[n].length);
			}else{
				fieldName=aField[n];
				fieldText=fieldName+" required"
			}
		}

		if(fieldName!=""){
			myObj[fieldName]=new Object;
			myObj[fieldName].alertText=fieldText;
			myObj[fieldName].alertRequiredType=requiredType;
			myObj[fieldName].alertRequiredVal=requiredVal;
		}
	}

}




function ptFormSend(myForm,myFormAction){
	oGostForm=document.forms["gostForm"];		//Target Formular
	cForms=document.getElementsByTagName("form");	//Alle Formulare
	socialMode=myForm['socialMode']? myForm['socialMode'].value	: "";


	var oFormRequired=new Object;



	var requiredStop=false;
	var requiredAlert="";


	if(oGostForm && (socialMode!="egoist")){
		//	Alle Felder in der GosteForm loeschen, ausser variant
		while(elm=oGostForm.firstChild){
			oGostForm.removeChild(elm);
		}


		//	Alle Forumlar-Felder ins Order-Formular kopieren
		for(fL=0;fL<cForms.length;fL++){
			srcForm=cForms[fL];
			if(srcForm!=oGostForm){

				scopeVal=srcForm['scope']? srcForm['scope'].value	: "";
				//if((srcForm.name.indexOf('product.item')<0) || (srcForm.name.indexOf(myForm.name)>-1)){

				if((scopeVal!='privat') || (srcForm.name.indexOf(myForm.name)>-1)){

					if(typeof srcForm['formRequired']!='undefined'){
						ptSetFormRequired(oFormRequired,srcForm['formRequired'].value,'[01]')
					}


					for(fEL=0;fEL<srcForm.elements.length;fEL++){
						srcFld=srcForm.elements[fEL];
						if(srcFld.name=="scope"){
							continue;
						}
						targFld=srcForm.elements[fEL].cloneNode(true)
						//targFld.setAttribute("name",srcForm.id+"."+srcFld.name)
						oGostForm.appendChild(targFld);

						if((srcFld.type=="radio")||(srcFld.type=="checkbox")){
							targFld.checked=srcFld.checked;
							targFld.value=srcFld.value;

						}else{
							targFld.value=srcFld.value;
						}

						myFildObj=oFormRequired[srcFld.name];

						if(typeof myFildObj !='undefined'){
							if(typeof (myFildObj.domObj) =='undefined'){
								myFildObj.domObj=srcFld;
							}

							if((srcFld.type=="radio")||(srcFld.type=="checkbox")){
								if(srcFld.checked){
									myFildObj.isOk=true;
								}
							}else if(myFildObj.alertRequiredType=="numMin"){
								myFildObj.isOk=Number(srcFld.value) >= Number(myFildObj.alertRequiredVal);
							}else if(myFildObj.alertRequiredType=="numMax"){
								myFildObj.isOk=Number(srcFld.value) <= Number(myFildObj.alertRequiredVal);
							}else if(srcFld.value!=""){
								myFildObj.isOk=true;
							}
						}
					}
				}
			}

		}
	}else{

		//Keine GostForm
		srcForm=myForm;

		if(typeof srcForm['formRequired']!='undefined'){
			ptSetFormRequired(oFormRequired,srcForm['formRequired'].value,'[01]')
		}


		for(fEL=0;fEL<srcForm.elements.length;fEL++){
				srcFld=srcForm.elements[fEL];
				if(srcFld.name=="scope"){
					continue;
				}

				myFildObj=oFormRequired[srcFld.name];

				if(typeof myFildObj !='undefined'){
					if(typeof (myFildObj.domObj) =='undefined'){
						myFildObj.domObj=srcFld;
					}

					if((srcFld.type=="radio")||(srcFld.type=="checkbox")){
						if(srcFld.checked){
							myFildObj.isOk=true;
						}
					}else if(myFildObj.alertRequiredType=="numMin"){
						myFildObj.isOk=Number(srcFld.value) >= Number(myFildObj.alertRequiredVal);
					}else if(myFildObj.alertRequiredType=="numMax"){
						myFildObj.isOk=Number(srcFld.value) <= Number(myFildObj.alertRequiredVal);
					}else if(srcFld.value!=""){
						myFildObj.isOk=true;
					}
				}
			}

	}


	for (elm in oFormRequired){
		var obj=oFormRequired[elm];
		if(obj.domObj){
			if(obj.isOk){
				if(obj.domObj.style.border=="1px solid red"){
					obj.domObj.style.border="";//(obj.domObj.style.border)
					//if(obj.borderStyle){
					//	obj.domObj.style.deleteChild(obj.domObj.style.border)	=obj.borderStyle;
					//}
				}
			}else{
				requiredStop=true;
				requiredAlert+=obj.alertText+"\n";
				obj.borderStyle=obj.domObj.style.border;
				obj.domObj.style.border="1px solid red";
			}
		}
	}
	if(requiredStop){
		deAlert(GOS.gt("Die folgenden Felder sind erforderlich","Les champs suivants sont obligatoires.","","","The following fields are required")+":\n"+requiredAlert);
		return(false);
	}else{
		if(myFormAction==null){
			// kein Submit
			return(true);
		}else{
			if(oGostForm){
				oGostForm.action=myFormAction;
				oGostForm.target=myForm.target;
				oGostForm.submit();
			}else{
				myForm.submit();
			}
		}
	}

	return false;
}
