xoad.html = {};

xoad.html.onCallCompleted = function(response) {

	if (typeof(response.html) == 'string') {

		if (response.html.length > 0) {

			try {

				eval(response.html);

			} catch (e) {};
		}
	}
return true;
};

xoad.html.alert = function(txt){
	alert(txt);
}

xoad.html.exportForm = function(id) {

	var form = document.getElementById(id);

	if (form == null) {

		return null;
	}

	if (typeof(form.elements) == 'undefined') {

		return null;
	}

	var formData = {};

	for (var iterator = 0; iterator < form.elements.length; iterator ++) {

		var element = form.elements[iterator];

		if (element.disabled) {

			continue;
		}

		var elementType = element.tagName.toLowerCase();

		var elementName = null;
		var elementValue = null;

		if (
		(typeof(element.name) != 'undefined') &&
		(element.name.length > 0)) {

			elementName = element.name;

		} else if (
		(typeof(element.id) != 'undefined') &&
		(element.id.length > 0)) {

			elementName = element.id;
		}

		if (elementName != null) {

			if (elementType == 'input') {

				if (
				(element.type == 'text') ||
				(element.type == 'password') ||
				(element.type == 'button') ||
				(element.type == 'submit') ||
				(element.type == 'hidden')) {

					elementValue = element.value;

				} else if (element.type == 'checkbox') {

					elementValue = element.checked;

				} else if (element.type == 'radio') {

					if (element.checked) {

						elementValue = element.value;

					} else {

						try {

							var type = eval('typeof(formData.' + elementName + ')');

							if (type != 'undefined') {

								continue;
							}

						} catch (e) {

							continue;
						}
					}
				}

			} else if (elementType == 'select') {

				if (element.options.length > 0) {

					if (element.multiple) {

						elementName = elementName.replace(/\[\]$/ig, '');

						elementValue = [];

						for (var optionsIterator = 0; optionsIterator < element.options.length; optionsIterator ++) {

							if (element.options[optionsIterator].selected) {

								elementValue.push(element.options[optionsIterator].value);
							}
						}

					} else {

						if (element.selectedIndex >= 0) {

							elementValue = element.options[element.selectedIndex].value;
						}
					}
				}

			} else if (elementType == 'textarea') {

				elementValue = element.value;
			}

			try {

				eval('formData.' + elementName + ' = elementValue;');

			} catch (e) {}
		}
	}

	return formData;
};

/* this is only a single level */

xoad.html.exportArray = function (arData){


	if (arData == null) {

		return null;
	}

	if (typeof(arData) == 'undefined') {

		return null;
	}


	var oData = {};

	for (el in arData) {

		eval('oData.' + el + ' = ' + el.value + ';');

	}

	return oData;


return arData;
}

xoad.html.importForm = function(id, formData) {

	var form = document.getElementById(id);

	if (
	(formData == null) ||
	(form == null)) {

		return false;
	}

	if (typeof(form.elements) == 'undefined') {

		return false;
	}

	for (var iterator = 0; iterator < form.elements.length; iterator ++) {

		var element = form.elements[iterator];

		if (element.disabled) {

			continue;
		}

		var elementType = element.tagName.toLowerCase();

		var elementName = null;

		if (
		(typeof(element.name) != 'undefined') &&
		(element.name.length > 0)) {

			elementName = element.name;

		} else if (
		(typeof(element.id) != 'undefined') &&
		(element.id.length > 0)) {

			elementName = element.id;
		}

		if (elementName != null) {

			if (elementType == 'select') {

				if (element.multiple) {

					elementName = elementName.replace(/\[\]$/ig, '');
				}
			}

			var elementValue = null;

			try {

				var valueType = eval('typeof(formData.' + elementName + ')');

				if (valueType != 'undefined') {

					elementValue = eval('formData.' + elementName);

				} else {

					continue;
				}

			} catch (e) {

				continue;
			}

			if (elementType == 'input') {

				if (
				(element.type == 'text') ||
				(element.type == 'password') ||
				(element.type == 'button') ||
				(element.type == 'submit') ||
				(element.type == 'hidden')) {

					element.value = elementValue;

				} else if (element.type == 'checkbox') {

					element.checked = elementValue;

				} else if (element.type == 'radio') {

					if (element.value == elementValue) {

						element.checked = true;

					} else {

						element.checked = false;
					}
				}

			} else if (elementType == 'select') {

				if (element.options.length > 0) {

					if (element.multiple) {

						element.selectedIndex = -1;

					} else {

						elementValue = [elementValue];

						element.selectedIndex = 0;
					}

					for (var valuesIterator = 0; valuesIterator < elementValue.length; valuesIterator ++) {

						for (var optionsIterator = 0; optionsIterator < element.options.length; optionsIterator ++) {

							if (element.options[optionsIterator].value == elementValue[valuesIterator]) {

								element.options[optionsIterator].selected = true;
							}
						}
					}
				}

			} else if (elementType == 'textarea') {

				element.value = elementValue;
			}
		}
	}

	return true;
};

/*
	@selData This element needs to be in the following format

	selData[n][text] = string
	selData[n][value] = string
*/
xoad.html.populateSelect = function (formName, elId, selData, selValue){


	var form = document.getElementById(formName);

	var el 	=  document.getElementById(elId);
	var oData = selData;

	if (
	(formName == null) ||
	(elId == null)) {

		//alert('NULL values');
		//return true;
	}

	if (typeof(el) == 'undefined') {

		alert('undefined el');

		return true;
	}


	if(oData.arSel){


	}else{
//		alert('no record set');
		el.length = 1;
		el.options[0].text 	= "-";
		el.options[0].value 	= "";

		return true;
	}


	el.length = oData.arSel.length;



	for (var iterator = 0; iterator < oData.arSel.length; iterator++) {


		var sel = oData.arSel[iterator];

//		alert("->"+sel.text);

		/* If you use "new Option" it is possible that not all browsers will except */
		el.options[iterator].text 		= sel.text;
		el.options[iterator].value 	= sel.value;

		if(selValue != '' && selValue != null & selValue == sel.value){
			el.selectedIndex = iterator;
		}


	}

	return true;
}

xoad.addObserver(xoad.html);
