// JavaScript Document

Util = {
	// Trata um valor de uma variavel pegando valores null e undefined, e trocando por vazio
	treatVars : function(desVar){
		return ( desVar==null || desVar=='undefined' ) ? '' : encodeURIComponent(desVar);
	},
	// Testa a existencia de uma variavel, semelhante ao isset do php, retorna true ou false
	isSetVarParam : function(variableParamTest){
		return (variableParamTest=='' || variableParamTest=='null' || variableParamTest==null || variableParamTest=='undefined' || variableParamTest==undefined) ? false : true;
	},
	// Testa a existencia de uma variavel, semelhante ao isset do php, retorna true ou false
	setValParam : function(variableParamTest, varDefault){
		varDefault = (varDefault=='null' || varDefault==null || varDefault=='undefined' || varDefault==undefined) ? '' : varDefault;
		return (variableParamTest=='' || variableParamTest=='null' || variableParamTest==null || variableParamTest=='undefined' || variableParamTest==undefined) ? varDefault : variableParamTest;
	},
	createQueryStringVars : function(nomForm,jsonVars){
		var arrVar=[];
		var arrVarJsonVars=[];
		for (var jsonVarsKey in jsonVars){ // CORRESPONDENTE AO FOREACH DO PHP
			if(  Util.treatVars( jsonVars[jsonVarsKey]  )!=''  ){
				arrVarJsonVars[jsonVarsKey] = $j(this).attr('id')+'='+Util.treatVars( jsonVars[jsonVarsKey]  );
				arrVar.push( jsonVarsKey+'='+Util.treatVars( jsonVars[jsonVarsKey]  ) );
			}
		}
		if(nomForm!==false && nomForm!==''){
			$j("#"+nomForm+" input[type=text], #"+nomForm+" input[type=hidden], #"+nomForm+" select, #"+nomForm+" textarea, #"+nomForm+" input[type=checkbox]:checked").each(function(){
				if(  !Util.isSetVarParam(arrVarJsonVars[$j(this).attr('id')])  ) arrVar.push( $j(this).attr('id')+'='+$j(this).val() );
			});
			$j('#'+nomForm+" input[type=radio]:checked").each(function(){
				if(  !Util.isSetVarParam(arrVarJsonVars[$j(this).attr('name')])  ) arrVar.push( $j(this).attr('name')+'='+$j(this).val() );
			});
			$j('#'+nomForm+" input[type=password]").each(function(){
				if(  !Util.isSetVarParam(arrVarJsonVars[$j(this).attr('id')])  ) arrVar.push( $j(this).attr('id')+'='+$j(this).val() );
			});
		}
		return arrVar.join('&');
	},
	preencheForm : function(nomForm, jsonData){
		for (var jsonDataKey in jsonData){ // CORRESPONDENTE AO FOREACH DO PHP
			$j("#"+nomForm+" input[id="+jsonDataKey+"], #"+nomForm+" textarea[id="+jsonDataKey+"], #"+nomForm+" span[id="+jsonDataKey+"], #"+nomForm+" div[id="+jsonDataKey+"]").val(jsonData[jsonDataKey]).html(jsonData[jsonDataKey]);
			$j("#"+nomForm+" input[name="+jsonDataKey+"]").attr('checked',true).not("#"+nomForm+" input[value="+jsonData[jsonDataKey]+"]").attr('checked',false);
		}
	},
	limparForm : function(nomForm){
		$j("#"+nomForm+" input[type=text], #"+nomForm+" input[type=password], #"+nomForm+" input[type=file], #"+nomForm+" input[type=hidden], #"+nomForm+" select, #"+nomForm+" textarea").val('');
		$j("#"+nomForm+" input[type=checkbox]:checked").attr('checked',false);
		$j("#"+nomForm+" input[type=checkbox]:checked, #"+nomForm+" input[type=radio]").attr('checked',false);
		//$j("#"+nomForm).reset();
	},
	sleep : function(numTempoMiliSegundos,funcAfter){
		//$j('body').append()
		//if(funcAfter!='' && funcAfter!='null' && funcAfter!='undefined' && funcAfter!=undefined) funcAfter();
	},
	cLink : function(jsonSettings){
		jsonSettings.msgCarregando = Util.setValParam(jsonSettings.msgCarregando,'<center><span style="color:#292929; font-size:12px; font-family:Verdana;">Aguarde, carregando...</span></center>');
		jsonSettings.idContainer = Util.setValParam(jsonSettings.idContainer,'ctnPrincipal');
		jsonSettings.funcAfter = Util.setValParam(jsonSettings.funcAfter,function(){});
		var desLinkPag_variavel = jsonSettings.desLinkPag.split('?');
		var desLinkPag = desLinkPag_variavel[0];
		var variavel = desLinkPag_variavel[1];
		$j.ajax({
			type: 'POST',
			url: desLinkPag,
			cache:false,
			data: variavel,
			beforeSend: function(){
				$j('#'+jsonSettings.idContainer).html(jsonSettings.msgCarregando);
			}, 
			success: function(txt){ // txt => conteúdo trazido pela requisição
				$j('#'+jsonSettings.idContainer).hide().html(txt).fadeIn(300);
				jsonSettings.funcAfter();
			}
		});
	},
	getUrlVars : function(){
		var vars = [], hash;
		var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
		for(var i=0;  i<hashes.length;  i++){	
			hash = hashes[i].split('=');
			hash[1]=unescape(hash[1]);
			vars.push(hash[0]);
			vars[hash[0]]=hash[1];
		}
		return vars;
	}
} 
