/*--- gallery ---*/
function initGall(){
	var _speed = 500; //in ms
	$('#carusel').each(function(){
		var _hold = $(this);
		var btn_prev = _hold.find('a.btn-prev');
		var btn_next = _hold.find('a.btn-next');
		var list_hold = _hold.find('div.carusel-holder > ul');
		var list_w = list_hold.children().length* list_hold.children().outerWidth(true);
		var hold_w = list_hold.parent().width();
		var _step = list_hold.children().outerWidth(true);
		var _m = 0;
		list_hold.css('left', -_m);
		
		$.doTimeout( 'c1', 7000, function(){
			moveList(true);
			return true;
		});
		
		btn_prev.click(function(){
			moveList(false);
			return false;
		});
		btn_next.click(function(){
			moveList(true);
			return false;
		});
		
		function moveList(_f){
			if(_f){
				if(list_w - _m > hold_w) _m += _step;
				else _m = 0;
			}
			else{
				if(_m > 0) _m -= _step;
				else _m = Math.ceil((list_w - hold_w)/_step)*_step;
			}
			list_hold.animate({left:-_m},{queue:false, duraton: _speed});
		}
	});
	
	$('#carusel2').each(function(){
		var _hold = $(this);
		var btn_prev = _hold.find('a.btn-prev');
		var btn_next = _hold.find('a.btn-next');
		var list_hold = _hold.find('div.carusel-holder > ul');
		var list_w = list_hold.children().length* list_hold.children().outerWidth(true);
		var hold_w = list_hold.parent().width();
		var _step = list_hold.children().outerWidth(true);
		var _m = 0;
		list_hold.css('left', -_m);
		
		$.doTimeout( 'c2', 7000, function(){
			moveList(true);
			return true;
		});
		
		btn_prev.click(function(){
			moveList(false);
			return false;
		});
		btn_next.click(function(){
			moveList(true);
			return false;
		});
		
		function moveList(_f){
			if(_f){
				if(list_w - _m > hold_w) _m += _step;
				else _m = 0;
			}
			else{
				if(_m > 0) _m -= _step;
				else _m = Math.ceil((list_w - hold_w)/_step)*_step;
			}
			list_hold.animate({left:-_m},{queue:false, duraton: _speed});
		}
	});
}
/*--- tabs ---*/
function initTabs(){
	var _speed = 500; //in ms
	$('div.tabs-holder').each(function(){
		var _btn = $(this).find('ul.tabset a');
		var box_hold = $(this).find('div.tab-content div.frame');
		var _box = box_hold.children('div.tab-box');
		var _a = (_btn.index(_btn.filter('.active:eq(0)')) != -1)?(_btn.index(_btn.filter('.active:eq(0)'))):(0);
		if(_a == -1) _a = 0;
		if(_box.length && _btn.length){
			_btn.removeClass('active').eq(_a).addClass('active');
			_box.removeClass('active-tab').css({display:'none', opacity:0}).eq(_a).addClass('active-tab').css({display:'block', opacity:1});
			
			_btn.click(function(){
				changeEl(_btn.index(this));
				return false;
			});
			function changeEl(_ind){
				if(_ind != _a){
					box_hold.stop().height(box_hold.height());
					_btn.eq(_a).removeClass('active');
					_btn.eq(_ind).addClass('active');
					_box.eq(_a).stop().removeClass('active-tab').animate({opacity: 0}, _speed, function(){ $(this).hide();});
					_box.eq(_ind).stop().show().addClass('active-tab').animate({opacity: 1}, _speed);
					box_hold.animate({height: _box.eq(_ind).outerHeight()}, _speed/2, function(){ $(this).height('auto');});
					_a = _ind;
				}
			}
		}
	});
}
/*--- fade gallery ---*/
function initFade(){
	var stay_time = 5000; //in ms
	var change_speed = 600; //in ms
	$('div.sponsors-box div.holder > ul').each(function(){
		var list_hold = $(this);
		var _list = list_hold.children();
		var _t, _f = true;
		
		var _a = (_list.index(_list.filter('.active:eq(0)')) != -1)?(_list.index(_list.filter('.active:eq(0)'))):(0);
		_list.removeClass('active').css({opacity:0, display:'none'}).eq(_a).addClass('active').css({opacity:1, display:'block'});
		list_hold.mouseenter(function(){
			_f = false;
			if(_t) clearTimeout(_t);
		}).mouseleave(function(){
			_f = true;
			if(_t) clearTimeout(_t);
			if(_f && stay_time){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, stay_time);
			}
		});
		if(_f && stay_time){
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, stay_time);
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t)
			if(_ind != _a){
				_list.eq(_a).stop().removeClass('active').animate({opacity:0}, change_speed, function(){ $(this).hide();});
				_list.eq(_ind).stop().show().addClass('active').animate({opacity:1}, change_speed);
				_a = _ind;
			}
			if(_f && stay_time){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, stay_time+change_speed);
			}
		}
	});
}
/*--- timer ---*/
function initTimer(){
	var _hold = $('#timer');
	if(_hold.length){
		var _time = eval('new Date('+_hold.text()+')');
		_time = _time.getTime();
		var t_el = $(' \
			<ul class="time-area" id="timer"> \
				<li><span class="separator">&nbsp;</span><strong class="time-days"></strong><em>DAYS</em></li> \
				<li><span class="separator">&nbsp;</span><strong class="time-hours"></strong><em>HOURS</em></li> \
				<li><span class="separator">&nbsp;</span><strong class="time-minutes"></strong><em>MINUTES</em></li> \
				<li><span class="separator">&nbsp;</span><strong class="time-seconds"></strong><em>SECONDS</em></li> \
			</ul> \
		');
		
		_hold.replaceWith(t_el);
		var days_box = t_el.find('.time-days');
		var hours_box = t_el.find('.time-hours');
		var minutes_box = t_el.find('.time-minutes');
		var seconds_box = t_el.find('.time-seconds');
		
		var _days, _hours, _minutes, _seconds;
		var _t, t_time;
		function _update(){
			if(_t) clearTimeout(_t);
			var new_time = new Date().getTime();
			t_time = Math.round((_time - new_time)/1000);
			if(t_time > 0){
				_days = Math.floor(t_time/(24*60*60));
				t_time -= _days*24*60*60;
				_hours = Math.floor(t_time/(60*60));
				t_time -= _hours*60*60;
				_minutes = Math.floor(t_time/60);
				t_time -= _minutes*60;
				_seconds = t_time;
				
				days_box.text(_days);
				hours_box.text((_hours < 10)?('0'+_hours):(_hours));
				minutes_box.text((_minutes < 10)?('0'+_minutes):(_minutes));
				seconds_box.text((_seconds < 10)?('0'+_seconds):(_seconds));
				
				_t = setTimeout(function(){
					_update();
				}, 500);
			}
			else{
				days_box.text('0');
				hours_box.text('00');
				minutes_box.text('00');
				seconds_box.text('00');
			}
		}
		_update();
	}
}
/*--- calendar ---*/
function initCalendar(){
	$('.ico-date').each(function(){
		var _el = $(this);
		_el.children('input:text').datepicker({
			showOn: 'button'
		});
	});
}
$(document).ready(function(){
	initGall();
	initTabs();
	initTimer();
	initFade();
	initCalendar();
});
