﻿/// <reference path="jquery-1.3.2-vsdoc.js" />
var _Result;
var _SelectedWordIndex = -1;
var _CorrectText;
var _OriginalText;
var _CheckedWordList;
var textToChecked = "";
var prevPos = 0;
var fixPos = 0;

$(document).ready(function() {

    // -- initialization --------------------------
    $("#checkedText").hide();
    $("#btnBack").hide();
    $("#suggestDialog").dialog({
        autoOpen: false,
        width: 300,
        height: 350,
        modal: true,
        title: 'لغات پیشنهادی',
        buttons: {
            'اصلاح': function() {
                _CorrectText = $('#wordList :selected').text();

                //var textToChecked = _OriginalText;
                if (_CorrectText != "") {
                    _CheckedWordList[_SelectedWordIndex] = 0;
                    //alert(_SelectedWordIndex);
                    //for (var i = 0; i < $(_Result).size(); i++) {
                    //                        if (_CheckedWordList[i] == -1) {
                    //                            var startIndex = _Result[i].Index + prevPos;
                    //                            alert("text 1 =  " + textToChecked);
                    //                            var strTemp, strTemp2;

                    //                            strTemp = "<div id=" + i + " class='selected'> " + textToChecked.substring(startIndex, startIndex + _Result[i].WordLength) + " </div> ";
                    //                            strTemp2 = textToChecked.substring(0, startIndex) + strTemp + textToChecked.substring(startIndex + _Result[i].WordLength + 1, textToChecked.length)
                    //                            textToChecked = strTemp2;
                    //                            prevPos = prevPos + 35;
                    //                        }
                    //alert("PrevPos = " + prevPos);
                    //if (_CheckedWordList[_SelectedWordIndex] == 0) {
                    var startIndex = _Result[_SelectedWordIndex].Index + fixPos;
                    var strTemp, strTemp2;
                    strTemp = "<div id=" + _SelectedWordIndex + " class='highligh'> " + _CorrectText + " </div> ";

                    strTemp2 = textToChecked.substring(0, startIndex) + strTemp + textToChecked.substring(startIndex + strTemp.length, textToChecked.length);

                    textToChecked = strTemp2;
                    fixPos = fixPos + 35;
                    //break;
                    //}
                    //}
                    $("#checkedText").html(textToChecked);
                    _SelectedWordIndex++;

                    if (_SelectedWordIndex <= $(_Result).size() - 1) {

                        $("#suggestDialog").dialog('open');
                        var misspelledWord = _Result[_SelectedWordIndex].Misspelledword;
                        $("#misspelledWord").html(misspelledWord);
                        var suggestedWordsSize = $(_Result[_SelectedWordIndex].WordSuggestions).size();
                        var html = "";
                        for (var i = 0; i < suggestedWordsSize; i++) {
                            html += "<option value=" + i + ">" + _Result[_SelectedWordIndex].WordSuggestions[i] + "</option>";
                        }
                        $("#wordList").html(html);

                    }
                    if (_SelectedWordIndex == $(_Result).size()) {
                        $("#suggestDialog").dialog('close');
                    }
                }
                else {
                    //                    for (var j = 0; j < $(_Result).size(); j++) {
                    //                        var startIndex = _Result[j].Index + prevPos;
                    //                        var strTemp, strTemp2;
                    //                        prevPos = prevPos + 35;
                    //                        strTemp = "<div id=" + j + " class='selected'> " + textToChecked.substring(startIndex, startIndex + _Result[j].WordLength) + " </div> ";
                    //                        //strTemp2 = textToChecked.substring(0, startIndex) + textToChecked.substring(startIndex + _Result[j].WordLength + 1, textToChecked.length);
                    //                        strTemp2 = textToChecked.substring(0, startIndex) + strTemp + textToChecked.substring(startIndex + _Result[j].WordLength + 1, textToChecked.length)
                    //                        textToChecked = strTemp2;
                    //                    }
                    //                    $("#checkedText").html(textToChecked);
                }
                //$(this).dialog('close');
            },
            'نادیده گرفتن': function() {
                _SelectedWordIndex++;
                if (_SelectedWordIndex <= $(_Result).size() - 1) {
                    fixPos = fixPos + 35;
                    $("#suggestDialog").dialog('open');
                    var misspelledWord = _Result[_SelectedWordIndex].Misspelledword;
                    $("#misspelledWord").html(misspelledWord);
                    var suggestedWordsSize = $(_Result[_SelectedWordIndex].WordSuggestions).size();
                    var html = "";
                    for (var i = 0; i < suggestedWordsSize; i++) {
                        html += "<option value=" + i + ">" + _Result[_SelectedWordIndex].WordSuggestions[i] + "</option>";
                    }
                    $("#wordList").html(html);

                    $("#suggestDialog").dialog('open');
                } else {
                    $(this).dialog('close');
                }
            }
        }
    });
    // -- Event Handlers --------------------------
    $("#btnFillText").click(function() {
        $.ajax({
            type: "GET",
            url: "ViraDemo.aspx?function=LoadText",
            dataType: "text",
            data: {},
            contentType: "application/text",
            cache: false,
            success: function(json) {
                $("#txtDemo").val(json);
            }
        });
    });

    $("#btnBack").click(function() {
        $("#toolBar").slideDown(3000);
        $("#textArea").slideDown(3000);
        $("#checkedText").slideUp(3000);
        $("#btnBack").hide();
    });

    $("#btnSpellCheck").click(function() {
        _Result = null;
        _SelectedWordIndex = -1;
        _CorrectText = "";
        _OriginalText = "";
        _CheckedWordList = null;
        textToChecked = "";
        prevPos = 0;
        fixPos = 0;
        //-----------------------------------------
        textToChecked = $("#txtDemo").val();
        _OriginalText = textToChecked;
        $("#lblMessage").css("visibility", "visible");
        var prevPos = 0;
        var i = 0;
        $.ajax({
            type: "POST",
            url: "ViraDemo.aspx",
            data: "function=CorrectText&Text=" + textToChecked,
            cache: false,
            success: function(json) {
                var result = eval(json);
                _Result = result;
                if ($(_Result).size() != 0) {
                    _CheckedWordList = new Array($(result).size());
                    for (var i = 0; i < $(result).size(); i++) {
                        _CheckedWordList[i] = -1;
                    }

                    for (var j = 0; j < $(result).size(); j++) {
                        var startIndex = result[j].Index + prevPos;
                        var strTemp, strTemp2;
                        prevPos = prevPos + 35;
                        strTemp = "<div id=" + j + " class='selected'> " + textToChecked.substring(startIndex, startIndex + result[j].WordLength) + " </div> ";
                        strTemp2 = textToChecked.substring(0, startIndex) + textToChecked.substring(startIndex + result[j].WordLength + 1, textToChecked.length);
                        strTemp2 = textToChecked.substring(0, startIndex) + strTemp + textToChecked.substring(startIndex + result[j].WordLength + 1, textToChecked.length)
                        textToChecked = strTemp2;
                    }
                    $("#checkedText").html(textToChecked);
                    $("#lblMessage").css("visibility", "hidden");
                    $("#toolBar").slideUp(3000);
                    $("#textArea").slideUp(3000);
                    $("#checkedText").slideDown(3000);
                    $("#btnBack").show();

                    //-----------------------------------------------------------
                    var id = 0;
                    _SelectedWordIndex = id;
                    $("#suggestDialog").dialog('open');
                    var misspelledWord = _Result[id].Misspelledword;
                    $("#misspelledWord").html(misspelledWord);
                    var suggestedWordsSize = $(_Result[id].WordSuggestions).size();
                    var html = "";
                    for (var i = 0; i < suggestedWordsSize; i++) {
                        html += "<option value=" + i + ">" + _Result[id].WordSuggestions[i] + "</option>";
                    }
                    $("#wordList").html(html);
                }
                $("#lblMessage").css("visibility", "hidden");
            }
        });
        //------------------------------------





    });

    //    $(".selected").live("click", function() {
    //        var id = $(this).attr("id");
    //        _SelectedWordIndex = id;
    //        $("#suggestDialog").dialog('open');
    //        var misspelledWord = _Result[id].Misspelledword;
    //        $("#misspelledWord").html(misspelledWord);
    //        var suggestedWordsSize = $(_Result[id].WordSuggestions).size();
    //        var html = "";
    //        for (var i = 0; i < suggestedWordsSize; i++) {
    //            html += "<option value=" + i + ">" + _Result[id].WordSuggestions[i] + "</option>";
    //        }
    //        $("#wordList").html(html);
    //    });
});