﻿var TKeyboard = { NumPad:1, Letters:0 }

var VirtualKeyboard = {};

VirtualKeyboard._DrawKeyboard = function(container, type)
{

	var className =  (type == TKeyboard.Letters) ? "kb-letters" : "kb-numpad";
	
	if (type == TKeyboard.Letters)
		arrKeys = [
					["Q","W","E","R","T","Y", "U", "I","O","P"]
					,["A","S","D","F","G","H","J","K","L", ""]
					,["","Z","X","C","V","B","N","M", "", ""]
				];
	else
		arrKeys = [
					["3","8","4"]
					,["0","1","5"]
					,["6","2","9"]
					,["","7",""]
				];
		
	var tb = document.createElement("table");
	tb.setAttribute("class", className);
	tb.setAttribute("cellspacing","0");
	tb.setAttribute("cellpadding","0");
	
	var tbBody = document.createElement("tBody"); 

	for(var i=0; i < arrKeys.length; i++)
	{
		var arrChars = arrKeys[i];
		var tr = document.createElement("tr");
		
		for(var j=0; j < arrChars.length; j++)
		{
			var ch = arrChars[j];
			var chCode = ch.charCodeAt(0);
			var td = document.createElement("td");
			td.setAttribute("class","vk-cell");
			if (ch != "") 
			{
				td.setAttribute("onclick", "VirtualKeyboard.Click(" + chCode + ")");
				td.innerHTML = '<a class="vk-' + chCode + '"><span>' + ch + '</span></a>';
			}
			tr.appendChild(td);
		}
		tbBody.appendChild(tr);
	}
	tb.appendChild(tbBody);
	container.appendChild(tb);

}

VirtualKeyboard.Init = function(container, headerText)
{
	
	if (typeof(container) == "string")
		container = document.getElementById(container);
	
	var divHeader = document.createElement("div");
	divHeader.setAttribute("class", "kb-header");
	
	var divHeaderText = document.createElement("div");
	divHeaderText.setAttribute("class", "kbHeaderText");
	divHeaderText.innerHTML = headerText ? headerText : "";
	
	divHeader.appendChild(divHeaderText);
	
	var divBody = document.createElement("div");
	divBody.setAttribute("class", "kb-body");
	
	
	var tb = document.createElement("table");
	var tbBody = document.createElement("tBody");
	var tr = document.createElement("tr");
	tr.setAttribute("valign", "top");
	
	
	var td1 = document.createElement("td");
	
	VirtualKeyboard._DrawKeyboard(td1 ,TKeyboard.Letters);
	
	var td2 = document.createElement("td");
	td2.setAttribute("valign", "top");
	VirtualKeyboard._DrawKeyboard(td2, TKeyboard.NumPad);
	
	var td3 = document.createElement("td");
	td3.setAttribute("valign", "top");
	
	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	
	tbBody.appendChild(tr);
	
	tb.appendChild(tbBody);
	
	divBody.appendChild(tb);

	var c = document.createElement("div");
	
	c.appendChild(divHeader);	
	c.appendChild(divBody);

	container.innerHTML = "<div class='virtual-keyboard'>" + c.innerHTML + "</div>";	
}

VirtualKeyboard.Click = function(asciiCode)
{
	var c = String.fromCharCode(asciiCode);
	if (VirtualKeyboard._TargetTextbox != null)
		VirtualKeyboard._TargetTextbox.value += c;
	else
		throw "Não foi setado uma caixa de texto alvo para o VirtualKeyborad."
}

VirtualKeyboard._TargetTextbox;
VirtualKeyboard.SetTargetTextbox = function(targetTextbox, readonly)
{
	if (readonly == null)
		readonly = true;
	VirtualKeyboard._TargetTextbox = targetTextbox;
	
	if (typeof(targetTextbox) == "string")
		VirtualKeyboard._TargetTextbox = document.getElementById(targetTextbox);
	
	if (VirtualKeyboard._TargetTextbox != null)
		VirtualKeyboard._TargetTextbox.readOnly = readonly;	
}





