$(function(){
	$(".captcha").hide();
	$("#jsEnabled").val("1");
	$("#jsError").remove();
});

var theForm;
var theFormID;
var prefix;
var required;

// Define error messages and split the required fields
var errExists;
var errorID		= 'errormsg';
var errorClass	= 'error'
var errorMsg	= 'Please fix the required fields indicated ';
var errorSrc	= 'http://users.mediastove.com/icns/alert.gif';
var errorAlt	= 'Error';
var errorTitle	= 'This field has an error!';

// create image, add to and colourise the error fields
var errorIndicator = '<img alt="'+errorAlt+'" src="'+errorSrc+'" title="'+errorTitle+'" class="errorIndicator"/>';

function checkform(theForm){
// Test if DOM is available and there is an element called required
	if(!document.getElementById || !document.createTextNode){return;}

	theFormID	= $(theForm).attr("id");
	prefix		= theFormID.split("_")[1] != "" ? "_"+theFormID.split("_")[1] : "";
	required	= $("#"+theFormID+" #required").val();
	errExists	= false;
	
	if(required!=""){
		// Cleanup old mess
		// if there is an old errormessage field, delete it
		$("#"+errorID).remove();
		$(".errorIndicator").remove();
		$("."+errorClass).removeClass(errorClass);

		// loop over required fields
		var reqfields = required.split(',');
		for(var i=0;i<reqfields.length;i++){
			// check if required field is there
			var f = eval("theForm."+reqfields[i]);
			if(!f){continue;}
			// test if the required field has an error,
			// according to its type
			if(typeof f.type != "undefined"){
				switch(f.type.toLowerCase())
				{
					case 'text':
					case 'password':
						if(f.value=='' && f.id!='email'){cf_adderr(f)}
						// email is a special field and needs checking
						if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f)}
					break;
					case 'textarea':
						if(f.value==''){cf_adderr(f)}
					break;
					case 'checkbox':
						if(!f.checked){cf_adderr(f)}
					break;
					case 'select-one':
						if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f)}
					break;
				}
			}else{
				// radio does not return type (i think even checkbox does the same) - so let's use jQuery for them
				var theField = $("input[@name="+reqfields[i]+"]");
				var theFieldVal = $("input[@name="+reqfields[i]+"][@checked]").val();
				if(typeof theFieldVal == "undefined" || theFieldVal == ""){
					$(theField[0]).before(errorIndicator);
					errExists = true;
				}
			}
		}
	}
	if(!errExists){
		sendContactForm(prefix);
	}else{
		$("#"+theFormID)
			.after('<div id="'+errorID+'"><p>'+errorMsg+' '+errorIndicator+'</p></div>');
	}
	return false;
}
function cf_adderr(o){
	$(o)
		.addClass(errorClass)
		.before(errorIndicator);
	errExists = true;
}
function cf_isEmailAddr(str){
	return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}
function sendContactForm(prefix){
	var formData = $("#myForm"+prefix).fastSerialize();
	formData.push({name: "btnSend", value: "Send"});
	var parts = document.URL.split("/");
	if(typeof $("#pageMenu")[0] == "undefined"){
		var pageMenu = parts[3]=="http:" ? parts[6] : parts[3];
		formData.push({name: "pageMenu", value: pageMenu});
	}
	if(typeof $("#p")[0] == "undefined"){
		var p = parts[3]=="http:" ? parts[7] : parts[4];
		formData.push({name: "p", value: p});
	}
	formData.push({name: "isAjax", value: 1});
	$("#btnSend"+prefix)
		.attr("disabled","disabled")
		.before('<img src="/jscripts/images/indicator.gif" class="inidcator" />')
	$.post(
		"/index.php",
		formData,
		function(txt){
			if(txt!="ERROR"){
				$('#form_holder'+prefix).html(txt);
				$('#form_holder'+prefix).show();
				var name_value = $('#name_value').html();
				if(name_value!=""){
					$('#form_holder'+prefix).hide();
					var amount_value = $('#amount_value').html();
					var evTitle_value = $('#evTitle_value').html().replace(/\\'/,"'");
					var paypal_holder = $('#paypal_holder').html();
					paypal_holder = paypal_holder.replace(/\[name\]/,name_value);
					$('#paypal_holder').html(paypal_holder);
					$('#item_name').val(evTitle_value);
					$('#amount').val(amount_value);
					$('#paypal_holder').show();
				}
				$('#form_container'+prefix).hide();
			}else{
				$('#reqOptions').background('#FFCCCC');
				if($('#errormsg')==null){
					$("#myForm"+prefix).after('<div id="errormsg"></div>');
				}
				$('#errormsg').html('Please choose an option.');
			}
			$("#btnSend"+prefix).attr("disabled","");
			$(".inidcator").remove();
			txt = null;
		}
	)
	return false;
}