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

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

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);
}


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


// Escreve o Flash
function Flash(arquivo,largura,altura,trans,ret){
	var trans = (trans) ? "wmode=\"transparent\"" : "";
	var valor = "";
	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';
	if(trans) valor += '<param name="wmode" value="transparent">';
	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+'" '+trans+' height="'+altura+'"></embed>\n';
	valor += '</object>';
	if(ret) return valor;
	else document.write(valor);
}

// Player do flash
function Player(audio,ret){
	var mais = SUBPASTA+'/data/arquivos/'+audio;
	if(ret) mais = audio;
	var retorna = Flash(SUBPASTA+'/img_layout/player.swf?bgcolor=0xDCD6CF&amp;iconcolor=0x000000&amp;textcolor=0x666666&amp;barcolor=0x666666&amp;pathcolor=0xFFFFFF&amp;buttoncolor=0xD2D2D2&amp;buttonhovercolor=0xC4422A&amp;soundFile='+mais,'200','30',1);
}


// Verifica o formulario
function VerForm(){
	var cp, erro, val, nome_erro, campos, nome_form, form, i, versenha, senha, resenha, verdefault, qb = "";
	nome_erro = 'erros';
	campos = arguments;
	nomeform = campos[0];
	form = document[nomeform];
	// nome do campo de erro
	if(campos[1].match(/NOME_ERRO:/)){
		qb = campos[1].split(':');
		nome_erro = qb[1];
		campos[1] = '';
	}
	Element.hide(nome_erro);
	versenha = 0;
	verdefault = false;
	for(i=0;i<campos.length;i++){
		if(!i) continue;
		cp = campos[i];
		if(!cp) continue;
		// coringa
		if(cp=='DEFAULTVALUES'){
			verdefault = true;
			continue;
		}
		if(cp=='senha' || cp=='resenha') versenha++;
		val = "";
		if(form[cp].type=="select-one"){
			val = form[cp].selectedIndex;
			if(val<1) val = 0;
		}
		else{
			val = form[cp].value;
			if(verdefault){
				if(form[cp].value==form[cp].defaultValue) val = '';
			}
		}
		if(!val || val==0){
			erro = 1;
			Element.addClassName(cp,'erro');
		}
		else{
			Element.removeClassName(cp,'erro');
		}
	}
	// tem senha
	if(versenha==2){
		senha = form.senha.value;
		resenha = form.resenha.value;
		if(senha.length<5){
			alert('A senha precisa ter pelo menos 5 caracteres.');
			Element.addClassName('senha','erro');
			form.resenha.value="";
			erro = true;
		}
		else if(senha!=resenha){
			alert('As duas senhas estão diferentes.');
			Element.addClassName('senha','erro');
			form.resenha.value="";
			erro = true;
		}
	}
	if(erro){
		Element.show(nome_erro);
		return false;
	}
	return true;
}


