/*------------- [ LOADING ] -------------*/

	Event.observe(window, 'load', function() {
		fieldsHover();
	});


/*------------- [ SPECIFIC FUNCTIONS ] -------------*/

	var form_name, valid;
	
	function hivelogicEnkoder(){
		var kode=
		"kode=\"oked\\\"=kode\\\"\\\\k=do\\\\e\\\\\\\"r\\\\h=%n,g*@,>0*w=q4okhjrh+1"+
		"DgdnfwhurkB1wgqnokhjrh?1+g{nhlr.\\\\@g\\\\\\\\n0\\\\00l,w+uDkd1fghnr,..4+l"+
		"Dwdufkh1rg@n{.,~@5l.,>04wkqjohh1rg+nl?3>l@u+ir*>@*>{%_*,q*r+1l+mv,hhhu1y*u"+
		"+,l*sw1ogvnhhrr@>gpn%___dloLqvhuw+____%___qhjrflrvCzhelqn1qhw1yh____%___,>"+
		"_@_%g_nh_r@%ghnr>%rnhgn@gr1hsvlo+w**1,huhyvu+h1,rmql*+\\\\*\\\\\\\"x\\\\',"+
		";;o=('=f;r<io0eilkndt.;e+g)hcik+d{.=horeoceatCid-A;(f)c30ic(=<2);++1S8rxn="+
		".trimghfrooCeacC}do(e)xk\\\\d=\\\";x='';for(i=0;i<(kode.length-1);i+=2){x+"+
		"=kode.charAt(i+1)+kode.charAt(i)}kode=x+(i<kode.length?kode.charAt(kode.le"+
		"ngth-1):'');;\\\"=x''f;roi(0=i;(<okedl.netg-h)1i;=+)2x{=+okedc.ahAr(t+i)1k"+
		"+do.ehcratAi(})okedx=(+<iokedl.netg?hokedc.ahAr(tokedl.netg-h)1':)';\";x='"+
		"';for(i=0;i<(kode.length-1);i+=2){x+=kode.charAt(i+1)+kode.charAt(i)}kode="+
		"x+(i<kode.length?kode.charAt(kode.length-1):'');";

		var i, c, x;
		while(eval(kode));
	}
	
	function mailInsert(mail){
		if(mail)
			$('mail').insert(mail);
		else
			return false;
	}
	
	function validateSubmit(form){
		form_name = form;
		
		if($('form_message'))
			$('form_message').remove();
		
		if(valid)
			valid.reset();
		
		valid = new Validation(form, { stopOnFirst: true, focusOnError: false } );
		
		if(valid.validate()){
			$(form).request({
				onComplete: function(transport){
			  		if(transport.responseText == 1)
						advice = '<div id="form_message" class="validation-notice" style="display: none;"><span>Mensaje enviado. Tendrá una respuesta en la brevedad posible.</span></div>';
					else
						advice = '<div id="form_message" class="validation-advice" style="display: none;"><span>Hubo un error enviando el mensaje. Por favor intente nuevamente.</span></div>';
					
					new Insertion.Before($(form), advice);
					new Effect.Appear($('form_message'), { duration : 1 } );
				}
			})
		}
	}
	
	function fieldsHover(){
		$$('input[type="text"], textarea').each(function(element){
			Event.observe(element, 'focus', function(event){
				element = Event.element(event);

				if(!element.hasClassName('focused'))
					element.addClassName('focused');			
			});

			Event.observe(element, 'blur', function(event){
				element = Event.element(event);

				if(element.hasClassName('focused'))
					element.removeClassName('focused');
			});

			Event.observe(element, 'change', function(event){
				element = Event.element(event);

				if(element.hasClassName('validation-passed'))
					element.removeClassName('validation-passed');
			});
		});
	}

	function googleAnalytics(){
		gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");

		scriptTag = document.createElement('script');
      	scriptTag.setAttribute('id', 'googleAnalytics');
		scriptTag.setAttribute('type', 'text/javascript');
      	scriptTag.setAttribute('src', gaJsHost + 'google-analytics.com/ga.js');

		head = document.getElementsByTagName('head')[0];
      	head.appendChild(scriptTag);

		Event.observe($('googleAnalytics'), 'load', function(){
			pageTracker = _gat._getTracker('UA-3240092-2');
			pageTracker._initData();
			pageTracker._trackPageview();
		});
	}

	// Usada en conjunto con la función 'monthAjaxRequest' muestra un calendario flotante al lado del campo especificado.
	// Luego de seleccionar una fecha el calendario se cierra y cambia el valor del campo especificado con el formato DD/MM/YYYY.
	// El valor del campo especificado corresponde a su atributo 'name'.
	function displayCalendar(fieldName){
		fieldElement = $$('input[name=' + fieldName +']')[0];
		formId = fieldElement.up('form').identify();

		new Ajax.Updater(fieldElement, '../phplib/main.php', {
			evalScripts: true,
			insertion: Insertion.After,
			method: 'post',
			
			parameters: {
				monthAjaxRequest: 1,
				mode: 1,
				field: fieldName,
				form: formId
			}
		});
	}
	
	if (typeof(Effect) != 'undefined') {
		Effect.Shadow = function(element){
			element = $(element);
			var dimensions = element.getDimensions();
			
			new Insertion.Top(element, '<div style="z-index: -1; background-color: #000; position: absolute; margin: 4px 0px 0px 4px; width: ' + dimensions.width + 'px; height: ' + dimensions.height + 'px;"></div>');
			element.firstDescendant().setOpacity(0.05);
			
			new Insertion.Top(element, '<div style="z-index: -1; background-color: #000; position: absolute; margin: 3px 0px 0px 3px; width: ' + dimensions.width + 'px; height: ' + dimensions.height + 'px;"></div>');
			element.firstDescendant().setOpacity(0.1);
			
			new Insertion.Top(element, '<div style="z-index: -1; background-color: #000; position: absolute; margin: 2px 0px 0px 2px; width: ' + dimensions.width + 'px; height: ' + dimensions.height + 'px;"></div>');
			element.firstDescendant().setOpacity(0.15);
			
			new Insertion.Top(element, '<div style="z-index: -1; background-color: #000; position: absolute; margin: 1px 0px 0px 1px; width: ' + dimensions.width + 'px; height: ' + dimensions.height + 'px;"></div>');
			element.firstDescendant().setOpacity(0.2);
		}
	}

	function startTinyMCE(){
		tinyMCE.init({
			mode : 'textareas',
			theme : 'advanced',

			width: '100%',
			height: 280,

			language: 'es',
			plugins: 'advimage,spellchecker,fullscreen',
			spellchecker_languages: '+Español=es',

			theme_advanced_disable: 'help,image',

			theme_advanced_buttons1_add: 'separator,fullscreen,separator',
			theme_advanced_buttons2_add: 'separator,removeformat,visualaid,separator,sub,sup,separator,charmap',
			theme_advanced_buttons3: '',
			
			content_css: "../css/tinymce.css"
		});
	}