Event.onDOMReady(function() {
	if ($("form-feedback"))
		feedback.init();
});

var feedback = {
	
	lang: null,
	list: null,
	linkSubscribe: null,
	linkFeedback: null,
	
	form: null,
	formTitle: null,
	
	pollWrapper: null,
	pollInputs: null,
	subscribeWrapper: null,
	subscribeInputs: null,
	feedbackWrapper: null,
	feedbackInputs: null,  	
	
	activeForm: null,
	
	messages: null,
	prefix: null,
	
	visible: false,
	
	init: function() {
		
		feedback.list = $("feedback-list");

		if (feedback.list.hasClassName("ru"))
		{
			feedback.lang = "ru";
			feedback.prefix = "";
		}
		else if (feedback.list.hasClassName("en"))
		{
			feedback.lang = "en";
			feedback.prefix = "en/";
		}
		
		feedback.linkSubscribe = $("link-subscribe");
		feedback.linkFeedback = $("link-feedback");
		feedback.linkPoll = $("link-poll");
		
		feedback.linkSubscribe.observe("click", feedback.linkSubscribeClick.bindAsEventListener(feedback.linkSubscribe, feedback.linkSubscribe));
		feedback.linkFeedback.observe("click", feedback.linkFeedbackClick.bindAsEventListener(feedback.linkFeedback, feedback.linkFeedback));
		feedback.linkPoll.observe("click", feedback.linkPollClick.bindAsEventListener(feedback.linkPoll, feedback.linkPoll));
		
		feedback.form = $("form-feedback");
		feedback.formTitle = feedback.form.select("h1")[0];
		feedback.pollWrapper = $("poll-wrapper");
		feedback.pollInputs = feedback.pollWrapper.select("input");
		feedback.feedbackWrapper = $("feedback-wrapper");
		feedback.feedbackInputs = feedback.feedbackWrapper.select("input");
		feedback.subscribeWrapper = $("subscribe-wrapper");
		feedback.subscribeInputs = feedback.subscribeWrapper.select("input");    		
		
		feedback.activeForm = form;
		
		if (feedback.activeForm=="subscribe")
			feedback.linkSubscribeClick(null, feedback.linkSubscribe);
		else if (feedback.activeForm=="feedback")
			feedback.linkFeedbackClick(null, feedback.linkFeedback);
		else if (feedback.activeForm=="poll")
			feedback.linkPollClick(null, feedback.linkPoll);
	},
	
	linkSubscribeClick: function(event, element) {
		
		if (!feedback.visible)
		{
			feedback.form.style.display = "block";
			feedback.visible = true;
		}
		
		feedback.form.action = "?" + feedback.prefix + "feedback/subscribe";
		feedback.selectLink(element);
		feedback.lang=="ru" ? feedback.formTitle.update("Подписаться на новости") : feedback.formTitle.update("Sign up for news");

		feedback.feedbackWrapper.hide();
		feedback.feedbackInputs.each(function(item) {
			item.disabled = "";
		});
    		
		feedback.pollWrapper.hide();
		feedback.pollInputs.each(function(item) {
			item.disabled = "";
		});
    		
		feedback.subscribeWrapper.show();
		feedback.subscribeInputs.each(function(item) {
			item.disabled = "";
		});		

		feedback.activeForm = "subscribe";
		if (event!=null)		
			$("messages").hide();
	},
	
	linkFeedbackClick: function(event, element) {
		
		if (!feedback.visible)
		{
			feedback.form.style.display = "block";
			feedback.visible = true;
		}
		feedback.form.action = "?" + feedback.prefix + "feedback/feedback";
		feedback.selectLink(element);
		feedback.lang=="ru" ? feedback.formTitle.update("Задать вопрос") : feedback.formTitle.update("Ask a question");

		feedback.subscribeWrapper.hide();
		feedback.subscribeInputs.each(function(item) {
			item.disabled = "disabled";
		});
    		
		feedback.pollWrapper.hide();
		feedback.pollInputs.each(function(item) {
			item.disabled = "disabled";
		});		
		
		feedback.feedbackWrapper.show();
		feedback.feedbackInputs.each(function(item) {
			item.disabled = "";
		});		
    
		feedback.activeForm = "feedback";
		if (event!=null)		
			$("messages").hide();
	},

	linkPollClick: function(event, element) {
		
		if (!feedback.visible)
		{
			feedback.form.style.display = "block";
			feedback.visible = true;
		}

		feedback.form.action = "?" + feedback.prefix + "volunteer/poll";
		feedback.selectLink(element);
		feedback.lang=="ru" ? feedback.formTitle.update("Стать волонтером") : feedback.formTitle.update("To be a volunteer");

		feedback.feedbackWrapper.hide();
		feedback.feedbackInputs.each(function(item) {
			item.disabled = "";
		});
    		
		feedback.subscribeWrapper.hide();
		feedback.subscribeInputs.each(function(item) {
			item.disabled = "";
		});
		
		feedback.pollWrapper.show();
		feedback.pollInputs.each(function(item) {
			item.disabled = "";
		});		
	
		feedback.activeForm = "poll";
		if (event!=null)		
			$("messages").hide();
	},

	selectLink: function(element) {
		var links = feedback.list.select("a");
		links.each(function(item, i) {
			item.removeClassName("selected");
		});
		element.addClassName("selected");
	}
}
