/* *****************************************************
Script para control: _CustomControls/DirectorioClinico.ascx
2009-10-12 * João Carvalho

Usado por: 
Web Site:
	I9A.AdvanceCare.SHWebSite.Controls/_CustomControls_Directorios/DirectorioClinico.ascx
	/Style%20Library/ADV/files/scriptsrede/directorioclinico.js


Portal: 
	com.Innovagency.AdvCare.Portal.WsServiceControls/SearchControls/DirectorioClinico.ascx
	/Style%20Library/ADV/files/scriptsrede/directorioclinico.js

*******************************************************/

window.i9aDirectorioClinico= {

	initialize: function( poOptions ) {
	
		this.objSelectSeguradora = poOptions.moSeguradora[0];
		this.objSeguradora = poOptions.moSeguradora;

		this.objSelectProduto = poOptions.moProduto[0];
		this.objProduto = poOptions.moProduto;
		this.objFieldProdutoIndex = poOptions.moFieldProdutoIndex[0];
		this.objFieldProdutoValue = poOptions.moFieldProdutoValue[0];				
		this.objFieldProdutoText = poOptions.moFieldProdutoText[0];				
		
		
		this.objSelectEspecialidade = poOptions.moEspecialidade[0]; 
		this.objEspecialidade = poOptions.moEspecialidade; 
	
		this.msFieldIdRadioButton = poOptions.msFieldIdRadioButton;
		
		this.objActoMedico = poOptions.moActoMedico;
		this.objSelectActoMedico = poOptions.moActoMedico[0];
		this.objHiddenFieldActoMedico = poOptions.moHiddenFieldActoMedico[0];
		
		this.msUrlPageListSpecialty = poOptions.msUrlPageListSpecialty;
		
		this.chargeProdutosPostBack();
		this.changeSpecialtyOptions();
		
		this.objSeguradora.change(
	       	function(){
	       	    i9aDirectorioClinico.chargeProdutos();
	       		i9aDirectorioClinico.changeSpecialtyOptions();
	       	}
	       );
	    this.objProduto.change(
	       	function(){
	       		i9aDirectorioClinico.changeSpecialtyOptions();
	       	}
	       );
	    this.objEspecialidade.change(
	       	function(){
	       		i9aDirectorioClinico.changeProcedureCodeOptions();
	       	}
	       );
		this.objActoMedico.change(
			function(){
	       		//$j("#ctl00_PlaceholderMain_editmodepanel_pnd1_searchCtrl_ctl00_hiddenFieldActoMedico").get(0).value=$j("#idActoMedico").selectedValues();
				i9aDirectorioClinico.changeActoMedico();
	       	}
	       );

	},
	
	clearForm : function() {
		try
		{
		this.objSelectSeguradora.options[0].selected = true;
		this.objSelectProduto.options[0].selected = true;
		this.objSelectEspecialidade.options[0].selected = true;
		this.objSelectActoMedico.options.length = 0; 
		
		//primeiro elemento sem valor 
		var theOption2 = new Option;                
		theOption2.text = "";
		theOption2.value = "";                
		this.objSelectProduto.options[0] = theOption2; 
		this.chargeProdutos();
		}
		catch(e){}

	},

	changeActoMedico : function() {
		this.objHiddenFieldActoMedico.value=this.objActoMedico.selectedValues();//$j("#idActoMedico").selectedValues();		
	},
	hideProcedureCodeOptions : function() {
		$j("#lblActoMedico").hide();
		var loActoMedico = this.objActoMedico;//$j("#idActoMedico");
		loActoMedico.removeOption(/./);
		loActoMedico.hide();
	},
	
	showProcedureCodeOptions : function() {
	    var loActoMedico = this.objActoMedico;//$j("#idActoMedico");
	    loActoMedico.removeOption(/./);
		loActoMedico.show();	
		$j("#lblActoMedico").show();
	},

	changeProcedureCodeOptions : function() {
	    var allowedSpecialtysForProcCode = [2,3,5,7,8,9,10,11,14,15,19,24,25,26,29,31,32,35,37,38,48,64,501,503,505,507,508,509,510,511,512,513,514,518,520,521,525];
	    var spec=this.objEspecialidade.selectedValues();

	    if (allowedSpecialtysForProcCode.indexOf(parseInt(spec)) != -1 ) {
		    spec="-"+spec;
		    var myParameters= {"SpecialtyFlag" : spec}
	    	var loActoMedico = this.objActoMedico;//$j("#idActoMedico");
		    loActoMedico.removeOption(/./);
		    loActoMedico.addOption({"":""});
			loActoMedico.ajaxAddOption(this.msUrlPageListSpecialty,myParameters,false);
	      	this.showProcedureCodeOptions();
	      }
		  else {
	      	this.hideProcedureCodeOptions();
	      }
	},	
	
	specialtyCallBack : function(sort) {
		var $this = $j(this);
		$this.selectOptions(sort.dir);
		//this.objEspecialidade.show();
		$this.show();
		$j("#divespecialidade").css({'background-image' : 'none'});
		i9aDirectorioClinico.changeProcedureCodeOptions();
	},

	changeSpecialtyOptions : function() {

		var spec=this.objEspecialidade.selectedValues();
		var prd=this.objProduto.selectedValues();

	    if ( (prd != 99) && (prd != 97) && (prd != 119) && (prd != 120)) {
	        prd=999; // "normal" specialties
	        $j("label[for=" + this.msFieldIdRadioButton + "_4],#" + this.msFieldIdRadioButton + "_4").hide();
	        document.getElementById(this.msFieldIdRadioButton + "_3").checked=true;
	    } 
		else {
	        if (prd == 99) {
	            $j("label[for=" + this.msFieldIdRadioButton + "_4],#" + this.msFieldIdRadioButton + "_4").show();
	        }
	       	if (prd == 97) {
	            $j("label[for=" + this.msFieldIdRadioButton + "_4],#" + this.msFieldIdRadioButton + "_4").hide();
	            document.getElementById(this.msFieldIdRadioButton + "_3").checked=true;
	        }
	    }
	    
	    this.objEspecialidade.hide();
	    $j("#divespecialidade").css({'background' : 'url(/Style%20Library/adv/img/loading_peq.gif) no-repeat center top' });
	    this.objEspecialidade.removeOption(/./);
		var myParameters= {"SpecialtyFlag" : prd };
		this.objEspecialidade.ajaxAddOption(this.msUrlPageListSpecialty,myParameters,false,this.specialtyCallBack, [{"dir":spec}]);
	    this.objEspecialidade.selectOptions(spec);
	},	

	setProdutoValue : function () { 

		this.objFieldProdutoValue.value = this.objSelectProduto.options[this.objSelectProduto.selectedIndex].value;   
        this.objFieldProdutoText.value = this.objSelectProduto.options[this.objSelectProduto.selectedIndex].text;    
        this.objFieldProdutoIndex.value = this.objSelectProduto.selectedIndex;        		
		
    },
	
	chargeProdutosPostBack : function()  {     
		 
		if(this.objSelectSeguradora.options[this.objSelectSeguradora.selectedIndex].value == "") {
			this.objSelectProduto.options.length = 0; 
			var theOption = new Option;                
			theOption.text = "";
			theOption.value = "";                
			this.objSelectProduto.options[0] = theOption; 
			return;
		}

		this.objSelectProduto.options.length = 0;         
		var counter = 1; 

		//primeiro elemento sem valor 
		var theOption = new Option;                
		theOption.text = "";
		theOption.value = "";                
		this.objSelectProduto.options[0] = theOption; 
		this.chargeProdutos();       
		for(var i = 0; i < arrayProdutos.length; ++i) {
			var Seguradora = arrayProdutos[i][0];      
						 
			if(Seguradora == this.objSelectSeguradora.options[this.objSelectSeguradora.selectedIndex].value) {   
				var theOption = new Option;                
				theOption.text = arrayProdutos[i][1].split(";")[0];
				theOption.value = arrayProdutos[i][1].split(";")[1];                
				this.objSelectProduto.options[counter] = theOption;    
				this.objSelectProduto.selectedIndex = this.objFieldProdutoIndex.value;       
				++counter;
			}		
		}
	},
	
	chargeProdutos : function() {        
		var counter = 1; 
		//Seguradora vazio Teste
		if(this.objSelectSeguradora.options[this.objSelectSeguradora.selectedIndex].value == "") {
			this.objSelectProduto.options.length = 0;
			return;
		}

		this.objSelectProduto.options.length = 0;
		//primeiro elemento sem valor 
		var theOption = new Option;                
		theOption.text = "";
		theOption.value = "";                
		this.objSelectProduto.options[0] = theOption; 
			   
		for(var i = 0; i < arrayProdutos.length; ++i) {
			var Seguradora = arrayProdutos[i][0];      
					
			if(Seguradora == this.objSelectSeguradora.options[this.objSelectSeguradora.selectedIndex].value) {            
				var theOption = new Option;                
				theOption.text = arrayProdutos[i][1].split(";")[0];
				theOption.value = arrayProdutos[i][1].split(";")[1];                
				this.objSelectProduto.options[counter] = theOption;            
				++counter;
			}            
		}
	}	

}
