
$.fn.carlesscroll = function(options) {

	$.fn.carlesscroll.defaults = {
        amplada_items : 100,
        items_visibles : 1,
        moviment_ms : 200,
        paginacio : false,
        automatic : false,
		automatic_ms : 3000,
		numerar : true
    }

	var disponible=function() { return true;}

	$.fn.carlesscroll.anar = function (id) {
		$('#' + id).trigger('saltAutomatic');
	}
	
	var opts = $.extend({}, $.fn.carlesscroll.defaults, options);

	this.each( function(){

		//Inicialitzo
		var pos=0;
		var quants_items=$('div.item', this).length;
		var semafor_verd=true;
		var timer=null;
		
		if (quants_items > opts.items_visibles) {
			
			if (!opts.paginacio) {
				$(this).prepend('<div class="fletxa_esq"><a href="#"></a></div><div class="fletxa_dre"><a href="#"></a></div>');
			} else {
				paginacio_html='<div class="num_paginacio"><a href="#" class="num_0 on" num="0">';
				if (opts.numerar) {
					paginacio_html+= '1';
				} else {
					paginacio_html+= '&nbsp;';
				}
				paginacio_html+= '</a>';
				
				for (var x=2; x<=quants_items; x++) {
					paginacio_html += '<a href="#" class="num_' + (x-1) + '" num="' + (x-1) + '">'
					if (opts.numerar) {
						paginacio_html+= x;
					} else {
						paginacio_html+= "&nbsp;";
					}
					paginacio_html+= '</a>';
				}
				paginacio_html += '</div>';
				$(this).prepend(paginacio_html);
			}
	
			if (opts.automatic) {
				$(this).bind('saltAutomatic', function(){
					//Codi quasi igual que fletxa dreta
					if (semafor_verd) {
						semafor_verd=false;
						var aquest_scroll=$('div.scroll',this);
						if (pos==quants_items) {
							pos=0;
							$(aquest_scroll).css('marginLeft',0);
						}
						
						$('div.num_paginacio a').removeClass('on');
						preparaNum=pos+1;
						if (preparaNum >= quants_items) preparaNum=preparaNum-quants_items;
						$('div.num_paginacio a.num_'+preparaNum).addClass('on');
						
						$(aquest_scroll).animate({marginLeft:((pos+1)*opts.amplada_items*-1)},opts.moviment_ms,function() {semafor_verd=true;});
						pos=pos+1;
					}
					timer=setTimeout('$.fn.carlesscroll.anar("'+$(this).attr('id')+'")', opts.automatic_ms);
				});
				timer=setTimeout('$.fn.carlesscroll.anar("'+$(this).attr('id')+'")', opts.automatic_ms);
			}
			
			var codi_doble=$('div.scroll', this).html();
			$('div.scroll', this).append(codi_doble);		
	
			$('div.fletxa_esq a', this).click(function () {
				if (semafor_verd) {
					semafor_verd=false;
					var aquest_scroll=$('div.scroll',$(this).parent().parent());
					if (pos==0) {
						pos=quants_items;
						$(aquest_scroll).css('marginLeft',-1*pos*opts.amplada_items);
					}
					$(aquest_scroll).animate({marginLeft:((pos-1)*opts.amplada_items*-1)},opts.moviment_ms,function() {semafor_verd=true;});
					pos=pos-1;
				}
				return false;
			});
			$('div.fletxa_dre a', this).click(function () {
				if (semafor_verd) {
					semafor_verd=false;
					var aquest_scroll=$('div.scroll',$(this).parent().parent());
					if (pos==quants_items) {
						pos=0;
						$(aquest_scroll).css('marginLeft',0);
					}
					$(aquest_scroll).animate({marginLeft:((pos+1)*opts.amplada_items*-1)},opts.moviment_ms,function() {semafor_verd=true;});
					pos=pos+1;
				}
				return false;
			});
			$('div.num_paginacio a', this).click(function() {
				num=parseInt($(this).attr('num'));
				if (semafor_verd && num != pos) {
	
					$('a', $(this).parent()).removeClass('on');
					$(this).addClass('on');
					
					if (pos>=quants_items && (num>pos || (pos>=quants_items && num>pos-quants_items))) {
						pos=pos-quants_items;
						$(aquest_scroll).css('marginLeft',((pos+1)*opts.amplada_items*-1));
					}
					semafor_verd=false;
					var aquest_scroll=$('div.scroll',$(this).parent().parent());
					$(aquest_scroll).animate({marginLeft:((num)*opts.amplada_items*-1)},opts.moviment_ms,function() {semafor_verd=true;});
					pos=num;
					
					if (opts.automatic) {
						clearTimeout(timer);
						timer=setTimeout('$.fn.carlesscroll.anar("'+$(this).parent().parent().attr('id')+'")', opts.automatic_ms);
					}
				}
				return false;
			});
		}
		
	});
}
	
$(document).ready(function(){

	//Carreguem els scrolls
	$('div.mod_aparador').carlesscroll({amplada_items: 196, items_visibles: 4, moviment_ms: 200}); 
	$('div.thumbs').carlesscroll({amplada_items: 192, items_visibles: 1, moviment_ms: 200}); 
	$('div.mod_aparador_home').carlesscroll({amplada_items: 508, items_visibles: 1, moviment_ms: 400, paginacio: true, automatic: true}); 

	
	//Detectem IE6
	var ie6=false;
	
	if (jQuery.browser.msie && parseInt(jQuery.browser.version)<7) {
		
		ie6=true;
		
		jQuery("head").append("<link>");
		css = jQuery("head").children(":last");
		css.attr({ rel:  "stylesheet", type: "text/css", href: "css/ie6.css" });
				
	}
	
	//El peu sempre sota
	function arregla_peu() {
		if (jQuery(window).height()>jQuery('div.maq_contenidor').innerHeight()+85) {
			jQuery('div.mod_peu').addClass('absoluta');
			if (ie6) jQuery('div.wrapper2').css('height',(jQuery(window).height()-30)+'px');
		} else {
			jQuery('div.mod_peu').removeClass('absoluta');
			if (ie6) jQuery('div.wrapper2').css('height','100%');
		}
	}
	arregla_peu();	
	
	jQuery(window).resize(function() {
		arregla_peu();
	});

});	


// Validacion formularios =====================================================================

//Filtros
var filters = {
	// js_text_10: nomes 10 caracters
    js_text_10: function(el) {var val=$(el).val(); return (val != '' && val != -1 && val.length > 9 && val.length < 11);},
	// js_text_6: More than 5 characters
    js_text_6: function(el) {var val=$(el).val(); return (val != '' && val != -1 && val.length > 5);},
	// js_text_3: More than 2 characters
    js_text_3: function(el) {var val=$(el).val(); return (val != '' && val != -1 && val.length > 2);},
	//js_mail: Mail comprobation
    js_email: function(el) {return /^[A-Za-z\.][A-Za-z0-9_\.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/.test($(el).val());},
	//Only numbers, Max 2 characters
    js_num_2: function(el){var val=$(el).val(); return (/^[0-9() -]*$/.test(val) && val.length < 3);},
	//Only numbers,  4 characters
    js_num_4: function(el){var val=$(el).val(); return (/^[0-9() -]*$/.test(val) && val.length == 4);},
	//Only numbers, More than 7 characters
    js_phone: function(el){var val=$(el).val(); return (/^[0-9() -]*$/.test(val) && val.length > 6);},
	//Only numbers, More than 4 characters
    js_postal: function(el){var val=$(el).val(); return (/^[0-9() -]*$/.test(val) && val.length > 4);},
	//Only for checkboxes
    js_checkbox: function(el){var val=$(el).attr("checked"); if (!val) $("div.error_validation_message_checkbox").css("display","block"); return val;},
	//For selects
    js_not_empty_not_0: function(el){var val=$(el).val(); return (val != '' && val != -1 && val != 0 && val != "0");},
	//Un numero entre 1 y 99
    js_cantidad: function(el){var val=$(el).val(); return (/^[0-9]*$/.test(val) && val.length < 3 && val != 0);}
    };
// Extensiones
$.extend({
	stop: function(e){
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
    }
});
// Código
$(document).ready(function(){
	
	$("form.validable").bind("submit", function(e){

		$("div.error_validation_message_checkbox").css("display","none");
		$("p.error_camp").removeClass("self_error");
		if (typeof filters == 'undefined') return;
	    $(this).find("input, textarea, select, span.select, label").removeClass('error');
	    $(this).find("input, textarea, select").not(':hidden').each(function(x,el){
	        if ($(el).attr("className") != 'undefined') {
	        $.each(new String($(el).attr("className")).split(" "), function(x, klass){
	            if ($.isFunction(filters[klass]))
	                if (!filters[klass](el)) {
						if ($(el).hasClass("styled") || $(el).hasClass("styled2") || $(el).hasClass("styled3") || $(el).hasClass("styled4") || $(el).hasClass("styled5")) {
							$(el).prev().addClass("error");
						}
						if ($(el).hasClass("self_next")) {
							$(el).parent().next().addClass("self_error");
							//alert("ooo");
						}
						$(el).addClass("error");
					} else {
						if ($(el).hasClass("styled") || $(el).hasClass("styled2") || $(el).hasClass("styled3") || $(el).hasClass("styled4") || $(el).hasClass("styled5")) {
							$(el).prev().removeClass("error");
						}
						if ($(el).hasClass("self_next")) {
							//$(el).parent().next().removeClass("self_error");
						}
						$(el).removeClass("error");
					}
	        });
	        }
	    });
		var Nombres_radios=new Array();
		$(this).find("input.js_radio").each(function(x,el) {
			if (Nombres_radios[$(el).attr('name')]!=true) Nombres_radios[$(el).attr('name')]=$(el).attr('checked');
		});
		$(this).find("input.js_radio").each(function(x,el) {
			if (!Nombres_radios[$(el).attr('name')]) {
				if ($(el).prev()[0].tagName=='LABEL') $(el).prev().addClass('error');
				if ($(el).next()[0].tagName=='LABEL') $(el).next().addClass('error');
				//$(el).addClass('error');
			}
		});
		if ($('input.js_con_fecha_mes,input.js_con_fecha_dia,input.js_con_fecha_anyo').find(".error").size() == 0) {
			if ($('input.js_con_fecha_dia',this).length>0 &&$('input.js_con_fecha_mes',this).length>0 &&$('input.js_con_fecha_anyo',this).length>0) {
				if (!validarFecha($('input.js_con_fecha_dia',this).val(), $('input.js_con_fecha_mes',this).val(), $('input.js_con_fecha_anyo',this).val() ) ) {
					$('input.js_con_fecha_dia',this).addClass('error');
					$('input.js_con_fecha_mes',this).addClass('error');
					$('input.js_con_fecha_anyo',this).addClass('error');
					$('p.error_fecha').addClass('self_error');
				}
			}
		}
		if ($(this).find(".error").size() > 0) {
			$.stop(e || window.event);
			$('div.error_validation_message').css("display","block");
			return false;
		}
		$('div.error_validation_message').css("display","none");
	    return true;
	});
	

});

