
/**
 * Pacote AJAX.
 * 
 * Matheus Trevizan - matheus@dynamix.com.br
 */

function filtroGuiaMedicoAJAXUtils(){
	
	this.onError = function(XMLHttpRequest,textStatus, errorThrown){
		if( XMLHttpRequest.status > 0 ) {
			alert('Ocorreu um problema no processamento.'); 
		}
	};	
}

/**
 * Pacote de utilitarios
 * 
 * Matheus Trevizan - matheus@dynamix.com.br
 * 
 */
function filtroGuiaMedicoUtils(){
	
	var obj = this;
	var enterEventFunction = null;
	
	this.setEnterEventFunction = function(ref){
		enterEventFunction = ref;
	};
	
    // metodo para efetuar a url da unimed, no modal
    // caso tenha guia medico, aparecer a funcao de selecionar unimed
	this.unimedHaveURL = function(uni){
    	if (eval(uni.tpguia) == 1){
        	return "javascript:selectUnimed("+uni.cd+", '"+uni.nm+"', true);";
    	}
    	// caso nao tenha guia medico, retornar o site especifico.
        return uni.site;
    };
	

    this.onlyNumbers = function(campo,e) {
    	var cod="";
    	if(document.all) {cod=event.keyCode;} else {cod=e.which;}
    	if(cod == 8) return;
    	if(cod == 13){
    		if( enterEventFunction != null ) {
    			enterEventFunction();
    		}
      		return;
    	}
    	if(cod == 0) return;
    	if (cod < 48 || cod > 57) {
    		cod=0;
    		return false;
    	}	
    };

	this.contemVlrArray = function(vlr, vlrsNot){
		for(var x=0; x < vlrsNot.length; x++){
			if (vlr == vlrsNot[x]){
				return true;
			}
		}
		return false;
	};
	
	function replaceAll(string, token, newtoken) {
		while (string.indexOf(token) != -1) {
	 		string = string.replace(token, newtoken);
		}
		return string;
	};
	
	this.groupUnimed = function(jsU){
	
		if( $('#divMultiUnimed ol').length > 0 ){ 
			$('#divMultiUnimed ol').find('li').each(
				function() { $(this).remove();
			});
		}
		
		if( $("#divMultiUnimed p").length > 0 ){ 
			$("#divMultiUnimed p").each(
				function() { $(this).remove();
			});
		}

		arrEachUnimed = new Array();
		$.each(jsU.lista, function(i, n){
			eachUnimed(i, n, jsU.qtd);
		});
	};
	
	var arrEachUnimed = null;
	
	// Funcao private
    // metodo executado a cada unimed para aparecer os textos no modal
	function eachUnimed(i, n, qtd){
				
		//recupera objeto unimed
		var uni = n.unimed;
		//recupera o nome da unimed, para aparecer no titulo
		var contTitulo = uni.nm;
		//verificar url
		var hrefUni = obj.unimedHaveURL(uni);
		
		if (qtd > 1){
			//armazenar uma lista de unimeds para mostrar quais as unimeds que tem regiao
			arrEachUnimed[arrEachUnimed.length] = n.unimed.nm;
			//concatenar as unimeds que atendem a regiao
			if ((i+1) == qtd){
				var pp = $.create('p', { style: "padding-bottom: 20px" }, ["As Unimeds "]);
				for(var x = 0; x < qtd; x++){
					if (x > 0){
						var sep = ", ";
						if ((x+1) == qtd){
							sep = " e ";
						}
						$(pp).append(sep);
					}
					var u = $.create('strong', {}, [arrEachUnimed[x]]);
					$(pp).append(u);
				}
				$(pp).append(" atendem a sua região.").insertAfter($("#divMultiUnimed h4"));
			}
			//caso exista url
			if (hrefUni != ''){
				//alterar o titulo para um link com o nome da unimed
				var settings = {href: hrefUni};
				if (uni.tpguia == 0){
					settings = {href: hrefUni, target : "_blank"};
				}
				contTitulo = $.create('a', settings, [contTitulo]);
			}
			var eachLi = $.create('li', {}, [contTitulo]);
			if (uni.tpguia == 0){
				$(eachLi).prepend("A ").append(" não possui o guia médico publicado no Portal Unimed.");
			}
			if (uni.inst != null && uni.inst != ''){
				var instr = $.create('p', {}, [$.create('strong', {}, ["Instruções de acesso ao Guia Médico: "])]);
				$(instr).append(uni.inst);
				$(eachLi).append(instr);
			}
			$('#divMultiUnimed ol').append(eachLi);			
		}else{
			var u = $.create('strong', {}, [contTitulo]);
			var pp = $.create('p', {}, ["A Unimed que atende a sua região é a "]);
			$(u).appendTo(pp);
			$(pp).append(" porém, ela ainda não possui o guia médico cadastrado no Portal Unimed. Para obter informações sobre ");
			if (hrefUni != ''){
				var settings = {href: hrefUni};
				if (uni.tpguia == 0){
					settings = {href: hrefUni, target : "_blank"};
				}				
				$(pp).append("a rede credenciada desta Unimed ");
				var h = $.create('a', settings, ["clique aqui"]);
				$(h).appendTo($(pp)).append(".");
			}else{
				$(pp).append("sua rede credenciada fale com a sua Unimed.");
			}
			$(pp).insertAfter($("#divMultiUnimed h4"));
		}
	}		
}

/**
 * Pacote Modal
 * 
 * Matheus Trevizan - matheus@dynamix.com.br
 */
function filtroGuiaMedicoModalUtils(){
	
	//funcao para fechar o modal
	this.closeModal = function(){
		$.modal.close();
	};
	
	this.openModal = function(id, onShowEvent){
	    $(id).modal({
		    close: false, //sem botao especifico de close, o botao esta manual
		    position: [100,],
			overlayId: 'dialogModal-overlay', //id de overlay
			containerId: 'dialogModal-container', //id de container
			onShow: onShowEvent
	    });		
	};
}
