var lastForm;
function handleTextData(data) {
	alert(data);
}
function handleXMLData(data) {
	if(data.tagName == undefined) {
		alert("Invalid XML Data was passed");
		return false;
	}
	var messageOutput = "";
	switch(data.getAttribute('type')) {
		case 'success': {
			clearForm();
			reloadCaptcha();
			break;
		}
		case 'error': {
			reloadCaptcha();
			messageOutput = "Error:\n";
			break;
		}
		default: {
			break;
		}
	}
	if( data.childNodes.length > 0 ) {
		for(var i=0;i<data.childNodes.length;i++) {
			messageOutput += data.childNodes[i].textContent + "\n";
		}
	}
	// display output
	alert(messageOutput);
}
function appendURLArgument(name,value,url) {
	if(url == undefined) {
		url = window.location;
	}
	
	var urlP = url.parseURL();
	var urlExp = new RegExp('([&\?]?)' + name + '=([^&]*)?', "g");
	var urlQuery = urlP['query'];
	var replacew = (urlQuery ? '&' : '?') + name + '=' + value;
	
	if(value == "") {
		replacew = "";
	}
	
	if(urlQuery.match(urlExp)) {
		urlQuery = urlQuery.replace(urlExp,replacew);
	}
	else {
		urlQuery += replacew;
	}
	
	urlP['query'] = urlQuery;
	
	var urlN = '';
	urlN += (urlP['scheme'] ? urlP['scheme'] + '://' : '' );
	urlN += (urlP['host'] ? (urlP['scheme'] ? urlP['host'] : '' ) : '' );
	urlN += (urlP['path'] ? urlP['path'] : '' );
	urlN += (urlP['query'] ? '?' + urlP['query'] : '' );
	urlN += (urlP['fragment'] ? '#' + urlP['fragment'] : '' );
	
	return urlN;
}
function clearForm() {
	if(lastForm == undefined) {
		return false;
	}
	
	var e = lastForm.elements;
	for(var i=0; i< e.length; i++) {
		switch(e[i].type) {
			case 'text':
			case 'textarea': {
				e[i].value = (e[i].getAttribute('default') != undefined ? e[i].getAttribute('default') : '');
				break;
			}
		}
	}
}
function reloadCaptcha() {
	var img = document.getElementById('captchaImg');
	var txt = document.getElementById('captchaField');
	if(img == undefined) {
		return false;
	}
	img.src   = appendURLArgument('uniqid',(new Date()).getTime(),img.src);
	txt.value = '';
	
}
function formSubmit(myForm) {

	lastForm = myForm;
	
	var handler = function() {
		if(this.readyState == 4 && this.status == 200) {
			if(this.responseXML != null) {
				handleXMLData(this.responseXML.documentElement);
			}
			else if(this.responseText != null) {
				handleTextData(this.responseText);
			}
			else {
				alert('No data was returned?');
			}
		}
	}
	
	return (sendFormData(myForm,'/contactForm.php',handler) == false);
}
