﻿function fixPersianChar(unicode) {
    switch (unicode) {
        case 0x064A:
        case 0x0649:
            {
                //event.
                return 0x06CC;
            }
        case 0x0660:
            {
                return 0x06F0;
            }
        case 0x0661:
            {
                return 0x06F1;
            }
        case 0x0662:
            {
                return 0x06F2;
            }
        case 0x0663:
            {
                return 0x06F3;
            }
        case 0x0664:
            {
                return 0x06F4;
            }
        case 0x0665:
            {
                return 0x06F5;
            }
        case 0x0666:
            {
                return 0x06F6;
            }
        case 0x0667:
            {
                return 0x06F7;
            }
        case 0x0668:
            {
                return 0x06F8;
            }
        case 0x0669:
            {
                return 0x06F9;
            }

            //                case 0x06C0:
            //                    {
            //                        return  0x0647;
            //                    }
    }
    return unicode;
}
function fixPersianString(text) {

    if (text == null)
        return null;

    text = text.replace(/\u0660/g, '\u06F0'); // ۰
    text = text.replace(/\u0661/g, '\u06F1'); // ۱
    text = text.replace(/\u0662/g, '\u06F2'); // ۲
    text = text.replace(/\u0663/g, '\u06F3'); // ۳
    text = text.replace(/\u0664/g, '\u06F4'); // ۴
    text = text.replace(/\u0665/g, '\u06F5'); // ۵
    text = text.replace(/\u0666/g, '\u06F6'); // ۶
    text = text.replace(/\u0667/g, '\u06F7'); // ۷
    text = text.replace(/\u0668/g, '\u06F8'); // ۸
    text = text.replace(/\u0669/g, '\u06F9'); // ۹
    text = text.replace(/\u0643/g, '\u06A9'); // ک
    text = text.replace(/\u0649/g, '\u06CC'); // ی
    text = text.replace(/\u064A/g, '\u06CC'); // ی
    text = text.replace(/\u06C0/g, '\u0647\u0654'); // هٔ

    return text;
}

function RadEditorClientLoad(editor, args) {
    editor.attachEventHandler("onkeypress", function (e) {
        onKeyPressEventManager(e);
        //                editor.set_html(fixPersianString(editor.get_html()));
    });
}
function RadEditorClientTextSubmit(editor, args) {
    editor.set_html(fixPersianString(editor.get_html()));
}

function RadEditorClientPasteHtml(editor, args) {
    args.set_value(fixPersianString(args.get_value()));
}


$(document).ready(function () {
    $("textarea").change(function (event) {
        //                alert('$("textarea").change -- ' + event.toString());
        $(this).val(fixPersianString($(this).val()));
    });

    $("input").change(function (event) {
        //                alert('$("input").change -- ' + event.toString());
        $(this).val(fixPersianString($(this).val()));
    });
});
var onKeyPressEventManagerHandled = false;

function onKeyPressEventManager(event) {
    if (!onKeyPressEventManagerHandled) {

        event = event ? event : window.event;
        var unicode = (event.which ? event.which : event.keyCode);
        var newCode = fixPersianChar(unicode);

        if (newCode != unicode) {

            if (!event.which) { // for IE
                event.which = newCode;
                event.keyCode = newCode;
            }
            else {
                var tgt = event.target;
                event.preventDefault(true);
                event.stopPropagation(true);
                substituteChar(newCode, tgt);
            }

        }
    }
    else {
        onKeyPressEventManagerHandled = false;
    }
}
function substituteChar(charCode, tgt) {
    onKeyPressEventManagerHandled = true;
    var keyEvt = document.createEvent("KeyboardEvent");
    if (keyEvt.initKeyEvent) {
        keyEvt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, charCode);
        tgt.dispatchEvent(keyEvt);
        keyEvt.stopPropagation;
    } else if (keyEvt.initKeyboardEvent) {
        // Safari?
    }
}
window.onload = function () {
    document.onkeypress = onKeyPressEventManager;
}
