
var menuDuration = 0.2;

var mouseX = null;
var mouseY = null;

function chgBg(element, color) {
	element.style.background = color;
}

Event.observe(document, 'mousemove', function(event)
{
	mouseX = Event.pointerX(event);
	mouseY = Event.pointerY(event);
});

var languageEffect = false;

function onLanguageOver() {
	if (!languageEffect) {
		languageEffect = true;
		var pos = Position.cumulativeOffset($('languageElement'));
		$('languageChooser').style.top = (pos[1]+33)+'px';
		$('languageChooser').style.left = pos[0]+'px';
		Effect.SlideDown('languageChooser');
		setTimeout('isLanguageOut()', 2000);
	}
}

function isLanguageOut() {
	var posEl = Position.cumulativeOffset($('languageElement'));
	if (posEl[0] > mouseX || posEl[0]+35 < mouseX || posEl[1] + 137 < mouseY || posEl[1] > mouseY) {
		$('languageChooser').hide();
		languageEffect = false;
	} else {
		setTimeout('isLanguageOut()', 1000);
	}
}


var searchEffect = false;
var isSearchOnFocus = false;

function onSearchOver(targetUrl) {
	if (!searchEffect) {
		searchEffect = true;
		var pos = Position.cumulativeOffset($('searchElement'));
		$('searchBox').style.top = (pos[1]+33)+'px';
		$('searchBox').style.left = (pos[0]-126)+'px';
		Effect.SlideDown('searchBox');
		$('ctl0_searchBox').onblur = searchOnBlur;
		$('ctl0_searchBox').onfocus = searchOnFocus;
		Event.observe($('ctl0_searchBox'),'keypress',
			 function(event) {
			
			if (event.keyCode == Event.KEY_RETURN) {		
				window.location=targetUrl+$('ctl0_searchBox').value;
				Event.stop(event);
			}
		});
		setTimeout('isSearchOut()', 2000);
	}
}

function isSearchOut() {
	var posEl = Position.cumulativeOffset($('searchElement'));
	if (!isSearchOnFocus && (posEl[0]-126 > mouseX || posEl[0]+34 < mouseX || posEl[1] + 56 < mouseY || posEl[1] + 33 > mouseY)) {
		$('searchBox').hide();
		searchEffect = false;
	} else {
		setTimeout('isSearchOut()', 1000);
	}
}

function searchOnBlur() {
			isSearchOnFocus = false;
}

function searchOnFocus() {
			isSearchOnFocus = true;
}

var menuEffectScope = "MenuEffect";
var submenuEffectScope = "SubmenuEffect";
var submenuItemEffectScope = "SubmenuItemEffect";
var activeMenu = "";
var activeSubmenu = "";

function onMenuOver(menuID) {
	if (activeMenu == menuID) return;
	activeMenu = menuID;
	var topMenuEffectID = menuID+'TopMenuEffect';
	var submenuID = menuID+'Submenu';
	var menuItem = $(menuID);
	var menuItemPos = Position.cumulativeOffset(menuItem);

	menuItem.setOpacity(0.1);
    menuItem.appear({duration:0.5});
	
	// Menu top effect	
	var topElement = $(topMenuEffectID);
	topElement.style.left = (menuItemPos[0]-1) + 'px';
	topElement.style.top = (menuItemPos[1]-7) + 'px';
	var topElementDimensions = topElement.getDimensions();
	new Effect.Scale(topElement, 100, Object.extend({ 
		queue: { position: 'end', scope: menuID+menuEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleFrom: 0,
		scaleMode: {originalHeight: topElementDimensions.height, originalWidth: topElementDimensions.width}, restoreAfterFinish: true,
		afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '0px'}).show();},  
		afterFinishInternal: function(effect) {effect.element.undoClipping(); }}, arguments[1] || { }));
	
	// Submenu effect	
	var submenuElement = $(submenuID);
	if (submenuElement) {
		submenuElement.style.left = (menuItemPos[0]-1) + 'px';
		submenuElement.style.top = (menuItemPos[1]+46) + 'px';
		var submenuElementDimensions = submenuElement.getDimensions();
		new Effect.Scale(submenuElement, 100, Object.extend({ 
			queue: { position: 'end', scope: menuID+submenuEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleFrom: 0,
			scaleMode: {originalHeight: submenuElementDimensions.height, originalWidth: submenuElementDimensions.width}, restoreAfterFinish: true,
			afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '0px'}).show();},  
			afterFinishInternal: function(effect) {effect.element.undoClipping();}}, arguments[1] || { }));
	}
	
	setTimeout('isMenuOut(\''+menuID+'\')', menuDuration*1000);
	
	return null;
}

function isMenuOut(menuID) {
	var posEl = Position.cumulativeOffset($(menuID));
	var posLeft = posEl[0];
	var posTop = posEl[1];
	var posRight = posLeft + 116;
	var posBottom = ($(menuID+'Submenu')?$(menuID+'Submenu').getDimensions().height:0) + posTop + 47;
	if (mouseX<posLeft || mouseX> posRight || mouseY<posTop || mouseY>posBottom) {
		onMenuOut(menuID);
	} else {
		setTimeout('isMenuOut(\''+menuID+'\')', menuDuration*100);
	}
}

function onMenuOut(menuID) {
	if (activeMenu==menuID) activeMenu = "";
	var topMenuEffectID = menuID+'TopMenuEffect';
	var submenuID = menuID+'Submenu';
	var menuItem = $(menuID);
	var menuItemPos = Position.cumulativeOffset(menuItem);

	// Menu top effect
	var topElement = $(topMenuEffectID);
	topElement.style.left = (menuItemPos[0]-1) + 'px';
	topElement.style.top = (menuItemPos[1]-7) + 'px';
	var topElementDimensions = topElement.getDimensions();
	new Effect.Scale(topElement, 100, Object.extend({ 
		queue: { position: 'end', scope: menuID+menuEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleTo: 0,
		scaleMode: {originalHeight: topElementDimensions.height, originalWidth: topElementDimensions.width}, restoreAfterFinish: true,
		afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '116px'}).show();},
		afterUpdateInternal: function(effect) {
			effect.element.makeClipping().setStyle({left:(116 + menuItemPos[0] - effect.element.clientWidth) + 'px' });
		}, 
		afterFinishInternal: function(effect) {effect.element.undoClipping(); $(topMenuEffectID).hide();}}, arguments[1] || { }));

	// Submenu effect
	var submenuElement = $(submenuID);
	if (submenuElement) {
		submenuElement.style.left = (menuItemPos[0]-1) + 'px';
		submenuElement.style.top = (menuItemPos[1]+46) + 'px';
		var submenuElementDimensions = submenuElement.getDimensions();
		new Effect.Scale(submenuElement, 100, Object.extend({
			queue: { position: 'end', scope: menuID+submenuEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleTo: 0,
			scaleMode: {originalHeight: submenuElementDimensions.height, originalWidth: submenuElementDimensions.width}, restoreAfterFinish: true,
			afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '116px'}).show();},
			afterUpdateInternal: function(effect) {
				effect.element.makeClipping().setStyle({left:(116 + menuItemPos[0] - effect.element.clientWidth) + 'px' });
			}, 
			afterFinishInternal: function(effect) {effect.element.undoClipping(); $(submenuID).hide();}}, arguments[1] || { }));
	}
	return null;
}

function isIE() {
	return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}

var addTopPos = isIE()?5:3

function onSubmenuOver(menuID) {
	if (activeSubmenu == menuID) return;
	activeSubmenu = menuID;
	var submenuEffectID = menuID+'SubmenuEffect';
	var menuItem = $(menuID);
	var menuItemPos = Position.cumulativeOffset(menuItem);

	// Submenu item effect	
	var submenuElement = $(submenuEffectID);
	submenuElement.setOpacity(0.1);
    submenuElement.appear({duration:0.5});
	submenuElement.style.left = (menuItemPos[0]) + 'px';
	submenuElement.style.top = (menuItemPos[1]+addTopPos) + 'px';
	var submenuElementDimensions = submenuElement.getDimensions();
	new Effect.Scale(submenuElement, 100, Object.extend({ 
		queue: { position: 'end', scope: menuID+submenuItemEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleFrom: 0,
		scaleMode: {originalHeight: submenuElementDimensions.height, originalWidth: submenuElementDimensions.width}, restoreAfterFinish: true,
		afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '0px'}).show();},  
		afterFinishInternal: function(effect) {effect.element.undoClipping(); }}, arguments[1] || { }));
	
	setTimeout('isSubmenuOut(\''+menuID+'\')', menuDuration*1000);
	
	return null;
}

function isSubmenuOut(menuID) {
	var posEl = Position.cumulativeOffset($(menuID));
	var posLeft = posEl[0];
	var posTop = posEl[1];
	var posRight = posLeft + 116;
	var posBottom = $(menuID+'SubmenuEffect').getDimensions().height + posTop - 1;
	if (mouseX<posLeft || mouseX> posRight || mouseY<posTop || mouseY>posBottom) {
		onSubmenuOut(menuID);
	} else {
		setTimeout('isSubmenuOut(\''+menuID+'\')', menuDuration*100);
	}
}

function onSubmenuOut(menuID) {
	if (activeSubmenu==menuID) activeSubmenu = "";
	var submenuEffectID = menuID+'SubmenuEffect';
	var menuItem = $(menuID);
	var menuItemPos = Position.cumulativeOffset(menuItem);

	// Submenu item effect
	var submenuElement = $(submenuEffectID);
	submenuElement.style.left = (menuItemPos[0]-1) + 'px';
	submenuElement.style.top = (menuItemPos[1]+addTopPos) + 'px';
	var submenuElementDimensions = submenuElement.getDimensions();
	new Effect.Scale(submenuElement, 100, Object.extend({ 
		queue: { position: 'end', scope: menuID+submenuItemEffectScope }, duration: menuDuration, scaleContent: false, scaleY: false, scaleTo: 0,
		scaleMode: {originalHeight: submenuElementDimensions.height, originalWidth: submenuElementDimensions.width}, restoreAfterFinish: true,
		afterSetup: function(effect) {effect.element.makeClipping().setStyle({width: '116px'}).show();},
		afterUpdateInternal: function(effect) {
			effect.element.makeClipping().setStyle({left:(116 + menuItemPos[0] - effect.element.clientWidth) + 'px' });
		}, 
		afterFinishInternal: function(effect) {effect.element.undoClipping(); $(submenuEffectID).hide();}}, arguments[1] || { }));

	return null;
}


/*Event.observe(window, 'load',
          function() { 
            
            new Effect.Appear('MainLeft',{duration:0.5});
            
          });*/
