var lang = 0;
var layout = 1;
var elementID = "";

function getNextStateUrduLayout(lastInput, currentInput)
{
	switch(currentInput)
	{
		case "0":return "0";
		case "1":return "1";
		case "2":return "2";
		case "3":return "3";
		case "4":return "4";
		case "5":return "5";
		case "6":return "6";
		case "7":return "7";
		case "8":return "8";
		case "9":return "9";
		case "a":return String.fromCharCode(0x0627);
		case "A":return String.fromCharCode(0x0653);
		case "b":return String.fromCharCode(0x0628);//+String.fromCharCode(0x0627);
		case "B":return String.fromCharCode(0x0613);//+String.fromCharCode(0x0622);
		case "c":return String.fromCharCode(0x0686);
		case "C":return String.fromCharCode(0x062B);
		case "d":return String.fromCharCode(0x062F);
		case "D":return String.fromCharCode(0x0688);
		case "e":return String.fromCharCode(0x0639);
		case "E":return String.fromCharCode(0x0611);
		case "f":return String.fromCharCode(0x0641);
		case "F":return String.fromCharCode(0x0656);
		case "g":return String.fromCharCode(0x06AF);
		case "G":return String.fromCharCode(0x063A);//+String.fromCharCode(0x0623);
		case "h":return String.fromCharCode(0x06BE);
		case "H":return String.fromCharCode(0x062D);
		case "i":return String.fromCharCode(0x06CC);
		case "I":return String.fromCharCode(0x0670);
		case "j":return String.fromCharCode(0x062C);
		case "J":return String.fromCharCode(0x0636);
		case "k":return String.fromCharCode(0x06A9);
		case "K":return String.fromCharCode(0x062E);
		case "l":return String.fromCharCode(0x0644);
		case "L":return String.fromCharCode(0x0612);
		case "m":return String.fromCharCode(0x0645);
		case "M":return String.fromCharCode(0x0658);
		case "n":return String.fromCharCode(0x0646);
		case "N":return String.fromCharCode(0x06BA);
		case "o":return String.fromCharCode(0x06C1);
		case "O":return String.fromCharCode(0x06C3);
		case "p":return String.fromCharCode(0x067E);
		case "P":return String.fromCharCode(0x064F);
		case "q":return String.fromCharCode(0x0642);
		case "Q":return String.fromCharCode(0x06E1);
		case "r":return String.fromCharCode(0x0631);
		case "R":return String.fromCharCode(0x0691);
		case "s":return String.fromCharCode(0x0633);
		case "S":return String.fromCharCode(0x0635);
		case "t":return String.fromCharCode(0x062A);
		case "T":return String.fromCharCode(0x0679);//+String.fromCharCode(0x0625);
		case "u":return String.fromCharCode(0x0621);
		case "U":return String.fromCharCode(0x0657);
		case "v":return String.fromCharCode(0x0637);
		case "V":return String.fromCharCode(0x0638);
		case "w":return String.fromCharCode(0x0648);
		case "W":return String.fromCharCode(0xFDFA);
		case "x":return String.fromCharCode(0x0634);
		case "X":return String.fromCharCode(0x0698);
		case "y":return String.fromCharCode(0x06D2);
		case "Y":return String.fromCharCode(0x0601);
		case "z":return String.fromCharCode(0x0632);
		case "Z":return String.fromCharCode(0x0630);
		case "[":return "]";
		case "]":return "[";
		case "{":return String.fromCharCode(0x0603);
		case "}":return String.fromCharCode(0x060E);
		case "?":return String.fromCharCode(0x061F);
		case "/":return String.fromCharCode(0x0615);
		case ",":return String.fromCharCode(0x060C);
		case "<":return String.fromCharCode(0x0650);
		case ">":return String.fromCharCode(0x064E);
		case ".":return String.fromCharCode(0x06D4);
		case ";":return String.fromCharCode(0x061B);
		case ":":return ":";
		case "'":return String.fromCharCode(0x27); //"'";
		case '"':return String.fromCharCode(0x22); //"\"";
		case "!":return "!";
		case "@":return String.fromCharCode(0x0600);
		case "#":return "/";
		case "$":return String.fromCharCode(0x0626);
		case "%":return String.fromCharCode(0x0615);
		case "^":return String.fromCharCode(0x0610);
		case "&":return String.fromCharCode(0x0654);
		case "*":return String.fromCharCode(0x064C);
		case ")":return "(";
		case "(":return ")";
		case "-":return String.fromCharCode(0x0623);
		case "_":return String.fromCharCode(0x0651);
		case "=":return String.fromCharCode(0x0624);
		case "+":return String.fromCharCode(0x0622);
		case "\\":return String.fromCharCode(0x0602);
		case "|":return String.fromCharCode(0x0614);
		case "~":return String.fromCharCode(0x064B);
		case "`":return String.fromCharCode(0x064D);
		case " ":return " ";
	}
	
	return currentInput;
}

function getNextStatePhoneticLayout(lastInput, currentInput)
{
	return "";
}

function currentEditor(id)
{
	elementID = id;
}

function initKeyboard(id)
{
	elementID = id;
	setKeyboardButtons();
}

function changeEndOfWord(character)
{
	return character;
}

function getNextState(lastInput,currentInput)
{
	switch(layout)
	{
		case 0: return getNextStatePhoneticLayout(lastInput, currentInput);
		case 1: return getNextStateUrduLayout(lastInput, currentInput);
	}
}
