/*******************************************************************
 * Copyright (C) 2006 Thiago Caetano
  ************************
  thiagocae @ gmail.com
********************************************************************/

/********************************************************
* Lib
********************************************************/

var MyLib = Class.create();
MyLib.prototype = {
	initialize: function(){
		this.tempo_aguarde = false;
	},
	// encode
	encode: function(str){
		if(!str) return "";
		var hex_chars = "0123456789ABCDEF";
		var noEncode = /^([a-zA-Z0-9\_\-\.])$/;
		var n, strCode, hex1, hex2, strEncode = "";
		for(n = 0; n < str.length; n++) {
			if (noEncode.test(str.charAt(n))) {
				strEncode += str.charAt(n);
			} else {
				strCode = str.charCodeAt(n);
				hex1 = hex_chars.charAt(Math.floor(strCode / 16));
				hex2 = hex_chars.charAt(strCode % 16);
				strEncode += "%" + (hex1 + hex2);
			}
		}
		return strEncode;
	},
	// decode
	decode: function(str){
		if(!str) return "";
		var n, strCode, strDecode = "";
		for (n = 0; n < str.length; n++){
			if (str.charAt(n) == "%"){
				strCode = str.charAt(n + 1) + str.charAt(n + 2);
				strDecode += String.fromCharCode(parseInt(strCode, 16));
				n += 2;
			} else {
				strDecode += str.charAt(n);
			}
		}
		return strDecode; 
	},
	Aguarde: function(modo){
		if(modo==1){
			var pos = MyLib.CentralArea(170,110);
			var posxy = MyLib.getScrollXY();
			pos[1] = pos[1]+posxy[1];
			Element.setStyle('aguarde',{'left':pos[0]+'px', 'top':pos[1]+'px'});
			Element.show('aguarde');
			this.tempo_aguarde=setTimeout('MyLib.Aguarde(1)',100);
		}
		else{
			clearTimeout(this.tempo_aguarde);
			Element.hide('aguarde');
		}
	},
	// Centraliza 
	Central: function(largura,altura){
		var telal = screen.width;
		var telaa = screen.height;
		var left = parseInt((telal/2)-(largura/2));
		var top = parseInt((telaa/2)-(altura/2));
		return Array(left,top);
	},
	// Centraliza pela area
	CentralArea: function(largura,altura){
		var pos = this.getInnerXY();
		var telal = pos[0];
		var telaa = pos[1];
		var left = parseInt((telal/2)-(largura/2));
		var top = parseInt((telaa/2)-(altura/2));
		return Array(left,top);
	},

	// Pega os valores do Form
	Forms: function(nome){
		var valor, chave, nome, tipo, linha = "";
		var form = document[nome];
		for(var i=0;i<form.elements.length;i++){
			chave = form.elements[i];
			tipo = chave.type;
			nome = chave.name;
			if(nome=='AJAX') continue;
			if(!nome) continue;
			switch(tipo){
				case "select-one":
					valor = chave.options[chave.selectedIndex].value;
					break;
				case "radio":
					if(!chave.checked) continue;
					valor = chave.value;
					break;
				case "checkbox":
					if(!chave.checked) continue;
					valor = chave.value;
					break;
				default:
					valor = chave.value;
			}
			if(!valor) continue;
			linha += "&"+this.encode(nome)+"="+this.encode(valor);
		}
		return linha;
	},
	// So numeros
	SoNum: function(valor,campo,form){
		var nums = "";
		if(valor){
			nums = valor.replace(/\D/gi,"");
			if(nums) nums = parseInt(nums);
		}
		if(!nums) nums = 1;
		if(campo){
			var nome = form.name;
			var form = document[nome];
			form[campo].value=nums;
			return;
		}
		return nums;
	},
	// Sleep
	Sleep: function(tempo){
		var para = false;
		tempo = tempo*1000;
		setTimeout("resultado = true",tempo);
		while(!para){}
	},
	getScrollXY: function () {
		var scrOfX = 0, scrOfY = 0;
		if( typeof( window.pageYOffset ) == 'number' ) {
			//Netscape compliant
			scrOfY = window.pageYOffset;
			scrOfX = window.pageXOffset;
		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
			//DOM compliant
			scrOfY = document.body.scrollTop;
			scrOfX = document.body.scrollLeft;
		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
			//IE6 standards compliant mode
			scrOfY = document.documentElement.scrollTop;
			scrOfX = document.documentElement.scrollLeft;
		}
		return [ scrOfX, scrOfY ];
	},
	getInnerXY: function() {
		var myWidth = 0, myHeight = 0;
		if( typeof( window.innerWidth ) == 'number' ) {
			//Non-IE
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;
		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode'
			myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}
		return [ myWidth, myHeight ];
	},
	// Seleciona um valor de um select
	GetSelect: function(form,nome){
		var form = document[form];
		var valor = form[nome].options[form[nome].selectedIndex].value;
		return valor;
	}
};
MyLib = new MyLib();


// Escreve o Flash
function Flash(arquivo,largura,altura){
	var valor = "";
	//document.write("<img src=\"/imgs/tmp_img2.jpg\" width=\""+largura+"\" height=\""+altura+"\"/>");return;
	valor = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+largura+'" height="'+altura+'">\n';
	valor += '<param name="movie" value="'+arquivo+'" />\n';
	valor += '<param name="quality" value="high" />\n';
	valor += '<embed src="'+arquivo+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+largura+'" height="'+altura+'"></embed>\n';
	valor += '</object>';
	document.write(valor);
}