var $jq 			= jQuery.noConflict();
var BASE_URL 		= '';
var LOCATION_URL 	= location.pathname;
var PUBLIC_DIR		= BASE_URL+"/public";



verificaValor = function (tag, txt){
	if(tag){
		if(trim(tag.value.toLowerCase()) == trim(txt.toLowerCase())){
			tag.value = "";
		}
	}
}
addValor = function (tag,txt){
	if(tag){
		if(trim(tag.value) == ""){
			tag.value = trim(txt);
		}
	}
}

enviarForm = function (page, form_id, bt_id, id_retorno){
	page = page.toLowerCase();

	var form	= $(form_id);
	var bt		= $(bt_id);
	
	retorno = null;
	if(id_retorno){
		retorno = $(id_retorno);
	}
	botao = '';
	if(bt){
		botao = bt_id;
		bt.disabled = true;
	}
	
	var params = form.serialize(true);
	//new Ajax.Request(page, {parameters: params, encoding: 'UTF-8', onComplete:enviarFormBack});
	new Ajax.Request(
			page, 
			{
				evalScripts:true,
				parameters: params, 
				metod: 'POST', 
				onLoading: function(response){
					if(retorno){
						retorno.innerHTML = "";
						miniLoad(retorno,'miniload');
					}
				},			
				onComplete:enviarFormBack,
				/**/
	            onCreate: function(response) {
					try{response.transport.overrideMimeType("text/html;charset=ISO-8859-1");}catch(Exception){}
				},
				/**/
				encoding: 'ISO-8859-1'
			}
		);
}
enviarFormBack = function (e, a){
	res = eval('(' + e.responseText + ')');
	
	try{
		var msg 	= "";
		var tipo	= "erro";
		if(res['msg']){
			msg = res['msg'];
		}
		if(res['tipo']){
			tipo = res['tipo'];
		}
		if(retorno){
			miniLoad(retorno,'miniload');
			retorno.innerHTML = '<div class="div'+tipo+'"><span class="msgIcon msg'+tipo+'">'+tipo+'</span>'+msg+'</div></div>';
		}else{
			if(res['tipo'] == 'ok' || res['tipo'] == 'dialogo'){
				if(res['msg']){
					if(res['tipo'] == 'dialogo'){
						this.dialogo(res['msg'],res['url']);
						return true;
					}else
						this.addMensage(res['msg'],res['tipo']);
				}else
					this.addMensage('Operação realizada com sucesso!','ok');
			}
			else if(res['tipo'] != 'no'){
				if(res['msg'])
					this.addMensage(res['msg'],res['tipo']);
				else
					this.addMensage('Não foi possivel executar a operação, por favor verifique os dados!','erro');
			}
		}
	}catch(Exception){}
	var bt = $(botao);
	if(bt)
		bt.disabled = false;
}

function miniLoad(div,id){
	try{
		if(div){
			var option = document.createElement("div");
			option.setAttribute('id',id);
			option.innerHTML = "<img src=\""+PUBLIC_DIR+"/images/mini-loader.gif\" />";
			
			div.appendChild(option);
		}
	}catch(Exception){}
}
function removeMiniLoad(div,id){
	try{
		if(div && $(id))
			div.removeChild($(id));
	}catch(Exception){}
}

function valida_email(id){
	var exp_mail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	eval("reEmail = exp_mail");
	
	var tag = document.getElementById(id);
	if(tag && this.trim(tag.value)){
		var msg = '<span>E-mail inválido.</span>';
		var mail = tag.value;
		if (!reEmail.test(mail)) {
			addMensage(msg,'aviso');
			tag.value = '';
			tag.focus();			
			return false;
		}
	}
	return true;
}

function trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}
function is_array(input){
    return typeof(input)=='object'&&(input instanceof Array);
}

function requiredInput(id,tagName){
	var flag 	= false;
	//var bg 		= "#FFE1E1";
	var bg 			= "none repeat scroll 0% 0% rgb(255, 225, 225)";
	var bg_atual= "#FFFFFF";
	
	var radio_str = false;
	var radio_aux = "";
	
	for(var i = 0; tagName && i<tagName.length; i++){
		var keys = document.getElementsByTagName(tagName[i]);
			
		for (j=0; keys && j<keys.length; j++) {
			var pos = keys[j].className.indexOf("key");
			var str = this.trim(keys[j].value);
			
			if(pos>=0){	
				if(keys[j].type == 'radio'){
					if(radio_aux == "")
						radio_aux = keys[j].name;
					
					if(keys[j].name != radio_aux){
						radio_aux = keys[j].name;
						if(!radio_str){
							flag = true;
						}
						radio_str = false;
					}else{
						if(keys[j].checked)
							radio_str = keys[j].checked;
					}
				}else{
					if(str == "" && (keys[j].parentNode.parentNode.style.display != "none")){
						flag = true;
						keys[j].style.background = bg;
					}else{
						var atual = keys[j].style.background;
						if(atual == bg)
							keys[j].style.background = bg_atual;
					}
				}
			}
		}
	}
	if(flag){
		error('<span><font color="red">*</font> Campos obrigatórios.</span>');
		return false;
	}
	return true;
}

/******************************
 * 
 * FUNÇÕES DE SCROLL
 * 
 * ****************************/
/**
function setScrollXY(x,y){
	try{
		window.scrollTo(x,y);
	}catch(Exception){}
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function getScrollX(){
	var x = this.getScrollXY();
	return x[0];
}
function getScrollY(){
	var y = this.getScrollXY();
	return y[1];
}
function setScrollX(x){
	setScrollXY(x,this.getScrollY());
}
function setScrollY(y){
	setScrollXY(this.getScrollX(),y);
}
/******************************
 * 
 * FIM FUNÇÕES DE SCROLL
 * 
 * ****************************/




/******************************
 * 
 * FUNÇÕES DE DIALOGO
 * 
 * ****************************/
/**
function addMensage(msg,tp){
	switch(tp){
		case "ok":
			sucesso(msg);
			break;
		case "alert":
		case "warning":
		case "aviso":
			alert(msg);
			break;
		case "err":
		case "erro":
		case "error":
			error(msg);
			break;
		default:
			message(msg);		
	}
}

$jq('document').ready(function(){
	$jq('#alert').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
	$jq('#confirm').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
	$jq('#dialogo').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
	$jq('#error').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
	$jq('#message').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
	$jq('#success').jqm({
		overlay: 60,
		overlayClass: 'overlay',
		modal: true,
		trigger: false
	});
});

SCAP_TOP_SCROLL = 150;
function alert(msg){
	$jq('#alert')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmAlertContent')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){
			$jq('#alert').jqmHide();
		});
}

function confirm(msg,callback){
	$jq('#confirm')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmConfirmContent')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){
			if(this.value == 'Sim'){
				if(typeof callback == 'string'){
					window.location.href = callback;
				}else
					callback;
			}
			$jq('#confirm').jqmHide();
		});
}
function dialogo(msg,callback){
	$jq('#dialogo')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmConfirmContent')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){

			if(typeof callback == 'string'){
				window.location.href = callback;
			}else
				callback;
			
			$jq('#dialogo').jqmHide();
		});
}

function error(msg){

	$jq('#error')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmErrorContent')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){
			$jq('#error').jqmHide();
		});
}
function message(msg){

	$jq('#message')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmMessageContent')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){
			$jq('#message').jqmHide();
		});
}
function sucesso(msg){

	$jq('#success')
		.css('top',(this.getScrollY()+SCAP_TOP_SCROLL)+'px')
		.jqmShow()
		.find('div.jqmMessageSuccess')
		.html("<span>" +msg+ "</span>")
		.end()
		.find(':submit:visible')
		.click(function(){
			$jq('#success').jqmHide();
		});
}	
/******************************
 * 
 * FIM FUNÇÕES DE DIALOGO
 * 
 * ****************************/		
		
		
		
		

/******************************
 * 
 * FUNÇÕES DE PAGINAÇÃO
 * 
 * ****************************/
//$jq = jQuery.noConflict();
$jq(
	function() {
		$jq('.paginacao > ul > li > a').click(
			function() {
				//alert($jq(this).parent().parent().parent().html())
				$jq('.paginacao > ul > li').removeClass('paginaSelecionada');
				$jq(this).parent().addClass('paginaSelecionada');
				vl = $jq(this).children('span').html();
				vl = (vl<=0)?1:vl;
				$jq('#pgAtual').attr("value", vl);
			}
		);
		$jq('.nextPage').click(
			function (){
				var lista = $jq('.paginacao > ul > li > a').children("span");
				for(i=0;i<lista.length;i++){
					vl = lista[i];
					
					if(vl.innerHTML == $jq('#pgAtual').attr("value")){
						vl = (parseInt($jq('#pgAtual').attr("value"))+1);
						vl = (vl>=lista.length)?lista.length:vl;
						$jq('.paginacao > ul > li > #pos'+vl).click();
					}
				}
			}
		);
		$jq('.backPage').click(
			function (){
				var lista = $jq('.paginacao > ul > li > a').children("span");
				for(i=0;i<lista.length;i++){
					vl = lista[i];
					
					if(vl.innerHTML == $jq('#pgAtual').attr("value")){
						vl = (parseInt($jq('#pgAtual').attr("value"))-1);
						vl = (vl<=0)?1:vl;
						$jq('.paginacao > ul > li > #pos'+vl).click();
					}
					
				}
			}
		);
	}
);
/******************************
 * 
 * FIM FUNÇÕES DE PAGINAÇÃO
 * 
 * ****************************/



/******************************
 * 
 * VALIDAR CAMPOS
 * 
 * ****************************/
function requiredInput(id,tagName){
	var flag 	= false;
	//var bg 		= "#FFE1E1";
	var bg 			= "none repeat scroll 0% 0% rgb(255, 225, 225)";
	var bg_atual= "#FFFFFF";
	
	var radio_str = false;
	var radio_aux = "";
	
	for(var i = 0; tagName && i<tagName.length; i++){
		var keys = document.getElementsByTagName(tagName[i]);
			
		for (j=0; keys && j<keys.length; j++) {
			var pos = keys[j].className.indexOf("key");
			var str = this.trim(keys[j].value);
			
			if(pos>=0){	
				if(keys[j].type == 'radio'){
					if(radio_aux == "")
						radio_aux = keys[j].name;
					
					if(keys[j].name != radio_aux){
						radio_aux = keys[j].name;
						if(!radio_str){
							flag = true;
						}
						radio_str = false;
					}else{
						if(keys[j].checked)
							radio_str = keys[j].checked;
					}
				}else{
					if(str == "" && (keys[j].parentNode.parentNode.style.display != "none")){
						flag = true;
						//keys[j].style.background = bg;
					}else{
						
						/**
						var atual = keys[j].style.background;
						if(atual == bg)
							keys[j].style.background = bg_atual;
						/**/
					}
				}
			}
		}
	}
	if(flag){
		return false;
	}
	return true;
}

function valida_email(id){
	
	var exp_mail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	eval("reEmail = exp_mail");
	
	var tag = document.getElementById(id);
	if(tag && this.trim(tag.value)){
		var msg = '<span>E-mail inválido.</span>';
		var mail = tag.value;
		if (!reEmail.test(mail)) {
			addMensage(msg,'aviso');
			tag.value = '';
			tag.focus();			
			return false;
		}
	}
	return true;
}

function valida_telefone(tel){
	if(!tel)
		tel = document.getElementById('fone');
	if(!tel)
		tel = document.getElementById('telefone');
	
	if(tel){
		tel = document.getElementById(tel);
		exp = /\(\d{2}\)\ \d{4}\-\d{4}/
		if(trim(tel.value) != "" && !exp.test(tel.value)){
			addMensage("Número de telefone inválido.",'aviso');
			return false;
		}
	}
	return true;
}


/******************************
 * 
 * FIM VALIDAR CAMPOS
 * 
 * ****************************/



/******************************
 * 
 * FUNCOES DE MASCARAS
 * 
 *****************************/

var v_obj = "";
var v_fun = "";
function mascara(o,f){
    v_obj=o;
    v_fun=f;
    setTimeout("execmascara()",1);
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value);
}

function leech(v){
    v=v.replace(/o/gi,"0");
    v=v.replace(/i/gi,"1");
    v=v.replace(/z/gi,"2");
    v=v.replace(/e/gi,"3");
    v=v.replace(/a/gi,"4");
    v=v.replace(/s/gi,"5");
    v=v.replace(/t/gi,"7");
    return v;
}

/*Função que padroniza double*/
function double(v){
    v=v.replace(/\D/g,""); //Remove tudo o que não é dígito
    v=v.replace(/^([0-9]{3}\.?){3}-[0-9]{2}$/,"$1,$2");
    v=v.replace(/(\d)(\d{2})$/,"$1,$2"); //Coloca ponto antes dos 2 últimos digitos
    return v;
}

function soNumeros(v){
	v = v.replace(/\D/g,"");
    return v;
}

function mascara_telefone(v){
    v=v.replace(/\D/g,"");                //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2"); //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2");    //Coloca hífen entre o quarto e o quinto dígitos
    return v;
}
function telefone(v){
    v=v.replace(/\D/g,"");                //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2"); //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2");    //Coloca hífen entre o quarto e o quinto dígitos
    return v;
}
