
var initMenu = function () {
	$$("#menu li ul").invoke("setStyle", {"visibility": "visible"}).invoke("hide");
	
	$$("#menu li a.linkLevel1").invoke("observe", "mouseenter", function(e) {
		var parent = $(e.element().parentNode);
		parent.select("ul.level_2").invoke("show");
	});
	$$("#menu li").each(function(level1item) {
		level1item.observe("mouseleave", function(){
			this.select("ul.level_2").invoke("hide");
		}.bindAsEventListener(level1item));
	});
	
	$$("#menu .level_2 a").invoke("observe", "mouseenter", function(e){
		var parent = $(e.element().parentNode);
		parent.select("ul.level_3").invoke("show");
	});
	
	$$("#menu .level_2 li").each(function(level2item) {
		level2item.observe("mouseleave", function(){
			this.select("ul.level_3").invoke("hide");
		}.bindAsEventListener(level2item));
	});
};

var initDropDown = function (){
	$$(".otherSitesContainer").invoke("hide").invoke("setStyle", {"visibility": "visible"});
	
	$$(".showDropDown").invoke("observe", "mouseover", function(e) {
		var parent = $(e.element().parentNode);
		var dropDownElem = parent.down(".otherSitesContainer");
		if(dropDownElem) {
			new Effect.SlideDown(dropDownElem, {duration:0.3});
		}
	});
	$$(".showDropDown").each( function(item) {
		var dropDownElem = $(item.parentNode).down(".otherSitesContainer");
		if(dropDownElem) {
			dropDownElem.observe("mouseleave", function(e) {
				dropDownElem.hide();
			});
		}
	});
};


var initTab = function () {
  $$(".tabsMenu a").each(function(link) {
	  link.observe("click", function(e) {
		  e.stop();
		  var params = this.href.substr(this.href.indexOf('?') + 1).parseQuery();
		  new Ajax.Updater("tabContainer", G_CONTEXTPATH + "objects/category/front/_layouts/wedia/templates/home/default/tabcontainer.jspz", {
            parameters : Object.extend(G_ACTIVE_OBJ, params),
            onComplete: function(transport) {
			  var oldActiveLI = $$(".tabOn").first();
			  var newActiveLI = this.up("li");
			  var onWidth =  oldActiveLI.getWidth();
			  var offWidth =  newActiveLI.getWidth();
			  oldActiveLI.setStyle("width", offWidth + "px").removeClassName("tabOn");
			  newActiveLI.setStyle("width", onWidth + "px").addClassName("tabOn");
		  	}.bind(link)
		  });
	  }.bindAsEventListener(link));
  });
};

var newsletterSubscriptionValid = function() {
	var reMail = /^([a-z0-9_-])+([.]?[a-z0-9_-]{1,})*@([a-z0-9-_]{2,}[.])+[a-z]{2,3}$/gi;
	var mail = $F("newsletter");
	return reMail.test(mail);
};

var submitNewsletterSubscription = function(e) {
	e.stop();
	$$("#nlSubscribe .error").invoke("hide");
	
	if(newsletterSubscriptionValid()) {
		new Ajax.Updater("nlSubscribe", this.action, {
			parameters: Object.extend({ajax: "true"}, this.serialize(true)),
			onComplete:initNewsletterSubscription
		});
	} else {
		$("invalidMail").show();
		$("newsletter").focus();
	}
};

var blurNewsletterSubscription = function(e) {
	if(this.value==""){
		this.value=nlInputDefaultValue;
	}
};

var focusNewsletterSubscription = function(e) {
	if(this.value==nlInputDefaultValue) this.value='';
};

var nlInputDefaultValue = "";

var initNewsletterSubscription = function() {
	var nlForm = $("nlSubscribe") ;
	var nlInput = $("newsletter");
	if(nlInput){
		nlInputDefaultValue=$F(nlInput);
		nlInput.observe("focus", focusNewsletterSubscription.bindAsEventListener(nlInput));
		nlInput.observe("blur", blurNewsletterSubscription.bindAsEventListener(nlInput));
	}
	if(nlForm) {
		nlForm.observe("submit", submitNewsletterSubscription.bindAsEventListener(nlForm));
	}
	
};

var initDiaporama = function() {
	if(! Diaporama) return; 
	$$("ul.diapo").each( function(item) {
		var diapo = new Diaporama(item, {duration:1});
		item.observe("click", function(){diapo.open();});
		Event.observe($(document), "keydown", function(e){
			if(e.keyCode == 27) {
				diapo.close();
			}
			if(e.keyCode == 37) {
				diapo.previous();
			}
			if(e.keyCode == 39) {
				diapo.next();
			}
		});		
	});
};

var initPrintLinks = function() {
	$$(".printLnk").invoke("observe", "click", function(e){e.stop();print();});
};


Event.observe(window, "load", initMenu);
Event.observe(window, "load", initDiaporama);
Event.observe(window, "load", initPrintLinks);
Event.observe(window, "load", initDropDown);
Event.observe(document, "dom:loaded", initTab);
Event.observe(window, "load", initNewsletterSubscription);

