
var ajax;
var onde;
var imagem;
var mode;
var block;
var objSelecionado = null;
var mouseOffset = null;
var variavel_global_nao_criar = 1;

$Imp = function(par1)
{
	document.write(par1);
}

// muda cor de fundo=>
// par1 -> cor
$Cor = function(par1)
{
	document.bgColor = "#"+par1+"";
}

// muda de página=>
// par1 -> página
$Loc = function(par1)
{
	document.location = "http://"+par1+"";
}

// muda cor do texto=>
// par1 -> cor
$Txt = function(par1)
{
	document.fgColor = "#"+par1+"";
}

// seleciona elemento por id=>
// par1 -> id do elemento
$Peg = function(par1)
{
	result = document.getElementById(par1);
	return result;
}

// Retorna valor do ID => 
// par1 -> id do elemento
$Val = function(par1)
{
	result = $Peg(par1).value ;
	return result;
}

// Retorna erro =>
// par1 -> qual erro
// par2 -> na parte 
$Ero = function(par1,par2)
{
	result = "Houve um erro "+par1+" Na Parte "+par2;
	return result;
}

// Deposita algum conteúdo no ID =>
// par1 -> id do elemento
// par2 -> mensagem a ser enviada
$Ine = function(par1,par2)
{
	//alert(par1);
	$Peg(par1).innerHTML = par2;
}

// Quantidade de caracteres de um elemento =>
// par1 -> elemento
$Num = function(par1)
{
	result = $Peg(par1).value.length;
	return result;
}

// detecta tecla javascript =>
// par1 -> evento ao pressionar
$Dec = function(par1)
{
    var tec = window.event ? par1.keyCode : par1.which;
    return tec;	
}

// validação de formulário =>
// par1 -> nome do form
// obs: apenas campos text
$Frm = function(par1)
{
	for(i=0; i< $Peg(par1).elements.length; i++)
	{
		if( $Peg(par1).elements[i].value == "")
		{
			alert("Preencha o campo: "+$Peg(par1).elements[i].name);
			return false;
		}	
	}
}

// toogle de elementos =>
// par1 -> id do elemento
$Tog = function(par1){

	if($Peg(par1).style.display != "none"){ $Peg(par1).style.display = "none"; }
	else{ $Peg(par1).style.display = "inline"; }
}

// move um elemento=>
// par1 -> id do elemento
// par2 -> move top
// par3 -> move left
$Mov = function(par1,par2,par3)
{
	$Peg(par1).style.position="absolute";
	$Peg(par1).style.top = par2 + "px";
	$Peg(par1).style.left = par3 + "px";
}

// Esconde Conteúdo da Div=>
// par1 -> id do elemento
$Esc = function(par1)
{
	if( $Peg(par1).style.visibility == "hidden")
	{
		$Peg(par1).style.visibility = "visible";
	}
	else
	{
		$Peg(par1).style.visibility = "hidden"
	}
}

// Dia português
$Dia = function()
{
	Dia = new Date();
	diaAtual = Dia.getDay();
	switch (diaAtual)
	{ 
		case 0: diaAtual="Domingo"; break;
		case 1: diaAtual="Segunda"; break;
		case 2: diaAtual="Terça"; break;
		case 3: diaAtual="Quarta"; break;
		case 4: diaAtual="Quinta"; break;
		case 5: diaAtual="Sexta"; break;
		case 6: diaAtual="Sabado"; break;
	}
	mesAtual = Dia.getMonth();
	switch (mesAtual)
	{ 
		case 0: mesAtual="Janeiro"; break;
		case 1: mesAtual="Fevereiro"; break;
		case 2: mesAtual="Março"; break;
		case 3: mesAtual="Abril"; break;
		case 4: mesAtual="Maio"; break;
		case 5: mesAtual="Junho"; break;
		case 6: mesAtual="Julho"; break;
		case 7: mesAtual="Agosto"; break;
		case 8: mesAtual="Setembro"; break;
		case 9: mesAtual="Outubro"; break;
		case 10: mesAtual="Novembro"; break;
		case 11: mesAtual="Dezembro"; break;
	}
	result = "" + diaAtual + ", " +Dia.getDate()+ " de " + mesAtual + " de " + (Dia.getYear());
	return result;
}


$Cri = function(par1)
{
	elemento = document.createElement(par1);
	return elemento;
}


$Nov = function(par1,par2,par3,par4)
{
	//alert(par1+":"+par2+":"+par3+":"+par4);
	//quebrando o valor para testar options iguais
	var exist = 0 ;
	var valor_testar;
	if( par3.length >= 1)
	{
		if(par3.length == par4.length)
		{
			for(i=0; i < par3.length;i++)
			{
				if(par3[i]=="value"){
					valor_testar = par4[i];
					exist = 1;
					break;
				}				
			}
		}
	}
	
	if(!$ExistValor(par2,valor_testar)){
		variavel_global_nao_criar  = 1;
		var novo = $Cri(par1);
		var onde = $Peg(par2);
		$Atr(novo,par3,par4,onde);
	}else{
		
		variavel_global_nao_criar  = 0;
	}
}

$Atr = function(par1,par2,par3,par4)
{
	//alert(par3);
	if( par2.length >= 1)
	{
		if(par2.length == par3.length)
		{
			for(i=0; i < par2.length;i++)
			{
				par1.setAttribute(par2[i],par3[i]);
			}
			par4.appendChild(par1);
		}
		else
		{
			par1.setAttribute(""+par2+"",""+par3+"");
			par4.appendChild(par1);
		}
	}
}

$ExistValor = function (id,valor_atual){
	
	//listando todos do select precarregados pelo usuario
	var optionMob = $Peg(id);

	if(optionMob.length>0){
		for(i = 0;i<optionMob.length;i++){
			//alert(optionMob[i].value+":"+valor_atual);
			if(optionMob[i].value==valor_atual)
				return true;
		}
	}
	
	return false;
}

$Rem = function(par1,par2)
{
	pai = $Peg(par1);
	velho = $Peg(par2);
	pai.removeChild(velho);
}

$Rep = function(par1,par2,par3,par4,par5)
{
	novo = $Cri(par1);
	velho = $Peg(par3);
	pai = $Peg(par2);
		
	if( par4.length >= 1)
	{
		if(par4.length == par5.length)
		{
			for(i=0; i < par4.length;i++)
			{
				novo.setAttribute(par4[i],par5[i]);
			}
			pai.replaceChild(novo,velho);
		}
		else
		{			
			novo.setAttribute(""+par4+"",""+par5+"");
			pai.replaceChild(novo,velho);
		}
	}				
}

$Nod = function(par1,par2)
{
	if(variavel_global_nao_criar){
		par2= document.createTextNode(par2);
		$Peg(par1).appendChild(par2);
	}
}

$Aja = function(par1,par2,par3,par4,par5,par6)
{

	ajax = null;
	onde = par4;
	imagem = par5;
	mode = par6;
	
	if (window.XMLHttpRequest)
	{
		ajax = new XMLHttpRequest();
		if(ajax != null)
		{
			$Con(par1,par2,par3);
		}
	} 
	else if (window.ActiveXObject)
	{
		var versoes = [ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0",
		"MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];
	
		for( var i=0; i < versoes.length; i++)
		{
			try
			{
				ajax = new ActiveXObject(versoes[i]);
			}
			catch (ex)
			{

			}
		}

		if (ajax != null) 
		{
			$Con(par1,par2,par3);
		}
	}
	return false;
}


// Função principal ajax =>
// par1 -> endereço da página
// par2 -> método
// par3 -> caso POST - id do formulário : default - null
// par4 -> div em que irá aparecer : default null
// par5 -> imagem : default null
// par6 -> json
$Aja2 = function(par1,par2,par3,par4,par5,par6)
{
	//ajax = null;
	var onde2 = par4;
	var imagem2 = par5;
	mode = par6;
	var ajaxnew = null;
	
	if (window.XMLHttpRequest)
	{
		//if(xmlhttp==1)
		ajaxnew = new XMLHttpRequest();
			
		if(ajaxnew != null)
		{
			$Con2(imagem2,onde2,ajaxnew,par1,par2,par3);
		}
	} 
	else if (window.ActiveXObject)
	{
		var versoes = [ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0",
		"MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];
	
		for( var i=0; i < versoes.length; i++)
		{
			try
			{
				ajaxnew = new ActiveXObject(versoes[i]);
			}
			catch (ex)
			{

			}
		}

		if (ajaxnew != null) 
		{
			$Con2(imagem2,onde2,ajaxnew,par1,par2,par3);
		}
	}
	return false;
}
// insere imagem enquanto o estado não estiver 4=>
// par1 -> imagem para ser carregada
// obs: http://www.ajaxload.info/
$Iaj = function(par1)
{
	if( par1 != null)
	{
		for( i=0; i <= 3; i++)
		{
			if(ajax.readyState == i)
			{
				$Ine(onde,"<img src="+par1+" align='center' alt="+par1+" >");
			}
		}
	}
}

// insere imagem enquanto o estado não estiver 4=>
// par1 -> imagem para ser carregada
// obs: http://www.ajaxload.info/
$Iaj2 = function(onde2,par1,ajaxnew2)
{
	if( par1 != null)
	{
		for( i=0; i <= 3; i++)
		{
			if(ajaxnew2.readyState == i)
			{
				$Ine(onde2,"<img src="+par1+" align='center' alt="+par1+" >");
			}
		}
	}
}
// Compara e retorna o resultado =>
$Sta2 = function(imagem2,onde2,ajaxnew1)
{
	$Iaj2(onde2,imagem2,ajaxnew1);
	
	//alert('aqui'+onde+" : "+ajaxnew1);
	
	if (ajaxnew1.readyState == 4) 
	{
		if (ajaxnew1.status ==200) 
		{
			if(mode == "json")
			{
				if(onde2 == null)
				{
					 eval('var jsonF='+ajaxnew1.responseText+'');
					 eval(jsonF.js);
				}
				else
				{
					eval('var jsonF='+ajaxnew1.responseText+'');
					$Ine(onde2,jsonF.html);
					eval(jsonF.js);
				}
				//onde = null;
				block = "on";
			}	
		
			if(onde2 != null )
			{
				$Ine(onde2,ajaxnew1.responseText);
			}
			
			if(onde2 == null)
			{
				if(block != "on")
				{
					alert(ajaxnew1.responseText);
				}
			}
		} 
		else 
		{
			alert("Houve um problema ao obter os dados:n" + ajaxnew1.statusText);
		}
	}
}

// Compara e retorna o resultado =>
$Sta = function()
{
	$Iaj(imagem);

	if (ajax.readyState == 4) 
	{
		if (ajax.status ==200) 
		{
			if(mode == "json")
			{
				if(onde == null)
				{
					 eval('var jsonF='+ajax.responseText+'');
					 eval(jsonF.js);
				}
				else
				{
					eval('var jsonF='+ajax.responseText+'');
					$Ine(onde,jsonF.html);
					eval(jsonF.js);
				}
				onde = null;
				block = "on";
			}	
		
			if(onde != null )
			{
				$Ine(onde,ajax.responseText);
			}
			
			if(onde == null)
			{
				if(block != "on")
				{
					alert(ajax.responseText);
				}
			}
		} 
		else 
		{
			alert("Houve um problema ao obter os dados:n" + ajax.statusText);
		}
	}
}


// Envia os Dados Ajax =>
// par1 -> endereço da página
// par2 -> método
// par3 -> nome formulário
// obs: passados por $Aja
$Con2 = function(imagem2,onde2,ajaxnew,par1,par2,par3)
{
	ajaxnew.onreadystatechange = function(){$Sta2(imagem2,onde2,ajaxnew)};
	
	if ( par2 == "GET" )
	{
		ajaxnew.open(par2,par1,true);
		ajaxnew.send(null);
	}
	else if ( par2 == "POST" )
	{
		ajaxnew.open(par2,par1,true);
		ajaxnew.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		dados = $Env(par3);
		ajaxnew.send(dados);
	}		
}

// Envia os Dados Ajax =>
// par1 -> endereço da página
// par2 -> método
// par3 -> nome formulário
// obs: passados por $Aja
$Con = function(par1,par2,par3)
{
	ajax.onreadystatechange = $Sta;
	
	if ( par2 == "GET" )
	{
		ajax.open(par2,par1,true);
		ajax.send(null);
	}
	else if ( par2 == "POST" )
	{
		ajax.open(par2,par1,true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		dados = $Env(par3);
		ajax.send(dados);
	}		
}

// envia dados formulário passado em $Aja => 
// par1 -> nome do formulário
// obs: passo por $Aja
$Env = function(par1) 
{
	var parans = new Array();

	for( i=0; i < $Peg(par1).elements.length; i++)
	{
		var parametro = encodeURIComponent($Peg(par1).elements[i].name);
		parametro += "=";
		parametro += encodeURIComponent($Peg(par1).elements[i].value);
		parans.push(parametro);
	}

	return parans.join("&");
}

// completa o Get com Valores =>
// par1 -> Endereço da Página
// par2 -> Div em que irá aparecer o resulado
// par3 -> ID do elemento
// par4 -> imagem : default : null
$Gax = function(par1,par2,par3,par4)
{
	//url para buscar os dados get
	var string_get = "";
	
	if(par3.indexOf(",")==-1){	
		nom = $Peg(par3).name;	
		add = $Peg(par3).value;
		string_get = nom+"="+add;
	}
	//aqui tem que ser varios campos de value para buscar
	else{
		
		var vetor_ids = par3.split(",");
		for(i=0;i<vetor_ids.length;i++){
			
			nom = $Peg(vetor_ids[i]).name;	
			add = $Peg(vetor_ids[i]).value;
			
			if(string_get)
				string_get+="&";
			
			string_get+= nom+"="+add;
		}
	}

	$Aja(par1+"?"+string_get,"GET",null,par2,par4,null);
}

// completa o Get com Valores =>
// par1 -> Endereço da Página
// par2 -> Div em que irá aparecer o resulado
// par3 -> ID do elemento
// par4 -> imagem : default : null
$Gax2 = function(par1,par2,par3,par4)
{
	//url para buscar os dados get
	var string_get = "";
	
	if(par3.indexOf(",")==-1){	
		nom = $Peg(par3).name;	
		add = $Peg(par3).value;
		string_get = nom+"="+add;
	}
	//aqui tem que ser varios campos de value para buscar
	else{
		
		var vetor_ids = par3.split(",");
		for(i=0;i<vetor_ids.length;i++){
			
			nom = $Peg(vetor_ids[i]).name;	
			add = $Peg(vetor_ids[i]).value;
			
			if(string_get)
				string_get+="&";
			
			string_get+= nom+"="+add;
		}
	}

	$Aja2(par1+"?"+string_get,"GET",null,par2,par4,null);
}