jQuery.fn.fadeGall = function(_options){

var _options = jQuery.extend({
	gall_holder: '.list',
	gall_nav: false,
	btn_prev: false,
	btn_next:false,
	btn_play_stop: false,
	play_class: 'play',
	active_class: 'active',
	change_speed: 700,
	change_time: false
}, _options);

return this.each(function() {
	var gall_box = jQuery(this);
	var gall_holder = gall_box.find(_options.gall_holder);
	var gall_list = gall_holder.children();
	var gall_nav = false;
	if(_options.gall_nav) { gall_nav = gall_box.find(_options.gall_nav);}
	var active_class = _options.active_class;
	var _active = gall_list.index(gall_list.filter('.' + active_class));
	if(_active == -1) { _active = 0;}
	var change_speed = _options.change_speed;
	var change_time = _options.change_time;
	var _timer;

	// set default css styles
	gall_holder.css({
		position: 'relative',
		overflow: 'hidden'
	});
	gall_list.removeClass(active_class).css({
		position: 'absolute',
		top: 0,
		left: 0,
		zIndex: 1,
		opacity: 0
	});
	gall_list.eq(_active).addClass(active_class).css({
		position: 'relative',
		zIndex: 2,
		opacity: 1
	});
	if(change_time) { _timer = setTimeout(function(){ _nextEl();}, change_time);}

	if(gall_nav) {
		gall_nav.removeClass(active_class).eq(_active).addClass(active_class);
		//gall_nav onclick
		gall_nav.each(function(_ind){
			this.onclick = function(){
				_changeEl(_ind);
				return false;
			}
		});
	}

	//function nextEl
	function  _nextEl(){
		var _ind = _active;
		if(_ind < gall_list.length -1 ){
			_ind++;
			_changeEl(_ind);
		}
	}

	//function changeEl
	function _changeEl(_ind) {
		if(_ind != _active) {
			if (_timer) { clearTimeout(_timer);}
			gall_holder.stop().animate({height: gall_list.eq(_ind).outerHeight()}, change_speed/2);
			gall_list.eq(_active).css({zIndex: 1, position: 'absolute'}).removeClass(active_class).stop().animate({opacity: 0}, change_speed);
			gall_list.eq(_ind).css({zIndex: 2, position: 'relative'}).addClass(active_class).stop().animate({opacity: 1}, change_speed, function(){
				gall_holder.height('auto');
			});
			if(gall_nav) {
				gall_nav.eq(_active).removeClass(active_class)
				gall_nav.eq(_ind).addClass(active_class);
			}
			_active = _ind;
			if(change_time) { _timer = setTimeout(function(){ _nextEl();}, change_time);}
		}
	}
});
};

function visualWidth() {
	var divs_ = document.getElementsByTagName("div");
	for(j=0; j<divs_.length; j++){
		if (divs_[j].className.indexOf("img-content") !=-1) {
			var _img = divs_[j].getElementsByTagName('img')[0];
			divs_[j].parentNode.style.width = _img.offsetWidth + 24 + "px";
		}
	}
}

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 initGallery() {
	$('#gallerya').fadeGall({
		change_time: 5000,
		change_speed:500
	});
}

function initFormValidation() {
	var _checkValue = 'humanForm';

	$('form.validate-form').each(function(){
		var _form = $(this);
		var _checkLists = _form.find('.check-list');

		function validate() {
			var _flag = true;
			_checkLists.each(function(){
				if($(this).find('input[type="checkbox"]:checked').length < 1) {
					_flag = false;
					$(this).find('.check-error').slideDown(300);
				}
			});
			return _flag;
		}

		_form.submit(function(){
			_form.find('.val-protect').val(_checkValue);
			if(!validate()) return false;
		});
	});
}

$(document).ready(function(){
	initGallery();
	visualWidth();
	initTabs();
	initFormValidation();
});