var okColor = "#336699";var errorColor = "#CC0000";var bShowMessage = false;var strMessage = "";var formTextFields;var formRadioCheckFields;var formSelectFields;var formEMailField;var formPasswordField1;var formPasswordField2;var priceCollection = new Object();formTextFields = "";formRadioCheckFields = "";formSelectFields = "";formEMailField = "";formPasswordField1 = "";formPasswordField2 = "";function elemSetInnerHTML(elemId, innerHTML) {	if (document.getElementById(elemId)) document.getElementById(elemId).innerHTML = innerHTML;}function isValidationOK() {	var length;	var isOK = true;		if (formTextFields[0] != "") {		length = formTextFields.length;		for (i = 0; i < length; i++) if (document.getElementById("l_" + formTextFields[i].toLowerCase())) document.getElementById("l_" + formTextFields[i].toLowerCase()).style.color = okColor;				for (i = 0; i < length; i++) {			if (document.forms[0].elements[formTextFields[i]].value == "") {				document.getElementById("l_" + formTextFields[i].toLowerCase()).style.color = errorColor;				isOK = false;			}		}	}	if (formRadioCheckFields[0] != "") {		length = formRadioCheckFields.length;		for (i = 0; i < length; i++) if (document.getElementById("l_" + formRadioCheckFields[i].toLowerCase())) document.getElementById("l_" + formRadioCheckFields[i].toLowerCase()).style.color = okColor;			for (var i = 0; i < length; i++) {						if (!isRadioButtonCheckBoxClicked(formRadioCheckFields[i])) {				document.getElementById("l_" + formRadioCheckFields[i].toLowerCase()).style.color = errorColor;				isOK = false;			}		}	}			if (formSelectFields[0] != "") {		length = formSelectFields.length;		for (i = 0; i < length; i++) if (document.getElementById("l_" + formSelectFields[i].toLowerCase())) document.getElementById("l_" + formSelectFields[i].toLowerCase()).style.color = okColor;			for (var i = 0; i < length; i++) {						if (!isSelectBoxClicked(formSelectFields[i])) {				document.getElementById("l_" + formSelectFields[i].toLowerCase()).style.color = errorColor;				isOK = false;			}		}	}		if (typeof formCostTables != "undefined" && formCostTables[0] != "") {		for (var i = 0; i < formCostTables.length; i++) if (document.getElementById("l_" + formCostTables[i].toLowerCase())) document.getElementById("l_" + formCostTables[i].toLowerCase()).style.color = okColor;		for (var i = 0; i < formCostTables.length; i++) {			var amountFields = document.getElementsByName("costAmount" + formCostTables[i].split("field")[1]);			if (amountFields.length == 0) amountFields = document.getElementsByName("costAmount" + formCostTables[i].split("field")[1] + "[]");						var filled = false; var sum = 0;			for (var n = 0; n < amountFields.length; n++) {				if (amountFields[n].value != "") {					if (isNumeric(amountFields[n].value, profileThousandsSep, false, profileDecimalSep)) 					{						filled = true;						sum += strToNum(amountFields[n].value, profileThousandsSep, profileDecimalSep, false);					}				}			}			if (!filled || sum <= 0) {				document.getElementById("l_" + formCostTables[i].toLowerCase()).style.color = errorColor;				isOK = false;			}		}	}		if (typeof formFullNumberFields != "undefined" && formFullNumberFields[0] != "") {		initFieldchecker();		for (var i = 0; i < formFullNumberFields.length; i++) {			checkNumberExtended(formFullNumberFields[i], true, profileThousandsSep, false, profileDecimalSep, false);		}		if (!areFieldsValid()) isOK = false;	}		if (formEMailField != "" && document.getElementById("l_" + formEMailField.toLowerCase()) && document.forms[0].elements[formEMailField]) {			document.getElementById("l_" + formEMailField.toLowerCase()).style.color = okColor;		if(!isEmailValid(document.forms[0].elements[formEMailField].value)) {			document.getElementById("l_" + formEMailField.toLowerCase()).style.color = errorColor;				isOK = false;		}	}		if (formPasswordField1 != "" && document.getElementById("l_" + formPasswordField1.toLowerCase()) && document.forms[0].elements[formPasswordField1]) {		document.getElementById("l_" + formPasswordField1.toLowerCase()).style.color = okColor;		if (document.forms[0].elements[formPasswordField1].value == "") {			document.getElementById("l_" + formPasswordField1.toLowerCase()).style.color = errorColor;				isOK = false;		}	}		if (formPasswordField2 != "" && document.getElementById("l_" + formPasswordField2.toLowerCase()) && document.forms[0].elements[formPasswordField2]) {		document.getElementById("l_" + formPasswordField2.toLowerCase()).style.color = okColor;		if (document.forms[0].elements[formPasswordField2].value == "") {			document.getElementById("l_" + formPasswordField2.toLowerCase()).style.color = errorColor;				isOK = false;		}		else if (document.forms[0].elements[formPasswordField1].value != document.forms[0].elements[formPasswordField2].value) {			document.getElementById("l_" + formPasswordField1.toLowerCase()).style.color = errorColor;				document.getElementById("l_" + formPasswordField2.toLowerCase()).style.color = errorColor;				isOK = false;		}	}		return isOK;	}function setExtendedFields() {	//sets values of extended form fields into one field (for domino field)	var allVals = "";	var form = document.forms[0];		for (var i = 0; i < textFields.length; i++) {		var textField = textFields[i];		allVals += "$$" + textField + "##" + form.elements[textField].value;	}	for (var i = 0; i < radioCheckFields.length; i++) {		var radioCheckField = radioCheckFields[i];		var selLen = form.elements[radioCheckField].length;		var selVal = "";		for (var k = 0; k < selLen; k++) {			if (form.elements[radioCheckField][k].checked) {				if (selVal != "") selVal += "~~";				selVal += form.elements[radioCheckField][k].value;			}		}		allVals += "$$" + radioCheckField + "##" + selVal;	}	for (var i = 0; i < selectFields.length; i++) {		var selectField = selectFields[i];		var selLen = form.elements[selectField].length;		var selVal = "";		for (var k = 0; k < selLen; k++) {			if (form.elements[selectField].options[k].selected) {				if (selVal != "") selVal += "~~";				selVal += form.elements[selectField].options[k].text;			}		}		allVals += "$$" + selectField + "##" + selVal;	}	form.FieldVals.value = allVals;	}function submitForm() {	if (!isValidationOK()) {					elemSetInnerHTML("validationerror", msgValidationFailure);		elemSetInnerHTML("validationerrortop", msgValidationFailure);		elemSetInnerHTML("validationerrorbottom", msgValidationFailure);			}	else {		if (document.getElementById("actionstop")) document.getElementById("actionstop").style.visibility = "hidden";		if (document.getElementById("actionsbottom")) document.getElementById("actionsbottom").style.visibility = "hidden";		setQvottucumzu();		document.forms[0].submit();	}}function submitExtendedForm() {	if (!isValidationOK()) {					elemSetInnerHTML("validationerror", msgValidationFailure);		elemSetInnerHTML("validationerrortop", msgValidationFailure);		elemSetInnerHTML("validationerrorbottom", msgValidationFailure);			}	else {		if (document.getElementById("actionstop")) document.getElementById("actionstop").style.visibility = "hidden";		if (document.getElementById("actionsbottom")) document.getElementById("actionsbottom").style.visibility = "hidden";		setQvottucumzu();		setExtendedFields();		document.forms[0].submit();	}}function setQvottucumzu() {	if (document.forms[0].Qvottucumzu) document.forms[0].Qvottucumzu.value = getQvottucumzuValue();}function getQvottucumzuValue() {	return "h";}function checkForReturn(e) {	var key;	if(window.event) {		key = window.event.keyCode; //IE	} else {		key = e.which; //firefox	}	if (key == 13) {		submitForm();		return false;	}}function setThisDBPath() {	strCurrentURL = window.location;	strThisDBPath = strCurrentURL.pathname.toLowerCase();	nsfPos=strThisDBPath.indexOf(".nsf");	return strThisDBPath.substring(0, nsfPos + 4);}function isRadioButtonCheckBoxClicked(fieldName) {	if (document.forms[0].elements[fieldName][0]) {		var length = document.forms[0].elements[fieldName].length;		for(var i = 0; i < length; i++) {			if (document.forms[0].elements[fieldName][i].checked) {				return true;			}		}		}	else {		if (document.forms[0].elements[fieldName].checked) {			return true;		}	}	return false;}function isSelectBoxClicked(fieldName) {	var length = document.forms[0].elements[fieldName].length;	for(var i = 0; i < length; i++) {		if (document.forms[0].elements[fieldName].options[i].selected && document.forms[0].elements[fieldName].options[i].text != "- - -") {			return true;		}	}		return false;}function isEmailValid(checkThisEmail) {	var myEMailIsValid = true;	var myAtSymbolAt = checkThisEmail.indexOf('@');	var myLastDotAt = checkThisEmail.lastIndexOf('.');	var mySpaceAt = checkThisEmail.indexOf(' ');	var myLength = checkThisEmail.length;	if (myAtSymbolAt < 1 )  {myEMailIsValid = false}	if (myLastDotAt < myAtSymbolAt)  {myEMailIsValid = false}	if (myLength - myLastDotAt <= 2) {myEMailIsValid = false}	if (mySpaceAt != -1)  {myEMailIsValid = false}	return myEMailIsValid}function calcPrice(amountField, strPrice, strTargetElement, strCurrencySymbol, strThousands, strDecimal) {	var strTmp = strPrice;		// Tausender-Trenner rausfiltern	strTmp = strTmp.split(strThousands).join("");		// ggf. Dezimal-Komma in Punkt umwandeln	if (strDecimal == ",") strTmp = strTmp.replace(/,/g, ".");		var price = parseFloat(strTmp);	var targetElement = document.getElementById(strTargetElement);	var amount = strToNum(amountField.value, strThousands, strDecimal);	if (amount != false) {		var calcedPrice = price * amount;		priceCollection[strTargetElement] = calcedPrice;				if (targetElement) targetElement.innerHTML = numToCurrency(calcedPrice, strCurrencySymbol, strThousands, strDecimal);	}	else {		priceCollection[strTargetElement] = 0;		if (targetElement) targetElement.innerHTML = "";	} 		var sumCell = document.getElementById("priceSum");	if (sumCell) {		sumCell.innerHTML = numToCurrency(priceSum(), strCurrencySymbol, strThousands, strDecimal);	}}// gibt false zur\u00FCck wenn strNum ung\u00FCltiges format hattefunction strToNum(strNum, strThousands, strDecimal, emptyIsZero) {	/***************** defaults *****************/	if (strThousands == null) strThousands = '.';	if (strDecimal == null) strDecimal = ',';	if (emptyIsZero == null) emptyIsZero = true;	/********************************************/	strNum = strNum.trim();	if (strNum.length == 0) return (emptyIsZero) ? parseFloat('0.00') : false;	if (!isNumeric(strNum, strThousands, false, strDecimal)) return false;	var strTmp = strNum;		// Tausender-Trenner rausfiltern	strTmp = strTmp.split(strThousands).join("");	// ggf. Dezimal-Komma in Punkt umwandeln	if (strDecimal != ".") strTmp = strTmp.split(strDecimal).join(".");		var num = parseFloat(strTmp);	return num;	}function numToCurrency(num, strCurrencySymbol, strThousands, strDecimal) {	var strNum = String(num);	var ints = strNum.split(".")[0];	var decs = (strNum.indexOf(".") >= 0) ? strNum.split(".")[1] : "00";		if (decs.length == 0) decs = "00";	else if (decs.length == 1) decs = decs + "0";	else if (decs.length > 2) decs = decs.substr(0, 2);		if (ints.length > 3) {		var tmp = new Array();		var i = ints.length;		var n = 0;		while (i > 0) {			if (i - 3 >= 0) tmp[n] = ints.substr(i - 3, 3);			else tmp[n] = ints.substr(0, i);			n++;			i = i - 3;		}		tmp = tmp.reverse();		ints = tmp.join(strThousands);	}   		return ints + strDecimal + decs + ((strCurrencySymbol != "") ? " " + strCurrencySymbol : "");}function priceSum() {	var sum = 0;	for (var strPriceFld in priceCollection) {		sum += priceCollection[strPriceFld];	}	return sum;}var http_request = false;function setHTTPRequest() {	http_request = false;	if (window.XMLHttpRequest) { // Mozilla, Safari,...		http_request = new XMLHttpRequest();     	if (http_request.overrideMimeType) {     		http_request.overrideMimeType('text/xml');               	     }	}	else if (window.ActiveXObject) { // IE		try {     		http_request = new ActiveXObject("Msxml2.XMLHTTP");	     } 		catch (e) {			try {				http_request = new ActiveXObject("Microsoft.XMLHTTP");			}			catch (e) {}		}	}}var sAvailibilityAgent = "/" + rightStr(rightStr(leftStr(window.location.href, ".nsf") + ".nsf/IsNameAvailable?OpenAgent", "http://"), "/");var msgNameNotAvailable = "";function isUserNameAvailable() {	msgNameNotAvailable = msgUserNameNotAvailable;	elemSetInnerHTML("validationerror", "&nbsp;");	elemSetInnerHTML("validationerrortop", "&nbsp;");	elemSetInnerHTML("validationerrorbottom", "&nbsp;");	var userName = document.forms[0].LogInName.value;		setHTTPRequest();	     sURL = sAvailibilityAgent + "&kind=username&username=" + encodeURI(userName);     http_request.onreadystatechange = nameAvailableChecker;     http_request.open('GET', sURL, true);     http_request.send(null);}function isFullNameAvailable() {	msgNameNotAvailable = msgFullNameNotAvailable;	elemSetInnerHTML("validationerror", "&nbsp;");	elemSetInnerHTML("validationerrortop", "&nbsp;");	elemSetInnerHTML("validationerrorbottom", "&nbsp;");	var lastName = document.forms[0].LastName.value;	var middleName = "";	if (document.forms[0].MiddleName) middleName = document.forms[0].MiddleName.value;	var firstName = document.forms[0].FirstName.value;		setHTTPRequest();     sURL = sAvailibilityAgent + "&kind=fullname&lastname=" + encodeURI(lastName) + "&firstname=" + encodeURI(firstName) + "&middlename=" + encodeURI(middleName);       http_request.onreadystatechange = nameAvailableChecker;     http_request.open('GET', sURL, true);     http_request.send(null);}function nameAvailableChecker() {	if (http_request.readyState == 4) {     	if (http_request.status == 200) {         		var xmldoc = http_request.responseXML;			var root_node = xmldoc.getElementsByTagName('root').item(0);			var strIsAvailable = root_node.firstChild.data;					if (strIsAvailable == "false") {							window.status = "false";				elemSetInnerHTML("validationerror", msgNameNotAvailable);				elemSetInnerHTML("validationerrortop", msgNameNotAvailable);				elemSetInnerHTML("validationerrorbottom", msgNameNotAvailable);			}			else {				elemSetInnerHTML("validationerror", "&nbsp;");				elemSetInnerHTML("validationerrortop", "&nbsp;");				elemSetInnerHTML("validationerrorbottom", "&nbsp;");			}           }           		else {          	//alert('!200');           }	}	else {        	//alert('!4');     }}//Form Generatorfunction submitFormGeneratorForm() {	if (!isValidationOK()) {		if (document.getElementById("validationerror")) document.getElementById("validationerror").innerHTML = msgValidationFailure;		if (document.getElementById("validationerrortop")) document.getElementById("validationerrortop").innerHTML = msgValidationFailure;		if (document.getElementById("validationerrorbottom")) document.getElementById("validationerrorbottom").innerHTML = msgValidationFailure;	}	else {		if (document.getElementById("actionstop")) document.getElementById("actionstop").style.visibility = "hidden";		if (document.getElementById("actionsbottom")) document.getElementById("actionsbottom").style.visibility = "hidden";		writeFieldsToNotes();		document.forms[0].submit();	}}function submitFormGeneratorExtendedForm() {	if (!isValidationOK()) {		if (document.getElementById("validationerror")) document.getElementById("validationerror").innerHTML = msgValidationFailure;		if (document.getElementById("validationerrortop")) document.getElementById("validationerrortop").innerHTML = msgValidationFailure;		if (document.getElementById("validationerrorbottom")) document.getElementById("validationerrorbottom").innerHTML = msgValidationFailure;	}	else {		if (document.getElementById("actionstop")) document.getElementById("actionstop").style.visibility = "hidden";		if (document.getElementById("actionsbottom")) document.getElementById("actionsbottom").style.visibility = "hidden";		setExtendedFields();		writeFieldsToNotes();		document.forms[0].submit();	}}function writeFieldsToNotes() {	var txt = "";	var i = 0;	var fieldType;	for(k = 1; k <= 50; k++) {		txt="";		if (document.forms[0].elements["field" + k]) {			var field = document.forms[0].elements["field" + k];			if (!field.type) fieldType = field[0].type;							else fieldType = field.type;						switch (fieldType) {				case	'checkbox':					i = 0;					if (field[i]) {						while (field[i]) {							if (field[i].checked) {								txt = txt + field[i].value + ";";							}							i++;						}					}					else if (field) {						if (field.checked) {							txt = txt + field.value + ";";						}					}					break;				case 'radio':					i = 0;					if (field[i]) {						while (field[i]) {							if (field[i].checked) {								txt = field[i].value;														}							i++ 						} 					}					else if (field) {						if (field.checked) {							txt = txt + field.value + ";";						}					}					break;				case 'select-one':					txt = field.value;					break;				case 'select-multiple':					i = 0;									while (field.options[i]) {						if (field.options[i].selected) {							txt = txt + field.options[i].value + ";";												}						i++ 					} 										break;				case 'textarea':					txt = field.value;					txt = txt.replace(/\n/g, '##CR##');					//txt = txt.replace(/</g, '&lt;');					//txt = txt.replace(/>/g, '&gt;');					break;				case 'text':					txt = field.value;										break;				default:					txt = field.value;				}				}		else if (document.getElementById("field" + k)) {			var costTbl = document.getElementById("field" + k);			if (costTbl.nodeName.toLowerCase() == "table") {				var inpFields = document.getElementsByName("costAmount" + k);				if (inpFields.length == 0) inpFields = document.getElementsByName("costAmount" + k + "[]");								var values = new Array();				for (var n = 0; n < inpFields.length; n++) {					if (inpFields[n].value != "" && isNumeric(inpFields[n].value, profileThousandsSep, false, profileDecimalSep)) {						values[n] = inpFields[n].value;					}					else values[n] = "0";				}				txt = values.join(";");			}		}				document.forms[0].elements["fieldvalue" + k].value = txt;					}}function doSubmit() {	document.forms[0].submit();}function doSubmitAndArchive() {	document.forms[0].Status.value = "1";	document.forms[0].submit();}function archiveFormDocument(ref, unid) {	var ix = document.URL.indexOf(".nsf");	var url = document.URL.substring(0, ix + 5) + "ArchiveDeleteDocument?OpenAgent&action=archive&ref=" + ref + "&unid=" + unid;	openWaitWindow();	if (ref == "document") document.location.href = url;	else openAgentWin(url);}function deleteFormDocument(ref, unid) {	var ix = document.URL.indexOf(".nsf");	var url = document.URL.substring(0, ix + 5) + "ArchiveDeleteDocument?OpenAgent&action=delete&ref=" + ref + "&unid=" + unid;	openWaitWindow();	if (ref == "document") document.location.href = url;	else openAgentWin(url);}function copyFormDefinition(unid) {	var ix = document.URL.indexOf(".nsf");	var url = document.URL.substring(0, ix + 5) + "CopyFormDefinition?OpenAgent&unid=" + unid;		openWaitWindow();	gotoUrlNewWinSizeCenteredScrollable(url, 690, 675)	}function deleteFormDefinition(unid) {	var ix = document.URL.indexOf(".nsf");	var url = document.URL.substring(0, ix + 5) + "ArchiveDeleteDocument?OpenAgent&action=delete&ref=view&unid=" + unid;		openWaitWindow();	openAgentWin(url);}function changePaidOrder(ref, unid, value) {	var ix = document.URL.indexOf(".nsf");	var url = document.URL.substring(0, ix + 5) + "ArchiveDeleteDocument?OpenAgent&action=paid&ref=" + ref + "&unid=" + unid + "&value=" + value;	openWaitWindow();	if (ref == "document") document.location.href = url;	else openAgentWin(url);}
