/*******************************************************************
  ************************
  Copyright (c) 2008 Thiago Caetano - thiagocae@gmail.com
                     Microum
					 www.microum.com.br

********************************************************************/

if(!SUBPASTA) var SUBPASTA = "";


/********************************************************
* 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; 
	},
	// 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;
			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;
			if(!nome) continue;
			linha += "&"+this.encode(nome)+"="+this.encode(valor);
		}
		return linha;
	},
	// 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);
	},
	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 ];
	}
};
MyLib = new MyLib();


function in_array(needle,haystack) {
	return new RegExp('(^|\,)'+needle+'(\,|$)','gi').test(haystack);
}

function in_array2(needle,vals){
	for(var i=0;i<vals.length;i++) if(needle==vals[i]) return true;
	return false;
}


///////////////////////////////////////////////////////////////////////////////

// cria o menu funcional
function MenuAtiva(){
	var li, ul, link, i, j, node, lis, navRoot, ull, ulltotal, ultimo;
	navRoot = document.getElementById("menu");
	for (i=0; i<navRoot.childNodes.length; i++) {
		node = navRoot.childNodes[i];
		if(node.nodeName!="UL") continue;
		lis = node.getElementsByTagName('li');
		for (j = 0; j<lis.length, li = lis[j]; j++){
			if(!li.getElementsByTagName('ul')[0]) continue;
			// evento do mouse
			li.onmouseover = function() {
				var cod = (document.all) ? 2 : 3;
				this.childNodes[cod].style.display = 'block';
			}
			li.onmouseout = function() {
				var cod = (document.all) ? 2 : 3;
				this.childNodes[cod].style.display = 'none';
			}
			link = li.getElementsByTagName('a')[0];
			link.onfocus = function(){
				this.parentNode.getElementsByTagName('ul')[0].style.display = 'block';
			}
			ul = link.parentNode.getElementsByTagName('ul')[0];
			if (ul){
				ull = ul.getElementsByTagName('a');
				ulltotal = ull.length-1;
				var ultimo = ull[ulltotal];
				if (ultimo){
					ultimo.onblur = function(){
						this.parentNode.parentNode.style.display='none';
					}
					ultimo.parentNode.onblur = function(){
						this.parentNode.style.display = '';
					}
				}
			}
		}
	}
}


