window.addEvent("domready",function(){
	$ES(".tabmods").each(function(el,i){
		var module_id = el.getProperty("id");
		var $G = $Gavick["tabmods"+module_id]; 
		var sfx = $G["styleSuffix"];
		var flop = $G["showFlop"];
		var modsArray = el.getElementsBySelector('.tabmods_item-'+sfx);
		var animation = ($G["autoAnimation"] == 0) ? true : false;
		var actual = 1;
		var evnt = ($G["activator"] == 0) ? "click" : "mouseenter";
		var amount = modsArray.length;
		var timer = false;
		if($G["styleType"] == 1){
			var baseWidth = $E(".tabmods_container2-"+sfx, el).getSize().size.x;
			el.setStyle("width",baseWidth+"px");
			var listTab = $E('.tabmodsmenu_ul-'+sfx,el);
			baseWidth -= listTab.getSize().size.x;
			baseWidth -= listTab.getStyle("margin-left").toInt();
			baseWidth -= listTab.getStyle("margin-right").toInt();
			baseWidth -= $E(".tabmods_container0-"+sfx,el).getStyle("margin-left").toInt();
			baseWidth -= $E(".tabmods_container0-"+sfx,el).getStyle("margin-right").toInt();
			baseWidth -= $E(".tabmods_container0-"+sfx,el).getStyle("padding-left").toInt();
			baseWidth -= $E(".tabmods_container0-"+sfx,el).getStyle("padding-right").toInt();
			$E(".tabmods_container1-"+sfx,el).setStyle("width",baseWidth+"px");
			$E(".tabmods_container0-"+sfx,el).setStyle("width",baseWidth+"px");
			$ES(".tabmods_item"+sfx, el).setStyle("width",baseWidth+"px");
		}
		if(flop==1){
			//alert("asdfsf");
			$ES('.tabmodsmenu_ul-'+sfx+' li', el)[1].toggleClass("active");
			//tabmods_anim("right" , 1, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
	}
	   else{
			$E('.tabmodsmenu_ul-'+sfx+' li',el).toggleClass("active");
		} 
		$E('.tabmodsmenu_ul-'+sfx+' li',el).toggleClass("active");
		var param = ($G["animationType"] == 1) ? "width": "height";
		$E(".tabmods_container2-"+sfx, el).setStyle(param, ((amount+1)*$E(".tabmods_container1-"+sfx, el).getSize().size.x));
		$ES(".tabmods_item-"+sfx, el).each(function(e){e.setStyle("width", $E(".tabmods_container1-"+sfx, el).getSize().size.x + "px");});
		$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elm,j){
			elm.addEvent(evnt,function(){
			    actual = tabmods_anim(j, actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
				
				$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt){elmt.setProperty("class","");});
				$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
				
				if(timer){
					$clear(timer);	
					timer = (function(){
						actual = tabmods_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
						$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt, i){elmt.setProperty("class","");});
						$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
					}).periodical($G["animationInterval"]);
				}
			});
		});
		
		if($E(".tabmods_button_next-"+sfx, el)){
			
			$E(".tabmods_button_next-"+sfx, el).addEvent("click",function(){
				actual = tabmods_anim('right', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
				$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt){elmt.setProperty("class","");});
				$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
				
				if(timer){
					$clear(timer);
					timer = (function(){
						actual = tabmods_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
						$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt, i){elmt.setProperty("class","");});
						$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
					}).periodical($G["animationInterval"]);
				}
			});
		}
		
		if($E(".tabmods_button_prev-"+sfx, el)){
			$E(".tabmods_button_prev-"+sfx, el).addEvent("click",function(){
				actual = tabmods_anim('left', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);	
				$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt){elmt.setProperty("class","");});
				$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
				
				if(timer){
					$clear(timer);	
					timer = (function(){
						actual = tabmods_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
						$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt, i){elmt.setProperty("class","");});
						$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
					}).periodical($G["animationInterval"]);
				}
			});
		}
		
		if($G["autoAnimation"] == 1){
			timer = (function(){
				actual = tabmods_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"], $G);
				$ES('.tabmodsmenu_ul-'+sfx+' li', el).each(function(elmt, i){elmt.setProperty("class","");});
				$ES('.tabmodsmenu_ul-'+sfx+' li', el)[actual].toggleClass("active");
			}).periodical($G["animationInterval"]);
		}
	});
});

function tabmods_anim(direct, actual, amount, modsArray, el, t, s, $G){	
	var sfx = $G["styleSuffix"];
	var scr = new Fx.Scroll($E(".tabmods_container1-"+sfx, el), {duration: s, wait: true, transition: $G["animationTransition"]});
	
	if(direct == 'left'){
		(actual > 0) ? actual-- : actual = amount - 1;
		scr.toElement(modsArray[actual]);
	}else if(direct == 'right'){
		(actual < (amount-1)) ? actual += 1 : actual = 0;
		scr.toElement(modsArray[actual]);
	}else{
		actual = direct;
		scr.toElement(modsArray[actual]);
	} 
	return actual;
}
