
/************************************
 *                                  *
 *  Customers - AJAX / JS           *
 *  Part of the con|comm Framework  *
 *                                  *
 *  © 2007 Timo Besenreuther        *
 *         www.concomm.de           *
 *                                  *
 ************************************
 
 
*/



function ConcommCustomers() {
	
	/**
	 * array filled by inline js
	 * contains form fields to check
	 */
	
	this.fromFields = new Array();
	
	
	/**
	 * language
	 */
	
	this.msgs = new Array();
	
	
	/**
	 * concomm ajax object
	 */
	
	var ajax = new ConcommAjax('customers');
	
	
	/**
	 * check form and output error or success message
	 *
	 * @param	str		current action: edit / create
	 */
	
	this.checkForm = function (actionvar) {
		// disable submit
		document.getElementById('concomm_customer_submit').disabled = true;
		document.getElementById('concomm_customer_submit').value    = this.msgs.wait;
		
		// get and check form data
		var error  = new Array();
		var values = new Array();
		for (key in this.formFields) {
			var element = document.getElementById('concomm_customer_'+key);
			if (element.options) {
				// selectbox
				if (element.selectedIndex) {
					var val = element.options[element.selectedIndex].getAttribute('name');
				} else {
					var val = element.options[0].getAttribute('name');
				}
			} else {
				// input
				var val = element.value;
			}
			if (val == '') {
				if (!(actionvar == 'create' && key == 'cpw') && !(actionvar == 'edit' && (key == 'pw1' || key == 'pw2')))
					error.push(this.formFields[key]);
			} else if (key == 'pw1')  {
				values.push('pw<>'+val);
			} else if (key != 'pw2') {
				values.push(key+'<>'+val);
			}
		}
		
		var errorHTML = new Array();
		if (error.length > 0) {
			errorHTML.push('<b>'+this.msgs.empty+'</b><br />'+error.join(', ')+'.');
		}
		if (document.getElementById('concomm_customer_pw1').value != document.getElementById('concomm_customer_pw2').value) {
			errorHTML.push('<b>'+this.msgs.pwError+'</b>');
		}
		
		if (errorHTML.length > 0) {
			// output error
			displayError(errorHTML.join('<br /><br />'));
		} else {
			ajax.reset();
			// success, start ajax request
			ajax.addUrl = {
				'values': escape(values.join('< >')),
				'action': actionvar,
				'method': 'go'
			};
			
			// request & callback
			ajax.request(function(response) {
				if (response.done != 'done') {
					// error
					if (!response) {
						displayError(concommCustomers.msgs.error);
					} else if (typeof(response.error) != 'undefined') {
						displayError(concommCustomers.msgs[response.error]);
					} else {
						displayError(xmlHttp.responseText);
					}
				} else {
					// success
					displaySuccess(concommCustomers.msgs.success);
				}
			});
		}
	}
	
	
	/**
	 * display success message
	 *
	 * @param	str		message string
	 */
	
	function displaySuccess(msg) {
		document.getElementById('concomm_customer_error').style.display = 'none';
		document.getElementById('concomm_customer_success').innerHTML = msg;
		document.getElementById('concomm_customer_success').style.display = 'block';
		document.getElementById('concomm_customer_form').style.display = 'none';
	}
	
	
	/**
	 * display error message
	 *
	 * @param	str		message string
	 */
	
	function displayError(msg) {
		var bold = (msg.indexOf('<b>') == -1) ? true : false;
		document.getElementById('concomm_customer_success').style.display = 'none';
		document.getElementById('concomm_customer_error').innerHTML = (bold ? '<b>' : '')+msg+(bold ? '</b>' : '');
		document.getElementById('concomm_customer_error').style.display = 'block';
		document.getElementById('concomm_customer_submit').disabled = false;
		document.getElementById('concomm_customer_submit').value = concommCustomers.msgs.submit;
		
	}
	
}
