// Submit form
function ew_SubmitForm(form_object) {
	if (typeof ew_UpdateTextArea == 'function')
		ew_UpdateTextArea();
	if (ew_ValidateForm(form_object))
		form_object.submit();
}
// Post new option
function ew_PostNewOption(id) {
	var elem;
	var url = EW_ADD_OPTION_FILE_NAME + "?";
	elem = document.getElementById("ltn_" + id);
	url += "ltn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("pfn_" + id);
	if (elem) url += "&pfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("pvn_" + id);
	if (elem) elem = document.getElementById(elem.value);
	if ((elem) && (elem.options) && (elem.selectedIndex != -1)) url += "&pf=" + encodeURIComponent(elem.options[elem.selectedIndex].value);
	elem = document.getElementById("pfq_" + id);
	if (elem) url += "&pfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfn_" + id);
	if (elem) url += "&dfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfq_" + id);
	if (elem) url += "&dfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfn_" + id);
	if (elem) url += "&lfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfq_" + id);
	if (elem) url += "&lfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2n_" + id);
	if (elem) url += "&df2n=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2q_" + id);
	if (elem) url += "&df2q=" + encodeURIComponent(elem.value);	

	var lf = document.getElementById("lf_" + id);
	var lfm = document.getElementById("lfm_" + id);
	if (lf) {
		if (ew_HasValue(lf)) {
			url += "&lf=" + encodeURIComponent(lf.value); 
		} else {
			if (!ew_OnError(lf, (lfm?lfm.value:"Missing link field value")))
				return false;		
		}
	}
	
	var df = document.getElementById("df_" + id);
	var dfm = document.getElementById("dfm_" + id);
	if (df) {
		if (ew_HasValue(df)) {
			url += "&df=" + encodeURIComponent(df.value); 
		} else {
			if (!ew_OnError(df, (dfm?dfm.value:"Missing display field value")))
				return false;
		}
	}
	
	var df2 = document.getElementById("df2_" + id);
	var df2m = document.getElementById("df2m_" + id);
	if (df2) {
		if (ew_HasValue(df2)) {
			url += "&df2=" + encodeURIComponent(df2.value); 
		} else {
			if (!ew_OnError(df2, (df2m?df2m.value:"Missing display field #2 value")))
				return false;
		}
	}
	
	try {			
		var xmlHttp = ew_CreateXMLHttp();
		if (!xmlHttp) return;		
		xmlHttp.open('get', url, true); // not Async
		xmlHttp.onreadystatechange = function() {
			//alert(xmlHttp.responseText);					
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200 &&
				xmlHttp.responseText) {				
				var opt = xmlHttp.responseText.split('\r');
				if (opt.length > 3 && opt[0]== 'OK') {
					var elem = document.getElementById(id);
					if (!elem) elem = document.getElementById(id + '[]');
					if (elem) {
						ew_NewOpt(elem, opt[1], opt[2], opt[3]);
						ew_HideAddOption(id);
						elem.options[elem.options.length-1].selected = true;
						if (elem.onchange) elem.onchange();
						elem.focus();
					}
				} else {
					alert(xmlHttp.responseText);
				}				
			}
		}		
		xmlHttp.send(null);
	}	catch (e) {}

}
// Functions for adding new option dynamically

// Show add option
function ew_ShowAddOption(id) {
	if (!document.getElementById) return;
	var elem;
	elem = document.getElementById("ao_" + id);
	if (elem) elem.style.display = "block"; 
	elem = document.getElementById("cb_" + id);
	if (elem)	elem.style.display = "none";	
}

// Hide add option
function ew_HideAddOption(id) {
	var elem;
	elem = document.getElementById("cb_" + id);
	if (elem)	elem.style.display = "inline"; 
	elem = document.getElementById("ao_" + id);
	if (elem) elem.style.display = "none"; 
}

// Post new option
function ew_PostNewOption(id) {
	var elem;
	var url = EW_ADD_OPTION_FILE_NAME + "?";
	elem = document.getElementById("ltn_" + id);
	url += "ltn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("pfn_" + id);
	if (elem) url += "&pfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("pvn_" + id);
	if (elem) elem = document.getElementById(elem.value);
	if ((elem) && (elem.options) && (elem.selectedIndex != -1)) url += "&pf=" + encodeURIComponent(elem.options[elem.selectedIndex].value);
	elem = document.getElementById("pfq_" + id);
	if (elem) url += "&pfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfn_" + id);
	if (elem) url += "&dfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfq_" + id);
	if (elem) url += "&dfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfn_" + id);
	if (elem) url += "&lfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfq_" + id);
	if (elem) url += "&lfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2n_" + id);
	if (elem) url += "&df2n=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2q_" + id);
	if (elem) url += "&df2q=" + encodeURIComponent(elem.value);	

	var lf = document.getElementById("lf_" + id);
	var lfm = document.getElementById("lfm_" + id);
	if (lf) {
		if (ew_HasValue(lf)) {
			url += "&lf=" + encodeURIComponent(lf.value); 
		} else {
			if (!ew_OnError(lf, (lfm?lfm.value:"Missing link field value")))
				return false;		
		}
	}
	
	var df = document.getElementById("df_" + id);
	var dfm = document.getElementById("dfm_" + id);
	if (df) {
		if (ew_HasValue(df)) {
			url += "&df=" + encodeURIComponent(df.value); 
		} else {
			if (!ew_OnError(df, (dfm?dfm.value:"Missing display field value")))
				return false;
		}
	}
	
	var df2 = document.getElementById("df2_" + id);
	var df2m = document.getElementById("df2m_" + id);
	if (df2) {
		if (ew_HasValue(df2)) {
			url += "&df2=" + encodeURIComponent(df2.value); 
		} else {
			if (!ew_OnError(df2, (df2m?df2m.value:"Missing display field #2 value")))
				return false;
		}
	}
	
	try {			
		var xmlHttp = ew_CreateXMLHttp();
		if (!xmlHttp) return;		
		xmlHttp.open('get', url, true); // not Async
		xmlHttp.onreadystatechange = function() {
			//alert(xmlHttp.responseText);					
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200 &&
				xmlHttp.responseText) {				
				var opt = xmlHttp.responseText.split('\r');
				if (opt.length > 3 && opt[0]== 'OK') {
					var elem = document.getElementById(id);
					if (!elem) elem = document.getElementById(id + '[]');
					if (elem) {
						ew_NewOpt(elem, opt[1], opt[2], opt[3]);
						ew_HideAddOption(id);
						elem.options[elem.options.length-1].selected = true;
						if (elem.onchange) elem.onchange();
						elem.focus();
					}
				} else {
					alert(xmlHttp.responseText);
				}				
			}
		}		
		xmlHttp.send(null);
	}	catch (e) {}

}

