window.addEvent('domready', function() {

	
	/**
	 * apro gli elementi con classe external in una nuova finestra
	 */
	$$('a.external').set('target','_blank');
	
	$$('#zoom a').each(function(el) {
		el.addEvent('click', function(e) {
			e.stop();
			$$('body')[0].erase('class');
			var size = el.get("id");
			$$('body')[0].toggleClass(size);
			$$('#zoom a').each(function(elem) {
				elem.erase('class');
			});
			el.toggleClass("selected");
		});
	});

	$$('.searchInput').each(function(el) {
		el.addEvent('click', function() {
			el.value = '';
		});
	});

	/* Menu globals */
	var hideDD = function(el) {
		if (el.visibleDd) {
			if (el.currentDt.hasClass('noactive')) {
				el.currentDt.removeClass('isOver');
			}
			if (el.id === 'globalsNav') {
				el.currentDt.removeClass('isOver');
			}
			el.visibleDd.setStyle('visibility', 'hidden');
			el.visibleDd = null;
		}
	}

	$$('#globalsNav dt a, #mainNav dt a').each(
			function(el) {
				el.addEvents( {
					'mouseenter' : function() {
						hideDD(el.getParent().getParent());
						if (el.hasClass("hasDropDown")) {
							el.getParent().getNext().setStyle('visibility',
									'visible');
							el.getParent().addClass("isOver");
							el.getParent().getParent().visibleDd = el
									.getParent().getNext();
							el.getParent().getParent().currentDt = el
									.getParent();
						}
					}
				});
			});

	if (document.id('globalsNav')) {
		document.id('globalsNav').addEvent('mouseleave', function() {
			hideDD(this);
		});
	}

	if (document.id('globalsNav')) {
		document.id('mainNav').addEvent('mouseleave', function() {
			hideDD(this);
		});
	}

	/* Menu navigation */
	$$('.menuNav1 li.closed').each(
			function(el, index) {
				el.addEvents( {
					'mouseenter' : function() {
						var left = 0;
						for ( var i = 0; i < index; i++) {
							left -= parseInt($$('.menuNav1 li.closed')[i]
									.getStyle('width'));
						}
						var div = el.getFirst('.roundedHover');
						div.setStyle("visibility", "visible");
						var ul = el.getFirst('ul');
						ul.setStyles( {
							'visibility' : 'visible',
							'width' : el.getParent().getStyle('width'),
							'left' : left + 'px'
						});
					},
					'mouseleave' : function() {
						var div = el.getFirst('.roundedHover');
						div.setStyle("visibility", "hidden");
						el.getFirst('ul').setStyle('visibility', 'hidden');
					}
				});

			});

	/* Equalize height in search box */
	var columns = $$('.boxSearchImg');
	var max_height = 0;

	columns.each(function(el) {
		max_height = Math.max(max_height, el.getSize().y);
	});

	columns.setStyle('height', max_height);

	SexyLightbox = new SexyLightBox( {
		imagesdir : contextPath + '/docroot/css/img/sexylightbox/',
		color : 'barilla',
		moveDuration : 0,
		moveEffect : Fx.Transitions.linear,
		resizeDuration : 0,
		resizeEffect : Fx.Transitions.linear,
		Skin : {
			'barilla' : {
				'hexcolor' : '#000000',
				'captionColor' : '#FFFFFF',
				'background-color' : '#fff',
				'opacity' : 0.6
			}
		},
		middleNav : true
	});
	
	SexyLightbox.addEvent('showContent', function(){
		var clone = SexyLightbox.Image.getElement('.slide .preview');
		if (clone){
			var original = document.id(clone.id);
			if (original && original._writeSwf) original._writeSwf(clone);
		}
	});
	
	/* In The World Country Sheet */
	$$('#menuWorldNav dt.tab a').each(function(el) {
		el.addEvent('click', function(e) {
			e.stop();
			$$('#menuWorldNav dt.tab a.active').removeClass('active');
			$$('#menuWorldNav dt.tab.active').removeClass('active');
			el.toggleClass('active');
			$$('.cntTabStates').setStyle('display', 'none');
			var parentEl = el.getParent();
			var elId = parentEl.get('id') + 'cnt';
			parentEl.toggleClass('active');
			document.id(elId).setStyle('display', 'block');
		});
	});

	$$('.cntTabStates a').each(function(el) {
		el.addEvent('click', function(e) {
			e.stop();
			$$('.cntTabStates a.active').removeClass('active');
			el.toggleClass("active");
			// Prevent duplicate in detail page
				var elem = document.id('country_sheet');
				if (elem != null)
					elem.setStyle('display', 'none');
				showDiv(el.getProperty('rel'));
			});
	});

	/* Equalize height in navigation In The World */
	var columns = $$('.cntTabStates');
	var max_height = 0;
	var padding_top = 0;
	columns.each(function(el) {
		max_height = Math.max(max_height, el.getSize().y);
		padding_top = parseInt(el.getStyle('padding-top'));
	});
	
	
	columns.setStyles( {
		'height' : max_height - (Browser.Engine.trident ? 47 : padding_top) + 15,
		'display' : 'none'
	});
	
	var elem = document.id('menuWorldNav');
	if (elem) {
		max_height = max_height - parseInt(elem.getStyle('padding-top')) + 15;
		// if (Browser.Engine.trident) max_height += 42;
			
		elem.setStyle('height', max_height);
	// Activate correct dd
		$$('#menuWorldNav dt.tab a.active').each(function(el) {
			var idElem = el.getParent().get('id') + 'cnt';
			document.id(idElem).setStyle('display', 'block');
			// Activate default
				if ($$('#' + idElem + ' .active').length === 0) {
					var reqEl = $$('#' + idElem + ' .noactive')[0];
					showDiv(reqEl.get('rel'));
					reqEl.toggleClass('active');
				}
			});

		// Show addresses in country sheet
		$$('#description #left a').each(function(el) {
			el.addEvent('click', function(e) {
				e.stop();
				$$('#description #right div').setStyle('display', 'none');
				document.id(el.get('id') + 'cnt').setStyle('display', 'block');
				$$('#description #left a.active').toggleClass('active');
				el.toggleClass('active');
			});
		});
	}
	// Glossary Accordion
	var elements = $$('#glossary-accordion .item');
	if (elements) {
		var lastEl = elements.length - 1;
		if (lastEl > 0) {
			elements[lastEl].addClass("no_border");
			// create our Accordion instance
			var myAccordion = new Accordion(document.id('glossary-accordion'),
					'h3.toggler', 'div.element', {
						opacity : false,
						onActive : function(toggler, element) {
							toggler.addClass("open_w");
						},
						onBackground : function(toggler, element) {
							toggler.removeClass("open_w");
						}
					});
		}
	}
	// P-Grid-Accordion
	$$('.grid-accordion').each(function (el) {
		var numItems = el.getChildren('.item').length - 1; 
		if ( numItems > 0) {
			var elId = el.get('id');
			var itemId = elId.split('_')[1];
			var h3Selector = 'h3.toggler_' + itemId;
			var divSelector = 'div.element_' + itemId;
			new Accordion(document.id(elId),
					h3Selector,  divSelector, {
						opacity : false,
						onActive : function(toggler, element) {
						toggler.addClass("open_w");
					},
					onBackground : function(toggler, element) {
						toggler.removeClass("open_w");
					}
			});
		}
	});

	// Glossary Tip
	var elementBubble = $$("a[target='glossarioBarilla']");
	var myTips = new Tips(elementBubble);

	myTips.addEvents( {
		'show' : function(tip, el) {
			tip.fade('in');
		},
		'hide' : function(tip, el) {
			tip.fade('out');
		}
	});

	elementBubble.each(function(el) {
		// retrieve data
			var jsonUrl = el.href.replace('.html', '.json');
			var jsonRequest = new Request.JSON( {
				url : el.href.replace('.html', '.json'),
				onSuccess : function(jsonObj) {
					el.store('tip:title', jsonObj.title);
					el.store('tip:text', jsonObj.text);
				}
			}).get( {
				'lemmaSearch' : el.get('html')
			});
		});

	$$('img.reflect').each(function(img) {
		img.reflect( {
			height : 0.2,
			opacity : 0.5
		});
	});
	
	
	// print button
	$$('.print').each(function(el) {
		el.addEvent('click', function(e){
			e.stop();
			window.print();
		});
	});
	
	
	/*
	 * BCORP-8
	 * fix elementi h1 non stampati con ie8
	 */
	$$('.typeface-js','h1','h2','h3','h4','h5','h6').each(function(item) {
		item.addClass('forScreen');
		var elementForPrint = new Element('div');
		elementForPrint.addClass('forPrint');
		elementForPrint.addClass(item.tagName.toLowerCase());
		elementForPrint.set('html', item.get('html'));
		(new Element('span')).inject(item.getParent(), 'top');
		elementForPrint.inject(item.getParent(), 'top');
	});
	
	/*
	 * Fix menu FF per Mac
	 */
	if (Browser.Platform.mac && Browser.Engine.gecko) {
		$$('.menuLink').each(function (el){
			el.setStyle("width", "22%");
		});
	}

});
