/*--------------------------------------------------------------------------
 *	AjaxLoad JavaScript framework, version 1.0.1
 *  AjaxLoad.js
 * 	(c) 2007-2008 Juliano Biscaia
 *
 * 	Changelog version 1.0.1
 *		-	Criada a funcao AjaxGrid. Seu funcionamento assemelha-se à função
 *			AjaxLoad, exceto que o método utilizado para envio das informações é
 *			o POST, possibilitanto assim o envio de grandes quantidades de
 *			informacoes.[ 30/04/2008, 15:25 ]
 *--------------------------------------------------------------------------*/

function AjaxInit(){
  try{
      xmlhttp = new XMLHttpRequest();
  }catch(ee){
      try{
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
          try{
              xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          }catch(E){
              xmlhttp = false;
          }
      }
  }

  return xmlhttp;
}


/**
* ExecutaScript - Funcao usada para montar scripts JS carregados via AJAX
*
* @author Juliano Biscaia
*/
function ExecutaScript(vsConteudo) {

  var ini, pos_src, fim, codigo;
  var objScript = null;
  ini = vsConteudo.indexOf('<script', 0)

  while (ini!=-1){
    var objScript = document.createElement("script");
    pos_src = vsConteudo.indexOf(' src', ini)
    ini = vsConteudo.indexOf('>', ini) + 1;
    if (pos_src < ini && pos_src >=0) {
      ini = pos_src + 4;
      fim = vsConteudo.indexOf('.', ini)+4;
      codigo = vsConteudo.substring(ini,fim);
      codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
      objScript.src = codigo;
    }//fim if
    else {
      fim = vsConteudo.indexOf('</script>', ini);
      codigo = vsConteudo.substring(ini,fim);
      //codigo = codigo.replace("§","+");//HACK para resolver problemas com o sinal de "+" nos JS dentro das paginas carregadas
      objScript.text = codigo;
    }//fim else

    document.body.appendChild(objScript);
    ini = vsConteudo.indexOf('<script', fim);
    objScript = null;
  }//fim while
}//fim function


/**
* AjaxLoad - Funcao para carregar conteudo via AJAX
*
*
*/
function AjaxLoad(vsTarget, vsUrl, vsParam) {
  var voAjax = AjaxInit();


  $(vsTarget).innerHTML 						= "";
	$(vsTarget).innerHTML 						= "<p class='MsgWait'><img src='../img/ajax-loader-01.gif'>Aguarde, carregando...</p>";
  //$('ovD_MsgAguarde').style.display	=	"";

  voAjax.open("GET", vsUrl+"?"+vsParam, true);
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange = function(){
    if (voAjax.readyState == 4) {
      if (voAjax.status == 200) {
        var vsConteudo = unescape(voAjax.responseText.replace(/\+/g , " "));;
        //$('ovD_MsgAguarde').style.display='none';
        	$(vsTarget).innerHTML = vsConteudo;

        	ExecutaScript(vsConteudo);
        	
      }
      else {
      	//$('ovD_MsgAguarde').style.display='none';
				//alert('ERRO NA REQUISICAO');
				$(vsTarget).innerHTML = "<p class='MsgWait'><img src='../img/ajax-loader-01.gif'> Erro ao carregar conteúdo. Erro: "+voAjax.status+"</p>";

      }
    }
  }

  voAjax.send(null);
}


function AjaxLoadMenu(vsTarget, vsUrl, vsParam) {
  var voAjax = AjaxInit();


  $(vsTarget).innerHTML 						= "";
	$(vsTarget).innerHTML 						= "<p class='MsgWait'><img src='../img/ajax-loader-01-small.gif'>Aguarde, carregando...</p>";
  //$('ovD_MsgAguarde').style.display	=	"";

  voAjax.open("GET", vsUrl+"?"+vsParam, true);
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange = function(){
    if (voAjax.readyState == 4) {
      if (voAjax.status == 200) {
        var vsConteudo = unescape(voAjax.responseText.replace(/\+/g , " "));;
        //$('ovD_MsgAguarde').style.display='none';
        $(vsTarget).innerHTML = vsConteudo;
				ExecutaScript(vsConteudo);
      }
      else {
      	//$('ovD_MsgAguarde').style.display='none';
				//alert('ERRO NA REQUISICAO');
				$(vsTarget).innerHTML = "<p class='MsgWait'><img src='../img/ajax-loader-01-small.gif'> Erro ao carregar conteúdo.<br>Erro: "+voAjax.status+"</p>";

      }
    }
  }

  voAjax.send(null);
}

/**
 * AjaxLoadPost() -
 * Seu funcionamento assemelha-se à função AjaxLoad, exceto que o
 * método utilizado para envio das informações é o POST, possibilitanto
 * assim o envio de grandes quantidades de informacoes.[ 30/04/2008, 15:25 ]
 *
 * @author Juliano Biscaia
 */
function AjaxGrid(vsTarget, vsUrl, vsParamGrid){

	var voAjax = AjaxInit();
  $(vsTarget).innerHTML 						= "";
  $('ovD_MsgAguarde').style.display	=	"";

	voAjax.open("POST", vsUrl, true);
	voAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	voAjax.setRequestHeader("Content-length",  vsParamGrid.length);
	voAjax.setRequestHeader("Connection", "close");
	voAjax.onreadystatechange = function() {
		if(voAjax.readyState == 4 && voAjax.status == 200) {
			$(vsTarget).innerHTML	=	voAjax.responseText;
			$('ovD_MsgAguarde').style.display	=	"none";
		}
	}
	voAjax.send(vsParamGrid);

}


/**
*
*
*
*/
	/*
function AjaxSave(vsForm, vsUrl, vsFuncao){

  var voAjax            = AjaxInit();
  var vaElementos       = $(vsForm).elements;
  var viQntdElementos   = vaElementos.length
  var vaElementosSalvar = new Array();
  var vsNomeCampo       = '';

  for(viAux=0;viAux<viQntdElementos;viAux++){

    if(vaElementos[viAux].type != '' && vaElementos[viAux].type != 'button' && vaElementos[viAux].type != 'reset'){
      //Verificando se este elemento e' OBRIGATORIO
      if(vaElementos[viAux].name.substring(0,1) == "R"){
        //Verificando se o campo foi preenchido
        if(vaElementos[viAux].value == ''){
          //Montando o nome do campo para exibicao
          vaNomeCampo = vaElementos[viAux].name.split("_");
          for(viAuxNome=1;viAuxNome<vaNomeCampo.length;viAuxNome++){
            vsNomeCampo += vaNomeCampo[viAuxNome]+" ";
          }
          alert('ATENÇÃO! \n\nPreencha o campo '+vsNomeCampo+'!');
          $(vaElementos[viAux]).focus();
          return;
        }//fim if
      }//fim if
      vaElementosSalvar[viAux] = vaElementos[viAux].value;
    }//fim if
  }//fim for



  //Iniciando o processo AJAX para salvar as informacoes no BD
  voAjax.open("POST",vsUrl+"?funcao="+vsFuncao,true);
  voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange=function() {
    if (voAjax.readyState==4){
      if(voAjax.status == 200){
      	AjaxMsg('DivMsg','Operação realizada com sucesso!');
        //alert(voAjax.responseText);
        $('ovI_Id').value = voAjax.responseText;

      }//fim if
    }//fim if
  }//fim function
  vsParametro = "vsParametros="+vaElementosSalvar;
  voAjax.send(vsParametro);

}//fim function
*/


function AjaxSave(vsForm, vsUrl, vsFuncao){

  var voAjax            = AjaxInit();
  var vaElementos       = $(vsForm).elements;
  var viQntdElementos   = vaElementos.length
  var vaElementosSalvar = new Array();
  var vsNomeCampo       = '';
  for(viAux=0;viAux<viQntdElementos;viAux++){
    if(vaElementos[viAux].type != '' && vaElementos[viAux].type != 'button' &&
    vaElementos[viAux].type != 'reset' && vaElementos[viAux].name != undefined){
      //Verificando se este elemento e' OBRIGATORIO
      if(vaElementos[viAux].name.substring(0,1) == "R") {
        //Verificando se o campo foi preenchido
        if(vaElementos[viAux].value == '') {
          //Montando o nome do campo para exibicao
          vaNomeCampo = vaElementos[viAux].name.split("_");
          for(viAuxNome=1;viAuxNome<vaNomeCampo.length;viAuxNome++){
            vsNomeCampo += vaNomeCampo[viAuxNome]+" ";
          }
          alert('ATENÇÃO! \n\nPreencha o campo '+vsNomeCampo+'!');
          $(vaElementos[viAux]).focus();
          return;
        }//fim if
      }//fim if

      //Iniciando o processo de tratamento dos tipos de inputs

      //Verificando se e um EDIT ou SELECT
      if (vaElementos[viAux].type == 'text' || vaElementos[viAux].type == 'textarea' || vaElementos[viAux].type == 'password' || vaElementos[viAux].type == 'select-one') {
      	vaElementosSalvar[viAux] = vaElementos[viAux].value;
      }
      else if (vaElementos[viAux].type == 'checkbox'){ //Verificando se e um CHECKBOX
				//Verificando se o checkbox esta marcado.
				if (vaElementos[viAux].checked == true){
      		//vaElementosSalvar[viAux] = 'true';
					vaElementosSalvar[viAux] = vaElementos[viAux].value;
      	}//fim if
				/*
      	else {
      		vaElementosSalvar[viAux] = 'false';
      	}//fim else
				*/
      }//fim else if
    }//fim if

  }//fim for



  //Iniciando o processo AJAX para salvar as informacoes no BD
  voAjax.open("POST",vsUrl+"?funcao="+vsFuncao,true);
  voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange=function() {
    if (voAjax.readyState==4){
      if(voAjax.status == 200){
      	AjaxMsg('DivMsg','Operação realizada com sucesso!');
        //alert(voAjax.responseText);
        $('ovI_Id').value = voAjax.responseText;

      }//fim if
    }//fim if
  }//fim function
  vsParametro = "vsParametros="+vaElementosSalvar;
//  alert(vsParametro);
  voAjax.send(vsParametro);

}//fim function




function AjaxSave2(vsForm, vsUrl, vsFuncao, vsDivMsg, vsMsg, vbLineRemove,viIdLineRemove) {

  var voAjax            = AjaxInit();
  var vaElementos       = $(vsForm).elements;
  var viQntdElementos   = vaElementos.length
  var vaElementosSalvar = new Array();
  var vsNomeCampo       = '';

  for(viAux=0;viAux<viQntdElementos;viAux++){
    if(vaElementos[viAux].type != '' && vaElementos[viAux].type != 'button' &&
    vaElementos[viAux].type != 'reset' && vaElementos[viAux].name != undefined){

      //Iniciando o processo de tratamento dos tipos de inputs
      //Verificando se e um EDIT ou SELECT
      if (vaElementos[viAux].type == 'text' || vaElementos[viAux].type == 'password' || vaElementos[viAux].type == 'select-one' || vaElementos[viAux].type == 'hidden') {
      	vaElementosSalvar[viAux]	= vaElementos[viAux].value;
				vaElementosSalvar[viAux]	=	vaElementosSalvar[viAux].replace(".","");
				vaElementosSalvar[viAux]	=	vaElementosSalvar[viAux].replace(",",".");
      }
			else if (vaElementos[viAux].type == 'textarea' ) {
				var vsTAContent						=	vaElementos[viAux].value.replace(/,/gi,"§");
				vaElementosSalvar[viAux]	= vsTAContent;
			}
      else if (vaElementos[viAux].type == 'checkbox'){ //Verificando se e um CHECKBOX
				//Verificando se o checkbox esta marcado.
				if (vaElementos[viAux].checked == true){
      		//vaElementosSalvar[viAux] = 'true';
					vaElementosSalvar[viAux] = vaElementos[viAux].value;
      	}//fim if

      }//fim else if
    }//fim if
  }//fim for

  //Iniciando o processo AJAX para salvar as informacoes no BD
  voAjax.open("POST",vsUrl+"?funcao="+vsFuncao,true);
  voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange=function() {
    if (voAjax.readyState==4){
      if(voAjax.status == 200){

				//alert(voAjax.responseText)

      	AjaxMsg(vsDivMsg,vsMsg);
        $('ovI_Id').value = voAjax.responseText;

      }//fim if
    }//fim if
  }//fim function


  vsParametro = "vsParametros="+vaElementosSalvar;
//  alert(vsParametro);
  voAjax.send(vsParametro);

}//fim function





function AjaxSave3(vsForm, vsUrl, vsFuncao, vsDivMsg, vsMsg, vbLineRemove,viIdLineRemove){

  var voAjax            = AjaxInit();
  var vaElementos       = $(vsForm).elements;
  var viQntdElementos   = vaElementos.length
  //var vaElementosSalvar = new Array();
	var vaElementosSalvar = '';
  var vsNomeCampo       = '';
	var tmp								=	'';

  for(viAux=0;viAux<viQntdElementos;viAux++){
    if(vaElementos[viAux].type != '' && vaElementos[viAux].type != 'button' &&
    vaElementos[viAux].type != 'reset' && vaElementos[viAux].name != undefined){

      //Iniciando o processo de tratamento dos tipos de inputs
      //Verificando se e um EDIT ou SELECT
      if (vaElementos[viAux].type == 'text' || vaElementos[viAux].type == 'password' || vaElementos[viAux].type == 'select-one' || vaElementos[viAux].type == 'hidden') {
				tmp 	= '';
				tmp		=	vaElementos[viAux].value;
				tmp		=	tmp.replace(".","");
				tmp		=	tmp.replace(",",".");

				vaElementosSalvar	+= tmp+"_";
				/*
      	vaElementosSalvar[viAux]	= vaElementos[viAux].value;
				vaElementosSalvar[viAux]	=	vaElementosSalvar[viAux].replace(".","");
				vaElementosSalvar[viAux]	=	vaElementosSalvar[viAux].replace(",",".");
				*/
      }
			else if(  vaElementos[viAux].type == 'textarea' ) {
				//vaElementosSalvar[viAux]	= vaElementos[viAux].value;
				vaElementosSalvar	+=  vaElementos[viAux].value+"_";
			}
      else if (vaElementos[viAux].type == 'checkbox'){ //Verificando se e um CHECKBOX
				//Verificando se o checkbox esta marcado.
				if (vaElementos[viAux].checked == true){
      		//vaElementosSalvar[viAux] = 'true';
					//vaElementosSalvar[viAux] = vaElementos[viAux].value;
					vaElementosSalvar	+=  vaElementos[viAux].value+"_";
      	}//fim if

      }//fim else if
    }//fim if
  }//fim for

  //Iniciando o processo AJAX para salvar as informacoes no BD
  voAjax.open("POST",vsUrl+"?funcao="+vsFuncao,true);
  voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange=function() {
    if (voAjax.readyState==4){
      if(voAjax.status == 200){
				if(vbLineRemove){
					$(viIdLineRemove).style.display = 'none'
				}
				//alert(voAjax.responseText)

      	AjaxMsg(vsDivMsg,vsMsg);
        $('ovI_Id').value = voAjax.responseText;

      }//fim if
    }//fim if
  }//fim function
alert(vaElementosSalvar);
  vsParametro = "vsParametros="+vaElementosSalvar;
  voAjax.send(vsParametro);

}//fim function




/**
* AjaxDel - Funcao para apagar informacao via AJAX
*
*
*/
function AjaxDel(vsUrl, vsFuncao, vsParam){

  var voAjax            = AjaxInit();

  //Iniciando o processo AJAX para salvar as informacoes no BD
  voAjax.open("POST",vsUrl+"?funcao="+vsFuncao,false);
  voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
  voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
  voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
  voAjax.setRequestHeader("Pragma", "no-cache");
  voAjax.onreadystatechange=function() {
    if (voAjax.readyState==4){
      if(voAjax.status == 200){
        //alert(voAjax.responseText);

      }//fim if
    }//fim if
  }//fim function

  vsParametro = "vsParametros="+vsParam;
  voAjax.send(vsParametro);

}//fim function


/**
* 
*/
function AjaxSaveData(vaData, vsUrl){

	var voAjax	=	AjaxInit();
	
	voAjax.open("POST",vsUrl,true);
	voAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
	voAjax.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	voAjax.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	voAjax.setRequestHeader("Pragma", "no-cache");
	voAjax.onreadystatechange=function() {
		if (voAjax.readyState==4){
			if(voAjax.status == 200){
				return voAjax.responseText;
			}
			else{
				alert('ERRO \n'+voAjax.status);
			}
		}//tchau IF
	}//tchau FUNCTION
	
	vsParam = "vsParam="+vaData;
	voAjax.send(vsParam)

}



/**
* AjaxMsg - Funcao para exibir msgs em DIVS
*/
function AjaxMsg(vsTarget, vsMsg){
	$(vsTarget).style.display 		= '';
	$(vsTarget).innerHTML					= vsMsg;
}