$(document).ready(function () {

	// parse query string
	function gup( name )
	{
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( window.location.href );
	  if( results == null )
	    return "";
	  else
	    return results[1];
	}
	
	function signUpConfirm(){
		/* handle salesforce return url */
		var signupConfirm = gup( 'signup' );
		if (signupConfirm === 'success'){
			$("#emailSignUp").css('display', 'none');
			$("#signup").css('display', 'block');		
			$('#successmsg').show(closeSignUp(2000));
		}
	}

	function CheckPrompts(){
		$('#signup input[type=text]').each(function(){
			$(this).blur();
		});	
	}

	function createForm(){
		if ($('#signup').length != 0){
			var url = window.location.href;
			$('#optin-button').replaceWith('<button type="submit" value="submit" name="btn-Submit" class="submit-button">Subscribe</button>');
			$('#form-errors').after(' <!-- SF: ID -->\
									  <input type="hidden" name="oid" value="00D300000000ZF4" />\
									  <input type="hidden" name="retURL" value=\"' + url + '?signup=success\" />');
			
		} else {return false;}
	}
	
	function doReset(){
		$('#successmsg').css('display', 'none');
		signUpValidator.resetForm();
		CheckPrompts();
	}

	function openSignUp(){
		$("#emailSignUp").css('display', 'block', doReset); 
		$("#signup").slideDown('fast');
	};
	
	function closeSignUp(delay){ 
		setTimeout(function(){ 
			$("#signup").slideUp(doReset);
		}, delay );
	};

	function showResponse(){
		$("#emailSignUp").fadeOut('slow', function(){
			$('#successmsg').show(closeSignUp(2000));
		}); 	
	}


	//form is disabled for bots, so we add key pieces here
	createForm()
	
	//check if we're returning from successful form submit
	signUpConfirm();

	/* create input prompts in the email signup, and hide labels offscreen */	
	$('#signup input[type=text]').each(function(){
		var label = $(this).prev();
		$(this).form_prompt(function() {
	 		return label.html();
		});
		label.css({"position" : "absolute", "left" : "-9999px"});
	});

	$.validator.addMethod("equalToParam", function(value, element, param) {return value == param;});

	// newsletter signup validation
	var signUpValidator = $("#emailSignUp").validate({
		errorElement: "em",
		errorContainer: "#form-errors",
		onfocusout: false,
	   	rules: {
	     	first_name: "required",
	     	last_name: "required",
	     	company: "required",
	     	country: "required",
	     	email: {
	       		required: true,
	       		email: true
			}
	   	},
	   	messages: {
	     	first_name: " **",
	     	last_name: " **",
	     	company: " **",
	     	country: " **",
	     	email: {
	       		required: " **",
	       		email: " **"
	     	}
	   	}//,
      	//submitHandler: function(form) {
        //	var options = {
        //    	success: showResponse 
        //    };   
        //    $(form).ajaxSubmit(options);   
      	//}
	});	
	
	$('#enews-btn').click(function(){
		if ( $("#emailSignUp").is(':visible')) {closeSignUp(100); return false;}
		else {openSignUp(); return false;}
	});

});
