// JavaScript Document
//
//REMOVE CAMPOS EM BRANCO E COM VALOR=0

function removeembranco(esse,i)
{   if ((jQuery.inArray(esse.attr('id'),Remover) == -1) &&
        (!esse.attr('value') || esse.attr('value') == '' || esse.attr('value') == '0' ))
    {
        txt+= esse.attr('id') + "|"+ esse.attr('name')+" ->"+ esse.attr('value') +  "<,";
        esse.remove();

    }
    else
      txtpre+=  esse.attr('id') + ",";

}
var Remover = ["fieldcodigo","fieldselects"]; 
var txt = "";
var txtpre= "";

//Submita de busca
//remove campos em branco ou = a 0
function submita(formid)
{
	var query = ':input'//'select,input type="hidden",input type="text"';
    //O .merge do query não funcionou. uso um array e itero ele
    arrPais = [$("#busca > :input"), //Formulário
               $("#fieldselects").children(query),//Fieldset dos selects
               $("#fieldcodigo").children(query)];//fieldset do codigo	
    for(var i in arrPais)
    {
        arrPais[i].each(function(i){
                             removeembranco($(this), i);
                            });
    }
    //alert ("txt:"+ txt+"txtpre:"+txtpre +" BUSCA:" + arrPais[0].length +"fild1:" + arrPais[1].length+"FIELDS2:" + arrPais[2].length);
    return true;
} 
 
 var tips;
//
// validaSubmitaForm
// -valida todos elementos do form que tiverem title preenchidos
// se title tiver 'email',valida tbém
// -Se estiver parametros ok, submita por ajax, retornando mensagm pra dialogid
// *Parametros:
// strIdForm: tem que ser o id do form + as divs ou outros containers do form
//ex "#enviar,#campos" ('campos' é div dentro de 'enviar')
//action: direcionamento do form  "./acoes/detalhes_inclui_lista.php"
//dialogId:ID da div onde vai monstrar mensagem ok ou erro(o mesmo do form q abriu)
//msgRespOk: Mensagem a enviar caso submit sem erro
//msgRespFail:Mensagem a enviar caso submit dê erro
//*Retorna:
// false, sempre(pra nao submitar já que usa ajax
//
function validaSubmitaForm(strIdForm,dialogId,action,msgRespOk,msgRespFail)
 {
    var msg = '';
    var parametros = '';
    var filhos = $(strIdForm ).children('*');
    firstPar = false;
    filhos.each(function(ii){
                 msg+=validaItem($(this));
                 parametros+=montaParametro($(this));
    });

    //Se tem mensagem de erro, poe no div
    if (msg != '')
    {
         alert("atenção: os seguintes campos estão incorretos:\n\n"+msg);
         return false;
    }
  
    executaAjaxForm(dialogId,parametros,action,msgRespOk,msgRespFail);
    return false;
   
 }
////////////////
//se nao vier email, mostrar o msg do succes e alert(que é a resposta dos
//php que enviam...
function executaAjaxForm(dialogId,parametros,action,msgRespOk,msgRespFail){
  ///
  carregaPreLoader(dialogId);
  ///
  $.ajax({
    type: "POST",
    dataType: "html",
    //contentType: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
    url: action,
    data: parametros,
    success: function(msg){
      //FIXME:tirar msg pq é pra debugar
       mostrajqdialogok(dialogId,'aviso' ,msgRespOk  ,0,0);

    },
    error: function (msg){
     mostrajqdialogok(dialogId,'aviso',msgRespFail   ,0,0);
    }
    });
}
//////////////
 function validaForm(strIdForm,strIdMsg)
 {
    var query='textarea,input type="text"';
    var msg = '';

    var filhos = $(strIdForm ).children("*");
  
    filhos.each(function(ii){
                 msg+=validaItem($(this));
    });

    //Se tem mensagem de erro, poe no div
    if (msg != '')
    {
         alert("atenção: os seguintes campos estão incorretos:\n\n"+msg);
    }

   return (msg == '');//retorna true se nao tem msg de erro
    
 }

function validaItem(it){
    var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;

    var titulo = it.attr('title');
	//só valida se título for preenchido
    
    if (titulo && titulo != '')
    {
       //Se valor for em branco, retorna erro
       if (!it.attr('value') && it.attr('value') =='')
       {
           return titulo +" \n"
       }

        var strtit = new String(titulo).toLowerCase();
        
        //Se for email....
       if (strtit.indexOf('email', 0) > -1)
       {
           return checkRegexp(it.attr('value'),emailRegxp,titulo + " inválido!\n" );
       }
       
    }

    //Campo é válido, sem mensagem de erro
     return '';

}

var firstPar = false;
function montaParametro (it){
    var x=1;
    var name = it.attr('name');
    var value = it.attr('value');
    
    if (name && name != '' && it.is(':input'))
    {
       name+= '=' + value;
       if (firstPar) name = "&"+ name;
       firstPar= true;
       return name;
    }

    //Campo é válido, sem mensagem de erro
     return '';

}

 function updateTips(t) {
			tips.text(t).effect("highlight",{},1500);
 }

function checkLength(o,n,min,max) {

    if ( o.val().length > max || o.val().length < min ) {
        o.addClass('ui-state-error');
        updateTips("Length of " + n + " must be between "+min+" and "+max+".");
        return false;
    } else {
        return true;
    }

}

function checkRegexp(o,regexp,n) {
    if ( !( regexp.test( o ) ) ) {
       return n;
    }
    else {
       return '';
    }

}
function fechajqdialogok(dialogId){
     //Limpa conteúdo da dialog
	//$(dialogId).html('');
    $(dialogId).dialog("close");//era close
}
////PARTE FORMS MODAL DIALOGS///////////////////////
//
//Mostra dialog avisando se o form foi ok ou nao
function mostrajqdialogok(dialogId,titulo,msg,largura,altura)
{
$(dialogId).load('./forms/resposta.php',{msg:msg, dialogid:dialogId});
//    Opcao abaixo é menos elegante mas é mais rápida:
//    $(dialogId).html('<div id="campos">'+
//                   '<BR><BR><BR>'+
//                   '<h2>'+msg+'</h2>'+
//                   '<BR><BR><BR>'+
//                   '<form onsubmit="javascript:return(false);">' +
//                   '<input type="submit"   class="enviar" value="&nbsp;&nbsp;   Ok  &nbsp;&nbsp;  " onclick=javascript:fechajqdialogok("'+ dialogId+'");>'+
//                   '</form></div>');
// 
 mostrajqdialog(dialogId,titulo,true,largura,altura);

}


//'#dialogEmail','enviar email',true ou false,0 ou larg, 0 ou alt
function mostrajqdialog(dialogId,titulo,botaoOk,largura,altura)
{
    $(dialogId).dialog({
            bgiframe: true,
			autoOpen: false,
           	modal: true,
            beforeclose: function(event, ui) {
                carregaPreLoader(dialogId);
                return true;

           },

            title: titulo
    	});
        $(dialogId).dialog('option','title',titulo);
        if (largura > 0) $(dialogId).dialog('option','width',largura);
		if (altura > 0) $(dialogId).dialog('option','height',altura);
    			
        $(dialogId).dialog('open');
 }

function mostrajqdialogfixa(dialogId,titulo,temclose,largura,altura)
{
    $(dialogId).dialog({
            bgiframe: true,
			autoOpen: false,
           	modal: true,
            beforeclose: function(event, ui) {
                return temclose;

           },
            
            title: titulo
    	});
        $(dialogId).dialog('option','title',titulo);
        if (largura > 0) $(dialogId).dialog('option','width',largura);
		if (altura > 0) $(dialogId).dialog('option','height',altura);

        $(dialogId).dialog('open');
 }

function carregaPreLoader(dialogId){
    $(dialogId).html('<br><br><br><br><br><center><img src="img/detalhes/preloader.gif" /></center>');
}