/*
*	Libreria Javascript Michele & Daniele
*/

//-------------------------------	Indice Funzioni - inizio	-------------------------------//
/*
*	toDebug()						stampa in console firebug messaggi di errore
*	mainHeight()						calcolo automatico dell'altezza del "main"
*	toggleLang()						mostra e nasconde la barra delle lingue
*	tableBg()						automatizzazione di sfondi alterni nelle righe 
*	validateFormElement()				validazioni elementi input dei form
*	validateHiddenElement()				validazione elementi hidden dei form
*	validateCheckBoxElement()			validazione  elementi checkbox dei form
*	validateFormEmail()					validazione email dei form
*	errorOnFormElement()				gestione dell'evento di errore di un form
*	submitGuestBook()					submit dei form
*	showOnClick()					toggle elementi di ringraziamento submit form
*	scrollingContent()					gestione scroll di contenuti overflow
*	scrollUp()						funzione di scroll up
*	scrollDown()						funzione di scroll down
*	toggleBox()						toggle di elementi
*	playVerticalMenu()					gestione menu a tendina
*	closeAll()						gestione menu a tendina
*	
*	allFunctions()					richiamo delle funzioni
*/
//-------------------------------	Indice Funzioni - fine	-------------------------------//

function submitConfirm()
{
	var d = new Date()
	param = d.getTime();
	var form = $('confirm_form');
	
//inizio validazione
	var error_found = 0;			
	if(validateFormElement(form.frm_nome)) error_found++;
	if(validateFormEmail(form.frm_email)) error_found++;
//fine validazione	

	if(error_found==0)
	{
		Effect.BlindUp('form_confirm_all_fields');

		form.request({
		
		  onComplete: function()
		  { 	
			Effect.BlindDown('form_confirm_thanks');
			

			  return false; 
		   }
		
		});


//	document.forms['confirm_form'].submit();		

	}	
	return false;
	
}

function submitTherealguestbook()
{
	var d = new Date()
	param = d.getTime();
	var form = $('guestbooksign');
	
	document.forms['guestbooksign'].secure.value = param;
	document.forms['guestbooksign'].secure.value = param;

//inizio validazione
	var error_found = 0;			
	if(validateFormElement(form.frm_nome)) error_found++;
	if(validateFormEmail(form.frm_email)) error_found++;
//fine validazione	

	if(error_found==0)
	{
		Effect.BlindUp('form_guestbook_all_fields');


		form.request({
		
		  onComplete: function()
		  { 	
			Effect.BlindDown('form_guestbook_thanks');
			Form.reset('guestbooksign');

			  return false; 
		   }
		
		});


//	document.forms['guestbooksign'].submit();		

	}	
	return false;
	
}


debug_msg = false;
function toDebug(string)
{
	if (debug_msg)
	{
		if((typeof window.console=="undefined")) {alert(string);}
		else {
			console.error();
			console.group(string);
			console.trace();
			console.groupEnd();
		}
	}
}
function toConsole(string)
{
	if (debug_msg)
	{
		if((typeof window.console=="undefined")) {alert(string);}
		else {
			console.log(string);
		}
	}
}

function mainHeight()
{
	try 
	{
		var main = $('main');
		var head = $('head');
		var colonnaSx = $('colonnaSx');
		var colonnaDx = $('colonnaDx');
		var container = $('container');
		var footer = $('footer');
		var banda = $('banda');
		var container_offsetHeight = container.offsetHeight;
		var page_dimensions = getPageSize(); //	funzione del lightbox
		if($('frm_dettagli_richiesta')) container_offsetHeight += 450;
		var colonne_top = head.offsetHeight;
		
				
				
				
		
		var altezza_comune = Math.max(colonnaSx.offsetHeight+37, Math.max(container_offsetHeight, colonnaDx.offsetHeight + 100));
		if(navigator.userAgent.match('MSIE')) altezza_comune+=78;
		colonnaSx.setStyle({'top':colonne_top+'px','height':altezza_comune+'px'});
		colonnaDx.setStyle({'top':colonne_top+'px','height':altezza_comune+'px'});
		container.setStyle({'top':colonne_top+'px','height':altezza_comune-139+'px'});
		footer.setStyle({'top':altezza_comune+colonne_top+'px'});
		banda.setStyle({'top':colonne_top+'px','width':main.offsetLeft+'px'});
		var main_height = colonne_top+altezza_comune;
		main.setStyle({'height': main_height + 'px'});
/*		
		if(main.offsetHeight < page_dimensions[1])
		{
			altezza_comune = page_dimensions[1] - footer.offsetHeight-head.offsetHeight;
			colonnaSx.setStyle({'top':colonne_top+'px','height':altezza_comune+'px'});
			colonnaDx.setStyle({'top':colonne_top+'px','height':altezza_comune+'px'});
			container.setStyle({'top':colonne_top+'px','height':altezza_comune-139+'px'});
			footer.setStyle({'top':altezza_comune+head.offsetHeight+'px'});
			main.setStyle({'height': page_dimensions[1]-footer.offsetHeight + 'px'});
		}
*/		
	//	settaggio active al menu, se non c'è nessun <li> già active
		if($('titolo-newsletter')) showNewsletter();
		if($('menu-bottom'))
		{
			$('menu-bottom').setStyle({'top':altezza_comune-139+'px','left':'25px'});
		}
		if($('listino')) tableBg('listino');
		
	//	marginazione immagini in float
		if($('contenuto'))
		{
			var contenuto_img = $$('#contenuto img');
			contenuto_img.each(function(img)
			{
				if(img.getStyle('float')!='none')
				{
					switch(img.getStyle('float')) {
						case 'left':
							img.style.marginRight = '10px';
						break;  /* ----- */
						case 'right':
							img.style.marginLeft = '10px';
						break; /* ----- */
					}
				}
			});
		}	
	}
	catch(e) {toDebug(e.toString());}
}


function showNewsletter()
{
	try
	{
		$('newsletter').hide();
		$('titolo-newsletter').onclick = function()
		{
			Effect.toggle($('newsletter'),'slide',{duration:0.5});
		}
	}
	catch(e) {toDebug(e.toString());}
}

function toggleLang()
{
	new Effect.toggle('hide-languages','blind');
}

function setHeight ()
{
	var main = $('main');
	var colonnaSx = $('colonnaSx');
	var colonnaDx = $('colonnaDx');
	var container = $('container');
	var footer = $('footer');
	var dimensions =  getPageSize();
	main.setStyle({'height':dimensions[1]+'px'});
	colonnaSx.setStyle({'height':(dimensions[1]-footer.offsetHeight)+'px'});
	colonnaDx.setStyle({'height':(dimensions[1]-footer.offsetHeight)+'px'});
	container.setStyle({'height':(dimensions[1]-footer.offsetHeight)+'px'});
	footer.setStyle({'top':(dimensions[1]-footer.offsetHeight)+'px'});
	
}




function tableBg(el)
{
	try 
	{
		var righe = $$('#'+el+' tr');
		for (var i=0;i<righe.length;i++)
		{
		
			if(i%2 == 0) righe[i].setStyle({'background':'url("images/background/riga-a.gif") no-repeat left top','color':'#ff6d01'});
			else righe[i].setStyle({'background':'url("images/background/riga-b.gif") no-repeat left top','color':'#cf4400'});
			if(i == 0) {};
		}
	}
	catch(e) {toDebug(e.toString());}
}




/*BOF FORM CONTATTI*/

//restituisco true in caso di errore
function validateFormElement(elem)
{
	if(elem.value=="")
	{
		errorOnFormElement(elem);
		return true;
	}
	else 
	{
		return false;
	}
}


function validateHiddenElement(element)
{
	if(validateFormElement(element))
	{
		errorOnFormElement('fieldset_dettagli_richiesta');
		errorOnFormElement('fieldset_dettagli_preventivo');
		return true;
	}
	else return false;



}

function validateCheckBoxElement(elem)
{
	if(elem.checked)
	{
		return false;
	}
	else
	{
		errorOnFormElement(elem.parentNode);	
		return true;
	}
}

function validateFormEmail(elem)
{
	var emailRegexp = RegExp('^[A-Za-z0-9._-]+[@]([A-Za-z0-9-]+[.])+([A-za-z]{2,4})$', 'i');
	
	if (emailRegexp.test(elem.value))
	{
		return false;
	}
	else
	{
		errorOnFormElement(elem);
		return true;
	}
}


function errorOnFormElement(elem)
{
	Effect.Shake(elem);
	new Effect.Highlight(elem);
}


function submitGuestBook()
{
	var d = new Date()
	param = d.getTime();
		
	var form = $('guestbooksign');
	document.forms['guestbooksign'].secure.value = param;


	//copio testo della text area
	if (document.forms['guestbooksign'].frm_tipo_richiesta.value=="richiesta preventivo")
	{
		document.forms['guestbooksign'].frm_messaggio.value=document.forms['guestbooksign'].frm_messaggio_a.value;
	}
	else
	{
		document.forms['guestbooksign'].frm_messaggio.value=document.forms['guestbooksign'].frm_messaggio_b.value;	
	}

//inizio validazione
	var error_found = 0;
			
	if(validateFormElement(form.frm_nome)) error_found++;
	if(validateFormEmail(form.frm_email)) error_found++;
	if(validateFormElement(form.frm_telefono)) error_found++;
	if(validateCheckBoxElement(form.frm_privacy_a) && validateCheckBoxElement(form.frm_privacy_b)) error_found++;
	//if(validateHiddenElement(form.frm_tipo_richiesta)) error_found++;
//fine validazione	


	if(error_found==0)
	{
		Effect.BlindUp('form_email_all_fields');

		form.request({
		
		  onComplete: function()
		  { 	
			Effect.BlindDown('form_email_thanks');
			Form.reset('guestbooksign');

			  return false; 
		   }
		
		});

/*
	document.forms['guestbooksign'].submit();		
*/	
	}	
	return false;
}


function submitFromOfferte()
{
	var d = new Date()
	param = d.getTime();
		
	var form = $('guestbooksign');
	document.forms['guestbooksign'].secure.value = param;



	

//inizio validazione
	var error_found = 0;
			
	if(validateFormElement(form.frm_nome)) error_found++;
	if(validateFormEmail(form.frm_email)) error_found++;
	if(validateFormElement(form.frm_telefono)) error_found++;
	if(validateCheckBoxElement(form.frm_privacy)) error_found++;
	//if(validateHiddenElement(form.frm_tipo_richiesta)) error_found++;
//fine validazione	


	if(error_found==0)
	{
		Effect.BlindUp('form_email_all_fields');

		form.request({
		
		  onComplete: function()
		  { 	
			//Effect.BlindDown('form_email_thanks');
			Form.reset('guestbooksign');

			  return false; 
		   }
		
		});

/*
	document.forms['guestbooksign'].submit();		
*/	
	}	
	return false;
	
	Effect.BlindDown('form_email_thanks');
	
}


function showOnClick(element)
{
	if(element == 'frm_dettagli_richiesta')
	{
		Effect.toggle(element, 'blind');
		if($('frm_dettagli_preventivo').style.display != 'none') Effect.toggle($('frm_dettagli_preventivo'), 'blind');
		document.forms['guestbooksign'].frm_tipo_richiesta.value = 'richiesta informazioni';				
	}
	else
	{
		Effect.toggle(element, 'blind');
		if($('frm_dettagli_richiesta').style.display != 'none') Effect.toggle($('frm_dettagli_richiesta'), 'blind');
		document.forms['guestbooksign'].frm_tipo_richiesta.value = 'richiesta preventivo';
	}
	
}



/*EOF FORM CONTATTI*/


var timer;
var moving = false;
var element_to_move;
var max_move;
function scrollingContent(el, clipHeight)
{
	var element = $(el);
	var element_dimension = element.getDimensions();
	var clip_element = element.up();
	var clip_dimension = clip_element.getDimensions();
	var scroll_container = clip_element.up();

	clip_element.setStyle({'clip': 'rect(0px,'+clip_dimension.width+'px,'+clipHeight+'px,0px)'});
	if(element_dimension.height > clipHeight)
	{
		var goUp = $$('#'+scroll_container.id+' .goUp')[0];
		var goDown = $$('#'+scroll_container.id+' .goDown')[0];
		var down_top = scroll_container.offsetHeight - goDown.offsetHeight;
		
		// settaggi freccia in alto
		goUp.setStyle({
			'top': '30px',
			'cursor': 'pointer'
		});
		goUp.onmouseover =function()
		{
			element_to_move = element;
			max_move = clipHeight;
			scrollUp();
		};
		goUp.onmouseout = function()
		{
			moving = false;
			clearTimeout(timer);
		}
		goUp.show();
		
		// settaggi per freccia in basso
		goDown.setStyle({
			'top': '50px',
			'cursor': 'pointer'
		});
		goDown.onmouseover =function()
		{
			element_to_move = element;
			max_move = clipHeight;
			scrollDown();
		};
		goDown.onmouseout = function()
		{
			moving = false;
			clearTimeout(timer);
		}
		goDown.show();
	}
}

function scrollUp()
{	
	if(element_to_move)
	{
		if(element_to_move.offsetTop>=0) return false;
		moving = true;
		new Effect.Move(element_to_move,{x:0,y:1, duration: 0.01});
		if(moving) timer = setTimeout(scrollUp,10);
		else return false;
	}
	return false;
}

function scrollDown()
{
	if(element_to_move)
	{
		if(element_to_move.offsetTop < -(element_to_move.offsetHeight - max_move)) return false;
		moving = true;
		new Effect.Move(element_to_move,{x:0,y:-1, duration: 0.01});
		if(moving) timer = setTimeout(scrollDown,10);
		else return false;
	}
	return false;
}

function toggleMenu(menu, toggler, disappear, toggler2)
{
	try
	{
		var menu = $(menu);
		var toggler = $(toggler);
		if(disappear) var disappear = $(disappear);
		if(toggler2) var toggler2 = $(toggler2);
		
		var figli_array = menu.descendants();
		var active = false;
		figli_array.each(function(el){if(el.className.match('active')) {active = true;}});
		
		//blocco menu di dani (preferivo il mio)
		active = false;
		toggler.setStyle({'cursor':'pointer'});
		if(!active) menu.hide();
		if(active && disappear) disappear.hide();
		toggler.onclick = function()
		{
			if(disappear && (disappear.getStyle('display') == 'block' || disappear.getStyle('display') == ''))
			{
				Effect.SwitchOff(disappear,{afterFinish:function(){Effect.toggle(menu, 'blind');}});
			}
			else if(disappear &&  disappear.getStyle('display') == 'none')
			{
				Effect.toggle(menu, 'blind',{afterFinish:function(){Effect.BlindDown(disappear);}});
			}
			else Effect.toggle(menu, 'blind');
		//	closeAll(menu);
		}
		if(toggler2)
		{
			toggler2.setStyle({'cursor':'pointer'});
			toggler2.onclick = function()
			{
				if(disappear && (disappear.getStyle('display') == 'block' || disappear.getStyle('display') == ''))
				{
					Effect.SwitchOff(disappear,{afterFinish:function(){Effect.toggle(menu, 'blind');}});
				}
				else if(disappear &&  disappear.getStyle('display') == 'none')
				{
					toggler2.onclick = function(){alert('ciao');}
					Effect.toggle(menu, 'blind',{afterFinish:function(){Effect.BlindDown(disappear);}});
				}
				else Effect.toggle(menu, 'blind');
			//	closeAll(menu);
			}
		}
	}
	catch(e){toDebug(e.toString());}
}

function playVerticalMenu(menu)
{
	try
	{
		var menu = $(menu);
		var li1 = menu.immediateDescendants();
		li1.each(function(lv1)
		{
			var link_box = lv1.down('div');
			if(lv1.down('ul'))
			{
				var lv2 = lv1.down('ul');
				var lv3 = lv2.immediateDescendants();
				var active = false;
				lv3.each(function(el){if(el.className.match('active')){active = true;}});
				if(!active) lv2.hide();
				link_box.onclick = function()
				{
					Effect.toggle(lv2,'blind');
					closeAll(lv2);
					if(lv2.down('ul')) playVerticalMenu(lv2);
					return false;
				}
			}
			else link_box.onclick = function(){window.location.href  = link_box.down('a').href;}
		});
	}
	catch(e){toDebug(e.toString());}
}

function closeAll(opened)
{
	try
	{
		var boxes = $$('#menu ul.level-2');
		boxes.each(function(el)
		{
			if(el != opened && (el.getStyle('overflow') == 'visible' || el.getStyle('display') == ''))
			Effect.BlindUp(el);
		});
	}
	catch(e){alert(e.toString());}
}



function allFunctions() 
{
	if($('page_loading')) $('page_loading').hide();	
	mainHeight();
	$$('table#table1 tbody > tr:nth-child(odd)').each(function(s) {
	s.addClassName('odd');
});
	$$('table#table1 tbody > tr:nth-child(even)').each(function(s) {
	s.addClassName('even');
});


}
if (window.attachEvent) window.attachEvent("onload", allFunctions);
else window.onload=allFunctions;