/*
 * ajax
 */
function ajax(id, url)
{				 		
	$E("body").setStyle("cursor", "progress");	
	
	var x = window.getScrollWidth();
	var y = window.getScrollHeight();
	
	var ajax = new Element("div", {
		'id': 'ajax',
		'styles': {
			'background': 'url(layout/imagem/overlay.png)',
			'position': 'absolute',
			'z-index': '90000',
			'top': '0',
			'left': '0',
			'width': x,
			'height': y
		}
	})
	
	var ajax_meio = new Element("div", {
		'id': 'ajax_meio',
		'styles': {
			'font': 'bold 12px Arial, Helvetica, sans-serif',
			'color': '#FFFFFF',
			'position': 'absolute',
			'z-index': '100000',
			'top': '50%',
			'left': '50%',
			'width': '500px',
			'height': '30px',
			'margin-left': '-250px',
			'margin-top': '-15px',
			'text-align': 'center'
		}
	})
	
	var c = 'Aguarde um instante, carregando conteudo.';
	
	ajax_meio.setHTML(c);
	
	ajax.inject($E("body"));
	ajax_meio.inject($("ajax"));
	
	new Ajax(url, {
		evalScripts: true,
		onComplete: function()
		{
			$("ajax").remove();
			$E("body").setStyle("cursor", "default");	
		},
		update: id
	}).request();
}

/*
 * validate
 */
var validate = ({
	init: function()
	{
		validate.type = new Array;
		
		validate.type[0] = "alpha";
		validate.type[1] = "number";
		validate.type[2] = "date";
		validate.type[3] = "mail";
		validate.type[4] = "cep";
		validate.type[5] = "cpf";
		validate.type[6] = "phone";
		
		validate.regex = new Array;
		
		validate.regex[0] = /\S/i;
		validate.regex[1] = /^[0-9]{1,}$/;
		validate.regex[2] = /^([1-9]|0[1-9]|[1-2]\d|3[0-1])(\/|\.|-)([1-9]|0[1-9]|1[0-2])\2\d{4}$/;
		validate.regex[3] = /^([a-z0-9_-]+)(\.[a-z0-9_-]+)*@([a-z0-9_-]+)(\.[a-z0-9_-]+)*[\.]([a-z0-9_-]+)$/i;
		validate.regex[4] = /^[0-9]{5}-[0-9]{3}$/;
		validate.regex[5] = /^([0-9]{3}\.){2}[0-9]{3}-[0-9]{2}$/;
		validate.regex[6] = /^(\([0-9]{2}\))( )([0-9]{4}-[0-9]{4})$/;
		
		validate.restrict = new Array;
		
		validate.restrict[0] = "number";
		
		validate.tag = new Array;
		
		validate.tag[0] = "input";
		validate.tag[1] = "textarea";
		validate.tag[2] = "select";

		validate.state = true;
	},
	
	send: function(form)
	{
		validate.state = true;
		
		validate.type.each(function(type, i)
		{
			validate.tag.each(function(e)
			{
				$$("#" + form + " " + e).each(function(html)
				{	
					if(html.getProperty("regexp") == type)
					{
						if(!validate.regex[i].exec(html.getValue()))
						{
							html.addClass("error");
							validate.state = false;
						}
						else
						{
							html.removeClass("error");
						}
					}
				})
			})		
		})

		if(validate.state == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
});

window.addEvent("domready", function()
{
	$$("#primary-nav li").each(function(navItem, i)
	{
		$$("#primary-nav li")[i].addEvent("mouseover", function()
		{
			this.className += " over";
		});
		
		$$("#primary-nav li")[i].addEvent("mouseout", function()
		{
			this.className = "menuparent";
		});
	});
});