//msgbox
var msgbox = {};

var msgboxType = {};
msgboxType.ALERTA = "alerta";
msgboxType.CONFIRMACAO = "confirmacao";
msgboxType.CARREGANDO = "carregando";

msgbox.show = function(titulo, mensagem, tipo) //tipo: alerta, confirmacao, carregando
{
	//alert("show");
	$("#msgbox").removeClass("alerta");
	$("#msgbox").removeClass("confirmacao");
	$("#msgbox").removeClass("carregando");
	
	$("#msgbox .corpo h5").text(titulo);
	$("#msgbox .corpo .conteudo").text(mensagem);
	
	$("#msgbox").addClass(tipo);
	
	//bug Firefox
	if($("#msgbox").css("display") != "block")
	{
		$("#msgbox").css({display:"block"});
		$("#msgbox").hide();
		$("#msgbox_background").css({display:"block"});
		$("#msgbox_background").hide();
		
		$("#msgbox").fadeIn("fast");
		$("#msgbox_background").fadeIn("fast");
	}
	
}

msgbox.hide = function()
{
	//alert("hide");
	$("#msgbox").fadeOut("fast");
	$("#msgbox_background").fadeOut("fast");
}

var ValidationType = new Object();
ValidationType.NOME = "nome";
ValidationType.EMAIL = "email";
ValidationType.LENGTH = "length";

var Validation = new Object();
Validation.fields = [];

Validation.addField = function(id, type, args)
{
   var field = new Object();
   field.id = id;
   field.type = type;
   field.args = args;
   
   Validation.fields.push(field);
}

Validation.clearFields = function()
{
    Validation.fields = [];
}

Validation.validate = function()
{
    var _return = true;
    
    for(i = 0 ; i < Validation.fields.length ; i++)
    {
        var field = Validation.fields[i];
        if(!validateField(field.id, field.type, field.args)) _return = false;
    }
    
    Validation.clearFields();
    return _return;
}

function validateField(id, type, args)
{
    var field = $(id);
    
    switch(type)
    {
        case ValidationType.EMAIL:
            if(field.val().match(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)==null)
            {
                markAsInvalid(field);
                return false;
            }
            else
            {
                markAsValid(field);
                return true;
            }
            
        break;
        
        case ValidationType.NOME:            
            if(field.val().length <= 2)
            {
                markAsInvalid(field);
                return false;    
            }
            else
            {
                markAsValid(field);
                return true;
            }
        break;
		
		case ValidationType.LENGTH:
			if(field.val().length < args)
            {
                markAsInvalid(field);
                return false;    
            }
            else
            {
                markAsValid(field);
                return true;
            }
		break;
    }
}

function markAsValid(field)
{
    field.removeClass("invalid");
}

function markAsInvalid(field)
{
    field.addClass("invalid");
    field.focus();
}

function Ajax(){
	try{return new XMLHttpRequest();}catch(e){
	try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){
	return new ActiveXObject("Microsoft.XMLHTTP");}}
	return null;
}

function getRequestPost(url,param){
	var ajax=new Ajax();
	ajax.open('POST',url,false);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", param.length);
    ajax.setRequestHeader("Connection", "close");
	ajax.send(param);
	return ajax.responseText;
}

function getAjaxPostAsync(url, param, callbackOpenDoc, callbackLoadDoc){
	var ajax=new Ajax();
	
	ajax.open('POST', url, true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", param.length);
    ajax.setRequestHeader("Connection", "close");
    
    ajax.onreadystatechange=function(){
        if(ajax.readyState == 1 && callbackOpenDoc!=null)
            callbackOpenDoc(this);
        if(ajax.readyState == 4 && callbackLoadDoc!=null)
            callbackLoadDoc(this);
    }
	
	ajax.send(param);
	
	return ajax;
}

var mask = {};
var maskType = {}
maskType.TELEFONE = "telefone";
mask.setMask = function(obj, type)
{
	obj = $("obj");
	
	switch(type)
	{
		case maskType.TELEFONE:
			
			obj.onkeypress = function(ev)
			{
				if(window.event)
				{
					if(event.keyCode<48 || event.keyCode>57)
					{
						if(event.keyCode!=13) {return false;}	
					}
				}
				else
				{
					if(ev.which<48 || ev.which>57)
					{
						if(ev.which!=13 && ev.which!=8 && ev.which!=0) {return false;}
					}
				}
			}
		break;
	}
	
	
}