/* --------------------------------------------------------------------------------------------------
 * The function checks if the last keystroke is a valid number
 * -------------------------------------------------------------------------------------------------- */
function CheckNums(event){
	if (document.all) {
		var El=window.event.srcElement;
		var str_key = String.fromCharCode(window.event.keyCode);
		var keyCode = window.event.keyCode;
	}else if (document.layers) {
		var El=event.target;
		var key = String.fromCharCode(event.which);
		var keyCode = event.which;
	} else {
		return true;
	}
	
	if ( keyCode==13 ) return true;
  	if ( El.value.indexOf(El.DecSeperator) == -1 && str_key == El.DecSeperator) return true;
  	if ( El.value.indexOf("-") == -1 && str_key == "-") return true;
  	if ( (keyCode >= 48) && (keyCode <= 57) ) return true;
  	
  	return false;
  	
  	
}



/* --------------------------------------------------------------------------------------------------
 * The function checks if the new number is valid based on the parameters
 * if not it resets the element to the last stored value if valid it stores this value
 * -------------------------------------------------------------------------------------------------- */
function MatchNumber(objInput,Min,Max,NrOfDecimals,DecSeperator){
  var retVal = true;
  var Min = (isNaN(parseFloat(Min)) == true ) ? 0 : Min;
  var Max = (isNaN(parseFloat(Max)) == true ) ? 0 : Max;
  var PrevValue = (objInput.PrevValue == null)?"":objInput.PrevValue;
  var DecSeperator = (DecSeperator==null)? "." : DecSeperator;
  var NrOfDecimals = ((isNaN(NrOfDecimals) == true) || (parseInt(NrOfDecimals) < 0))?0:parseInt(NrOfDecimals) ;
  var temp = objInput.value;

  // if we have an empty string return true
  if (temp == null || temp == "") {
    StoreValue(objInput);
    return retVal;
  }

  // If no Decimals are allowed make the number an integer
  if ( NrOfDecimals == 0) temp = "" + parseInt(temp);

  // Replace UD-Seperator to Javascript-Seperator ('.') and check number of decimals
  if ( DecSeperator !="" && temp.indexOf(DecSeperator) != -1 ) {
    if (temp.split(DecSeperator)[1].length > NrOfDecimals ) {
      alert("Er mogen maximaal " + NrOfDecimals + " decima(a)l(en) in voor komen!" );
      //+"\n\nDe waarde wordt terug gezet naar '  " + PrevValue + "  '.");
      retVal = false;
      //temp=PrevValue;      
    }else{
      temp = temp.replace(DecSeperator,".");
      temp = "" + temp.split(".")[0] + "." + temp.split(".")[1].slice(0,NrOfDecimals);
    }
  }

  // If Min or Max is defined check if the number is between these values
  // Ignore this if Min=Max or Max < Min
  if (retVal == true) {
    if((parseFloat(Min) != parseFloat(Max))  && (parseFloat(Min) < parseFloat(Max))){
      if ( (parseFloat(temp)< parseFloat(Min)) || (parseFloat(temp) > parseFloat(Max)) ){
         alert("U heeft een verkeerde waarde ingevuld ( " + objInput.value + " ). \nDe waarde moet tussen de "
             + parseFloat(Min) + " en " + parseFloat(Max) + " liggen!")
        //+ "\n\nDe waarde wordt terug gezet naar '  " + PrevValue + "  '.");
        retVal = false;
        //temp=PrevValue;        
      }
    }
  }

  // Replace Javascript-Seperator to UD-Seperator only if Deciamls are allowed
  if ( (temp.indexOf(".") != -1) && (DecSeperator !=".") && ( NrOfDecimals > 0) ){
    temp = temp.replace(".", DecSeperator);
  }

  //// Check current value
  //temp=(isNaN(temp) == true)?PrevValue:temp

  // Replace value in element if needed and store this value
  if ( objInput.value != temp)    objInput.value=temp
  if ( retVal == true ) {
    StoreValue(objInput);
  }else{  	
    objInput.focus();
  	objInput.select();    
  }
  return retVal;
}


/* --------------------------------------------------------------------------------------------------
 * The function stores the last correct value in an input element
 * -------------------------------------------------------------------------------------------------- */
function StoreValue(objInput){	
	objInput.PrevValue=objInput.value;	
}