var urlEncodeCharacter = function(c)
{
	return '%'+c.charCodeAt(0).toString(16);
};

var urlDecodeCharacter = function(str, c)
{
	return String.fromCharCode(parseInt(c,16));
};

var urlEncode = function(s)
{
      return encodeURIComponent(s).replace(/\%20/g,'+').replace(/[!'()*~]/g,urlEncodeCharacter);
};

var urlDecode = function(s)
{
      return decodeURIComponent(s.replace( /\+/g, '%20' )).replace(/\%([0-9a-f]{2})/g,urlDecodeCharacter);
};

function open_piva(doc){
	var win_dim = {
		'w':window.innerWidth,
		'h':window.innerHeight
	}
	
	var dim = {
		'w':369,
		'h':300
	};
	window.open(doc,'','status=no,toolbar=no,height='+dim['h']+',width='+dim['w']+',left='+((win_dim['w']-dim['w'])/2)+',top='+(win_dim['h']-dim['h'])/2);
}

function fade(obj){

	var mainOBJ = this;
	var curIndex = 0;
	var t = false;
	var started = false;
	var l = false;
	mainOBJ.images = false;
	
	mainOBJ.change = function(i,l){
		
		curIndex = i;
		jQuery('.cur',obj).text(i+1);

		jQuery(mainOBJ.images).fadeOut(500);
		jQuery(mainOBJ.images[i]).fadeIn(500,function(){
			t = window.setTimeout(
				function(){
					mainOBJ.change((i+1)%l,l);
				},
				4000
			);
		});
		
	}
	
	mainOBJ.start = function(){
		
		started = true;
		
		mainOBJ.images = obj.children('img');
		l = mainOBJ.images.length;
		var height = 0;
		
		jQuery('.cur',obj).text('0');
		jQuery('.tot',obj).text(l);
		jQuery(mainOBJ.images).load(
			function(){
				for(var i=0;i<mainOBJ.images.length;i++){
					height = Math.max(height,jQuery(mainOBJ.images[i]).height());
				}
			}
		);
		
		jQuery(obj).children().load(
			function(){
				obj.css('height',height+'px');
			}
		);
		
		mainOBJ.images.css({
			display:'block',
			position:'absolute',
			top:'0px',
			left:'0px'
		}).hide();
		
		mainOBJ.bindArrows();
	
		jQuery(mainOBJ.images).each(
			function(i){
				if(i==l-1){
					mainOBJ.change(0,l);
				}
			}
		);
		
	}
	
	mainOBJ.setImages = function(imgs){
		if(!started){
			mainOBJ.images = false;
			obj.children('img').remove();
			for(var i in imgs){
				obj.append('<img src="'+imgs[i]+'" />');
			}
		}
	}
	
	mainOBJ.stop = function(){
		started = false;
		window.clearTimeout(t);
		mainOBJ.unbindArrows();
	}
	
	mainOBJ.bindArrows = function(){
		jQuery('.prev',obj).click(
			function(){
				if(jQuery(mainOBJ.images[curIndex]).queue().length==0){
					window.clearTimeout(t);
					mainOBJ.change((curIndex+l-1)%l,l)
				}
			}
		);
		
		jQuery('.next',obj).click(
			function(){
				if(jQuery(mainOBJ.images[curIndex]).queue().length==0){
					window.clearTimeout(t);
					mainOBJ.change((curIndex+1)%l,l)
				}
			}
		);
	}
	
	mainOBJ.unbindArrows = function(){
		jQuery('.next,.prev',obj).unbind();
	}
	
	if(obj.css('position')!='absolute'&&obj.css('position')!='relative'){
		obj.css('position','relative');
	}
	
}

function pageSlide(that){
	
	var src = false;
	
	var pdf = (jQuery('div.pdf').length>0)?jQuery('div.pdf'):false;
	if(pdf){
		if(jQuery('.page:eq(0) input.pdf',that).val()!=''){
			jQuery('a',pdf).attr('href',jQuery('.page:eq(0) input.pdf',that).val());
			pdf.show();
		}
		else{
			jQuery('a',pdf).attr('href','javascript:;');
			pdf.hide();
		}
	}
	
	var refreshLabel = function(){
		src= '/images/label/label.php?t='+urlEncode(jQuery('.menutitle:eq('+curPage+')',that).val())+'&h=150';
		jQuery('.label',that).css('backgroundImage','url('+src+')');
	}

	var nextPage = function(){
		var i = jQuery(this).index();
		if(curPage<jQuery('.page',that).length-1){

			jQuery('.pageContainerFixed',that)
			.stop()
			.scrollTo(jQuery('.page:eq('+i+')',that),500)
			.animate({
				height:jQuery('.page:eq('+i+')',that).height()
			},500);
			curPage++;
			refreshLabel();

			jQuery('.cur',that).text(curPage+1);
			
			if(pdf){
				if(jQuery('.page:eq('+i+') input.pdf',that).val()!=''){
					jQuery('a',pdf).attr('href',jQuery('.page:eq('+i+') input.pdf',that).val());
					pdf.show();
				}
				else{
					jQuery('a',pdf).attr('href','javascript:;');
					pdf.hide();
				}
			}

		}
	}
	
	var prevPage = function(){
		var i = jQuery(this).index();
		if(curPage>0){

			jQuery('.pageContainerFixed',that)
			.stop()
			.scrollTo(jQuery('.page:eq('+i+')',that),500)
			.animate({
				height:jQuery('.page:eq('+i+')',that).height()
			},500);
			curPage--;
			refreshLabel();

			jQuery('.cur',that).text(curPage+1);
			
			if(pdf){
				if(jQuery('.page:eq('+i+') input.pdf',that).val()!=''){
					jQuery('a',pdf).attr('href',jQuery('.page:eq('+i+') input.pdf',that).val());
					pdf.show();
				}
				else{
					jQuery('a',pdf).attr('href','javascript:;');
					pdf.hide();
				}
			}


		}
	}
	
	this.moveTo = function(id){
		
		jQuery('.pageContainerFixed',that)
		.stop()
		.scrollTo(jQuery('#risultati_'+id,that),500)
		.animate({
			height:jQuery('#risultati_'+id,that).height()
		},500);
		curPage = jQuery('#risultati_'+id,that).index()-1;
		refreshLabel();

			if(pdf){
				if(jQuery('#risultati_'+id+' input.pdf',that).val()!=''){
					jQuery('a',pdf).attr('href',jQuery('#risultati_'+id+') input.pdf',that).val());
					pdf.show();
				}
				else{
					jQuery('a',pdf).attr('href','javascript:;');
					pdf.hide();
				}
			}

		
		jQuery('.cur',that).text(curPage+1);
		
	}
	
	var curPage = 0;
	//var that = jQuery(this);
	refreshLabel();
	
	jQuery('.pageContainerFixed',that).css({
		height:jQuery('.page:first',that).height()
	});
	
	jQuery('.cur',that).text(curPage+1);
	jQuery('.tot',that).text(jQuery('.page',that).length);
	
	var width = 0;
	jQuery('.page',that).each(
		function(){
			width += jQuery(this).width();
		}
	);
	
	jQuery('.pageContainerScroller',that).css({
		width:width+'px'
	});
	
	jQuery('.next').click(nextPage);
	jQuery('.prev').click(prevPage);
	
}

function newsGal(obj){
	
	var bigImg = jQuery('.big>img',obj);
	var smallImg = jQuery('.smalls>a',obj);
	
	smallImg.each(
		function(i){
			var img = new Image();
			img.src=jQuery(this).attr('href');
			if(((i+1)%4)==0){
				jQuery(this).after('<div class="clearer">&nbsp;</div>');
			}
			jQuery(this).click(
				function(){
					var that = this;
					bigImg.fadeOut(250,function(){
						bigImg.attr('src',jQuery(that).attr('href'));
						bigImg.fadeIn(250);
					});
					return false;
				}
			)
		}
	);
	
}

jQuery(document).ready(
	function(){
		
		jQuery('#menuistInner').jmenu();
		
		jQuery('#homeNewsContainer .homeNews:last,#serviceInfo .section:last').css({ marginRight:'0px' });
		jQuery('#risultati .other:last,#comunica .other:last').css({ marginRight:'0px' });

		jQuery('#comunica .page .right').each(
			function(){
				
				var that = jQuery(this);
				if(jQuery('input.pdf',that.parent()).length>0){
					that.css({
						paddingBottom:jQuery('div.pdf').outerHeight()+20
					});
				}
				
			}
		);

		jQuery('#homeFade').each(function(){

			var that = jQuery(this);
			var cur = 0;
			var l = that.children('img').length;

			that.css({
				position:'relative',
				height:'406px'
			});
			that.children('img').css({
				position:'absolute',
				top:0,
				left:0
			}).hide();
			
			that.children('img:eq(0)').show();

			if(l>1){

				window.setInterval(function(){
					that.children('img:eq('+cur+')').fadeOut(500);
					cur = (cur + 1)%l;
					that.children('img:eq('+cur+')').fadeIn(500);
				
				},5000);

			}

		});

		

		jQuery('#risultati,#comunica').each(
			function(){
				
				var p = new pageSlide(jQuery(this));
				
				jQuery('.other .more a',jQuery(this)).click(
					function(){
						p.moveTo(jQuery(this).attr('class'));
					}
				);
				
				
				var otherHeight = 0;
				jQuery('.other').each(
					function(){
						otherHeight = Math.max(otherHeight,jQuery(this).height());
					}
				).css({height:otherHeight+'px'});
								
			}
		);		
		
		// init fade servizi
		var f = new fade(jQuery('#serviceFade'));
		f.start();
		
		// menu servizi con scroll to
		var elements = '';
		
		if(jQuery('#serviceMenuWrapper').hasClass('edizioni')){
			var eleperrow = 4;
			var rowpertable = 1;
		}
		else{
			var eleperrow = 8;
			var rowpertable = 2;
		}
		
		jQuery('#serviceMenu a').each(
			function(i){
				
				var setContent = function(res){
					jQuery('#serviceInfo .section:eq(0) .title').html(res.vars.titlesx);
					jQuery('#serviceInfo .section:eq(0) .content').html(res.vars.contentsx);
					jQuery('#serviceInfo .section:eq(1) .title').html(res.vars.titledx);
					jQuery('#serviceInfo .section:eq(1) .content').html(res.vars.contentdx);
					jQuery('#serviceInfo .section').height('auto');
					regolasections();
					f.stop();
					f.setImages(res.images);
					f.start();
				}
				
				if(!jQuery('#serviceMenuWrapper').hasClass('edizioni')){
					if(i==0){
						jQuery('#serviceMenu a').removeClass('active');
						jQuery(this).addClass('active');
						jQuery.getJSON(
							jQuery(this).attr('href'),
							{},
							function(res){
								setContent(res);
							}
						);
					}
					
					jQuery(this).click(function(){
						jQuery('#serviceMenu a').removeClass('active');
						jQuery(this).addClass('active');
						jQuery.getJSON(
							jQuery(this).attr('href'),
							{},
							function(res){
								setContent(res);
							}
						);
						return false;
					});
				}
				elements += '#serviceMenu a:eq('+i+'),';
				
				if((i+1)%8==0){
					jQuery(elements.substr(0,elements.length-1)).wrapAll('<div class="row" />');
					elements = '';
				}
				
			}
		);
		
		
		if((jQuery('#serviceMenu a').length)%eleperrow!=0){
			jQuery(elements.substr(0,elements.length-1)).wrapAll('<div class="row" />');
			elements = '';
		}
		
		
		jQuery('#serviceMenu .row').each(
			function(i){
				
				elements += '#serviceMenu .row:eq('+i+'),';
				
				if(rowpertable==2){
					if(i%rowpertable==0){
						jQuery(this).addClass('even');
					}
					else{
						jQuery(this).addClass('odd');
					}
				}
				
				if((i+1)%rowpertable==0 && i!=0){
					jQuery(elements.substr(0,elements.length-1)).wrapAll('<div class="table" />');
					elements = '';
				}
				
			}
		);

if(elements!=''){
jQuery(elements.substr(0,elements.length-1)).wrapAll('<div class="table" />');
}
		
		if((jQuery('#serviceMenu .row').length)%2!=0){
			jQuery(elements.substr(0,elements.length-1)).wrapAll('<div class="table" />');
			elements = '';
		}
		
		var curServicePage = 0;
		
		jQuery('#serviceMenuWrapper .prev').click(
			function(){
				
				if(curServicePage>0){
					curServicePage--;
					jQuery('#serviceMenu').scrollTo(jQuery('#serviceMenu .table:eq('+curServicePage+')'),200);
				}
				
			}
		).hover(
			function(){
				jQuery(this).addClass('hover');
			},
			function(){
				jQuery(this).removeClass('hover');
			}
		);
		
		
		jQuery('#serviceMenuWrapper .next').click(
			function(){
				
				if(curServicePage<jQuery('#serviceMenu .table').length-1){
					curServicePage++;
					jQuery('#serviceMenu').scrollTo(jQuery('#serviceMenu .table:eq('+curServicePage+')'),200);
				}
				
			}
		).hover(
			function(){
				jQuery(this).addClass('hover');
			},
			function(){
				jQuery(this).removeClass('hover');
			}
		);
		
		jQuery('#serviceMenu .scrollable').css({
			width:(888*jQuery('#serviceMenu .table').length)+'px'
		});
		
		
		var g = new newsGal(jQuery('#newsGallery'));
		
		if(jQuery('#breadcrumb').length>0){
			jQuery('#breadcrumb').html(jQuery('#breadcrumb').html().replace(/<br\/>/g,' ').replace(/<br>/g,' '));
		}
		

		var regolasections = function(){
			var sectionHeight = 0;		
			jQuery('#serviceInfo .section').each(
				function(){
					sectionHeight = Math.max(sectionHeight,jQuery(this).height());
				}
			).css({height:sectionHeight});
		}
		
		regolasections();
		
		jQuery('.formX_wrapper').each(
			function(){
				var that = jQuery(this);
				if(jQuery('#n_privacy_container',that).length>0){
					if(jQuery('#n_privacy_container input',that).attr('checked')){
						jQuery('.submit_formX',that).attr('disabled',false);
					}
					else{
						jQuery('.submit_formX',that).attr('disabled',true);
					}
					jQuery('#n_privacy_container input',that).click(
						function(){
							
							if(jQuery('#n_privacy_container input',that).attr('checked')){
								jQuery('.submit_formX',that).attr('disabled',false);
							}
							else{
								jQuery('.submit_formX',that).attr('disabled',true);
							}
							
						}
					);
				}
			}
		);
		
		function is_valid_email (email){
			return /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i .test(email);
		}
		
		jQuery('#form-comunica').submit(function(){
			
			var that = jQuery(this);
			
			var answers = {};
			var regex = /\[(.*)\]$/;
			jQuery('input[name^=answers]',that).each(function(){
				var name = jQuery(this).attr('name');
				name = regex.exec(name)[1];
				if(answers[name]===undefined){
					answers[name] = false;
				}
				answers[name] = (answers[name] || jQuery(this).attr('checked'));
			});
			
			var okanswers = true;
			for(var i in answers){
				okanswers = (okanswers && answers[i]);
			}

			switch(true){
				case jQuery('#nome',that).val() == '':
					alert('Compilare il campo nome');
					jQuery('#nome',that).focus();
					return false;
					break;
				case jQuery('#cognome',that).val() == '':
					alert('Compilare il campo cognome');
					jQuery('#cognome',that).focus();
					return false;
					break;
				case !is_valid_email(jQuery('#email',that).val()):
					alert('Inserire un indirizzo email valido');
					jQuery('#email',that).focus();
					return false;
					break;
				case !okanswers:
					alert('Rispondere a tutte le domande');
					return false;
					break;
			}

			
			return true;
			
		});
		

	}
);

