function gallery(){
	var _d = 500;
	$('.galley-holder').each(function(){
		var gal = this;
		var _t = null;
		var _int = null;
		gal.elParent = $('ul.g-item', gal);
		gal.autoSlide = 5000;
		gal.pause = false;
		gal.control = $('div.control-holder',gal);
		gal.about = $('div.block', gal);
		gal.descript = $('div.description', gal.about);
		gal.timer = $('span.timer img', gal);
		gal.start = $('.btn-start', gal);
		gal.prev = $('.btn-prev', gal);
		gal.next = $('.btn-next', gal);
		gal.thumbsParent = $('.thumbs-holder', gal).css({position: 'relative'});
		gal.move = $('.thumbs-holder > ul', gal).css({position: 'relative'});
		gal.thumbs = $('li', gal.thumbsParent);
		var _maxMargin = gal.thumbs.outerWidth(true)*gal.thumbs.length - gal.thumbsParent.width();
		gal.active = gal.thumbs.index(gal.thumbs.filter('.active'));
		if(gal.thumbs.length == 1){
			gal.control.css({visibility: 'hidden'});
		};

		gal.thumbs.click(function(){
			var next = gal.thumbs.index(this);
			changeEl(next);
			return false;
		});

		gal.prev.click(function(){
			var next = gal.active;
			if((next - 1) < 0) next = gal.thumbs.length-1;
			else next -= 1;
			changeEl(next);
			return false;
		});

		gal.next.click(function(){
			var next = gal.active;
			if((next + 1) > gal.thumbs.length-1) next = 0;
			else next += 1;
			changeEl(next);
			return false;
		});
//
		$(gal).mouseenter(function(){
			gal.pause = true;
			if(_t) clearTimeout(_t);
			if(_int) clearInterval(_int);
			autoslide();
			gal.about.animate({height: gal.about.children(':eq(0)').height()},{duration: 350, queue: false, complete: function(){
				$(this).css({height: 'auto'});
			}})
		}).mouseleave(function(){
			gal.pause = false;
			autoslide();
			gal.about.animate({height: 0},{duration: 350, queue: false, complete: function(){
			}})
		})

		function autoslide(){
			if(_t) clearTimeout(_t);
			if(_int) clearInterval(_int);
			var _mM = 0;
			if(gal.autoSlide && !gal.pause){
				_int = setInterval(function(){
					if(_mM == -308){
						_mM = 0;
					}
					gal.timer.css({marginLeft: _mM-=28});
				},gal.autoSlide/12);
				gal.start.removeClass('pause');
				_t = setTimeout(function(){
					var next = gal.active;
					if((next + 1) > gal.thumbs.length-1) next = 0;
					else next += 1;
					changeEl(next);
				},gal.autoSlide);
			}else{
				if(_int) clearInterval(_int);
				gal.start.addClass('pause');
			};
		};

		gal.start.click(function(){
			if($(this).hasClass('pause')){
				gal.pause = false;
			}else{
				gal.pause = true;
			};
			autoslide();
			return false;
		});
		autoslide();

		function showLoader(flag){
			if(_int) clearInterval(_int);
			if(_t) clearTimeout(_t);
			var _loader = $('.loader',gal);
			if(flag){
				_loader.css({opacity:0,display: 'block'}).animate({opacity:1},300);
			}else{
				_loader.css({opacity:1,display: 'block'}).animate({opacity:0},300,function(){
					$(this).css({opacity:0,display: 'none'});
				});
			}
		}
		function loadItem(ind){
			var _url = gal.thumbs.eq(ind).find('a:eq(0)').attr('rel');
			if(gal.elParent.children().length && gal.elParent.children().filter('[num='+ind+']').length){
				showEl(gal.elParent.children('[num='+ind+']'));
			}else{
				$.ajax({
					url: _url,
					type: "GET",
					beforeSend: showLoader(true),
					data: 'getGalleryEl='+ind,
					success: function(html){
						var _li = $('<li>'+html+'</li>');
						_li.css({
							position: 'absolute',
							top: 0,
							left:0,
							zIndex: 3,
							opacity: 0
						});
						_li.attr('num',ind);

						if($.browser.opera){
							$(html).find('img').each(function(){
								var _img = new Image();
								if(_img.complete){
									showEl(_li)
								}else {
									_img.onload = function(){
										showEl(_li)
									}
								}
								_img.src = this.src;
							});
						}else{
							$(html).find('img').load(function(){
								showEl(_li);
							})
						}
					},
					error: function(){
						alert('Incorect path to file, or file not found');
					}
				})
			};
		};

		gal.elParent.empty();
		loadItem(0);
		function showEl(el){
			showLoader(false);
			if(!gal.elParent.children().filter(el).length) gal.elParent.append(el);
			$(gal).find('h2').html(el.find('img').attr('alt'));
			gal.descript.slideUp(300,function(){
				if(el.find('div.description').length){
					$(this).find('.description-child').html(el.find('div.description').html());
					$(this).slideDown(300)
				}
			});
			el.css({opacity: 0, zIndex:5}).animate({opacity: 1},{duration: _d,complete: function(){
				gal.elParent.children().eq(gal.active).css({opacity: 0});
				gal.elParent.children().removeClass('active');
				$(this).addClass('active').removeAttr('style');
				autoslide();
			}})
		}
		function changeEl(ind){
			if(gal.active!=ind){
				moveGallery(ind);
				gal.thumbs.removeClass('active').eq(ind).addClass('active');
				loadItem(ind);
				gal.active = ind;
			}
		}
//get Active position
		function getActivePosition(_next){
			var _curentPosition = gal.thumbs.eq(_next).offset().left;
			var _ThumbsWindowPosition = gal.thumbsParent.offset().left;
			if(_curentPosition > _ThumbsWindowPosition && _curentPosition < (_ThumbsWindowPosition+gal.thumbsParent.width())){
				//we can see active thumbs now
				return false;
			}else{
				//need scroll thumbs
				return true;
			}
		}
//move thumbs
		function moveGallery(_next){
			if(gal.active > _next){
				_mM = gal.thumbs.outerWidth(true)*_next - gal.thumbsParent.width()+gal.thumbs.outerWidth(true);
				if(_mM < 0) _mM = 0;
			}else{
				_mM = gal.thumbs.outerWidth(true)*_next;
				if(_mM > _maxMargin) _mM = _maxMargin;
			}
			gal.move.animate({left: -_mM},{duration: _d, queue: false});
			_direction = false;
		}
	});
}

function initFadeNav(){
	var speed = 500;
	var holder = $('#nav');
	var active_drop = holder.find('>.active>.drop');
	var all_drop = $('#nav>li>.drop');
	holder.find('>li:has(.drop)').each(function(){
		var hold = $(this);
		var drop = hold.find('>.drop');
		if(!hold.hasClass('active')){
			drop.css({opacity:0});
		}
		hold.mouseenter(function(){
			all_drop.css({zIndex:1});
			active_drop.stop().animate({
				opacity:0
			}, {queue:false, duration:speed, complete:function(){
				active_drop.css({display:'none'});
			}});
			drop.css({display:'block', zIndex:2}).stop().animate({
				opacity:1
			}, {queue:false, duration:speed, complete:function(){
				drop.css({opacity:'auto'});
			}});
		}).mouseleave(function(){
			drop.stop().animate({
				opacity:0
			}, {queue:false, duration:speed, complete:function(){
				drop.css({display:'none'});
			}});
		});
	});
	holder.mouseleave(function(){
		all_drop.css({zIndex:1});
		active_drop.css({display:'block', zIndex:2}).stop().animate({
			opacity:1
		}, {queue:false, duration:speed, complete:function(){
			active_drop.css({opacity:'auto'});
		}});
	});
}


function initTabs(){
	$('ul.tabset').each(function(){
		var _list = $(this);
		var _links = _list.find('a.tab');

		_links.each(function() {
			var _link = $(this);
			var _href = _link.attr('href');
			var _tab = $(_href);

			if(_link.hasClass('active')) _tab.show();
			else _tab.hide();

			_link.click(function(){
				_links.filter('.active').each(function(){
					$($(this).removeClass('active').attr('href')).hide();
				});
				_link.addClass('active');
				_tab.show();
				return false;
			});
		});
	});
}

function initButtons(){
var menu = document.getElementById("nav");
	if(menu) {
		var list = menu.getElementsByTagName("a");
		for(var i = 0; i < list.length; i++) {
			list[i].onmousedown = function() {
				if(this.className.indexOf("pressed") == -1) this.className += " pressed";
			}
			list[i].onmouseup = function() {
				this.className = this.className.replace("pressed","");
			}
			list[i].onmouseout = function() {
				this.className = this.className.replace("pressed","");
			} 
		}
	}
	var buttons = document.getElementsByTagName("a");
	for(var i = 0; i < buttons.length; i++) {
		if(buttons[i].className.indexOf("button") != -1) {
			buttons[i].onmousedown = function() {
				if(this.className.indexOf("pressed") == -1) this.className += " pressed";
			}
			buttons[i].onmouseup = function() {
				this.className = this.className.replace("pressed","");
			}
			buttons[i].onmouseout = function() {
				this.className = this.className.replace("pressed","");
			} 
		}
	}

	var	bns = document.getElementsByTagName("input");
	for(var i = 0; i < bns.length; i++) {
		if(bns[i].type == "submit") {
			bns[i].onmousedown = function() {
				if(this.className.indexOf("pressed") == -1) this.className += " pressed";
			}
			bns[i].onmouseup = function() {
				this.className = this.className.replace("pressed","");
			}
			bns[i].onmouseout = function() {
				this.className = this.className.replace("pressed","");
			} 
		}
	}
}

function tbSlider(){
	var _d= delay = 500 ;
	$('#footer, #header').each(function(){
        var section = this;
		var slider = $('.sliding-block', this);
		var _btns = $('.buttons a', this);
		slider.data('h', slider.height());
		slider.css({height: 0});
		_btns.click(function(){
			var _self = $(this);
			if(slider.height() > 0){
				slider.animate({height: 0},{duration: _d,complete:function(){
					_self.parent().removeClass('active');
				}})
			}else{
                if ($(section).attr('id') === 'footer') {
                    delay = 0;
                }
                else {
                    delay = _d;
                }
				slider.animate({height: slider.data('h')},{duration: delay, complete: function(){
					_self.parent().addClass('active');
                    if ($(section).attr('id') === 'footer') {
                        $.scrollTo('#footer', {duration: _d});
                    }
				}})
			}
			return false;
		});
	});
}

$(function(){
	gallery();
	initButtons();
	initFadeNav();
	initTabs();
	tbSlider();
})

