var AccordionBannerController={
	// @param {NodeList, Array} checkList - элементы checkbox
	// @param {NodeList, Array} slideList - список элементов представляющих слайды
	// @param {NodeList, Array} labelList - cписок элементов представляющих метки (как-то так по русски)
	// @return {Bool} результат проыверки данных
	init:function(checkList, slideList, labelList){
		var status = ( checkList.length &&  slideList.length && labelList.length && checkList.length == labelList.length && checkList.length == slideList.length);
		if(status){
			this.checkList = checkList;
			this.slideList = slideList;
			this.labelList = labelList;
		}
		return status;
			
	},
	// Attention: Должен запускаться window.onload иначе будет баг с чекбоксом в IE9
	fixIfIE:function(){
		for(var i=0, len = this.checkList.length; i<len; i++) (function(_i){
			var 	checkBox = AccordionBannerController.checkList[_i],
					slide = AccordionBannerController.slideList[_i],
					label = AccordionBannerController.labelList[_i];
			if(checkBox.checked){
				slide.style.width="100%";
				$(label).addClass("ie-label-active");
			}
			/*
				Attention:
				1. 	in IE9 propertychange event work if only attachEvent (not addEventListener!, jquery bind() don't work too)
					<) http://learn.javascript.ru/events-change
				2. 	OnChange event выполниться только после потери фокуса на checkboxе в IE, поэтому не подойдет
				3. 	Альтернатива propertychange  событие onClick, но тогда прийдтся искать где галочка была снята
			*/
			checkBox.attachEvent && checkBox.attachEvent("onpropertychange",function(e){
				e=e||event;
				// При переключении в радиобоксе будет происходить вызов события сразу у двух элементов. Для одного надо будет показать слайд, а для другого скрыть
				if(e.propertyName=="checked"){
					if(!checkBox.checked){
						$(label).removeClass("ie-label-active");
						$(slide).animate({width:0},1000,function(){});
					}else{
						$(label).addClass("ie-label-active");
						$(slide).animate({width:"100%"},1000,function(){});
					}
				}
				//console.log("checked "+_i);
			});
			$(label).click(function(){
				checkBox.checked=true;
			});
		}(i));
	},
	// timeout {Int} - time interval in ms
	runAnimation:function(timeout){
		var 	slideCounter = 1, //  с какого  слайда начинать анимацию, 0-вой уже выставлен в верстке
				slideMax = this.checkList.length-1,
				slideContinue=true;
		
		setInterval(function(){
			if(slideContinue){
				AccordionBannerController.checkList[slideCounter].checked = true;
				slideCounter = slideCounter<slideMax ? slideCounter+1 : 0;
			}else{
				slideContinue = true;
			}
		},3000);
		// Если кликнули в процессе анимации
		$(AccordionBannerController.labelList).each(function(_i){
			$(this).click(function(){
				slideContinue=false;
				slideCounter=_i;
			});
		});
	}
};
//AccordionBannerController.checkList = checkList;
//AccordionBannerController.slideList = slideList;
//AccordionBannerController.labelList =labelList;

$(document).ready(function(){
	var 	checkList = document.querySelectorAll("input[name=slider-switch]"),
			slideList = document.querySelectorAll("#banner-slider > li"),
			labelList = document.querySelectorAll("label[for^=slide]");
	var status = AccordionBannerController.init(checkList, slideList, labelList);
	if(status){
		(!Modernizr.csstransitions) && AccordionBannerController.fixIfIE();
		AccordionBannerController.runAnimation();
	}else{
		throw("Wrong arguments type");
	}
	
	$(".slider-panel").each(function(){
		var 	self = $(this),
				div = self.find(".hover-layer");
		self.bind("mouseover",function(){
			if(div){
				div.css("display","");
			}
		}).bind("mouseout",function(){
			if(div){
				div.css("display","none");
			}
		});
	});
});
