var Site = new Class (
{
	accordion_data: null,
	idaccordion : null,
	trad: null,
	contact_fullname_saved: null,
	contact_email_saved: null,
	contact_phone_saved: null,
	
	initialize: function(content, data, trad)
	{			
		accordion_data = data;
		site_trad = trad;
		
		window.addEvent
		(
			'domready', 
			function() 
			{	
				if($chk(content)) this[content].call();
			}.bind(this)
		);
	},
	
	accordion: function()
	{
		$each
		(	
			$$('.accordion_toggler'),
			function(div, index)
			{
				var info = $('accordion_info'+index);
				var fx_info = new Fx.Slide(info);
				fx_info.hide();
				div.addEvent
				(
					'click',
					function(e)
					{
						if($chk(this.idaccordion) && this.idaccordion != index)
						{
							var toggler_out = $('accordion_toggler'+this.idaccordion);
							toggler_out.setStyle('background-color', '#EA7926');
							toggler_out.set('html', '<img src='+this.accordion_data[this.idaccordion].png_out+'>');
							var info_out = $('accordion_info'+this.idaccordion);
							var fx_out = new Fx.Slide(info_out);
							fx_out.slideOut();
						}
						
						if(!$chk(this.idaccordion) || this.idaccordion != index)
						{
							var toggler_over = $('accordion_toggler'+index);
							toggler_over.setStyle('background-color', '#FFF');		
							toggler_over.set('html', '<img src='+this.accordion_data[index].png_over+'>');
							var info_over = $('accordion_info'+index);
							var fx_over = new Fx.Slide(info_over);
							fx_over.slideIn();
						}
						
						location.hash = 'idaccordion='+index;
						
						this.idaccordion = index;
						e.stop();
		        	}.bind(this)
				)
			}.bind(this)
		);
	},
	
	displayPix: function(pix, title)
	{
		var zoom = $('zoom');
		this.setAlpha(zoom, 0);
		zoom.set('html', '<a href="#"><img src="'+pix+'" width="270" height="203"></a>');
		
		zoom.addEvent
		(
			'click',
			function(e)
			{
				e.stop();
	          	Slimbox.open(pix, title);
        	}.bind(this)
		);
		
		zoom.tween('opacity', 1);
	},
	
	setAlpha: function(element, alpha)
	{
		element.setStyle('opacity', alpha);
	},
	
	contact: function()
	{
		var form = window.document.form_contact;
		
		var fullname_f = form.fullname;
		var email_f = form.email;
		var phone_f = form.phone;
		var message_f = form.message;
		var lang_f = form.lang;
		
		var fullname = fullname_f.value;
		var email = email_f.value;
		var phone = phone_f.value;
		var message = message_f.value;
		var lang = lang_f.value;
		
		var send = true;
		
		if(fullname != site_trad.contact_fullname_missing && fullname != site_trad.contact_fullname_error) contact_fullname_saved = fullname;
		if(email != site_trad.contact_email_missing && email != site_trad.contact_email_error) contact_email_saved = email;
		if(phone != site_trad.contact_phone_missing && phone != site_trad.contact_phone_error) contact_phone_saved = phone;
				
		if(fullname == '' || fullname ==  site_trad.contact_fullname_missing || fullname ==  site_trad.contact_fullname_error || !this.check_fullname(fullname.toUpperCase())) 
		{
			send = false;
			if(fullname == '') fullname_f.value = site_trad.contact_fullname_missing;
			else fullname_f.value = site_trad.contact_fullname_error;
			fullname_f.style.border = '1px solid #EA7926';
		}
		
		if(email == '' || !this.check_email(email.toUpperCase())) 
		{
			send = false;
			if(email == '') email_f.value = site_trad.contact_email_missing;
			else email_f.value = site_trad.contact_email_error;
			email_f.style.border = '1px solid #EA7926';
		}
		
		if(phone == '' || !this.check_phone(phone.toUpperCase())) 
		{
			send = false;
			if(phone == '') phone_f.value = site_trad.contact_phone_missing;
			else phone_f.value = site_trad.contact_phone_error;
			phone_f.style.border = '1px solid #EA7926';
		}
		
		if(send)
		{
			var request = new Request({method: 'get', url: 'contact_request.php'});

			request.addEvent
			(
				'onSuccess', 
				function(text, xml) 
				{	
					this.contact_response(text);
				}.bind(this)
			);
					request.send('fullname='+fullname+'&email='+email+'&phone='+phone+'&message='+message+'&lang='+lang);
		}
	},
	
	check_fullname: function(search)
	{
		var pattern = /^[A-ZÑÁÉÍÓÚÀÈÌÒÙ·ª` \-]{2,50}$/;

		var valid = false;

		if (search.test(pattern)) valid = true;

		return valid;
	},
	
	check_email: function(search)
	{
		var pattern = /^[A-Z0-9._%\-]+@[A-Z0-9.\-]+\.(?:[A-Z]{2}|AERO|BIZ|CAT|COM|COOP|EDU|GOV|INFO|INT|JOBS|MIL|MOBI|MUSEUM|NAME|NET|ORG|PRO|TEL|TRAVEL)$/;

		var valid = false;
		
		if (search.test(pattern)) valid = true;

		return valid;
	},
	
	check_phone: function(search)
	{
		var pattern = /^[0-9]*$/;

		var valid = false;

		if (search.test(pattern)) valid = true;

		return valid;
	},
	
	onFocusIn: function(input)
	{
		var value = input.value;
		var name = input.name;

		if(name == "fullname") input.value = contact_fullname_saved;
		else if(name == "email") input.value = contact_email_saved;
		else if(name == "phone") input.value = contact_phone_saved;
		
		input.style.border = '1px solid #E1E1E1';
	},
	
	contact_response: function(text)
	{
		var form = window.document.form_contact;
		
		form.fullname.value = '';
		form.email.value= '';
		form.phone.value = '';
		form.message.value = '';
		
		var contact_response = $('contact_response');
		this.setAlpha(contact_response, 0);
		contact_response.set('html', text);
		contact_response.tween('opacity', 1);
		this.contact_response_clear.delay(2000);
	},
	
	contact_response_clear: function()
	{
		var contact_response = $('contact_response');
		contact_response.tween('opacity', 0);
	}
	/*
	loadNav: function()
	{	
		var request = new Request.JSON
		(
			{
				url: 'json/json_nav.php?lang='+this.lang,
				onComplete: function(jsonObj) 
				{
					this.data = jsonObj;
					//this.navitems = this.data.navitems;
					//this.home = this.data.home;
				}.bind(this)
			}
		).send();
	},
	*/
}
);
