var glider = {

	initialStyle: {
		height: (document.all && !window.opera && document.compatMode == 'BackCompat') ? '1px' : '0'
	},

	duration: 1, // effect duration
	currentBox: null, // aktualne otevreny box
	isLocked: false, // pohyb?
	timer: null,
	queue: null, // box ve fronte
	reloader: null, // timer
	reloadInterval: 5000,


	init: function() {
		$$('.nadpis').each(function(box){glider.initBox(box);});
		$('produkt').onmouseout = function() {glider.initAutoClose()};
		$('produkt').onmouseover = function() {glider.cancelAutoClose()};
		if ($('cardno')) {
			$('cardno').onfocus = $('pin').onfocus = function() {glider.locked(true);}
			$('cardno').onblur = $('pin').onblur = function(e) {glider.locked(false);}
		}
		if (!glider.reloader) {
		
			Event.observe(window, 'beforeunload', function() {
				glider.locked(false);
			});
		}
	},

	initBox: function(box, openNow) {
		box = $(box);
		var link = $(box.getElementsByTagName('a')[0]);
		link.box = $(box.getElementsByClassName('vnitrek')[0]);
		if (!link.box) {
			return;
		}
		link.onclick = glider.linkClick;
		link.box.setStyle(glider.initialStyle);
		link.onmouseover = function() {glider.over(this.box);};
		if (openNow) {
			link.onmouseover();
			glider.initAutoClose(2000);
		}
	},

	cancelAutoClose: function() {
		window.clearTimeout(glider.timer);
	},

	initAutoClose: function(timeout) {
		glider.timer = window.setTimeout(function(){
			if (glider.currentBox && !glider.locked()) {
				glider.queue = null;
				glider.hide(glider.currentBox, true);
			}
		}, timeout ?  timeout : 1000);
	},

	over: function(box) {
		if (glider.currentBox == box) {
			return;
		}
		if (glider.locked()) {
			glider.queue = box;
			return;
		}
		glider.locked(true);
		if (glider.currentBox) {
			new Effect.Parallel([glider.hide(glider.currentBox), glider.show(box)]);
		} else {
			glider.show(box);
		}
		glider.currentBox = box;
	},

	locked: function(locked) {
		if (arguments.length == 1) {
			glider.isLocked = locked;
		}
		return glider.isLocked;
	},

	processQueue: function() {
		if (glider.queue && !glider.locked()) {
			var queue = glider.queue;
			glider.queue = null;
			glider.over(queue);
		}
	},

	show: function(box) {
		box.setStyle(glider.initialHeight);
		box.show();
		return new Effect.Scale(box, 100, {
			scaleFrom: 0,
			scaleContent: false,
			scaleX: false,
			afterFinish: function() {
				glider.locked(false);
				glider.processQueue();
			},
			duration: glider.duration,
			scaleMode: {
				originalHeight: 300
			}
		});
	},

	hide: function(box, doClearCurrent) {
		return new Effect.Scale(box, 0, {
			scaleContent: false,
			scaleX: false,
			afterFinish: function() {
				glider.locked(false);
				box.setStyle(glider.initialStyle);
				if (doClearCurrent) {
					glider.currentBox = null;
				}
			},
			duration: glider.duration,
			scaleMode: {
				originalHeight: 300
			}
		});
	},

	linkClick: function() {
		switch (this.box.id) {
			case 'login':
				return false;
			default:

				return parseInt(this.getElementsByTagName('strong')[0].firstChild.data) > 0;
		}
	},

	reload: function() {
		if (!glider.locked() && !glider.currentBox) {
			glider.locked(true);
			new Ajax.Request('/remote/top', {
				parameters: {
					basketCount: $('top-basket-count').firstChild.data,
					favoritesCount: $('top-favorites-count').firstChild.data
				},
				onComplete: function(transport, json) {
					if (json.countChanged) {
						var wrap = $('produkt-wrap');
						wrap.addClassName('produkt-wrap-hide-vnitrek');
						wrap.vnitrekHTML = transport.responseText + Math.random();
						glider.locked(false);
						glider.init();
						wrap.removeClassName('produkt-wrap-hide-vnitrek');
					} else {
						glider.locked(false);
					}

				}
			});
		} else {

		}
	}

}
var DropDownMenu = Class.create();

DropDownMenu.prototype = {

 initialize: function(menuElement) {
	menuElement.childElements().each(function(node){
		// if there is a submenu
		var submenu = $A(node.getElementsByTagName("ul")).first();
		if(submenu != null){
			// make sub-menu invisible
			Element.extend(submenu).setStyle({display: 'none'});
			// toggle the visibility of the submenu
			node.onmouseover = node.onmouseout = function(){
				Element.toggle(submenu);
			}
		}
	});
}

};