function Translate(obj){
	//recebe o idioma actual do site e recebe o idioma clicado
	var idiomaActual = $('body').attr('class');
	var idiomaDestino = $(obj).attr('value');

	//traduz todos os objectos com a class 'Traduzir'. recebe o idioma actual do site e traduz para o idioma clicado
	$('.Traduzir').translate(idiomaActual, idiomaDestino);
	
	
	if ($('.Translate select').attr("value") == '') {
	    window.location = urlSite;
	};
	
	//retira o idioma antigo e colocao novo
	$('body').removeClass();
	$('body').addClass(idiomaDestino);
	
	return false;
}

//funcao para traduzir os conteudos carregados pelo Ajax
//Parametro: array de classes CSS que indicam o que irá ser traduzido
function TranslateAjax(toTranslateArr){          
        if($("body").hasClass('Pt') == false)
        {
            //recebe o idioma actual do site e recebe o idioma clicado
	        var idiomaActual = 'Pt';
	        var idiomaDestino = $('body').attr('class');            
	        //traduz todos os objectos com a class 'Traduzir'. recebe o idioma actual do site e traduz para o idioma clicado
	        $.each(toTranslateArr,function(index,item) 
	        {
	            $(item).translate(idiomaActual, idiomaDestino);
	        });	        
        }
    }     

function TranslateAjaxClick(toTranslateArr){          
	    var idiomaActual = $('body').attr('class');
	    var idiomaDestino = $(this).attr('class');
       //traduz todos os objectos com a class 'Traduzir'. recebe o idioma actual do site e traduz para o idioma clicado
        $.each(toTranslateArr,function(index,item) 
        {
            $(item).translate(idiomaActual, idiomaDestino);
        });	        
    }     

//Funções de objectos embebidos

function writeFlash(p) {
      writeEmbed(
            'D27CDB6E-AE6D-11cf-96B8-444553540000',
            'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
            'application/x-shockwave-flash',
            p
      );
}

function writeShockWave(p) {
      writeEmbed(
      '166B1BCA-3F9C-11CF-8075-444553540000',
      'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
      'application/x-director',
            p
      );
}

function writeQuickTime(p) {
      writeEmbed(
            '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
            'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
            'video/quicktime',
            p
      );
}

function writeRealMedia(p) {
      writeEmbed(
            'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
            'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
            'audio/x-pn-realaudio-plugin',
            p
      );
}

function writeWindowsMedia(p) {
      p.url = p.src;
      writeEmbed(
            '6BF52A52-394A-11D3-B153-00C04F79FAA6',
            'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
            'application/x-mplayer2',
            p
      );
}

function writeEmbed(cls, cb, mt, p) {
      var h = '', n;

      h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
      h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
      h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
      h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
      h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
      h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
      h += '>';

      for (n in p)
            h += '<param name="' + n + '" value="' + p[n] + '">';

      h += '<embed type="' + mt + '"';

      for (n in p)
            h += n + '="' + p[n] + '" ';

      h += '></embed></object>';

      document.write(h);
}



// VALIDATORS
function CheckValidators(groupID,cssClass,cssEscondeError)
{
    Page_ClientValidate(groupID);
    var controlsAlreadyValidated = new Array();
    for (var i = 0; i < Page_Validators.length; i++) {
          var control = Page_Validators[i].controltovalidate;
          if($.inArray(control, controlsAlreadyValidated) == -1) 
          {
                ChangeControlStyle(control,Page_Validators[i].isvalid,cssClass,cssEscondeError);
                if(!Page_Validators[i].isvalid){
                      controlsAlreadyValidated.push(control);
                }
          }
    }
}

function CheckValidatorsPesquisa(groupID,cssClass,cssEscondeError)
{
    Page_ClientValidate(groupID);
    var controlsAlreadyValidated = new Array();
    for (var i = 0; i < Page_Validators.length; i++) {
          var control = Page_Validators[i].controltovalidate;
          if($.inArray(control, controlsAlreadyValidated) == -1) 
          {
                ChangeControlStylePesquisa(control,Page_Validators[i].isvalid,cssClass,cssEscondeError);
                if(!Page_Validators[i].isvalid){
                      controlsAlreadyValidated.push(control);
                }
          }
    }
}

function CheckValidatorsAgenda(groupID,cssClass,cssEscondeError)
{
    Page_ClientValidate(groupID);
    var controlsAlreadyValidated = new Array();
    for (var i = 0; i < Page_Validators.length; i++) {
          var control = Page_Validators[i].controltovalidate;
          if($.inArray(control, controlsAlreadyValidated) == -1) 
          {
                ChangeControlStyleAgenda(control,Page_Validators[i].isvalid,cssClass,cssEscondeError);
                if(!Page_Validators[i].isvalid){
                      controlsAlreadyValidated.push(control);
                }
          }
    }
}


function ElementValidator(element, groupID,cssClass,cssEscondeError)
{
    Page_ClientValidate(groupID);
    var controlsAlreadyValidated = new Array();
    for (var i = 0; i < Page_Validators.length; i++) {
          var control = Page_Validators[i].controltovalidate;
          if($.inArray(control, controlsAlreadyValidated) == -1) 
          {
                if(element == control)
                {
                    ChangeControlStyle(control,Page_Validators[i].isvalid,cssClass,cssEscondeError);
                }
                
                if(!Page_Validators[i].isvalid){
                      controlsAlreadyValidated.push(control);
                }
          }
    }
}


function ChangeControlStyle(id, isvalid, cssClass,cssEscondeError)
{    
    if(!isvalid)
    {
        $('#'+id).next().addClass(cssClass);
        if(cssEscondeError != null)
        {
            $('.'+cssEscondeError).css("display","block");
        }
    }
    else
    {
        $('#'+id).next().removeClass(cssClass);
    }
}

function ChangeControlStylePesquisa(id, isvalid, cssClass,cssEscondeError)
{    
    if(!isvalid)
    {
        $('#'+id).addClass(cssClass);
        if(cssEscondeError != null)
        {
            $('.'+cssEscondeError).css("display","block");
        }
    }
    else
    {
        $('#'+id).removeClass(cssClass);
    }
}

function ChangeControlStyleAgenda(id, isvalid, cssClass,cssEscondeError)
{    
    if(!isvalid)
    {
        $('#'+id).parent().addClass(cssClass);
        if(cssEscondeError != null)
        {
            $('.'+cssEscondeError).css("display","block");
            $('.HideServerError').css("display","none");
        }
    }
    else
    {
        $('#'+id).parent().removeClass(cssClass);
    }
}


/* Clear Default */
jQuery.fn.resetDefaultValue = function() {
	function _clearDefaultValue() {
		var _$ = $(this);
		if (_$.val() == this.defaultValue)
		{
		    _$.val('');
		}
	};
	function _resetDefaultValue() {
		var _$ = $(this);
		if (_$.val() == '')
		{
		    _$.val(this.defaultValue);
		}
	};
	return this.click(_clearDefaultValue).focus(_clearDefaultValue).blur(_resetDefaultValue);
}

/*CAROUSEL INFINITO*/
$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }
  
    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),            
            singleWidth = $single.outerWidth(), 
            visible = Math.round($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);     
               
        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect
        
        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);
        
        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;
            
            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                } 

                currentPage = page;
            });             
            return false;
        }
        
        $wrapper.after('<a class="arrow back png"></a><a class="arrow forward png"></a>');
        
        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {            
            return gotoPage(currentPage - 1);
        });
        
        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });
        
        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });   
        
        if ($('.wrapper .imgGaleria').size() - $('.wrapper .imgGaleria.cloned').size() <= 3)
        {
            $('a.back').addClass('hidden');
            $('a.forward').addClass('hidden');
        }        
    });  
};
    
function imgBackground(){
	var classImg = '.bgImage';
	
	//medidas e proporcao da imagem
	var comprimentoOriginal = $(classImg).width();
	var alturaOriginal = $(classImg).height();
	var proporcao = ($(classImg).width() / $(classImg).height()).toFixed(2); 
	
	//medidas do browser
	var alturaViewport = $(window).height();    //Altura
	var compViewport = $(window).width();       //Comprimento
	
	//calculos
	var proporIdeal = ((proporcao * compViewport) / comprimentoOriginal).toFixed(2);
	var alturaIdeal = Math.round((alturaOriginal * proporIdeal) / proporcao);
	
	if (alturaViewport > alturaIdeal) {
	    $(classImg).css({'height' : alturaViewport});  	
	} else {
	    $(classImg).css({'height' : alturaIdeal});
	}
}

function ContentTabs(){
    var tabContainers = $('div.MolduraTabs > div');
    tabContainers.hide().filter(':first').show();
    
    $('div.MenuTabs span.AreaTab a').click(function () {
            tabContainers.hide();
            tabContainers.filter(this.hash).show();
            $('div.MenuTabs span.AreaTab a').parent().removeClass('Activo');
            $(this).parent().addClass('Activo');
            return false;
    }).filter(':first').click();
}

$(document).ready(function(){ 
	
	/*IMAGEM DE FUNDO EXTENSIVEL*/
	imgBackground();
	$('.bgImage').removeClass('displayNone');
	$(window).resize(function() {
		imgBackground();
	});

	//Funcao Translate
	$('.Translate').removeClass('displayNone');
	$('.Translate a').click(function () { 
			//recebe o idioma actual do site e recebe o idioma clicado
			var idiomaActual = $('body').attr('class');
			var idiomaDestino = $(this).attr('class');
			//traduz todos os objectos com a class 'Traduzir'. recebe o idioma actual do site e traduz para o idioma clicado
			$('.Traduzir').translate(idiomaActual, idiomaDestino);
			$('.Footer').translate(idiomaActual, idiomaDestino);
    	    $('.Info').translate(idiomaActual, idiomaDestino);
	        $('.Listagem.Traduzir').translate(idiomaActual, idiomaDestino);
	        

			//retira o idioma antigo e colocao novo
			$('body').removeClass();
			$('body').addClass(idiomaDestino);
				
			return false;
    });      
	
	/*CAROUSEL GALERIA IMAGENS*/
	if ( $('.Galeria').length) {
		$('.Galeria').infiniteCarousel();
	};
		
	//CALENDARIOS HOMEPAGE
	$('.CalendarioSlide').hide();
    $('.CalendarioSlide').removeClass('displayNone');
	
	$('.DestaquesLaranja .btnLaranja').click(function () { 
		var SlideActual = $(this);
		if ( !$(this).hasClass('Activo') ){
			//Verifica se outro Slide está aberto
			$('.Slide').each( function (){
			    if ( $(this)!= SlideActual && $(this).prev().hasClass('Activo') ) {
	                $(this).prev().toggleClass('Activo').next().slideToggle();
	            };
			});
			//Abre Slide
			$(this).toggleClass('Activo').next().slideToggle();
		} else { 
		 	//Fecha Slide
		 	$(this).toggleClass('Activo').next().slideToggle();
		};
		return false;
	  });
	  
	
	//ACCORDION
    if ($('#accordion').length) {
        $("#accordion").accordion({ autoHeight: false, collapsible: true, event: 'click'});
	};
	
	//ContentTabs
	if ($('#MenuTabs').length) {
	    ContentTabs();
	};
	  

	/*CLEAN INPUT*/
	$('.cleanInput').resetDefaultValue();
	
	/* PRINT */
	if ( $('.spanPrint') != null) {
		$(".spanPrint").append("<a href=\"javascript:window.print();\" title=\"\"><span class=\"LadoEsq\"></span><span class=\"Centro\"><span class=\"iconPrint\">Imprimir</span></span><span class=\"LadoDto\"></span></a>");
	};
	
		
});


// Carrega os javascripts necessários nas páginas tabuladas carregadas via AJAX(Serviços Clínicos)
function loadforAJAX()
{}
