// JavaScript Document

function formlib() {

	//METHODS
	this.onlynum = __onlyNumbers
	this.onlylett = __onlyLetters
	this.jumptonext = __jumpToNextElem
	this.radiodefined = __getCheckedValueRadio
	this.selectdefined = __getCheckedValueSelect
	this.checkboxdefined = __getCheckedCheckbox
	this.checkall = __checkAll
	this.uncheckall = __unCheckAll
	this.charlimit = __charlimit


	function __onlyNumbers(obj, exc) {
		var digits="0123456789"
		
		if (exc) digits = digits+exc

		var campo_temp
		for (var i=0;i<obj.value.length;i++){
		  campo_temp=obj.value.substring(i,i+1)
		  if (digits.indexOf(campo_temp)==-1){
				obj.value = obj.value.substring(0,i);
				break;
		  }
		}
	}
	
	
	function __onlyLetters(obj, exc) {
		var digits="qwertyuiopasdfghjklçzxcvbnmçáàãâéèêíìóòõôúùüü'\- "
		
		if (exc) digits = digits+exc

		var campo_temp
		for (var i=0;i<obj.value.length;i++){
		  campo_temp=obj.value.substring(i,i+1)
		  if (digits.search(eval('/'+campo_temp+'/i'))==-1){
				obj.value = obj.value.substring(0,i);
				break;
		  }
		}
	}
	
	
	function __jumpToNextElem(obj) {
		if (obj.value.length == obj.maxLength) {
			for (var i = 0; i < obj.form.length; i++) {
				if (obj.form[(i-1)] == obj)	{
					obj.form[i].focus()
					break;
				}
			}
		}
	}
	
	function __getCheckedValueRadio(radioObj) {
		if(!radioObj)
			return null;
	
		var radioLength = radioObj.length;
	
		if(radioLength == undefined) {
			if(radioObj.checked)
				return radioObj.value;
			else
				return null;
		}
	
		for(var i = 0; i < radioLength; i++) {
			if(radioObj[i].checked)
				return radioObj[i].value;
		}
		return null;
	}

	function __getCheckedValueSelect(slct, ind)	{
		var indice = slct.selectedIndex
		
		if (slct.options[indice].value != '')
			return ind ? indice : slct.options[indice].value
		else
			return null
	}
	
	function __getCheckedCheckbox(obj) {
		if (!obj)
			return null
		
		var valores = new Array()
	
		if (typeof(obj.length) == 'undefined' && obj.checked) // só tem um checkbox
		  valores[0] = obj.value
		else {
		  for(i = 0; i < obj.length; i++) {
			  if (obj[i].checked) {
				  valores.push(obj[i].value)
			  }
		  }
		}
	
		if (valores.length > 0)
		  return valores
		else
		  return null
	}

	function __checkAll(obj) {
		for (var i=0; i<obj.length; i++) {
			obj[i].checked = true
		}
	}
	
	function __unCheckAll(obj) {
		for (var i=0; i<obj.length; i++) {
			obj[i].checked = false
		}
	}
	
	function __charlimit(obj, limit) {
		if (obj.value.length > limit)
			obj.value = obj.value.substr(0,limit)
	}
}

