/* Global Javascript */

// 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();
	});
}

// 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 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;
}

// INIT FLASH TOPO FUNCTION
function InitFlashTopo(){
	var flashvars = {};
	flashvars.XMLPath= "/Style Library/BCV/swfs/topo/script/data.xml";
	var params = {};
	params.wmode = "transparent";
	params.bgcolor = "#ffffff";
	params.quality="high";
	params.play="true";
	params.loop="true";
	params.scale="showall";
	params.devicefont="false";
	params.menu="true";
	params.salign="";
	params.allowfullscreen = "true";
	var attributes = {};
	attributes.id = "topo";
	attributes.name = "topo";
	//attributes.styleclass = "classNAME";
	attributes.align = "middle";
	//swfobject.embedSWF("/Style Library/BCV/swfs/topo/topo.swf", "topo", "550", "125", "8", "", flashvars, params, attributes);
}

/* Init */
$(document).ready(function(){
    //FLASH TOPO
	InitFlashTopo();
	
	// COLUMNS EQUAL HEIGHT
	setEqualHeight($('.Channel-Input > .Block'));
	setEqualHeight($('.Gallery-Page .main > .element'));
	
	// ORDERED LIST STYLE
	$(".cleanStyle ol:not(li > ol)").outline();
	
	// 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
	
	// PRINT FUNCTION
	if($('.spanPrint')!=null){
		$('.spanPrint').append('<a class=\"print\" href=\"javascript:window.print();\" title=\"\">Imprimir</a>'); //cria um elemento HREF para a funcao de impressao
	}
});

