/*--- IE6 hover ---*/
function ieHover(h_list){
	if (jQuery.browser.msie && jQuery.browser.version < 7){
		jQuery(h_list).hover(function(){
			jQuery(this).addClass('hover');
		}, function(){
			jQuery(this).removeClass('hover');
		});
	}
}
/*---- clear inputs function ---*/
function clearInputs(){
	jQuery('input:text, input:password, textarea').each(function(){
		if(!this.val) this.val = this.value;
		this.onfocus = function(){
			if(this.value == this.val) this.value = '';
		}
		this.onblur = function(){
			if(this.value == '') this.value = this.val;
		}
	});
}
/*--- fade gall function ---*/
function fadeGall(){
	var stay_time = 4000; //in ms
	jQuery('div.gallery-hold').each(function(){
		var _hold = jQuery(this);
		var _list = _hold.children('div.slide');
		var btn_prev = _hold.find('.btn-hold a.btn-prev');
		var btn_next = _hold.find('.btn-hold a.btn-next');
		var btn_pause = _hold.find('.btn-hold a.btn-stop');
		var btn_play = _hold.find('.btn-hold a.btn-play');
		
		var _t;
		var _f = true;
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		
		if(_f){
			btn_play.hide();
			btn_pause.show();
		}
		else{
			btn_pause.hide();
			btn_play.show();
		}
		_list.removeClass('active').css('opacity', 0).eq(_a).addClass('active').css('opacity', 1);
		
		btn_prev.click(function(){
			_stop();
			if(_a > 0) changeEl(_a - 1);
			else changeEl(_list.length - 1);
			return false;
		});
		btn_next.click(function(){
			_stop();
			if(_a < _list.length -1) changeEl(_a + 1);
			else changeEl(0);
			return false;
		});
		btn_pause.click(function(){
			_stop();
			return false;
		});
		btn_play.click(function(){
			_play();
			return false;
		});
		
		function _stop(){
			if(_t) clearTimeout(_t);
			_f = false;
			btn_pause.hide();
			btn_play.show();
		}
		function _play(){
			if(_t) clearTimeout(_t);
			_f = true;
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, stay_time);
			btn_play.hide();
			btn_pause.show();
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_ind != _a){
				_list.eq(_a).removeClass('active').animate({opacity: 0}, {queue:false, duration: 700});
				_list.eq(_ind).addClass('active').animate({opacity: 1}, {queue:false, duration: 700});
				_a = _ind;
			}
			if(_f){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, stay_time);
			}
		}
		
		if(_f){
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, stay_time);
		}
	});
}
/*--- scroller function ---*/
function initScroller(){
	var _duration = 5;
	jQuery('div.scroller-hold').each(function(){
		var _hold = jQuery(this);
		var btn_up = _hold.find('a.btn-prev');
		var btn_down = _hold.find('a.btn-next');
		var list_h = _hold.find('div.scroller > ul:eq(0)');
		
		var _step = list_h.parent().height();
		var _h = list_h.height();
		var _m = 0;
		var _d;
		_hold.mouseover(function(){
			_h = list_h.height();
			_m = -list_h.position().top;
			if(_h < _step) list_h.css('top', 0);
			else if(_h - _m < _step) list_h.css('top', -(_h - _step));
			
		});
		btn_up.mouseout(function(){
			list_h.stop();
		}).mousedown(function(){
			_h = list_h.height();
			_m = -list_h.position().top;
			
			if(_m > 0){
				_d = _m*_duration;
				list_h.animate({top: 0}, _d, 'linear');
			}
		}).mouseup(function(){
			list_h.stop();
		}).click(function(){
			return false;
		});
		
		btn_down.mouseout(function(){
			list_h.stop();
		}).mousedown(function(){
			_h = list_h.height();
			_m = -list_h.position().top;
			if(_h - _m - _step > 0){
				_d = (_h - _m - _step)*_duration;
				list_h.animate({top: -(_h - _step)}, _d, 'linear');
			}
		}).mouseup(function(){
			list_h.stop();
		}).click(function(){
			return false;
		});
		
		list_h.parent().mousewheel(function(event, delta){
			_h = list_h.height();
			_m = -list_h.position().top;
			if(delta > 0){
				if(_m > 0){
					if(_m > 20) list_h.css('top', -_m+20);
					else list_h.css('top', 0);
					return false;
				}
			}
			else{
				if(_h - _m - _step > 0){
					if(_h - _m - _step > 20) list_h.css('top', -_m-20);
					else list_h.css('top', -(_h - _step));
					return false;
				}
			}
		});
	});
}
jQuery(document).ready(function(){
	ieHover('#navigation li');
	clearInputs();
	fadeGall();
	initScroller();
});

var types = ['DOMMouseScroll', 'mousewheel'];
jQuery.event.special.mousewheel = {
	setup: function() {
		if ( this.addEventListener ) for ( var i=types.length; i; ) this.addEventListener( types[--i], handler, false );
		else this.onmousewheel = handler;
	},
	teardown: function() {
		if ( this.removeEventListener ) for ( var i=types.length; i; ) this.removeEventListener( types[--i], handler, false );
		else this.onmousewheel = null;
	}
};
jQuery.fn.extend({
	mousewheel: function(fn) {
		return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
	},
	unmousewheel: function(fn) {
		return this.unbind("mousewheel", fn);
	}
});
function handler(event) {
	var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true;
	event = jQuery.event.fix(event || window.event);
	event.type = "mousewheel";
	if ( event.wheelDelta ) delta = event.wheelDelta/120;
	if ( event.detail     ) delta = -event.detail/3;
	args.unshift(event, delta);
	return jQuery.event.handle.apply(this, args);
}