document.getSize();

function span(valor) {
	return new Element('span',{'html':valor});
}

var classe_Tooltip = new Class({
	initialize: function(Obj,Html) {
		this.Obj = Obj;
		this.Html = Html;
		this.Div;
		this.create();
	},
	create: function() {
		this.Obj.addEvent('mousemove', function(e) { 
			if (!this.Div) this.Div = new Element('div').set('html',this.Html).inject(document.body);
			if (this.Html == '') return 0;
			this.Div.set('html',this.Html);
			this.Div.set('style','border:1px solid gray; position:absolute; padding:5px; display:none; text-align:justify; z-Index:2; background:white');
			this.Div.setStyles({'display':'block', 'left':e.page.x + 10, 'top':e.page.y + 10 }); e.stop(); 
		}.bind(this));
		this.Obj.addEvent('mouseout', function(e) { this.Div.setStyle('display','none'); }.bind(this));
	}
});

function isInt(valor) {
	return (valor.toInt().toString() != 'NaN');
}

function refresh() {
	document.location.reload();
}

function vazio(elemento) {
	var txt = $(elemento).get('value');
	txt = Trim(txt);
	return (txt == '');
}

function retTxt(txt) {
	return txt.split('[BEGIN]')[1];
}

var classe_headerLog = new Class({
	initialize: function() {
		var Style = 
			'position:fixed; top:-2px; left:-1px; border:1px solid white; z-Index:5; padding:10px; font-family:Verdana; color:white;'+
			'font-size:12px; width:100%; background:url(/imagens/functions/logindiv.png); ';
		this.Div = new Element('div')
			.set('style',Style)
			.inject(document.body);
		this.Fx = new Fx.Slide(this.Div);
		this.Fx.hide();
	},
	go: function(Txt,F,infinity) {
		if (F) this.Fx.show();
		else if (!this.Fx.open) this.Fx.toggle();
		
		if (Txt.toString() == '[object Object]') {
			var Obj = Txt;
			$each(Obj,function(item,index) {
				Txt += '<br>'+index+': '+item;
			})
		}
		this.Div.set('text','/> '+Txt);
		var nAlt = this.Div.offsetHeight-28;
		if (nAlt < 18) nAlt = 18;
		this.Div.setStyle('height',nAlt);
		if (!infinity) this.esconde.delay(5000,this);
	},
	esconde: function() {
		this.Fx.slideOut();
	},
	add: function(Txt,F,infinity) {
		var nTxt = this.Div.get('html').replace('/&gt;','') + ' ' + Txt;
		this.go(nTxt,F,infinity);
	}
});

function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival
    // +     input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +     improved by: davook
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
    if (s.indexOf(dec) === -1 && prec > 1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function disableSelection(target) {
	if (typeof target.style.MozUserSelect != "undefined") { 
		target.style.MozUserSelect="none";
	} else {
		target.onmousedown = function() { return false }
	}
}

function sendPMto(Id_Usuario_To) {
	location.href = '/inbox/?send:'+Id_Usuario_To;
}

function goPerfil(Id) {
	if (Id) location.href = '/profile/?'+Id;
	else location.href = '/profile/';
}
function goRegistro() {
	location.href = '/portal/?registro';	
}

function editaPerfil() {
	location.href = '/profile/?edit';
}

function openInbox() {
	location.href = '/inbox/?in';
}
function openOutbox() {
	location.href = '/inbox/?out';
}

function fncLink(Url,Target) {
	if (Target == 'self') location.href = Url;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function Trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

function isEmail(valor) {	
	valor = Trim(valor);
	if (valor == '') return 0;
	
	var byArroba = valor.split('@');
	if (byArroba.length != 2) return 0;
	
	var User = Trim(byArroba[0]);
	var Dominio = Trim(byArroba[1]);
	if (User == '' || Dominio == '') return 0;
	
	var byPonto = Dominio.split('.');
	if (byPonto.length != 2) return 0;
	
	var Host = Trim(byPonto[0]);
	var Pais = Trim(byPonto[1]);
	if (Host == '' || Pais == '') return 0;
	
	return 1;
}

function fncConfirmaForm(Campos,Nomes) {
	var CamposFalhos = new Array();
	var existeUm = false;
	var erroString = '';
	for (i = 0; i < Campos.length; i++) {
		var campoAtual = $(Campos[i]);
		var valorAtual = Trim(campoAtual.value);
		campoAtual.setStyle('border','1px solid #e0dfe3');
		if (valorAtual == '') {
			existeUm = true;
			CamposFalhos.push(Campos[i]);
			campoAtual.setStyle('border','1px solid gray');
			erroString = erroString+'\n- '+Nomes[i];
		}
	}
	if (existeUm) {
		$(CamposFalhos[0]).focus();
		erroString = 'Os seguintes campos devem ser preenchidos:\n'+erroString;
		alert(erroString);
		return false;
	} 
	return true;
}

function fncIguais(Campo1,Campo2,Nome) {
	var Valor1 = $(Campo1).value;
	var Valor2 = $(Campo2).value;
	var tudoCerto = true;
	if (Valor1 != Valor2) tudoCerto = false;
	if (!tudoCerto) alert(Nome+' não conferem!');
	return tudoCerto;
}

function fncResultRequest(resultado) {
	var retorno = new Array();
	var linhas = resultado.split('[LINHA]');
	for (var l = 1; l < linhas.length; l++) {
		retorno[l] = [];
		retorno[l].info =  {};
		var linha = linhas[l];
		var infos = linha.split('[INFO]');
		for (var i = 1; i < infos.length; i++) {
			var info = infos[i];
			var partes = info.split('[IGUAL]');
			var campo = partes[0];
			var valor = partes[1];
			retorno[l].info[i] = valor;
			retorno[l].info[campo] = valor;
		}
	}
	return retorno;
}

function someAlerta() {
	var box = $('boxAlerta');
	var myFx = new Fx.Morph(box, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
	myFx.start({'opacity': [1,0]});	
	someMesmo.delay(1000);	
}

function someMesmo() {
	$('boxAlerta').setStyle('display','none');
}

function nl2br (str, is_xhtml) {
    var breakTag = ''; 
    breakTag = '<br />';
    if (typeof is_xhtml != 'undefined' && !is_xhtml) breakTag = '<br>';
    return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}

function getMenor(v1,v2) {
	return (v1 < v2) ? v1 : v2;
}

function getMaior(v1,v2) {
	return (v1 > v2) ? v1 : v2;
}

function isDefined(Var) {
    return (typeof(window[Var]) != "undefined");
}

function Rand(v1,v2) {
	if (v1 && !v2) { v2 = v1; v1 = 1; }
	else 
	if (!v1 && !v2) { v1 = 1; v2 = 100;}
	v2++;
	var valor2 = Math.random()*100;
	var diff = v2-v1;
	return parseInt(diff*(valor2/100))+v1;
}

function mudaTitle(Txt) {
	document.title = Txt;
}