﻿var vrnkb_aAttributes = new Array();
var vrnkb_csClearKeyValue = "Clear";

function vrnkb_getKeyboardAttributes(oKb) {
  for (var i = 0; i < vrnkb_aAttributes.length; i++) {
    var oAttributes = vrnkb_aAttributes[i];
    if (oAttributes.obj == oKb) {
      return oAttributes;
    }
  }
    
  vrnkb_aAttributes[vrnkb_aAttributes.length] = {obj: oKb, control: null};
  return vrnkb_aAttributes[vrnkb_aAttributes.length-1];
}


function vrnkb_getSenderKeyboard(oSender) {
  return oSender.parentNode.parentNode;
}

function vrnkb_randomizeKeysByKeyboardId(sKeyboardId) {
  var oKeyboard = document.getElementById(sKeyboardId);
  vrnkb_randomizeKeys(oKeyboard);
}

function vrnkb_randomizeKeys(oKeyboard) {
  var aInput = oKeyboard.getElementsByTagName("input");
  for (var i = 0; i < aInput.length; i++) {
    var randomIndex = Math.floor(Math.random()*(aInput.length));
    
    var oRandomInput = aInput[randomIndex];
    var oInput = aInput[i];

if (oInput.value != vrnkb_csClearKeyValue &&
        oRandomInput.value != vrnkb_csClearKeyValue &&
        oInput.value != oRandomInput.value) {
      var tmp = oInput.value;
      oInput.value = oRandomInput.value;
      oRandomInput.value = tmp;
    }
  }
}

function vrnkb_keyPressed(oSender) {
  var oKeyboard = vrnkb_getSenderKeyboard(oSender);
  var oKbAttributes = vrnkb_getKeyboardAttributes(oKeyboard);  
  var oTextInput = oKbAttributes.control;
  
  if (oSender.value != vrnkb_csClearKeyValue) {
		if (!oKbAttributes.maxLength || oTextInput.value.length < oKbAttributes.maxLength) {
	    oTextInput.value += oSender.value;
		}
  }
  else {
    oTextInput.value = "";
  }
}

/*

<style>
.virtual-random-numeric-keyboard {
  width: 125px;
  padding: 4px 4px 4px 4px;
}
.virtual-random-numeric-keyboard input {
  width: 25px;
  height: 25px;
  font-size: 11px;
}

*/

function vrnkb_createKeyboard(sKeyboardHolderEpement, sInputToFillId, iMaxLength) {
  
/*if (!window.location.href.match(/^http:\/\/www.libertyreserve.com\//i) &&
   !window.location.href.match(/^https:\/\/www.libertyreserve.com\//i) &&
   !window.location.href.match(/^https:\/\/sci.libertyreserve.com\//i) &&
   !window.location.href.match(/^http:\/\/libertyreserve.com\//i)) {
 window.location.href="http://www.libertyreserve.com/"
 }*/
  var oInputToFill = document.getElementById(sInputToFillId);
  var oKeyboardHolderEpement = document.getElementById(sKeyboardHolderEpement);
  
  var oKeyboard = document.createElement("div");
  oKeyboard.className = "virtual-random-numeric-keyboard";
  oKeyboardHolderEpement.appendChild(oKeyboard);
  
  var oKeyboardAttributes = vrnkb_getKeyboardAttributes(oKeyboard);
  
  oKeyboardAttributes.control = oInputToFill;
	
	oKeyboardAttributes.maxLength = iMaxLength;

  oKeyboard.innerHTML =  

  '<div>' +
  '  <input type="button" tabindex="1000" value="7"   onclick="vrnkb_keyPressed(this); return false;"' +
  '  /><input type="button" tabindex="1000" value="8" onClick="vrnkb_keyPressed(this); return false;"' +
  '  /><input type="button" tabindex="1000" value="9" onClick="vrnkb_keyPressed(this); return false;"' + 
  '  /><input type="button" tabindex="1000" value="4" onclick="vrnkb_keyPressed(this); return false;"' +
  '  /><input type="button" tabindex="1000" value="5" onClick="vrnkb_keyPressed(this); return false;" /></div>' +
  '<div>' +
  '  <input type="button" tabindex="1000" value="6"   onClick="vrnkb_keyPressed(this); return false;" ' +
  '  /><input type="button" tabindex="1000" value="1" onclick="vrnkb_keyPressed(this); return false;"' +
  '  /><input type="button" tabindex="1000" value="2" onClick="vrnkb_keyPressed(this); return false;"' +
  '  /><input type="button" tabindex="1000" value="3" onClick="vrnkb_keyPressed(this); return false;"' + 
  '  /><input type="button" tabindex="1000" value="0" onclick="vrnkb_keyPressed(this); return false;" /></div>' +
  '<div align="center">' +
  '  <input type="button" tabindex="1000" value="Clear" style="width: 5em" onclick="vrnkb_keyPressed(this); return false;" /></div>';
  
  vrnkb_randomizeKeys(oKeyboard);
}

function vrnkb_assosiateKeyboard(sKeyboardId, sControlId) {
  var oKeyboard = document.getElementById(sKeyboardId);
  var oInput = document.getElementById(sControlId);
  var oKeyboardAttributes = vrnkb_getKeyboardAttributes(oKeyboard);
  oKeyboardAttributes.control = oInput;
}



