$(document).ready(function(){
	
	
	var $pageid = $("#info_pageid").val();
	var $pageurl = $("#info_pageaddress").val();
	var $pagetitle = $("#info_pagetitle").val();
	
	// generic code - used over and over	
	
	var readField = function(class_names) {
		
		var thisfield = {
		  required: false,
		  email: false
		};
		
		for (var i=0; i < class_names.length; i++) {
			if (class_names[i].indexOf('required') == 0) {
				thisfield.required = true;
			}
			if (class_names[i].indexOf('email') == 0) {
				thisfield.email = true;
			}
		};
		return thisfield;
   	};						
	
	function scanInputs(obj) {

		var fieldprops = readField($(obj).attr('class').split(' ')); 
		
		var fielddef = $(obj).attr('placeholder');  // get the default value on load
		$(obj).val(fielddef);  // set the loading value as the placeholder - if not html5
		
		$(obj).click(function(){
			var fieldval = $(obj).val();
			if(fieldval == fielddef) {
				$(obj).attr("value","");	
			}
		}),
		
		$(obj).focusin(function(){
			var fieldval = $(obj).val();
			if(fieldval == fielddef) {
				$(obj).attr("value","");	
			}
		}),
		
		$(obj).focusout(function(){
			var fieldval = $(obj).val();
			if(fieldval == "") {
				$(obj).attr("value",fielddef);	
			}
		}),
		
		$(obj).keydown(function(){
			var fieldval = $(obj).val();	
			if(fieldprops.email) { 
				$(obj).removeClass('error');
			} else {
				if(fieldval == "") {
					$(obj).removeClass('error');
				}
			}
		});
		
	};
	
	function validateInputs(obj) {
		var haserror = false;
		var fieldval = $(obj).val();
		var fielddef = $(obj).attr('placeholder');
		var fieldprops = readField($(obj).attr('class').split(' '));   
		
		if (fieldprops.required) {
			if(fieldval == fielddef) {
				$(obj).addClass('error');
				haserror = true;
			}

			if(fieldprops.email) {
				if(!isValidEmail(fieldval)) {
					$(obj).addClass('error');
					haserror = true;
				} else {
					$(obj).removeClass('error');
				}
			}
		} 
		
		return haserror;
	}
	
	$allinputs = $("html :input");
	
	$allinputs.each(function() {
		scanInputs(this);					  
	});	

	function isValidEmail(str) {
   		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	}
	
	// customised code.... specific per projects
	
	var $footerinputs = $('#footerform :input');
	$("#footersubmit").click(function(){
		var formerror = false;
	
		var $name = $("#name").val();
		var $email = $("#email").val();
		var $phone = $("#phone").val();
		var $comments = $("#comments").val();
		var $subscribe = $("input[name='subscribe']:checked").val();
		if($phone == "Your Phone Number") $phone = "";  // reset to nothing
		
		$footerinputs.each(function() {	
		    var fielderror = validateInputs(this);		
			if(fielderror) formerror = true;			 	
		});
		
			
		//alert($name+" "+$email+" "+$phone+" "+$comments+" "+$subscribe);
		if(formerror == false) {
			$.ajax({
				type: "POST",
				dataType : 'json',
				url: "widgets/footer_email.php",
				data: ({pageid:$pageid, pagetitle:$pagetitle,pageurl:$pageurl,name:$name,email:$email,phone:$phone,comments:$comments,subscribe:$subscribe}),
				success: function(data){
					if(data.error){
					} else {
						//alert("email sent");
						$("#contact_form").slideUp('fast');
						$("#formoutput").css('margin-top','50px');
						$("#formoutput").html('<h2>Thanks. Your email has been recieved. We will get back to you as soon as we can!</h2>');
					}
					
				}
			});  // ajax block

		}
	});	
	
	var $nlinputs = $('#nl_form :input');
	$("#nl_submit").click(function(){
		
		var formerror = false;
		
		$nlinputs.each(function() {	
		    var fielderror = validateInputs(this);		
			if(fielderror) formerror = true;			 	
		});
		
		if(formerror == false) {
			var $name = $("#nl_name").val();
			var $email = $("#nl_email").val();

			$.ajax({
				type: "POST",
				dataType : 'json',
				url: "widgets/newsletter_signup.php",
				data: ({name:$name,email:$email,subscribe:'true'}),
				success: function(data){
					if(data.error){
					} else {
						//alert("email sent");
						$("#nl_form").slideUp('fast');
						$("#formoutput").css('margin-top','5px');
						$("#formoutput").html('<h2>Thanks, we will be in touch.</h2>');
					}
					
				}
			});  // ajax block

		}
	});	
	
	var $messageinputs = $('#message :input');
	$("#messagesubmit").click(function(){
		var formerror = false;
	
		var $name = $("#message_name").val();
		var $email = $("#message_email").val();
		var $phone = $("#message_phone").val();
		var $comments = $("#message_comments").val();
		var $staffid = $("#message").attr('rev');
		if($phone == "Your Phone Number") $phone = "";  // reset to nothing
		
		$messageinputs.each(function() {	
		   var fielderror = validateInputs(this);		
		   if(fielderror) formerror = true;			 	
		});
		
		//alert($name+" "+$email+" "+$phone+" "+$comments+" "+$staffid);
		
		if(formerror == false) {
			$.ajax({
				type: "POST",
				dataType : 'json',
				url: "../widgets/staff_email.php",
				data: ({staffid:$staffid,name:$name,email:$email,phone:$phone,message:$comments}),
				success: function(data){
					if(data.error){
					} else {
						$("#message").html('<h2>Thanks. Your email has been recieved. We will get back to you as soon as we can!</h2>');
					}
					
				}
			});  // ajax block

		}
		
	});	
	
});   <!-- /document ready --->
