/* Global Javascript */

// HOVER ON IMAGES
function HoverImgOf(filename){
	var re = new RegExp('(.+)\\.(gif|png|jpg)', 'g');
	return filename.replace(re, '$1_hi.$2');
}
function NormalImgOf(filename){
	var re = new RegExp('(.+)_hi\\.(gif|png|jpg)', 'g');
	return filename.replace(re, '$1.$2');
}

// FUNCTION TO COLUMNS EQUAL HEIGHT
function setEqualHeight(columns){  
	var tallestcolumn = 0;
	columns.each(function(){
		currentHeight = $(this).height();
		if(currentHeight > tallestcolumn){
			tallestcolumn = currentHeight;
		}
	});
	columns.height(tallestcolumn);
}

// CLEAN VALUE FUNCTION
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);
}

// SELECT VALUE FUNCTION
jQuery.fn.selectDefaultValue=function(){
	this.focus(function(){
		this.select();
	});
}

// FIX IE DROP BOX FUNCTION
jQuery.fn.fixIEDropBox=function(){
	if($.browser.msie && $.browser.version <= '8.0'){
		$(this).focusin(function(){
			$(this).data('origWidth', $(this).outerWidth());
			
			$(this).css('width', 'auto').css('position', 'relative');
			if($(this).width() < $(this).data('origWidth')){
				$(this).width($(this).data('origWidth'));
			}
		}).blur(function(){
			$(this).width($(this).data('origWidth')).css('position', 'static');
		});
	}
}

// MENU ANIMATION FUNCTION
function overMenu(){
	$('#Content').addClass('padding-top');
	$('.Active-Menu').addClass('over-menu');
	
	var config = {
		over: function(){
			$('.Active-Menu .sub-menu').slideToggle('slow');
		},
		timeout: 200, // number = milisegundos de delay depois do mouse-ouver
		out: function(){
			$('.Active-Menu .sub-menu').slideToggle('slow');
		} // function = onMouseOut callback (REQUIRED)
	}
	$('.Active-Menu .structure-menu').hoverIntent(config);
}

// ORDERED LIST STYLE FUNCTION
$.fn.outline = function(options, counters){
    var options  = $.extend({}, $.fn.outline.defaults, options),
        counters = counters || [];

    this.each(function(){
       $(this).children('li').each(function(i){

			var ct = counters.concat([i + 1]);			
			$('<strong></strong>')
				.addClass(options.numberClass)
				.text(ct.join('.') + ' -')
				.prependTo(this);

           $(this).children('ol').outline(options, ct);
       })
    });

    if(!counters.length) this.addClass(options.processedClass);
}
$.fn.outline.defaults = {
	numberClass: 'number',
    processedClass: 'orderedList-processed'
}

// VALIDATORS FUNCTION
function CheckValidators(groupID,cssClass){
	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);
			if(!Page_Validators[i].isvalid){
				controlsAlreadyValidated.push(control);
			}
		}
	}
}

// CHANGE CONTROL STYLE FUNCTION
function ChangeControlStyle(id, isvalid, cssClass){
	if(!isvalid){
		$('#'+id).addClass(cssClass);
	}else{
		$('#'+id).removeClass(cssClass);
	}
}

// URLENCODE FUNCTION
function URLEncode(str){
    var histogram = {}, tmp_arr = [];
    var ret = (str+'').toString();
 
    var replacer = function(search, replace, str){
	var tmp_arr = [];
		tmp_arr = str.split(search);
		return tmp_arr.join(replace);
    };
 
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
 
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
 
    for(search in histogram){
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }
 
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2){
        return "%"+m2.toUpperCase();
    });
 
    return ret;
}

/* Obter valor da Query String */
function getQueryStringValue(url, name){
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if(results == null){
		return "";
    }else{
		return decodeURIComponent(results[1].replace(/\+/g, " "));
    }
}


function checkHeight(alturaContentInicial){
	var alturaMinima = $('.bg-main-menu-logo').height() + $('#Header').height() + alturaContentInicial + $('#Footer').height(); 
	//se o viewport for maior que o conteudo coloca o footer no bottom
	if ($(window).height() > alturaMinima && $('.dontCheckHeight').length == 0){
		$('#Content').css({'height': $(window).height() - $('#Header').height() - $('.bg-main-menu-logo').height() - $('#Footer').height()});
	};
} 
/*ptint function*/
function printadc(){

if($('#accordion').length)
{
 $('#accordion .line').slideDown(0);

}

window.print();

}


/* Init */
$(document).ready(function(){
	/*
	// PUT FOOTER DOWN
	if ($('#Content').length){
		//checkHeight($('#Content').height());
	}

	$(window).resize(function() {
		if ($('#Content').length){
			//checkHeight($('#Content').height());
		}
	}); 
	*/
	
	// MENU ANIMATION
	if($('.Active-Menu').length != 0){
		overMenu();
	}

	// ORDERED LIST STYLE
	$(".cleanStyle ol:not(li > ol)").outline();

	// NAV IMG HOVER
	$('.imghover').hover(function(){
		var hoverImg = HoverImgOf($(this).attr('src'));
		$(this).attr('src', hoverImg);
	}, function(){
		var normalImg = NormalImgOf($(this).attr('src'));
		$(this).attr('src', normalImg);
	});

	// CLEAN VALUE
	$('.search-area .tbox').resetDefaultValue(); //executa a funcao para limpar o campo de texto
	
	// SELECT VALUE
	//$('.filter-area .tbox').selectDefaultValue(); //executa a funcao para seleccionar o campo de texto
	$('.filter-area .tbox').resetDefaultValue(); //executa a funcao para seleccionar o campo de texto
	
	// FIX IE DROP BOX
	$('.dbox').fixIEDropBox(); //executa a funcao para corrigir um problema no IE de nao conseguir aumentar automaticamente a drop box quando tem mais conteudo que o tamanho definido
	
	// PRINT FUNCTION
	if($('.spanPrint') != null){
		$('.spanPrint').append('<a class=\"print\" href=\"javascript:printadc();\" title=\"\"><img src=\"/Style%20Library/adc/images/ico-print.gif\" alt="Imprimir" title="Imprimir"></a>'); //cria um elemento HREF para a funcao de impressao
	}
});

