if(typeof(rights)=='undefined' || !rights) {
	rights='00000';
}
//if(rights.charAt(6)=='1') {
	register_event('onkeydown',autoskip);
//}
if(isNS || isFF) {
	register_event('onload',xulfix);
}
if(isNS || isFF || isOpera) {
	register_event('onmouseup',function(evt) {
		if(isIE) {
			var elem=event.srcElement;
		} else {
			var elem=evt.target;
		}
		if(elem.form && !elem.form.getAttribute('onsubmit')) {
			elem.form.onsubmit=function() {return true;}
		}
	});
}

function xulfix() {
	if(document.forms.length>0) {
		for(loop=0;loop<document.forms.length;loop++) {
			document.forms[loop].autocomplete='off';
			document.forms[loop].setAttribute('autocomplete','off');
		}
	}
}

function autofocus(form) {
	if(typeof(form)=='undefined' || !form) {
		if(document.forms.length>0) {
			var form=document.forms[0];
		} else return;
	}
	var tagtype='';
	for(var loop=0;loop<form.length;loop++) {
		tagtype=form[loop].nodeName.toLowerCase();
		if(tagtype=='input') tagtype=tagtype.type;
		if(/text$|textarea|select|file|password/i.test(tagtype) && !form[loop].disabled) {
			form[loop].focus();
			break;
		}
	}
}

// navegação de formulários
function autoskip(evt) {
	// obtém evento
	if(isIE) {
		var key=event.keyCode;
		var elem=event.srcElement;
	} else {
		var key=evt.which;
		var elem=evt.target;
		elem.maxLength=elem.getAttribute('maxlength');
	}
	var tagtype=elem.nodeName.toLowerCase();
	if(!/button|input|text$|textarea|select|file|password/i.test(tagtype) || elem.disabled) {
		return false;
	} else if(!/textarea/i.test(tagtype) && key==13) {
		elem.form.onkeypress=function() {
			if(key==13) return false;
			else return true;
		}
	} else {
		elem.form.onkeypress=function() {return true};
	}
	if(tagtype=='input') tagtype=elem.type;
	// determina a posição do campo atual
	for(var loop=0;loop<elem.form.elements.length;loop++) {
		try {
			if(elem==elem.form.elements[loop]) break;
		} catch(errormsg) {
		}
	}
	// determina campo anterior
	var prev=loop,fld=null,fld_type=null;
	while(prev>-2) {
		prev--;
		if(prev>-1) {
			fld=elem.form.elements[prev];
			fld_type=fld.nodeName.toLowerCase();
			if(fld_type=='input') fld_type=fld.type;
			if(/text$|textarea|select|file|password/i.test(fld_type) && !fld.disabled) break;
		}
	}
	if(prev<0) prev=loop;
	// determina campo posterior
	var next=loop;
	while(next<=elem.form.elements.length) {
		next++;
		if(next<elem.form.elements.length) {
			fld=elem.form.elements[next];
			fld_type=fld.nodeName.toLowerCase();
			if(fld_type=='input') fld_type=fld.type;
			if(/text$|textarea|select|file|password/i.test(fld_type) && !fld.disabled) break;
		}
	}
	if(next>elem.form.elements.length-1) next=loop;
	// seleciona o campo seguinte
	if(/text$|textarea|file|password/i.test(tagtype)) {
		if(elem.value.length==elem.maxLength && key>31) {
			if(elem.getSelection && elem.getSelection()) return true;
	    else if(elem.selection && document.selection.createRange().text) return true;
		} else if(elem.value.length==elem.maxLength-1 && key>31) {
			fld=elem.form.elements[next];
			if(key!=35 && key!=36 && key!=37 && key!=39 && key!=46) {
				if(/text$|textarea|file|password/i.test(fld.type)) {
					setTimeout(function(){fld.focus();},100);
				}
			}
			return true;
		} else if(key==13 && !/textarea/i.test(tagtype)) {
			if(next>loop) {
				fld=elem.form.elements[next];
				fld.focus();
				if(/text$|textarea|file|password/i.test(fld.type)) fld.select();
			}
			return false;
		}
	// campo select
	} else if(/select/i.test(tagtype)) {
		if(key==13) {
			if(next>loop) {
				fld=elem.form.elements[next];
				fld.focus();
				if(/text$|textarea|file|password/i.test(fld.type)) fld.select();
				return false;
			} else if(elem==elem.form.elements.length-1) {
				return true;
			}
		}
	}
	return true;
}

function keyfilter(express,evt) {
	if(isIE) {
		var key=event.keyCode;
	} else {
		var key=evt.which;
	}
	if(key<32) return true;
	if(isIE && event.ctrlKey) return true;
	if(!isIE && evt.ctrlKey) return true;
	var bool=new RegExp(express,'gm').test(chr(key));
	if(!bool) {
		if(isOpera && (key==35 || key==36) && !event.shiftKey) return true;
		if(language=='portuguese') {
			var msg='O caractere "'+chr(key)+'" não é permitido neste campo.\nUtilize somente os caracteres: ';
		} else if(language=='spanish') {
			var msg='El caractere "'+chr(key)+'" no es permitido en este campo.\nUtilice solamente los caracteres: ';
		} else {
			var msg='The character "'+chr(key)+'" is not allowed in this field.\nUse only the characters: ';
		}
		msg+=express.substr(1,express.length-3);
		if(/[A-Z]/.test(chr(key))) {
			if(language=='portuguese') msg+='\nDesligue a tecla CAPS LOCK, se estiver ligada.';
			else if(language=='spanish') msg+='\nDesligue la tecla CAPS LOCK, si estubier encendida.';
			else msg+='\nTurn off the CAPS LOCK key if it is on.';
		}
		alert(msg);
	}
	return bool;
}

function clearfield(field) {
	if(el(field)) el(field).value='';
	else field.value='';
}

function charsleft(field,countfield,maxlimit) {
	if(el(field)) field=el(field);
	if(el(countfield)) countfield=el(countfield);
	if(field.value.length>maxlimit) {
		field.value=field.value.substr(0,maxlimit);
		field.style.backgroundColor='#dddddd';
	} else {
		countfield.value=maxlimit-field.value.length;
		field.style.backgroundColor='#ffffff';
	}
}

function money(amount,decimals) {
	if(typeof(decimals)=='undefined' || !decimals) decimals=2;
	if(isNaN(amount)) {
		if(language=='english') amount='0.';
		else amount='0,';
		for(loop=0;loop<decimals;loop++) amount+='0';
		return amount;
	}
	amount=parseFloat(amount).toFixed(decimals).toString();
	var whole=amount.substr(0,amount.length-(decimals+1));
	var rex=/(-?\d+)(\d{3})/;
	while(rex.test(whole)) {
		if(language=='english') whole=whole.replace(rex,"$1\,$2");
		else whole=whole.replace(rex,"$1\.$2");
	}
	if(language=='english') {
		return whole+'.'+amount.substr(amount.length-decimals,decimals);
	} else {
		return whole+','+amount.substr(amount.length-decimals,decimals);
	}
}
