/**
* @projectDescription MySabre Plus Brazil Site
* @author Roger Leite
* @email roger.leite@Sabre.com
* @date 20090326
* @class GenericsPage
* @version 1.0
* A classe "GenericsPage", é responsável por renderizar toda a parte genérica das paginas, topo, rodapé, menu central.
*/

function GenericsPage(){
	var tpl = new Template('main').structpage,
		This = this;
		structAlertModal = new AirAlertDialog();
		
	this.destructSkin = function(){
		structAlertModal.deconstruct();
	};
	
	this.openSeeMoreDetails = function(){
		if($('ErrorTrace').style.display == "none"){
			$('ErrorTrace').style.display = "block";
		}else{
			$('ErrorTrace').style.display = "none";
		};
	};
	
	this.submitForm = function(nameForm){
		var _nameForm = nameForm;

			This.destructSkin();
			_nameForm.submit();
			//$('selected_Result').submit();
	};
		
	var renderGenericsPage = function(){
		var url = Request.url;
			buildTopFooter();
			
			
			if(url.page.name.toUpperCase() == "BUSCAVOOS"){
				tpl.central_menu.classBuscavoos = "ativo";
			};
			
			if(url.page.name.toUpperCase() == "EMPRESA"){
	            tpl.central_menu.classBuscavoos = "";
				tpl.central_menu.classEmpresa = "ativo";
				tpl.central_menu.classFaleConosco = "";
//				This.selectPage("empresa");
			};

			if(url.page.name.toUpperCase() == "FALECONOSCO"){
	            tpl.central_menu.classBuscavoos = "";
				tpl.central_menu.classEmpresa = "";
				tpl.central_menu.classFaleConosco = "ativo";
				//This.selectPage("faleconosco");
			};

			//$('quickLogin').innerHTML = tpl.quick_login.getHtml(); desabilitado temporariamente
			$('centralMenu').innerHTML = tpl.central_menu.getHtml();
	};
	
	
    var dadosQueryString = function(){
		if(BookWebMethodsB2C.GetHashB2C().value != null){
			return BookWebMethodsB2C.GetHashB2C();
		}else{
			return dadosQueryStringId();
		};
    };
	
	var dadosQueryStringId = function(){
	    var str = { value : 'ID=' + $('mspCodAux').value + '&IdAg=' + $('mspCodAGAux').value + '&idC=' + $('mspCodIDCAux').value}
	    return str;
	};
	
	this.selectPage = function(page){
	
		var urlHome = Request.url;
		
	        if(page.toUpperCase() == "BUSCAVOOS"){
				
	            tpl.central_menu.classBuscavoos = "ativo";
				tpl.central_menu.classEmpresa = "";
				tpl.central_menu.classFaleConosco = "";
				window.location = 'buscavoos.aspx?'+dadosQueryString().value;
				/*
				if(!urlHome){
					window.location = 'buscavoos.aspx?'+urlHome.arguments;					
				}else{
					return false;
				};*/
	        };
	        
	        if(page.toUpperCase() == "EMPRESA"){
	            
	            tpl.central_menu.classBuscavoos = "";
				tpl.central_menu.classEmpresa = "ativo";
				tpl.central_menu.classFaleConosco = "";
				window.location = "Empresa.aspx";
				/*
				if(!urlHome){
					window.location = "Empresa.aspx";					
				}else{
					return false;
				};*/				        
	        };
	        
	        if(page.toUpperCase() == "FALECONOSCO"){
	            tpl.central_menu.classBuscavoos = "";
				tpl.central_menu.classEmpresa = "";
				tpl.central_menu.classFaleConosco = "ativo";
				window.location = "faleconosco.aspx";			
	        };
	};
	
	var buildTopFooter = function(){
	    if($('footerPage')!=null || $('topPage')!=null) {
            var urlHome = Request.url;
            var codEmpresa = "";
            
            if(urlHome.page.name.toUpperCase() == "BUSCAVOOS"){
                codEmpresa = $('mspCod').value;
            }else{
                codEmpresa = $('mspCodAux').value;
            };
            
		    BookWebMethodsB2C.GetDataOfAgency(codEmpresa, This.callbacks.buildB2CStruct);
		};
	};
			
	this.callbacks = {
		buildB2CStruct:function(dt){
				var dt = dt.value.rows[0];
				if($('footerPage')!=null) {
				    tpl.footer.state = dt.Estado.capitalize();
				    tpl.footer.country = dt.Pais.capitalize();
				    tpl.footer.address = dt.Endereco +"&nbsp;" + dt.Numero + "&nbsp;" + dt.ComplementoEndereco + "-" + dt.Bairro;

					if(dt.DDDCentralAtendimento.trim() == "" || dt.DDDCentralAtendimento == null){
					    tpl.footer.telephone = dt.TelefoneCentralAtendimento;

					}else{
						tpl.footer.telephone = "("+ dt.DDDCentralAtendimento +")" + dt.TelefoneCentralAtendimento;						
					};			

				    $('footerPage').innerHTML = tpl.footer.getHtml();
				};

                if($('topPage')!=null) {
				    tpl.top.address = dt.DDD + dt.TelefoneCentralAtendimento;
				    tpl.top.logo = dt.LogoB2C;

					if(dt.DDDCentralAtendimento.trim() == "" || dt.DDDCentralAtendimento == null){
						tpl.top.telephone = dt.TelefoneCentralAtendimento;
					}else{
						tpl.top.telephone = "("+ dt.DDDCentralAtendimento +")" + dt.TelefoneCentralAtendimento;
					};
					
				    tpl.top.nickName = dt.ApelidoEmpresa;
				    document.title = dt.ApelidoEmpresa;
				    $('topPage').innerHTML = tpl.top.getHtml();
				};
		}
	};

	this.switchFilters = function(parameter){
		if(parameter == 0){
			$('filtersArea').className = "areaFiltro filtroFechado";
		}else{
			$('filtersArea').className = "areaFiltro filtroAberto";
		};
	};
	
	var startEnv = function(){
		renderGenericsPage();
	};
	
	var visiblePage = function(){
		var urlHome = Request.url;
	       if(urlHome.page.name.toUpperCase() != "EMPRESA" && urlHome.page.name.toUpperCase() != "FALECONOSCO"){
			   if (urlHome.page.name.toUpperCase() == "BUSCAVOOS") {
					var ret = BookWebMethodsB2C.GetDataOfAgency($('mspCod').value);
					var dt = ret.value.rows[0];
				   	$('home_MSP').style.visibility = "visible";
					$('homeLogoSite').value = dt.LogoB2C;
			   }else{
					var ret = BookWebMethodsB2C.GetDataOfAgency($('mspCodAux').value);
					var dt = ret.value.rows[0];		   	
					$('homeLogoSite').value = dt.LogoB2C;
			   };		   	
		   };
		   
		   if(urlHome.page.name.toUpperCase() == "EMPRESA"){
		   		$('empresa_MSP').style.visibility = "visible";
		   };
		   if(urlHome.page.name.toUpperCase() == "FALECONOSCO"){
		   		$('faleConosco_MSP').style.visibility = "visible";
		   };
	};
	
	
	this.specificChars = function(e, field){
		try {
			var charCode = (window.event ? event.keyCode : e.which);
			var keyCode = e.keyCode;
			
			if(field == "dataNascimento"){
				if ((charCode > 57) || (charCode < 48)) {
					
					if((charCode == 47 && keyCode == 0)){
						return true;
					};
					
					if( (keyCode == 0)){
						return false;
					};
				};
				return true;				
			};
		}
		catch (ex) {};
	};
	
	this.constructor = new function(){
		setTimeout(startEnv, 1);
		setTimeout(visiblePage, 1105);
	};	
};

