function isValidRange(obj,key,minv,maxv){
	var n = obj.value;
	if(parseFloat(n)>=maxv) return false;
	var key = key=='.'?('.0'):key;
	var ret=n+''+key;
	if (ret.charAt(0)=='.') return false;
	return (parseFloat(ret)>=minv && parseFloat(ret)<=maxv)?true:false;
}

function numbersOnly(myfield, e, dec, min, minval,maxval){
	// cara manggil numbersonly(this,event, true/false, true/false) --> true/false untuk decimal dan nilai minus
	// onKeyPress="return numbersOnly(this,event,true,true)"

	var minv = parseFloat(minval);
	if(isNaN(minv)) minv = 0;

	var maxv = parseFloat(maxval);
	if(isNaN(maxv)) maxv = 100000000000000000000000;

	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true; //isValidRange(this,minv,maxv);
	
	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || 
		(key==9) || (key==13) || (key==27) )
	   return true; //isValidRange(myfield,keychar,minv,maxv);
	else if ((("0123456789").indexOf(keychar) > -1))
	   return isValidRange(myfield,keychar,minv,maxv);
	else if (dec && (keychar == ".")) { 
	    return myfield.value.indexOf('.')==-1 ? isValidRange(myfield,keychar,minv,maxv) : false;
	}else if(min && (keychar == "-")){			
  	   return isValidRange(myfield,keychar,minv,maxv);
	}else
	   return false;
}

function checkUncheckAll(theElement) {
	var theForm = theElement.form, z = 0;
	for(z=0; z<theForm.length;z++){
		if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkAll'){
			theForm[z].checked = theElement.checked;
		}
	}
}
