var _form = false;
var _errors = [];
var _requiredFields = [];

var forms = {
	'contactForm':{
		'submit-button-id':'submit-info',
		'url':'_contact.php',
		'security-code-id': 'security-code',
		'security-code-value': 'burger',
		'requiredFields':{'fname':true,'lname':true,'email':true,'comments':true}
		},
	'jobsForm':{
		'submit-button-id':'submit-info',
		'url':'_jobs.php',
		'security-code-id': 'security-code',
		'security-code-value': 'burger',
		'requiredFields':{'fname':true,'lname':true,'email':true,'phone':true,'position':true,'hours':true,'location':true,'time':true}
		},
	'franchisingForm':{
		'submit-button-id':'submit-info',
		'url':'_franchising.php',
		'security-code-id': 'security-code',
		'security-code-value': 'burger',
		'requiredFields':{'fname':true,'lname':true,'address':true,'city':true,'state':true,'zip':true,'bphone':true,'aphone':true,'email':true,'how-hear':true,'territory':true,'utits':true,'experience':true,'owned-business':true,'owned-franchise':true,'security-code':true}
		}
};

function initContactForm()
{
	for(id in forms)
	{
		var _form = $(id);
		if(_form)
		{
			var _button = $(forms[id]['submit-button-id']);
			if(_button)
			{
				_button._formid = id;
				_button.addEvent('click', function(e)
				{
					var _button = $(forms[this._formid]['submit-button-id']);
					var _form = $(this._formid);

					$('ajax-info').setStyles({'display':'none'});

					new Event(e).stop();
					
					if(_button._disabled)
					{
						return false;
					}		
					_requiredFields = forms[this._formid]['requiredFields'];
					_errors = [];
					var params = "act=post" + getParams(_form);
					if (_errors.length > 0)
					{
						alert('Please fill required fields');
					}
					else
					{
						var _scode = $(forms[this._formid]['security-code-id']);
						var _scode_error = false;
						
						if(_scode && _scode.value != forms[this._formid]['security-code-value'])
						{
							_scode_error = true;
						}
						if(_scode_error)
						{
							alert('Invalid Secure Code');							
						}
						else
						{
							getHttpRequest(forms[_button._formid]['url'],params,this._formid);
							$('ajax-info').setStyles({'display':'block'});
							$('ajax-info').innerHTML = "Submitting. Please wait...";
						}
					}
					return false;
				});
			}			
		}
	}
}

function getParams(el)
{
	var params = "";
	if(el)
	{
		var _inputs = el.getElementsByTagName('input');
		for(var i = 0; i < _inputs.length; i++)
		{
			if(_inputs[i].type == 'text' && _inputs[i].name && _inputs[i].name.length > 0)
			{
				params += "&" + _inputs[i].name + "=" + _inputs[i].value;
				if(_requiredFields[_inputs[i].name] && _inputs[i].value.length == 0)
				{
					_errors[_errors.length] = _inputs[i].name;
				}
			}
		}
		var _selects = el.getElementsByTagName('select');
		for(var i = 0; i < _selects.length; i++)
		{
			if(_selects[i].name && _selects[i].name.length > 0)
			{
				params += "&" + _selects[i].name + "=" + _selects[i].options[_selects[i].selectedIndex].innerHTML;
				if(_requiredFields[_selects[i].name] && _selects[i].options[_selects[i].selectedIndex].innerHTML.length == 0)
				{
					_errors[_errors.length] = _selects[i].name;
				}
			}
		}
		var _textareas = el.getElementsByTagName('textarea');
		for(var i = 0; i < _textareas.length; i++)
		{
			if(_textareas[i].name && _textareas[i].name.length > 0)
			{
				params += "&" + _textareas[i].name + "=" + _textareas[i].value;
				if(_requiredFields[_textareas[i].name] && _textareas[i].value.length == 0)
				{
					_errors[_errors.length] = _textareas[i].name;
				}
			}
		}
	}	
	return params;
}

function getHttpRequest(url, params, form_id)
{
	var httpRequest = false;
	if (window.XMLHttpRequest) 
	{
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) 
		{
			httpRequest.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject) 
	{
		try 
		{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			try
			{
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) 
			{
			}
		}
	}

	if (!httpRequest)
	{
		alert('Unfortunatelly you browser doesn\'t support this feature.');
		return false;
	}

	httpRequest.onreadystatechange = function()
	{
		if (httpRequest.readyState == 4)
		{
			if (httpRequest.status == 200 || httpRequest.status == 0)
			{
				if(httpRequest.responseText == "<answer>ok</answer>")
				{
					$('ajax-info').innerHTML = "Your information has been submitted. Thank you!";
				}
				$(forms[form_id]['submit-button-id'])._disabled = false;
			}
			else
			{
				alert('There was a problem with the request.(Code: ' + httpRequest.status + ')');
			}
		}
	}

	if(params == undefined || params == null)
	{
		httpRequest.open('GET', url, true);
		httpRequest.send(null);
	}
	else
	{
		httpRequest.open('POST', url, true);
		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-length", params.length);		
		httpRequest.setRequestHeader("Connection", "close");
		httpRequest.send(params);
	}
}

if (window.addEventListener)
	window.addEventListener("load", initContactForm, false);
else if (window.attachEvent && !window.opera)
	window.attachEvent("onload", initContactForm);
