/*******************************************************************************
	
	JavaScript file
	Visparts
	
	(c) Copyright Visual Group Limited. All rights reserved.
	http://www.visualgroup.co.nz
	Author(s): Nathan Kennedy
	
*******************************************************************************/

function createRequestObject(){
	var request_o;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer") {
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		request_o = new XMLHttpRequest();
	}
	return request_o;
}

function handleContact(){
	if(httpContact.readyState == 4){
		var result = httpContact.responseText;
		if(result.substr(0,2) == 'OK') {
			document.getElementById('contact_name').value = '';
			document.getElementById('contact_company_name').value = '';
			document.getElementById('contact_email').value = '';
			document.getElementById('contact_phone').value = '';
			document.getElementById('contact_request').value = '';
		}
		alert(result.substr(3));
		contactSubmitClick = 0;
		imageShift(document.getElementById('contact_submit_button'),'0px');
	}
}

function imageShift(element,position) {
	if(contactSubmitClick == 0) {
		element.style.top = position;
	}
}

function serializeForm(form) {
	if(typeof form == 'string') {
		form = (document.getElementById(form) || document.forms[form]);
	}
	var el, name, val, disabled, data = '', hasSubmit = false;
	for (var i = 0; i < form.elements.length; i++) {
		el = form.elements[i];
		disabled = form.elements[i].disabled;
		name = form.elements[i].name;
		val = form.elements[i].value;
		if(!disabled && name) {
			switch (el.type) {
				case 'select-one':
				case 'select-multiple':
					for(var j = 0; j < el.options.length; j++) {
						if(el.options[j].selected) {
							var browser = navigator.appName;
							if(browser == "Microsoft Internet Explorer") {
								data += encodeURIComponent(name) + '=' + encodeURIComponent(el.options[j].attributes['value'].specified ? el.options[j].value : el.options[j].text) + '&';
							}
							else {
								data += encodeURIComponent(name) + '=' + encodeURIComponent(el.options[j].hasAttribute('value') ? el.options[j].value : el.options[j].text) + '&';
							}
						}
					}
					break;
				case 'radio':
				case 'checkbox':
					if(el.checked) {
						data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
					}
					break;
				case 'file':
				case undefined:
				case 'reset':
				case 'button':
					break;
				case 'submit':
					if(hasSubmit == false) {
						data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
						hasSubmit = true;
					}
					break;
				default:
					data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
					break;
			}
		}
	}
	data = data.substr(0, data.length - 1);
	return data;
}

function submitForm(element,position,form_id) {
	imageShift(element,position);
	if(contactSubmitClick == 0) {
		contactSubmitClick = 1;
		var date = new Date();
		httpContact.open('get', '/contact.php?'+serializeForm(form_id)+'&'+date.getTime());
		httpContact.onreadystatechange = handleContact;
		httpContact.send(null);
	}
}

var contactSubmitClick = 0;
var httpContact = createRequestObject();