jQuery(function(){
	initMenu();
	initNavIndexes();
	setTimeout('initPlugins()',4000);
	ieHover('#nav > li', 'hover');
});

function initPlugins(){
	jQuery('div.promo').Gallery({
		speed: 1000,
		autoRotation: 6000,
		holder: 'div.gallery',
		slider: 'ul.slide-list',
		list: '>li',
		pager: 'ul.switcher',
		dinamicPagination: true,
		onLoadRotation:true,
		vertical: false,
		infinitive: true,
		stopOnHover: true,
		play: '.play',
		pause: '.pause'
	});
}

// jquery ie6 hover pack
function ieHover(obj, hoverClass){
	var elements = obj;
	var hoverClass = hoverClass;
	if(jQuery.browser.msie && parseInt(jQuery.browser.version) == 6){
		jQuery(elements).hover(function(){
			jQuery(this).addClass(hoverClass);
		}, function(){
			jQuery(this).removeClass(hoverClass);
		});
	}
}

var _id = 'nav';
var _innerEl = 'div';
var _className = 'opened';
var _hide = true;

var _menu;
var _nodes;

function initMenu() {
	_menu = document.getElementById(_id);
	if (_menu){
		_nodes = _menu.getElementsByTagName('a');
		for (var i=0; i<_nodes.length; i++) {
			if (_nodes[i].parentNode.getElementsByTagName(_innerEl)[0]) {
				_nodes[i].onclick = function () {
					if(this.parentNode.className.indexOf(_className) !=-1) {
						this.parentNode.className = this.parentNode.className.replace(_className, "");
					} else {
						if (_hide) hideLevels(this);
						this.parentNode.className += ' '+_className;
					}
					//return false;
				}
			}
		}
	}
}

function hideLevels(_this){
	var _lis = _menu.getElementsByTagName('li');
	for (var i=0; i<_lis.length; i++) {
		var _f = false;
		var _a = _lis[i].getElementsByTagName('a');
		for (var j=0; j<_a.length; j++) {
			if (_a[j] == _this) _f = true;
		}
		if (!_f) _lis[i].className = _lis[i].className.replace(_className, "");
	}
}

function initNavIndexes(){
	var nav = document.getElementById("nav");
	if(nav) {
		var lis = nav.getElementsByTagName("li");
		for (var i=0; i<lis.length; i++) {
			lis[i].style.zIndex = lis.length-i;
		}
	}
}

jQuery.fn.Gallery = function(_options){
	// default options
	var _options = jQuery.extend({
		speed: 1200,
		autoRotation: 4000,
		holder: '.holder',
		slider: 'ul.slider',
		list: '>li',
		prev: '.prev, .link-prev, .btn-prev',
		next: '.next, .link-next, .btn-next',
		pager: 'ul.switcher',
		dinamicPagination: true,
		onLoadRotation:false,
		vertical: false,
		infinitive: true,
		stopOnHover: true,
		play: '.play',
		pause: '.pause'
	},_options);
	
	return this.each(function(){
		// options
		var _hold = jQuery(this);
		var _speed = _options.speed;
		var _autoRotation = _options.autoRotation;
		var _slider = _hold.find(_options.slider);
		var _holder = _slider.parent();
		var _list = _slider.children();
		var _prev = _hold.find(_options.prev);
		var _next = _hold.find(_options.next);
		var _pause = _hold.find(_options.pause);
		var _play = _hold.find(_options.play);
		var _vert = _options.vertical;
		var _inf = _options.infinitive;
		var _stop = _options.stopOnHover;
		var _onload = _options.onLoadRotation;
		var _f = true;
		var _p = _options.dinamicPagination;
		if (_vert) var _d = _list.eq(0).outerHeight(true);
		else var _d = _list.eq(0).outerWidth(true);
/*--------ADDING SLIDES----------*/
		
		if (_vert) var _vis = Math.ceil(_holder.height()/_d);
		else var _vis = Math.ceil(_holder.width()/_d);
		if (_inf) {
			for	(var i=0; i < _vis; i++){
				_list.eq(i).clone().appendTo(_slider);
			};
		}
/*--------CREATING THUMBNAILS----------*/
		var _num = _hold.find(_options.pager);
		if(_p){	_num.empty();
			_list.each(function(i){
				$('<li><a href="#">'+(i+1)+'</a></li>').appendTo(_num);
			});	};
		var _thumb = _num.find('a');
/*-------------------------------------*/
		
		var _a = _list.index(_list.filter('.active'));
		if(_a == -1) {_a = 0;
			_thumb.eq(_a).addClass('active');
			_list.eq(_a).addClass('active');
		}
		var _x=0, _new, _t;

		if (_f){ if (_autoRotation) Run(_a);}
		function Run(_a){
			_t = setTimeout(function(){
				if (_inf) {
					if (_a < _list.length){_a++
					}else {	_a = 1;	};
				}else{
					if (_a < _list.length-1){_a++
					}else {	_a = 0;	};
				}
				Slide(_a);
			}, _autoRotation);
		};
		function Slide(_new){
			_x = _new * _d;
			if (_inf) {if (_new == _list.length){_new=0;}}
			_a = _new;
			_list.removeClass('active').eq(_new).addClass('active');
			_thumb.parent().removeClass('active').eq(_new).addClass('active');
			if (_vert){
				_slider.animate({top: -_x}, {queue:false, duration:_speed, easing:'linear', complete:function(){
					if (_inf) {if (_new == 0){_slider.css({top:0});}}
				}});
			}else{
				_slider.animate({left: -_x}, {queue:false, duration:_speed, easing:'linear', complete:function(){
					if (_inf) {if (_new == 0){_slider.css({left:0});}}
				}});
			}
			if(_t) clearTimeout(_t);
			if (_autoRotation) Run(_a);
		};
		if (_stop){
			_holder.mouseenter(function(){		_f = false; if(_t) clearTimeout(_t);})
					.mouseleave(function(){		_f = true; if (_autoRotation) Run(_a);});
		}

		_thumb.click(function(){
			_a = _thumb.index($(this));
			Slide(_a);
			return false;
		});
		if(_onload){
			if (_a < _list.length){_a++
			}else {	_a = 1;	};
			Slide(_a);
		}
		_next.click(function(){
			if (_inf) {
				if (_a < _list.length){_a++
				}else {	_a = 1;	};
			}else{
				if (_a < _list.length-1){_a++
				}else {	_a = 0;	};
			}
			Slide(_a);
			return false;
		});
		
		_prev.click(function(){
			if (_a>0){_a--
			}else {
				if (_inf) {
					if (_vert) _slider.css({top:-_list.length*_d});
					else _slider.css({left:-_list.length*_d});
				}
				_a = _list.length - 1;
			};
			Slide(_a);
			return false;
		});
	});
};
