//	Oxxigeno Networks 2009
//	Jose Luis Garrido
//  Bruno Garcia Echegaray

// global variables 
var debug = true;
var $j = jQuery.noConflict();
var carousels = new Array();


Shadowbox.init({
    language:   "es",
    players:    ["img", "iframe", "html"],
    handleUnsupported: "link"
                
});


// onload body
$j(document).ready(function() {
	initAll();
	initReRenderAjax();
	if (typeof(openShadowbox) != "undefined" && openShadowbox)  {
		Shadowbox.open({
	        content:    '/login?protocol=http',
	        player:     "iframe",
	        title:      "identifícate",
	        height:     365,
	        width:      300
	    });
	}
	initNotStockColor();
	initMenuMarcas();
	initHistory();
	initModulesRotation();
	initMenuMarcasSlider();

});

function initMenuMarcasSlider() {
	if ($j("#menudemarcas").easySlider)
 		$j("#menudemarcas").easySlider();
}

function initMenuMarcas() {
	
	$j(".menu-marcas-oculto-trigger").hover(
									   
		function(){
		
			if(	$j(".menu-marcas-oculto").is(":hidden") )	$j(".menu-marcas-oculto").show();
			$j(".menu-marcas-oculto-trigger").parent().addClass("sfHover");
		},
		function(){
		
			if(	$j(".menu-marcas-oculto").is(":visible") )	$j(".menu-marcas-oculto").hide();
			$j(".menu-marcas-oculto-trigger").parent().removeClass("sfHover");
		}
	);
	$j(".menu-marcas-oculto").hover(
									   
	function(){
		
				$j(this).show();
				$j(".menu-marcas-oculto-trigger").parent().addClass("sfHover");
		},
		function(){
		
				$j(this).hide();
				$j(".menu-marcas-oculto-trigger").parent().removeClass("sfHover");
		}
	);
		
	
	$j(".menu-marcas-oculto-siguiente a").click(function() {
		
		$j(".menu-marcas-oculto-inner").animate({
			left: '-710'
		  }, 1000, function() {
			$j(".menu-marcas-oculto-siguiente").fadeOut();
			$j(".menu-marcas-oculto-anterior").fadeIn();
  		});
			
	});
	
	$j(".menu-marcas-oculto-anterior a").click(function() {
		
		$j(".menu-marcas-oculto-inner").animate({
			left: '0'
		  }, 1000, function() {
			$j(".menu-marcas-oculto-siguiente").fadeIn();
			$j(".menu-marcas-oculto-anterior").fadeOut();
  		});
			
	});
	
	
}

function initNotStockColor() {
	$j("a.notStock").backOpacity();
}

function initAll() {
	initFinder();
	initOrder();		
	initDynamicRadioButtons();
	initCuidadoPrendas();
	initBotonDesactivado();
	initEstadoPedido();
	initCarousel();
	jQuery('ul.sf-menu').superfish();
}

function initCarousel() {
	if (typeof(mycarousel_itemList) != "undefined") {
		if (mycarousel_itemList.length > 3) {
			jQuery('#mycarousel').jcarousel({
		        buttonNextEvent: '',
				buttonPrevEvent: '',
				easing: 'linear',
				scroll: 1,
				animation: 'slow',
				wrap: 'circular',
				itemVisibleInCallback: {
				  onBeforeAnimation: mycarousel_itemVisibleInCallback
				},
				initCallback: mycarousel_initCallback
				
			});
		} else {
			jQuery('#mycarousel').jcarousel({
		        buttonNextHTML: null,
				buttonPrevHTML: null,
				size: mycarousel_itemList.length,
				visible: mycarousel_itemList.length,
				itemVisibleInCallback: {
				  onBeforeAnimation: mycarousel_itemVisibleInCallback
				}
			});
		}
	}
	for (i=0; i<carousels.length; i++) {
		if (carousels[i].isCircular) {
			jQuery('#' + carousels[i].idElement).jcarousel({
		        buttonNextEvent: '',
				buttonPrevEvent: '',
				easing: 'linear',
				scroll: 1,
				animation: 'slow',
				wrap: 'circular',
				initCallback: mycarousel_initCallback,
				itemVisibleInCallback: {
				  onBeforeAnimation: mycarousel_cms_itemVisibleInCallback
				}
			});
		} else if (carousels[i].itemList != null) { 
			jQuery('#' + carousels[i].idElement).jcarousel({
		        buttonNextHTML: null,
				buttonPrevHTML: null,
				size: carousels[i].itemList.length,
				visible:carousels[i].itemList.length,
				initCallback: mycarousel_initCallback,
				itemVisibleInCallback: {
				  onBeforeAnimation: mycarousel_cms_itemVisibleInCallback
				}
			});
		} else {
			jQuery('#' + carousels[i].idElement).jcarousel({
		        buttonNextHTML: null,
				buttonPrevHTML: null,
				initCallback: mycarousel_initCallback,
				itemVisibleInCallback: {
				  onBeforeAnimation: mycarousel_cms_itemVisibleInCallback
				}
			});
		}
	}
}

function mycarousel_cms_itemVisibleInCallback(carousel, itemLi, index, state){
	var carouselId = carousel.container.find('ul').attr('id');
	var carouselDef = null;
	for (j=0; j<carousels.length; j++) {
		if (carouselId == carousels[j].idElement) {
			carouselDef = carousels[j];
		} 
	} 
	if ( carouselDef.itemList != null) {
		load_carousel_brand_item(carousel, itemLi, index, state, carouselDef.itemList);
	} else if (index >= carousel.size() || index < 0) {
		var idx = carousel.index(index);
		var newHtml = carousel.get(idx).html();
		carousel.add(index, newHtml);
	}
}



function mycarousel_itemVisibleInCallback(carousel, itemLi, index, state){
	/*$j(itemLi).find("a").html('<img src="' + mycarousel_itemList[index-1] + '" />');*/
	// The index() method calculates the index from a
	// given index who is out of the actual item range.
	
	load_carousel_brand_item(carousel, itemLi, index, state, mycarousel_itemList);
}

function load_carousel_brand_item(carousel, itemLi, index, state, carousel_items) {
	var idx = carousel.index(index, carousel_items.length);
	var item = carousel_items[idx - 1];
	var objImage = new Image();
	objImage.src = item.url;
	if (objImage.width == 0) {
		$j(objImage).load(function() { 
			carousel.add(index, mycarousel_getBrandItemHTML(item));
		});
	} else {
		carousel.add(index, mycarousel_getBrandItemHTML(item));
	}
}



/**
 * Item html creation helper.
 */
function mycarousel_getBrandItemHTML(item){
	objImage = new Image();
	objImage.src= item.url;
	if (objImage.width != 0) {
		w = objImage.width ;
	} else {
		w = 120;
	}
	ret=  '<a href="' + item.link + '" ><img src="' + item.url + '" width="' + w + '"/></a>';
	return ret;
};

function mycarousel_initCallback(_carousel, state){
	var timer;
	var idContainer = _carousel.container.parent().parent().attr('id');
	if (idContainer != '') {
		idContainer = '#' + idContainer;
	}
	$j(idContainer + ' .jcarousel-clip').mouseover(function(){ 
	   clearInterval(timer);		
	});
	$j(idContainer + ' .jcarousel-prev').mouseover(function(){
		clearInterval(timer);			
		timer = setInterval(function() {_carousel.prev();}, 50);
    });
	$j(idContainer + ' .jcarousel-prev').mouseout(function(){
		clearInterval(timer);
	    });
	$j(idContainer + ' .jcarousel-next').mouseover(function(){
		clearInterval(timer);		
		timer = setInterval(function() {_carousel.next();}, 50);
    });
	$j(idContainer + ' .jcarousel-next').mouseout(function(){
		clearInterval(timer);
    });
}

//cuidado prendas
function initCuidadoPrendas() {
	
	$j(".cuidado-prendas").mouseover(function (e) {
	  $j(".cuidado-prendas-txt").hide();
      $j(e.target).next("div").show();
    });
	
	$j(".cuidado-prendas").mouseout(function (e) {
      $j(".cuidado-prendas-txt").hide();
	});
	
	$j(".cuidado-prendas").mousemove(function (e) {
		$j(e.target).next("div").css('left',e.pageX+3);
		$j(e.target).next("div").css('top',e.pageY+3);				
	
	});
}

//botón desactivado
function initBotonDesactivado() {
	
	$j(".button.passive a span").mouseover(function (e) {
	  $j(".aviso-escoger-txt").hide();
	  $j(".aviso-escoger-txt").show();
    });
	
	$j(".button.passive a span").mouseout(function (e) {
      $j(".aviso-escoger-txt").hide();
	});
	
	$j(".button.passive a span").mousemove(function (e) {
		$j(".aviso-escoger-txt").css('left',e.pageX+3);
		$j(".aviso-escoger-txt").css('top',e.pageY+3);				
	});
}

function initEstadoPedido() {
	
	$j(".estado-pedido").mouseover(function (e) {
	  $j(".estado-pedido-txt").hide();
      $j(e.target).next("div").show();
    });
	
	$j(".estado-pedido").mouseout(function (e) {
      $j(".estado-pedido-txt").hide();
	});
	
	$j(".estado-pedido").mousemove(function (e) {
		$j(e.target).next("div").css('left',e.pageX+3);
		$j(e.target).next("div").css('top',e.pageY+3);				
	
	});
}

// inicializa buscador
function initFinder() {
	$j(".finder > ul > li > span").click(function (e){ 
		if ($j(e.target).parent().children("ul").css("display") == "none"){
			$j(".finder > ul > li > ul").slideUp('fast');
			$j(e.target).parent().children("ul").slideDown('fast');
		} else { 
			$j(".finder > ul > li > ul").slideUp('fast'); 
		}
	});	
}

// inicializa ordenacion
function initOrder() {
	$j(".ordenacion > ul > li > span").click(function (e){ 
			if ($j(e.target).parent().children("ul").css("display") == "none"){
				$j(".ordenacion > ul > li > ul").slideUp('fast');
				$j(e.target).parent().children("ul").slideDown('fast');
			} else { 
				$j(".ordenacion > ul > li > ul").slideUp('fast'); 				
			}
	});	
}

//radio buttons
function initDynamicRadioButtons() {
	$j(".js_dinamic_radiobutton input[type=radio]").attr("checked","");
	$j(".js_dinamic_radiobutton input[type=radio]").click(function (e) { 
				if ($j(e.target).parent().parent().children("div").css("display") == "none"){
						$j(".js_dinamic_radiobutton > div > div").slideUp(); 
						$j(e.target).parent().parent().children("div").slideDown();
				}												
	});
}

// ReRenderAjax
function initReRenderAjax() {
	if (typeof(reRenderAjax) != "undefined") {
		if (typeof(reRenderAjax) == "function")  {
			reRenderAjax();
		}
	}
}

function toggleDivByCheckbox(checkbox, div) {
	if ($j(checkbox).attr("checked"))  {
		$j("#"+div).slideDown('fast');
	} else { 
		$j("#"+div).slideUp('fast');
	}
}

function toggleDiv(div) {
	$j("#"+div).slideToggle('fast');
	
}

function toggleDivByRadiobutton(radiobutton, div) {
	toggleDivByCheckbox(radiobutton, div)
}

function onRequestStart() {
	$j(".ajaxDisabled").each( function() { this.disabled = true } );
}
function onRequestEnd() {
	$j(".ajaxDisabled").each( function() { this.disabled = false } );
}


function initHistory() {
	if ($j.historyInit)
		$j.historyInit(pageload);
}

//PageLoad function
// This function is called when:
// 1. after calling $.historyInit();
// 2. after calling $.historyLoad();
// 3. after pushing "Go Back" button of a browser
function pageload(hash) {
	var exp = null;
	if(hash ) {
		exp = "#" + hash;
	} else if (typeof(defaultHash) != "undefined"){
		exp = "#" + defaultHash;		
	}
	if (exp != null) {
		exp = exp.replace(/:/g,'\\:');
		$j(exp).click();
	}
 }


function addHistUrl(url) {
	var hash = url.replace(/^.*#/, '');
	// moves to a new page.
	// pageload is called at once.
	// hash don't contain "#", "?"
	$j.historyLoad(hash);
	
}

function maxLength(text,maxlong){
	var int_value, out_value;
	if (text.value.length > maxlong){
		in_value = text.value;
		out_value = in_value.substring(0,maxlong);
		text.value = out_value;
		//alert("La longitud máxima es de " + maxlong + " caractéres");
		return false;
	}
	return true;
}


function Rotation(interval, a4jFunctionName) {
	this.started = false;
	this.interval = interval;
	this.a4jFunctionName = a4jFunctionName;
	this.nextIndex = function nextIndex() {
		eval(this.a4jFunctionName + '()');
	}
}
var rotationItems = new Object();

function initModulesRotation() {
	for(var i in rotationItems) {
		rotateInfinite(i);
	}
}

function rotateInfinite(id) {
	var rotation = rotationItems[id];	
	if (!rotation.started) {
		rotation.started = true;
	}
	else rotation.nextIndex();
	setTimeout('rotateInfinite("'+id+'")', rotation.interval);
}

// Deprecated by dynamic circular carousel.
//function addCarousel(id, _itemList) {
//	carousels.push({ idElement:id, itemList:_itemList });
//}

function addCarousel(id, _itemList, _circular) {
	carousels.push({ idElement:id, itemList:_itemList, isCircular: _circular});
}

function showDiv(id){
	document.getElementById(id).style.display="block";
	document.getElementById(id).style.visibility="visible";
}

function hideDiv(id){
	document.getElementById(id).style.display="none";
	document.getElementById(id).style.visibility="hidden";
}

function showHideDivs(show, hide){
	showDiv(show);
	hideDiv(hide);
}

function openProduct(prod){
	document.getElementById('pop_art'+prod).style.display='block';
	document.getElementById('pop_bg').style.display='block';
}
function closeProduct(prod){
	document.getElementById('pop_art'+prod).style.display='none';
	document.getElementById('pop_bg').style.display='none';
}
function openPrice(prod){
	document.getElementById('precios'+prod).style.display='block';
}
function closePrice(prod){
	document.getElementById('precios'+prod).style.display='none';
}
