Suggest = Class.create({
	initialize: function(element) {
		this.initializeElement(element);
	},
	
	initializeElement: function(element) {
		this.element = $(element);
		if (this.element)
		{
			this.validator = new Validator(element);
			this.url	= this.element.readAttribute("url");
			this.video	= this.element.readAttribute("video");
			this.resultdisplayer = $("suggestResultDisplayer");
			$("suggestButton").observe("click", this.suggestListener.bindAsEventListener(this));
			$("sendImage").observe("click", this.shareListener.bindAsEventListener(this));
		}
	},
	
	shareListener: function(e) 
	{
		this.element.show();
	},
	
	suggestListener: function(e) 
	{
		this.suggest();
	},
	
	suggest: function ()
	{
		if(this.validator.checkAllFields()) {
			var nameVal			= $F('name_suggest');
			var emailVal		= $F('yourEmail_suggest').replace("@", "(at)");
			var friendVal		= $F('friendEmail_suggest').replace("@", "(at)");
			var videoVal		= this.video;
			var captchaVal		= $F('suggestCaptcha');
		
			new Ajax.Request(this.url, {
				method		: 'get',
				parameters	: {
					name		: nameVal,
					video		: videoVal,
					email		: emailVal,
					friend		: friendVal,
					captcha		: captchaVal}, 
				onComplete 	: this.suggestResponse.bind(this)
			});			
			
			this.resultdisplayer.innerHTML = "Sending your message. Please wait...";
		}
		else {
			this.resultdisplayer.innerHTML = "Please fill the marked fields correctly!";
		}
	},
	
	suggestResponse: function(transport)
	{
		var response = transport.responseText.evalJSON();
		if(response.status && response.status == 'success') 
		{
			this.resultdisplayer.innerHTML = "Your video suggestion was sent succesfully.";
			this.element.hide();
		}
		else
		{
			this.resultdisplayer.innerHTML = response.message;		
		}
	}
});

function windowLoadedSuggest()
{
	new Suggest("suggestTable");
}

(function() {
	Event.observe(window, "load", windowLoadedSuggest);
})();

