// JavaScript Document

// pega um elemento na pg
function $id(id) {
	return document.getElementById(id);
}

function $(id) {
	return document.getElementById(id);
}

// pega determinada tag
function $tags(tagName,o){
    if(typeof o=="undefined")o=document
	return o.getElementsByTagName(tagName)
}

function $name(name,o){
  if(typeof o=="undefined")o=document
	return o.getElementsByName(name)
}

/*
*	@name: addEvent(objTarget, strEvtType, fnFunction, useCapture, arrParams)
*	@version: 1.0
*	@author: Stuart Langridge (adaptado por Andre Metzen e Leandro Vieira)
*	@param: objTarget => Node Object
*	@param: strEvtType => String
*	@param: fnFunction => Function Object
*	@param: useCapture => Boolean
*	@param: arrParams => Array
*	@return: Boolean
*	@description:
*/
function addEvent(objTarget, strEvtType, fnFunction, useCapture, arrParams)
{
	if(!objTarget) return false;
	
	var fnNewFunction;

	if(typeof arrParams != "undefined") {
         /** Se for necessario passar varios argumentos em arrParams  */
		if ( typeof(arrParams) != 'string' ) {
			var arrParamsToFunction = []; // Iniciamos um array que contera as mensagens de erro
			for ( var i = 0; i < arrParams.length; i++ ) {
				arrParamsToFunction.push(arrParams[i]);
			}
			
			fnNewFunction = function() { fnFunction.apply(objTarget,[arrParamsToFunction]); };
		}	else {
			fnNewFunction = function() { fnFunction.apply(objTarget, [arrParams]); };
		}
	}	else {
		fnNewFunction = fnFunction;
	}

	if (objTarget.addEventListener)	{
		objTarget.addEventListener(strEvtType, fnNewFunction, useCapture);
		return true;
	}	else {
		if (objTarget.attachEvent) {
			return objTarget.attachEvent('on' + strEvtType, fnNewFunction);
		} else {
			objTarget['on' + strEvtType] = fnNewFunction;
		}
	}
};

// busca acao execultada na pg
function getSource(e){
	if(typeof e=="undefined") e=window.event;
	var src=e.target?e.target:e.srcElement;
	if(src.nodeType==3) src=src.parentNode;
	return src;
}

function cancelEvent(e){
	try{ e.preventDefault() }
	catch(i) { event.returnValue=false; }
	return false;
}

// busca o botao pressionado 
function getKeyCode(ev)
{
	if(window.event)	//IE
		return (window.Event) ? event.which : event.keyCode; // sempre retorna valor
	else if(ev)			//Moz
		return (ev) ? ev.which : ev.keyCode;
}

// busca o botao pressionado (caracteres especiais)  
function getKeyCodeSpecial(ev)
{
	if(window.event)	//IE
		return event.keyCode; // sempre retorna valor
	else if(ev)			//Moz
		return ev.keyCode;
}

// prepara o form para ser enviado
function getFormValues(i) {
	var str = "";
	var formObject = document.forms[i];
			
	for(var n = 0; n < formObject.elements.length; n++) {
		// alert(' n: '+n+formObject.elements[n].type+' '+formObject.elements[n].name+'\n'+formObject.elements[n].value);
		if(formObject.elements[n].type == "radio" || formObject.elements[n].type == "checkbox") {
			if(!str) {
				if(formObject.elements[n].checked == true)
					str = formObject.elements[n].name + '=' + encodeURIComponent(formObject.elements[n].value);
				else
					str = str;
			} 
			else {
				if(formObject.elements[n].checked == true)
					str = str + '&' + formObject.elements[n].name + '=' + encodeURIComponent(formObject.elements[n].value);
				else
					str = str;
			}
		} 
		else if(formObject.elements[n].type == "button")
			str = str;
		else {
			if(!str)
				str = formObject.elements[n].name + '=' + encodeURIComponent(formObject.elements[n].value);
			else
				str = str + '&' + formObject.elements[n].name + '=' + encodeURIComponent(formObject.elements[n].value);
		}
	}
	return (str);
}

