/*Author: Emanuele Serini (e.serini@gmail.com)*/
var i=2;
var cache = [];
var arr = [];
(function($) {
	$.isInteger = function(s) {
		return (s.toString().search(/^-?[0-9]+$/) == 0);
	}
	$.fn.slideme = function () {
		$(this).fadeIn(500).delay(5000).fadeOut(500, function() {
			$(this).html('<img src="/img/home'+i+'.jpg" width="100%" />');
			i++;
			if (i==7) {	i=1; }
			$(this).slideme();
			return $(this);
		});
	}
	$.fn.tickertape = function () {
		var numeroFoto = $(window).width() / 405;
		var totFoto = 72;
		var schermate = totFoto / numeroFoto;
		var numScroll = Math.ceil($(window).width() * schermate);
		
		$(this).animate({
			left: "-=2px"
		}, 1, function() {
			if ($.isInteger(Math.abs(parseInt($(this).css('left')))/numScroll)) {
				html=$(this).html();
				$(this).html('');
				$(this).append(html);
				$(this).css('left', '0');
			}
			$(this).tickertape();
			return $(this);
		});
	}
	$.preLoadImages = function() {
		var args_len = arguments.length;
		if (cache.length!=7) {
			for (var i = args_len; i--;) {
				var cacheImage = document.createElement('img');
				cacheImage.src = arguments[i];
				cache.push(cacheImage);
			}
		}
	}
	$.center = function() {
		var hcontent = $('#content').height();
		var hcenterbox = $('#centerbox').height();
		var mymargin = (hcontent - hcenterbox) / 2;
		$('#centerbox').css('padding-top', mymargin+'px');
		var w = $('#content').width();
		if (w <= 1300) {
			$('#secondary-nav span').css('margin-right', '5px');	
			$('#primary-nav span').css('margin-right', '5px');	
			$('#secondary-nav').css('font-size', '12px');	
			$('#primary-nav').css('font-size', '14px');	
		} else if (w > 1300) {
			$('#secondary-nav span').css('margin-right', '30px');	
			$('#primary-nav span').css('margin-right', '30px');	
			$('#secondary-nav').css('font-size', '14px');	
			$('#primary-nav').css('font-size', '17px');	
		}
	}
	$.fixNav = function() {
		var hcontent = $('#content').height();
		var hcenterbox = $('#centerbox').height();
		var mymargin = (hcontent - hcenterbox) / 2;
		$('#centerbox').css('padding-top', mymargin+'px');
		var w = $('#content').width();
		
		/*Dimensionamento delle navigazioni*/
		if (w <= 1300) {
			$('#secondary-nav span').css('margin-right', '5px');	
			$('#primary-nav span').css('margin-right', '5px');	
			$('#secondary-nav').css('font-size', '12px');	
			$('#primary-nav').css('font-size', '14px');	
		} else if (w > 1300 && w <= 1600) {
			$('#secondary-nav span').css('margin-right', '30px');	
			$('#primary-nav span').css('margin-right', '30px');	
			$('#secondary-nav').css('font-size', '14px');	
			$('#primary-nav').css('font-size', '17px');	
		}
	}
	$.resizeCollection = function(pqty, html) {
		var ctrl = true;
		var mqty = 1;
		var qty = 0;
		/*Fix per il problema del ridisengo della pagina su resize*/
		$('#slideshow').html(html);
		/*Imposta le dimensioni dello slideshow e la quantità di slide 
		sulla base dello schermo dell'utente*/
		qty = $('#slideshow').width() / 150;
		$('#mycarousel').css('width', qty*150+'px');
		/*Se la quantità dei prodotti è minore della quantità di prodotti visibili 
		per lo schermo dell'utente, annulla lo scroll e nasconde i controlli prev next*/
		if (pqty<qty) { 
			qty=pqty; 
			mqty=0;
			var ctrl = false;
		}
		$('#slideshow').each(function() {
			$('#mycarousel').bxSlider({
				startingSlide: 0, 
				displaySlideQty: qty,
				moveSlideQty: mqty,
				controls: ctrl
			});
			$('#mycarousel a').tooltip({
				track: true, 
				delay: 0, 
				showURL: false, 
				showBody: " - ", 
				extraClass: "pretty", 
				fixPNG: true, 
				opacity: 0.95, 
				left: -45,
				top: -80
			});
		});
	}
	$.centerCollection = function(pqty, html) {
		var ctrl = true;
		var mqty = 1;
		var qty = 0;
		/*Fix per il problema del ridisengo della pagina su resize*/
		$('#slideshow').html(html);
		/*Imposta le dimensioni dello slideshow e la quantità di slide 
		sulla base dello schermo dell'utente*/
		qty = $('#slideshow').width() / 150;
		$('#mycarousel').css('width', qty*150+'px');
		/*Se la quantità dei prodotti è minore della quantità di prodotti visibili 
		per lo schermo dell'utente, annulla lo scroll e nasconde i controlli prev next*/
		if (pqty<qty) { 
			qty=pqty; 
			mqty=0;
			var ctrl = false;
		}
		$('#slideshow').each(function() {
			$('#mycarousel').bxSlider({
				startingSlide: 0, 
				displaySlideQty: qty,
				moveSlideQty: mqty,
				controls: ctrl,
				onNextSlide: function(currentSlide, totalSlides){
					$('#mycarousel a').each(function() {
						var img = new Image();
						var anchor = $(this);
						var id = $(this).attr('id');
						$(img).load(function () {
							anchor.html(this);
						}).error(function () {
							
						}).attr('src', '/img/collezione1/small/'+id+'.jpg').attr('width', '150').attr('height','225');
					});	
				},onAfterSlide: function(currentSlide, totalSlides){
					$('#mycarousel a').each(function() {
						var img = new Image();
						var anchor = $(this);
						var id = $(this).attr('id');
						$(img).load(function () {
							anchor.html(this);
						}).error(function () {
							
						}).attr('src', '/img/collezione1/small/'+id+'.jpg').attr('width', '150').attr('height','225');
					});					
				}
			});
			$('#mycarousel a').tooltip({
				track: true, 
				delay: 0, 
				showURL: false, 
				showBody: " - ", 
				extraClass: "pretty", 
				fixPNG: true, 
				opacity: 0.95, 
				left: -45,
				top: -80
			});
		});
	}
	
	$.disclaimer = function() {
		var ha = $('#content').height();
		var hb = $('#centerbox').height();
		var hc = $('#disclaimer').height();
		var mymargin = (ha-hb);
		$('#disclaimer').css('margin-top', mymargin+'px');
	}
	
	$.fn.validate = function() {
		var retval = true;
		var emailPattern = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
		var errormsg = "";
		var texterror = "";
		var mailerror = "";
		var compareerror = "";
		var checkboxerror = "";
		var selecterror = "";
		var mailgroup;
		$(this).each(function(){
			if ($(this).is("input[type='text']") && !($(this).hasClass('mail'))) {
				if($(this).val()=="") {
					$(this).prev("label").addClass("emptystring");
					texterror="Uno o pi&ugrave; campi obbligatori non sono stati compilati.";
					retval=false;
				} else {
					$(this).prev("label").removeClass("emptystring");
				}
			} else if ($(this).is("input[type='checkbox']")) {
				if (!$(this).is(":checked")) {
					$(this).prev("label").addClass("notchecked");
					checkboxerror="&Egrave; necessario acconsentire al trattamento dei dati personali.";
					retval=false;	
				} else {
					$(this).prev("label").removeClass("notchecked");
				}
			} else if ($(this).is("textarea")) {
				if($(this).val()=="") {
					$(this).prev("label").addClass("emptystring");
					texterror="&Egrave; necessario compilare il messaggio.";
					retval=false;	
				} else {
					$(this).prev("label").removeClass("emptystring");
				}
			} else if ($(this).is("select")) {
				if ($(this).val()=='0') {
					$(this).prev("label").addClass("notsel");
					selecterror="Devi effettuare una scelta.";
					retval=false;
				} else {
					$(this).prev("label").removeClass("notsel");
				}
			} else if($(this).hasClass("mail")){
				if(!emailPattern.test($(this).val())) {
					$(this).prev("label").addClass("nomail");
					mailerror="Formato email non valido.";
					retval=false;
				} else {
					$(this).prev("label").removeClass("nomail");
				}
			} else if ($(this).hasClass("compare")) {
				mailgroup=($(this).find("input"));
				if ($(mailgroup[0]).val()!=$(mailgroup[1]).val()) {
					$(this).children("label").addClass("diffmail");
					compareerror = "Le email inserite non corrispondono";
					retval=false;
				} else {
					$(this).children("label").removeClass("diffmail");
				}
				delete mailgroup;
				$(this).find("input").each(function(){
					if($(this).val()=="") {
						$(this).prev("label").addClass("emptystring");
						texterror="Uno o pi&ugrave; campi obbligatori non sono stati compilati.";
						retval=false;
					} else {
						$(this).prev("label").removeClass("emptystring");
					}
					if($(this).hasClass("mail")){
						if(!emailPattern.test($(this).val())) {
							$(this).prev("label").addClass("nomail");
							mailerror="Formato email non valido.";
							retval=false;
						} else {
							$(this).prev("label").removeClass("nomail");
						}
					}
				});			
			}
		});
		if(retval==false){
			errormsg=texterror+" "+selecterror+" "+mailerror+" "+compareerror+" "+checkboxerror;
			$("#errors").hide().fadeIn(1000);
			$("#errors").html(errormsg);
			//$('html, body').animate({scrollTop: $("#cwrap").offset().top}, 500);
		}
		return retval;
	}
})(jQuery);
