YAHOO.namespace("catena");

YAHOO.catena.share_active = false;
YAHOO.catena.y_email = true;
YAHOO.catena.f_email = true;

var show_share_form = function()
{

	if(YAHOO.catena.share_active)
	{
		reset_form();
		YAHOO.catena.share_form.hide();
		YAHOO.catena.share_active = false;
	}
	else
	{
		reset_form();
		YAHOO.catena.share_form.show();
		YAHOO.catena.share_active = true;
	}
}


var form_init = function()
{

	YAHOO.catena.share_form = new YAHOO.widget.Dialog("share_it",  {
		fixedcenter: true, 
		constraintoviewport: true, 
		underlay: "shadow", 
		close: false, 
		visible: false, 
		draggable: false,
		modal: true,
		hideaftersubmit: false,
		buttons: [
			//{ text:"Cancel", handler:this.handleCancel } , 
			//{text: "", handler: this.handleSubmit, isDefault: true}
			]
		}
	);


	// add keylisteners ESC cancels
	var kl = new YAHOO.util.KeyListener(document, { keys: 27 },
	{ fn: YAHOO.catena.share_form.hide,
		scope: YAHOO.catena.share_form,
		correctScope: true
	}, "keyup");
	// keyup is used here because Safari won't recognize the ESC
	// keydown event, which would normally be used by default

	YAHOO.catena.share_form.cfg.queueProperty("keylisteners", kl);
	
	
	// Render the Dialog
	YAHOO.catena.share_form.render();

	
}
var args = ['foo','bar']; 
 
var responseSuccess = function(o){ 
	/* Please see the Success Case section for more
	* details on the response object's properties.
	* o.tId
	* o.status
	* o.statusText
	* o.getResponseHeader[ ]
	* o.getAllResponseHeaders
	* o.responseText
	* o.responseXML
	* o.argument
	*/ 
	
	var parsedResponse = YAHOO.lang.JSON.parse(o.responseText);

	var div3 = document.getElementById("response3");
	
	if(parsedResponse.success == true)
	{
		div3.style.visibility='visible';
	}
	else
	{
		div3.style.visibility='hidden';
	}

}; 

var responseFailure = function(o){ 
	// Access the response object's properties in the 
	// same manner as listed in responseSuccess( ). 
	// Please see the Failure Case section and 
	// Communication Error sub-section for more details on the 
	// response object's properties. 
	var div3 = document.getElementById("response3");
	div3.innerHTML = "<span class='failure'>Unfortunately an error occurred. Please try again.</span>";
} 

var callback = 
{ 
	success:responseSuccess, 
	failure:responseFailure, 
	argument:args 
};


var clear_form = function(form_item)
{
	var form = document.forms['share_form'];
	if (YAHOO.catena[form_item])
	{
		form[form_item].value = "";
		YAHOO.catena[form_item] = false;
	}
}

var reset_form = function()
{
 	var form = document.forms['share_form'];
 	form.f_email.value = "";
 	form.y_email.value = "";
 	var div1 = document.getElementById("response1");
 	var div2 = document.getElementById("response2");
 	var div3 = document.getElementById("response3");
 	div1.style.visibility='hidden';
	div2.style.visibility='hidden';
	div3.style.visibility='hidden';
}

var send_share = function()
{
 	var form = document.forms['share_form'];
 	var friend_email = form.f_email.value;
 	var your_email = form.y_email.value;
	
	var div1 = document.getElementById("response1");
	if ( validate_email(friend_email) )
	{
		div1.style.visibility='hidden';
	} else {
		div1.style.visibility='visible';	
	}

	var div2 = document.getElementById("response2");
	if ( validate_email(your_email) )
	{
		div2.style.visibility='hidden';
	} else {
		div2.style.visibility='visible';
	}

	
	if ( validate_email(friend_email) && validate_email(your_email) )
	{
		YAHOO.util.Connect.setForm('share_form'); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/service.php', callback, "option=share");
		//var cObj = YAHOO.util.Connect.asyncRequest('POST', jsSITESERVER + jsSITEPATH + 'service.php', callback, "option=share");
	}
	
	return false;
}
var validate_email = function(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

	return reg.test(email);

}
YAHOO.util.Event.onDOMReady(form_init); 

