// Scripts (C) Maarten Balliauw
function SubmitButton (btn) {
  if (btn) {
    btn.disabled = true;
  }
}

function toggleDisplay(elem) {
  if (document.getElementById(elem).style.display == 'none') {
    document.getElementById(elem).style.display = 'block';
  } else {
    document.getElementById(elem).style.display = 'none';  
  }
}

function setVisible(elem) {
  document.getElementById(elem).style.display = 'block';
}

function setInvisible(elem) {
  document.getElementById(elem).style.display = 'none';
}

function scrollIntoViewport(elem) {
  document.getElementById(elem).scrollIntoView(true);
}

function inputMask(ctrl) {
  // Get mask
  var mask = ctrl.getAttribute('inputmask');
  var text = ctrl.value;
  
  // Result string and value
  var resultString = '';
  var resultValue = true;
  
  // Validate mask
  if (event.keyCode != 8) { // Backspace
    var j = 0;
    for (var i = 0; i < ctrl.value.length; i++) {
	  if ( !isAlpha(mask.substring(j, (j+1))) && !isNumeric(mask.substring(j, (j+1)))) {
        resultString = resultString + mask.substring(j, (j+1));
		j++;
	  }
	  if ( !isAlpha(text.substring(i, (i+1))) && !isNumeric(text.substring(i, (i+1))) ) {
		i++;
	  }
	  
	  if ( mask.substring(j, (j+1)) == '0' && isAlpha(text.substring(i, (i+1))) ) {
		resultValue = false;
	  }
	  if ( mask.substring(j, (j+1)) == '0' && isNumeric(text.substring(i, (i+1))) ) {
        resultString = resultString + text.substring(i, (i+1));
	  }
	  
	  if ( mask.substring(j, (j+1)) == 'a' && isNumeric(text.substring(i, (i+1))) ) {
		resultValue = false;
	  }
	  if ( mask.substring(j, (j+1)) == 'a' && isAlpha(text.substring(i, (i+1))) ) {
        resultString = resultString + text.substring(i, (i+1));
	  }

	  j++;
    }
  }

  // Result
  ctrl.value = (resultString == '' ? text : resultString);
  return resultValue;
}

function isNumeric(sText) {
  var ValidChars = "0123456789.";
  var IsNumber=true;
  var Char;

  for (i = 0; i < sText.length && IsNumber == true; i++) { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) {
      IsNumber = false;
    }
  }
  return IsNumber;
}

function isAlpha(sText) {
  var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var IsNumber=true;
  var Char;

  for (i = 0; i < sText.length && IsNumber == true; i++) { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) {
      IsNumber = false;
    }
  }
  return IsNumber;
}

function TextareaKeyPress(objTextArea) {
  //get value:
  var strValue=objTextArea.value;

  //get max chars:
  var maxChars=parseInt(objTextArea.attributes['MaxChars'].value);

  //check if exceeded:
  if (strValue.length >= maxChars) {
    //crop to maximum size:
    objTextArea.value = strValue.substr(0, maxChars);
    return false;
  }

  return true;
}

function TextareaKeyUp(objTextArea) {
  //get id of control:
  var strID=objTextArea.name+"_charsCount";

  //get pointer to text container:
  var objSpan=document.getElementById(strID);

  //get value:
  var strValue=objTextArea.value;

  //get max chars:
  var maxChars=parseInt(objTextArea.attributes['MaxChars'].value);

  //check if exceeded:
  if (strValue.length >= maxChars) {
    //crop to maximum size and refresh:
    objTextArea.value = strValue.substr(0, maxChars);
    strValue=objTextArea.value;
  }

  //set container text:
  objSpan.innerHTML = (maxChars-strValue.length);
}

function TextareaPaste(objTextArea) {
  var s1=setTimeout("TextareaKeyPress();", 100, objTextArea);
  var s2=setTimeout("TextareaKeyUp();", 500, objTextArea);
}
