/**
 * dmosilveira
 * Funções padrões usadas no ajax
 * 2007-08-01
 */

//--trabalha com eventos
function addEvent(obj,evType,fn)
{
	if(obj.addEventListener)
		obj.addEventListener(evType,fn,true);
	if(obj.attachEvent)
		obj.attachEvent('on'+evType,fn);
}
//--localiza posição do elemento
function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}
//--validação
function CrossEvent(evt)
{
	evt = evt?evt:(window.event?window.event:null);
	if(evt) {
		this.originalEvent = evt;
		this.type = evt.type;
		//--posição do mouse
		//this.screenX = evt.screenX;
		//this.screenY = evt.screenY;
		// IE: srcElement
		this.target = evt.target?evt.target:evt.srcElement;
		// N4: modifiers
		if (evt.modifiers) {
			this.altKey   = evt.modifiers & Event.ALT_MASK;
			this.ctrlKey  = evt.modifiers & Event.CONTROL_MASK;
			this.shiftKey = evt.modifiers & Event.SHIFT_MASK;
			this.metaKey  = evt.modifiers & Event.META_MASK;
		}
		else {
			this.altKey   = evt.altKey;
			this.ctrlKey  = evt.ctrlKey;
			this.shiftKey = evt.shiftKey;
			this.metaKey  = evt.metaKey;
		}
		// N4: which // N6+: charCode
		this.charCode = !isNaN(evt.charCode)?evt.charCode:!isNaN(evt.keyCode)?evt.keyCode:evt.which;
		this.keyCode = !isNaN(evt.keyCode)?evt.keyCode: evt.which;
		this.button = !isNaN(evt.button)?evt.button:!isNaN(evt.which)?evt.which-1:null;
		this.debug = "c:" + evt.charCode + " k:" + evt.keyCode + " b:" + evt.button + " w:" + evt.which;
	}
}
//--funções de validação
function validaNumeros(objEvent,tipo)
{
	var evt = new CrossEvent(objEvent);
	var teclaKey = evt.keyCode;
	var teclaChar = evt.charCode;
	//--CHAR CODE
	//--47 à 58 - números de 0 à 9
	//--44 - vírgula
	//--46 - ponto
	//--KEY CODE
	//--8 - backspace
	//--9 - tab
	//--37 - setinha: esquerda
	//--39 - setinha: direita
	//--46 - delete
	//alert(evt.debug)
	//--------------------------------------
	if(tipo=='inteiro'&&((teclaChar>47&&teclaChar<58)||teclaKey==8||teclaKey==9||teclaKey==37||teclaKey==39||teclaKey==46))
		return true;
	else if(tipo=='decimal'&&((teclaChar>47&&teclaChar<58)||teclaKey==8||teclaKey==9||teclaKey==37||teclaKey==39||teclaKey==46||teclaChar==44))
		return true;
	else if(tipo=='ponto'&&((teclaChar>47&&teclaChar<58)||teclaKey==8||teclaKey==9||teclaKey==37||teclaKey==39||teclaKey==46||teclaChar==46))
		return true;
	else
		return false;
}

function bloqueiaTeclado(objEvent)
{
	var evt = new CrossEvent(objEvent);
	var teclaKey = evt.keyCode;
	var teclaChar = evt.charCode;
	return false;
}

//--validação de e-mail
function validaEmail(emailValida) {
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(emailValida)=='string') {
        if(er.test(emailValida)) {
			return true;
		} else {
			return false;	
		}
    } else if(typeof(emailValida)=='object') {
        if(er.test(emailValida.value)){
			return true;
		} else {
			return false;	
		}
    } else {
		return false;
	}
}

//--Valida radiobutton
function validaRadio(r)
{
	var itens = r.length;
	var op = '';
	//-------------------
	for(var j=0;j<itens;j++)
	{
		//-------------------
		op = r[j]['fld'].length;
		//-------------------
		for(i=0;i<op&&r[j]['chk']==false;i++)
		{
			if(r[j]['fld'][i].checked==true) {
				r[j]['chk'] = true;
				r[j]['vle'] = r[j]['fld'][i].value;
			}
		}
	}
	return (r);
}