/*********************************
Javascript Document for Kenny BrandMuse
©2008 cisforculture. All rights reserved. Forget it, we'd sue!!!
Scope: Consumer X-Files page

************
META-DATA
************
@ date created :: 20 Apr 2008
@ last modified :: 20 Apr 2008
@ description :: Contains client-side logic for the X-file page :)
*/
$(document).ready(function(){
						   
	//XMLHttpRequest Object
	var xhr = null;

	//Hide subscription holder div
	$("div.subscription-holder").hide();
	
	//Temporarily holder contents for the subscripton holder div
	var initHTML = $("div.subscription-holder").html();
	
	//Binds the action to the button
	function bindButton(){
	$("#subscribe").click(function(){
							if(jQuery.trim($("#emailAddress").val())){
								submitForm();
								$("div.subscription-holder").slideUp("slow",function(){$(this).html("<p><img src='/assets/images/icons/busy.gif' class='imgLeft' /> Please wait...</p>").slideDown()});
							}else{
								alert("Please enter a valid email address");
																}
						})
	}
	
	//activate the button
	$("a#subscribe-link").toggle(function(){
									$("div.subscription-holder").slideDown();
								},
								function (){
									$("div.subscription-holder").slideUp();
								});

		
	function submitForm(){
			
			var values = $("input#emailAddress").serialize();
			
			//Instantiate new XMLHttpRequest Object
			xhr = new XMLHttpRequest();
			xhr.open("POST","/extensions/subscribe.php?cb="+Math.random(),true);
			xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			
			if(xhr.overrideMimeType)
				xhr.setRequestHeader("Connection","close");
				
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4){
					var obj = eval("("+xhr.responseText+")");
					onSubmitResult(obj);
					
					//Avoid memory leaks
					xhr = null;
				}
				
			}
			xhr.send(values);
		}
		
		function onSubmitResult(obj){
		
			$(window).focus();

			if(obj.status == "true")
				$("div.subscription-holder").html("<p>"+obj.message+"</p>");
			else
				displayError(obj.message);
			
			//configure click handler
			bindButton();
		}
		
		
		function displayError(msg){
			
			$("div.subscription-holder").html(initHTML).append("<p class='alert' style='color:#ff0000'>"+msg+"</p>");
		}
		
		//configure click handler
		bindButton();


});