﻿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) {
	if(oSender.value == 'Clear'){
		return oSender.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	}else{
    	return oSender.parentNode.parentNode.parentNode.parentNode.parentNode.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 class="pad_buttons">' +
	'<div class="center_keypad">' +
		'<table><col width="1"><col width="1"><col width="1"><col width="1"><col>' +
			'<tr>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="1" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="2" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="3" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="4" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="5" type="button">' +
				'</td>' +
			'</tr>' +
			'<tr>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="6" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="7" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="8" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="9" type="button">' +
				'</td>' +
				'<td>' +
					'<input onclick="vrnkb_keyPressed(this); return false;" class="buttons" value="0" type="button">' +
				'</td>' +
			'</tr>' +
		'</table>' +
	'</div>' +
'</div>' +
'<div class="pad_clear center_minik_clear">' +
	'<table><col width="1"><col>' +
	'<tr>' +
	'<td>' +
	'<div class="key_b">' +
	'<div class="cas_ctl"><div class="cas_ctr"><div class="bg">' +
		'<input onclick="vrnkb_keyPressed(this); return false;" class="clear" value="Clear" type="button">' +
	'</div></div></div>' +
	'</div>' +
	'</td>' +
	'<td class="std_opera_bugfix">&nbsp;</td>' +
	'</tr>' +
	'</table>' +
	'</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;
}




