/*---- clear inputs function ---*/
function clearInputs(){
	$('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;
		}
	});
}
/*--- visual animation function ---*/
function initVisual(){
	var stay_time = 5000; //in ms
	var change_speed = 800; //in ms
	var _hold = $('#visual');
	if(_hold.length){
		var list_h = _hold.children('ul');
		var _slideNum = _hold.find('.slide-num');
		list_h.append(list_h.children().eq(0).clone());
		var _list = list_h.children();
		var _slideNumHTML = '';
		for (i=1;i<_list.length;i++) _slideNumHTML += '<a href="#"><span>' + i + '</span></a>';
		_slideNum.html(_slideNumHTML);
		var _numLink = _slideNum.find('a');
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		_list.removeClass('active').hide().eq(_a).addClass('active').show();
		_numLink.eq(_a).addClass('active');
		if(_list.length){
			var _t;
			var t_f = true;
			
			_hold.mouseenter(function(){
				t_f = false;
				if(_t) clearTimeout(_t);
			}).mouseleave(function(){
				if(_t) clearTimeout(_t);
				t_f = true;
				_t = setTimeout(function(){
					changeEl(true);
				}, stay_time);
			});
			
			_numLink.click(function(){
				return false;
			});
			
			_numLink.hover(function(){
				if(_f && !$(this).hasClass('active')){
					_f = false;
					_numLink.removeClass('active');
					var el_a = _list.eq(_a);
					var _prevEl = _a;
					_a = _numLink.index(this);
					var el_ind = _list.eq(_a);
					var _nn = 1;
					var _direcion = 0;
					
					if(_prevEl > _a) {
						_nn = _prevEl - _a
					}else{
						_nn = _a - _prevEl;
						_direcion = 1;
					}
					
					list_h.height(list_h.height());
					el_a.removeClass('active');
					el_ind.addClass('active').show();
					var __left = parseInt(list_h.css('left'));
					if(_direcion==0){
						list_h.css('left',__left-_step);
						list_h.animate({
							left: '+=' + _step
						}, {
								duration: change_speed,
								easing: 'easeInOutBack',
								complete:function(){
									el_a.css('display', 'none');
									$(this).css('left', 0).animate({
										height: el_ind.height()
									}, 200, function(){
										$(this).height('auto');
										_f = true;
										if(_a == _list.length - 1){
											_list.eq(0).show();
											_list.eq(_a).hide();
											_a = 0;
										}
										if(t_f){
											_t = setTimeout(function(){
												changeEl(true);
											}, stay_time);
										}
										_numLink.removeClass('active');
										_numLink.eq(_a).addClass('active');
									});
								}
						});
					}else{
						list_h.animate({left: '-=' + _step},  {duration: change_speed, easing: 'easeInOutBack', complete:function(){
							el_a.css('display', 'none');
							$(this).css('left', 0).animate({height: el_ind.height()}, 200, function(){
								$(this).height('auto');
								_f = true;
								if(_a == _list.length - 1){
									_list.eq(0).show();
									_list.eq(_a).hide();
									_a = 0;
								}
								if(t_f){
									_t = setTimeout(function(){
										changeEl(true);
									}, stay_time);
								}
								_numLink.removeClass('active');
								_numLink.eq(_a).addClass('active');
							});
						}});
					}
				}
			});
			
			var _step = list_h.parent().width();
			var _f = true;
			
			function changeEl(){
				if(_t) clearTimeout(_t);
				if(_f){
					_f = false;
					var el_a = _list.eq(_a);
					_a++;
					var el_ind = _list.eq(_a);
					list_h.height(list_h.height());
					el_a.removeClass('active');
					el_ind.addClass('active').show();
					list_h.animate({left: -_step},  {duration: change_speed, easing: 'easeInOutBack', complete:function(){
						el_a.css('display', 'none');
						$(this).css('left', 0).animate({height: el_ind.height()}, 200, function(){
							$(this).height('auto');
							_f = true;
							if(_a == _list.length - 1){
								_list.eq(0).show();
								_list.eq(_a).hide();
								_a = 0;
							}
							if(t_f){
								_t = setTimeout(function(){
									changeEl(true);
								}, stay_time);
							}
							_numLink.removeClass('active');
							_numLink.eq(_a).addClass('active');
						});
					}});
				}
			}
			
			if(t_f){
				_t = setTimeout(function(){
					changeEl(true);
				}, stay_time);
			}
		}
	}
}
$(document).ready(function(){
	clearInputs();
	initVisual();
});
