//******************************************************************************/
//CONTROLE DA ROLETA DE IMAGENS
/******************************************************************************/

//DECLARAÇÃO OBRIGATÓRIA
var leftArrowEnabled;
var leftArrowDisabled;
var rightArrowEnabled;
var rightArrowDisabled;
var containerWidth;
var elementWidth;
var typeElement;

//DECLARAÇÃO OPCIONAIS
var moveView = true;
var boundaries = true;
var autoFoward =  false;
var timeFoward = 5000;
var roletaInterval;

//CONTROLE INTERNO
var globalWidth;
var qtdElementsPerView;

function init_roleta(config){
	
	//CONFIGURANDO DECLARAÇÕES OBRIGATÓRIAS
	if(config.leftArrowEnabled!=undefined){
		leftArrowEnabled = config.leftArrowEnabled;
	}else{
		alert("ERRO(ROLETA)! precisa configurar o caminho da seta esquerda;");
		return false;
	}
	
	if(config.leftArrowDisabled!=undefined){
		leftArrowDisabled = config.leftArrowDisabled;
	}else{
		leftArrowDisabled = leftArrowEnabled;
	}
	
	if(config.rightArrowEnabled!=undefined){
		rightArrowEnabled = config.rightArrowEnabled;
	}else{
		alert("ERRO(ROLETA)! precisa configurar o caminho da seta direita;");
		return false;
	}
	
	if(config.rightArrowDisabled!=undefined){
		rightArrowDisabled = config.rightArrowDisabled;
	}else{
		rightArrowDisabled = rightArrowEnabled;
	}
	
	if(config.containerWidth!=undefined){
		containerWidth = config.containerWidth;
	}else{
		return roletaErro();
	}
	
	if(config.elementWidth!=undefined){
		elementWidth = config.elementWidth;
	}else{
		alert("ERRO(ROLETA)! precisa configurar a largura de cada elemento;");
		return false;
	}
	
	if(config.typeElement!=undefined){
		typeElement = config.typeElement;
	}else{
		alert("ERRO(ROLETA)! precisa configurar o tipo de elemento da roleta;");
		return false;
	}
	
	//CONFIGURANDO DECLARAÇÕES OPCIONAIS
	if(config.autoFoward!=undefined)			autoFoward 			= config.autoFoward;
	if(config.boundaries!=undefined)			boundaries 			= config.boundaries;
	if(config.moveView!=undefined)				moveView 			= config.moveView;
	if(config.timeFoward!=undefined)			timeFoward 			= config.timeFoward;
	
	
	if(!boundaries){
		qtdElements = $("#roleta .roleta_container div.global > "+typeElement).length;
		qtdElementsPerView = Math.floor(containerWidth/elementWidth);
		if(qtdElements>qtdElementsPerView){
			lastElementsView = qtdElements-qtdElementsPerView-1;
			var elementParent = $("#roleta .roleta_container div.global "+typeElement).parent();
			var lastElement = $("#roleta .roleta_container div.global "+typeElement+":gt("+lastElementsView+")");
			var firstElement = $("#roleta .roleta_container div.global "+typeElement+":lt("+qtdElementsPerView+")");
			$(firstElement).clone().appendTo(elementParent);
			$(lastElement).clone().prependTo(elementParent);
		}
	}
	
	var qtdElements = $("#roleta .roleta_container div.global > "+typeElement).length;
	globalWidth = qtdElements*elementWidth;	
	
	$(".roleta_container div.global").css("width",globalWidth);
	
	if(globalWidth<=containerWidth){
		$("img.foward").attr("src", rightArrowDisabled);
		$(".btn_right a").attr("onclick","");
		$("img.backward").attr("src", leftArrowDisabled);
		$(".btn_left a").attr("onclick","");
	}else{
		if(autoFoward)roletaInterval = setInterval(foward, timeFoward);
		if(boundaries){
			$("img.foward").attr("src", rightArrowEnabled);
			$(".btn_right a").attr("href","javascript:foward();");
			$("img.backward").attr("src", leftArrowDisabled);
			$(".btn_left a").attr("href","javascript:;");
		}else{
			$(".roleta_container div.global").css("marginLeft",-containerWidth+elementWidth+"px");
			$("img.foward").attr("src", rightArrowEnabled);
			$(".btn_right a").attr("href","javascript:foward();");
			$("img.backward").attr("src", leftArrowEnabled);
			$(".btn_left a").attr("href","javascript:backward();");
		}
	}
	
}


// ESTE MOVE DE 3 EM 3 QUADRO---------------------
function foward(){
	if(moveView){
		var margin = $(".roleta_container div.global").css("marginLeft").replace("px","");
		var leftBound = -(globalWidth-containerWidth);
		
		$(".btn_right a").attr("href","javascript:;");
		
		if((margin-containerWidth)<leftBound){
			move = margin-leftBound;
			moveRoleta(-move, margin);
		}else{
			moveRoleta(-containerWidth, margin);
		}
	}else{
		var margin = $(".roleta_container div.global").css("marginLeft").replace("px","");
		moveRoleta(-elementWidth, margin);
	}
}

function backward(){
	if(moveView){
		var margin = $(".roleta_container div.global").css("marginLeft").replace("px","");
		
		$(".btn_left a").attr("href","javascript:;");
		if(margin > -containerWidth){
			move = -margin;
			$(".btn_right a").attr("href","javascript:;");
			moveRoleta(move, margin);
		}else{
			moveRoleta(containerWidth, margin);
		}
	}else{
		var margin = $(".roleta_container div.global").css("marginLeft").replace("px","");
		moveRoleta(elementWidth, margin);
	}	
}

function moveRoleta(num, margin){
	
	$(".btn_left a").attr("href","javascript:;");
	$(".btn_right a").attr("href","javascript:;");
	var value = parseInt(margin)+num;
	$(".roleta_container div.global").animate({ 
        marginLeft: parseInt(value)+"px"
	}, 250, "swing", verifica );
}

function verifica(){
	
	clearInterval(roletaInterval);
	
	var margin = $(".roleta_container div.global").css("marginLeft").replace("px","");
	var leftBound = (globalWidth-containerWidth)*(-1);
	
	
	if(margin==0 && globalWidth>containerWidth){
		if(boundaries){
			$("img.backward").attr("src", leftArrowDisabled);
			$("img.foward").attr("src", rightArrowEnabled);
			$(".btn_right a").attr("href","javascript:foward();");
			$(".btn_left a").attr("href","javascript:;");
			if(autoFoward)roletaInterval = setInterval(foward, timeFoward);
		}else{
			$(".roleta_container div.global").css("marginLeft",(leftBound+containerWidth)+"px");
			$("img.foward").attr("src", rightArrowEnabled);
			$(".btn_right a").attr("href","javascript:foward();");
			$("img.backward").attr("src", leftArrowEnabled);
			$(".btn_left a").attr("href","javascript:backward();");
			if(autoFoward)roletaInterval = setInterval(foward, timeFoward);
		}
	}else if(margin==leftBound && globalWidth>containerWidth){
		if(boundaries){
			$("img.foward").attr("src", rightArrowDisabled);
			$("img.backward").attr("src", leftArrowEnabled);
			$(".btn_left a").attr("href","javascript:backward();");
			$(".btn_right a").attr("href","javascript:;");
		}else{
			$(".roleta_container div.global").css("marginLeft",-containerWidth+"px");
			$("img.foward").attr("src", rightArrowEnabled);
			$(".btn_right a").attr("href","javascript:foward();");
			$("img.backward").attr("src", leftArrowEnabled);
			$(".btn_left a").attr("href","javascript:backward();");
			if(autoFoward)roletaInterval = setInterval(foward, timeFoward);
		}
	}else{
		$("img.foward").attr("src", rightArrowEnabled);
		$(".btn_right a").attr("href","javascript:foward();");
		$("img.backward").attr("src", leftArrowEnabled);
		$(".btn_left a").attr("href","javascript:backward();");
		if(autoFoward)roletaInterval = setInterval(foward, timeFoward);
	}
	
	
}




// TROCA IMAGENS NO HTML E ACIONA NO BACKGROUND
function init_imgToBackground(element){
	$(element+" img").each(function(i){
		$(this).parent().css("background","url("+$(this).attr("src")+") no-repeat center center #fff");
		$(this).hide();
	});
}

var _arr_imgs = new Array();
var _arr_tit = new Array();
var _arr_pos = 0;

// ADICIONA EVENTOS DE CLIQUE PARA TROCA DAS IMAGENS
function init_imgs_events(){
	$("#roleta .roleta_container .global ul li").each(function(i){
		_arr_imgs.push($(this).find("a").attr("href"));
		_arr_tit.push($(this).find("a").attr("title"));
		$(this).find("a").attr("href", "javascript:;").click(function(){
			changeImg(i);
		});
	});
}


// FAZ A TROCA DAS IMAGENS
function changeImg(i){
	_arr_pos = i;
	_img = _arr_imgs[i];
	_title = _arr_tit[i];
	$("#img").fadeOut("slow", function(){
		$("#img").load("imagem.php?img="+_img, function(){
			$(this).css("background","url("+_img+") no-repeat center center");
			$(".title").text(_title);
			$(this).empty();
			$(this).fadeIn("slow");
		});
	});
}

function nextImg(){
	if(_arr_pos<(_arr_imgs.length-1)){
		changeImg(_arr_pos+1);
	}
}

function prevImg(){
	if(_arr_pos>0){
		changeImg(_arr_pos-1);
	}
}