
$(document).ready(function(){

	$('#seleccion-colores .colors a').click(function(e){
		e.preventDefault();
		var color = $(this).attr('data-color');

		$('#galeria-producto ul.visible').fadeOut().removeClass('visible');

		$('#galeria-producto ul[data-color="'+color+'"]').fadeIn().addClass('visible');

		$('#seleccion-colores .colors a.activo').removeClass('activo');
		$(this).addClass('activo');

	});

	$('#galeria-producto a')
	.mouseover(function(e){
		$(this).clearQueue().fadeTo('fast', 0.6);
	}).mouseout(function(e){
		$(this).fadeTo('fast', 1);
	});

	$('#columna-descripcion .colores a').click(function(e){
		
		e.preventDefault();
		var color = $(this).attr('data-color');

		var current = $('#columna-imagen-ficha li.visible').attr('data-color');

		$('#columna-descripcion input[name="color"]').val(color);

		$('#columna-descripcion .colores a.seleccionado').removeClass('seleccionado');
		$(this).addClass('seleccionado');

		if(typeof(current) == 'undefined' || current == color){
			return;
		}
		
		$('#columna-imagen-ficha li.visible').fadeOut().removeClass('visible');
		$('#columna-imagen-ficha li[data-color="'+color+'"]').fadeIn().addClass('visible');

		$('.cloud-zoom').CloudZoom();

		var rate = $(this).attr('data-rate');
		if(rate){
			$('#precio').html(number_format(rate, 2, ',','' )+'&euro;');
		}

		var re = new RegExp("^"+Orange.baseUrl+"(.*?)/product/details/(.*?)/(.*?)/(.*?)$");
		var match = re.exec($('#next-link').attr('href'));

		//Only catalog, no outlet
		if(match && match[3] != '0'){
			var newUrl = Orange.baseUrl + match[1] + '/product/details/' + match[2] + '/' + color + '/' + match[4];
			$('#next-link').attr('href', newUrl);
		}

		match = re.exec($('#prev-link').attr('href'));
		if(match && match[3] != '0'){
			newUrl = Orange.baseUrl + match[1] + '/product/details/' + match[2] + '/' + color + '/' + match[4];
			$('#prev-link').attr('href', newUrl);
		}
		
		$('#color-elegido').html($(this).attr('data-name'));

		
	});

	var thread = 0;
	$('.cantidad .flecha-cantidad')
		.mousedown(function(e){
			var rel = $(this).attr('rel');
			var amount = $(this).attr('data-amount');
			changeQuantity(rel, amount);
			thread = setInterval(function(){
				changeQuantity(rel, amount);
			}, 200);
		})
		.mouseup(function(e){
			finishChange(thread)
		})
		.mouseout(function(e){
			finishChange(thread)
		});



	var threadPool = [];

	$('#menu .principal').mouseover(function(){
		$(this).find('.submenu').animate({height:'show', top:'+=15'}, 400);
		$(this).find('a:first')
			.css('background-image', 'url("'+Orange.Util.url('public/home/images/menubar.gif')+'")')
			.css('color', '#111');
		clearTimeout(threadPool[$(this).attr('id')]);
	});

	$('#menu .principal').mouseout(function(){
		var self = this;
		threadPool[$(this).attr('id')] = setTimeout(function(){
			$(self).find('.submenu').animate({height:'hide', top:'-=15'}, 200);
			$(self).find('a:first')
				.css('background-image', 'none')
				.css('color', '#666');
			var img = document.createElement('img')
			img.src = Orange.Util.url('public/catalog/front/images/'+frontPictures['inicio']);
			$('#columna-imagen').html(img);
		}, 200);
	});

	$('#menu .submenu').mouseover(function(e){
		clearTimeout(threadPool[$(this).parent().attr('id')]);
		e.stopPropagation();
	});

	$('#menu .submenu a').mouseover(function(e){
		var rel = $(this).attr('rel');
		var img = document.createElement('img')
		img.src = Orange.Util.url('public/catalog/front/images/'+frontPictures[rel]);
		$(img).load(function(){
			$(this).show();
		});
		$('#columna-imagen').html(img);
		$(img).hide();
	});
	
	$('#link_contacto').mouseover(function(e){
		var img = document.createElement('img')
		img.src = Orange.Util.url('public/catalog/front/images/'+frontPictures['contacto']);
		$(img).load(function(){
			$(this).show();
		});
		$('#columna-imagen').html(img);
		$(img).hide();
	});

	$('#link_contacto').mouseout(function(e){
		var img = document.createElement('img')
		img.src = Orange.Util.url('public/catalog/front/images/'+frontPictures['inicio']);
		$('#columna-imagen').html(img);
	});

	$('#menu-vertical .submenu-categoria > a').click(function(e){

		if($(this).hasClass('normal')){
			return true;
		}

		e.preventDefault();
		$('#menu-vertical .submenu-categoria > ul').hide();
		$(this).parent().find('ul:first').show();

		ponerImagenColumna($(this).attr('rel'));

	});

	$('#menu-vertical .submenu-coleccion > a').click(function(e){
		e.preventDefault();
		$('#menu-vertical .submenu-coleccion > ul').hide();
		$(this).parent().find('ul:first').show()
		$('#menu-vertical .submenu-coleccion > a.activo').removeClass('activo');
		$(this).addClass('activo');

		if($('#menu-vertical').hasClass('publico')){
			ponerImagenColumna($(this).attr('rel'));
			var lang = $('#ver_mas').attr('data-lang');
			$('#ver_mas').attr('href', Orange.Util.url(lang+'/catalog/customers/catalog/')+$(this).attr('data-id'));
		}
		
	});

	$('#menu-vertical .submenu-tipo > a').click(function(e){
		e.preventDefault();
		$('#menu-vertical .submenu-tipo > ul').hide();
		$(this).parent().find('ul:first').show()
		$('#menu-vertical .submenu-tipo > a.activo').removeClass('activo');
		$(this).addClass('activo');
	});

	$('#menu-vertical .submenu-genero > a').click(function(e){
		e.preventDefault();
		$('#menu-vertical .submenu-genero > ul').hide();
		$(this).parent().find('ul:first').show()
		$('#menu-vertical .submenu-genero > a.activo').removeClass('activo');
		$(this).addClass('activo');
	});

	var closeTimeout = 0;
	$('#barra-idiomas li:nth-child(2)').mouseenter(function(){
		$('#barra-idiomas').animate({height:140}, 'slow');
		clearTimeout(closeTimeout);
	});

	$('#barra-idiomas').mouseleave(function(){
		closeTimeout = setTimeout(function(){
			$('#barra-idiomas').animate({height:20}, 'slow');
		}, 1000);		
	});

	if($.tooltip){
		$('#area-series.catalog #galeria-producto > ul a').tooltip({
			showURL:false
		});
		$('#seleccion-colores .colors a').tooltip({
			showURL:false
		});
		$('#columna-descripcion .colores a').tooltip({
			showURL:false
		});
	}

	$('#columna-descripcion FORM.addtocart').submit(function(e){

		var color = $(this).find('input[name="color"]').val();

		if(!color){
			alert($('#mensaje-agotado').text());
			e.preventDefault();
		}

	});

	if($.fancybox){
		$('#taxes-link').fancybox();
	}
	

	
});

var imgCache = [];
$(window).load(function(){
	//If it's home, preload images
	if(document.getElementById('columna-imagen') && typeof(frontPictures) != 'undefined'){
		for(var rel in frontPictures){
			var img = document.createElement('img');
			img.src = Orange.Util.url('public/catalog/front/product/'+frontPictures[rel]);
			imgCache.push(img);
		}
	}
});

function changeQuantity(rel, amount){
	var current = parseInt($('#qty-'+rel).val());
	var val = current+parseInt(amount);
	if(val <= 0 || val >= 51) return;
	$('#qty-'+rel).val(val);
	var span = $('#price-'+rel);
	var price = span.attr('data-unit')*val;
	span.html(number_format(price, 2, ',', ''));
	var total = $('#grand-total').attr('data-price') - span.attr('data-price') + price;
	span.attr('data-price', price);
	$('#grand-total').attr('data-price', total);
	$('#grand-total').html(number_format(total, 2, ',', '')+'&euro;');
}

var sendTimeout = 0;
function finishChange(thread){
	if(thread == 0) return;
	clearInterval(thread);
	thread = 0;
	clearTimeout(sendTimeout);
	sendTimeout = setTimeout(function(){
		var data = [];
		$('#cesta input.quantity').each(function(){
			data.push({
				product:$(this).attr('data-product'),
				color:$(this).attr('data-color'),
				qty:$(this).val()
			});
		});		
		$.post(Orange.Util.url('en/order/cartUpdate_json'), {cart: data});
	}, 750);
}

function ponerImagenColumna(rel){
	if(typeof(frontPictures) == 'undefined'){
		return;
	}
	var img = document.createElement('img');
	img.src = Orange.Util.url('public/catalog/front/images/'+frontPictures[rel]);
	img.className = 'fill';
	$('#columna-catalogo').html(img);
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // http://kevin.vanzonneveld.net
    // Strip all characters but numerical ones.
    number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

Orange.Validator.Error = function(){
	return {
		show: function(inputName, message, formId){
			$('#'+formId).find('input[name="'+inputName+'"], textarea[name="'+inputName+'"]').css('border-color', 'red');
		},
		hide: function(inputName, formId){
			$('#'+formId).find('input[name="'+inputName+'"], textarea[name="'+inputName+'"]').css('border-color', 'black');
		}
	}
}
