
    $(document).ready(function(event){
        urduKeyboardLoaded = true;
        var urduInput = ".urdutext_edit";
        $(urduInput).live('keypress',function(event){
            if (typeof(urduKeyboardLoaded) != 'undefined' && urduKeyboardLoaded){return keyboard(this,event)}
        });
        $(urduInput).live('keydown',function(event){
            if (typeof(urduKeyboardLoaded) != 'undefined' && urduKeyboardLoaded){return keyboard2(this,event)}
        });
    });
    
    
function setCursorAtEndKeyboard(oTextbox) {    if (oTextbox .createTextRange) {        var r = (oTextbox.createTextRange());        r.moveStart('character', (oTextbox.value.length));        r.select();    }}

function setCursorAt(oTextbox, index) {    if (oTextbox .createTextRange) {        var r = (oTextbox.createTextRange());        r.moveStart('character', (index));   r.moveEnd('character', (index));       r.collapse();        r.select();    }}

    function formatselection(textbox, formattedText) {
        var textSelected;

        if (document.selection != undefined) {//IE
            textbox.focus();
            var sel = document.selection.createRange();
            sel.text = formattedText;
        }
        else if (textbox.selectionStart != undefined) {//Mozilla
            var startSelPos = textbox.selectionStart;
            var endSelPos = textbox.selectionEnd;
            var oldText = textbox.value;
            textSelected = textbox.value.substring(startSelPos, endSelPos);
            textbox.value = oldText.substr(0, startSelPos) + formattedText + oldText.substr(endSelPos);
        }
    }


	function keyboardFromKeyCode(textbox, keyCode){
		var returnVal = true;
		var a='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLCBN "';
		var b='طصھدٹپتبجحمورنلہاکیقفےسشغعظضذڈثّۃـچخژزڑںۂءآگيۓؤئ ً';
		var ins=a.indexOf(String.fromCharCode(keyCode));
		if (ins!=-1){ // recognized word to be translated
            var newChar = b.substr(a.indexOf(String.fromCharCode(keyCode)),1);
            formatselection(textbox, newChar);
            setCursorAtEndKeyboard(textbox);
			returnVal = false;
		}else{
			
			if (keyCode == 8 && textbox.value.length > 0){ // handle backspace
				//textbox.value = textbox.value.substr(0, textbox.value.length-1);
				//returnVal = false;
			} // allow enter, return, tab(9), backspace (8)
			else if(keyCode != 13 && keyCode != 10 && keyCode != 9) {
				returnVal = false;
			}
		}

		return returnVal;
	}
	
	function keyboard(textbox,e){
        var returnValue = true;
		var keyCode = window.event ? e.keyCode : e.which;
        
        if (e.ctrlKey || e.metaKey || e.altKey){ // allow processing ctrl, alt, and command keys
            returnValue = true;
        }else if (e.keyCode >= 37 && e.keyCode <= 40){ // allow arrow keys
            returnValue = true;
        }else{ // non-modified and shift-modified keys
            returnValue = keyboardFromKeyCode(textbox, keyCode);
        }
		return returnValue;
	}

	function keyboard2(textbox,e){
		var returnVal = true;
		var key = window.event ? e.keyCode : e.which;
		//if (key==8) {
		//	textbox.value=textbox.value.substr(0,textbox.value.length-1);
		//	returnVal=false;
		//}
		return returnVal;
	}
	


