var stage, canvas, context, flag = false, shape, g, 
isSelect = false,
    contextWidth = 0, contextHeight = 0, startX, startY, xline, yline, oldX, oldY, isClick = false,
    jcrop_api,
firstdown = true;
var lineCount = 0;
var textGl = '';
var jsColorGlobal = '';
var isBoldText = 'false';
var isItalicText = 'false';
var textSize = '16';
var isLineNow = false;
var textGlX = 0;
var textGlY = 0;
var textGlWidth = 0;
var isCtrl = false;

//createjs.Graphics.prototype.dashedLineTo = function(x1, y1, x2, y2, dashLen) {
//    this.moveTo(x1, y1);

//    var dX = x2 - x1;
//    var dY = y2 - y1;
//    var dashes = Math.floor(Math.sqrt(dX * dX + dY * dY) / dashLen);
//    var dashX = dX / dashes;
//    var dashY = dY / dashes;

//    var q = 0;
//    while (q++ < dashes) {
//        x1 += dashX;
//        y1 += dashY;
//        this[q % 2 == 0 ? 'moveTo' : 'lineTo'](x1, y1);
//    }
//    this[q % 2 == 0 ? 'moveTo' : 'lineTo'](x2, y2);
//};


//функция онлоад 
function setParametersForScreenFrom(imagesource) {

    stage = null;
    canvas = null;
    context = null;
    flag = false;
    shape = null;
    g = null;
    isSelect = false;
    contextWidth = 0;
    contextHeight = 0;
    startX = null;
    startY = null;
    xline = null;
    yline = null;
    oldX = null;
    oldY = null;
    isClick = false;
    jcrop_api = null;
     lineCount = 0;
     textGl = '';
     jsColorGlobal = (jsColorGlobal == '') ? '#FF0000' : jsColorGlobal;
     isBoldText = 'false';
     isItalicText = 'false';
     textSize = '12';
      isLineNow = false;
      textGlX = 0;
      textGlY = 0;
      textGlWidth = 0;
      $('#colorSelector div').css('backgroundColor', jsColorGlobal);
    $('#colorSelector').ColorPicker({
        color:(jsColorGlobal)?jsColorGlobal: '#000000',
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            return false;
        },
        onSubmit: function (hsb, hex, rgb, el) {
            jsColorGlobal = '#' + hex;
            $('#colorSelector div').css('backgroundColor', '#' + hex);
            $('#colorSelector').ColorPickerHide();
        }
    });

    $('.colorpicker_close a').live('click', function() {
        $('#colorSelector').ColorPickerHide();
        return false;
    });
   
    window.addEventListener('click', focusEditable);
    window.addEventListener("paste", pasteHandler);

    $('#screenshotdialog').on('screenDialogResize', function () {
        var windowW = $(window).width();
        var windowH = $(window).height();
        var modalDialog = $(this);
        var modalDialogW = modalDialog.width();
        var modalDialogH = modalDialog.height();
        var modalDialogtop = (windowW - modalDialogW) / 2;
        var modalDialogleft = (windowH - modalDialogH) / 2;
        modalDialog.dialog('option', 'position', [modalDialogtop, modalDialogleft]);
    });
    
    $(window).bind('resize', function () {
        if ($('#screenshotdialog')) {
            $('#screenshotdialog').trigger('screenDialogResize');
        }
    });
   
    $('#screenshotarea').keydown(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 17) {
            isCtrl = true;
            return false;
        }
        if (!isCtrl) {
            return false;
        }
        isCtrl = false;

    }).keyup(function(e) {
        isCtrl = false;
    });
    if ($.browser.edge)
        $('#screenshotarea').focus();
    if (imagesource)
        afterPasteScreenToComment(imagesource);
}


function lineMouseUp(event) {
    if (isClick) {
        stage.removeEventListener("stagemousemove", lineMouseMove);
        isClick = false;
        if (startX && startX != null && startY && startY != null) {
             shape.graphics.clear();

            shape.graphics.beginStroke(jsColorGlobal)
                .setStrokeStyle(2, "round")
                .moveTo(startX, startY)
                .lineTo(event.stageX, event.stageY);
            canvas = document.getElementById('screenshotcanvas');            
            stage.removeEventListener("stagemouseup", lineMouseUp);
            stage.update();
            $('#currentImage').attr('src', canvas.toDataURL());
            StepBackButton('select');          
            AddLine(false,true);
            xline = null;
            yline = null;
        }
    }
}

function lineMouseMove(evt) {
    if (isClick) {
        if (xline) {
            shape.graphics.clear();
            shape.graphics.beginStroke(jsColorGlobal)
                .setStrokeStyle(2, "round")          
                .moveTo(startX, startY)
                .lineTo(evt.stageX, evt.stageY);
            stage.update();
        }
        xline = evt.stageX;
        yline = evt.stageY;
    } 
}

function lineMouseDown(event) {
    xline = event.stageX;
    yline = event.stageY;
    startX = event.stageX;
    startY = event.stageY;
    isClick = true;
    canvas = document.getElementById('screenshotcanvas');
    $('#previousImage').attr('src', canvas.toDataURL());
    stage.addEventListener("stagemousemove", lineMouseMove);
    stage.addEventListener("stagemouseup", lineMouseUp);
}

function AddLine(bybtn) {
    var source = $('#currentImage').attr('src');
    isClick = false;
    xline = null;
    yline = null;
    if (bybtn) {
        lineCount = 0;
        isLineNow = true;
        xline = null;
        yline = null;
        $('#lineBtn').attr('onclick', 'addCanvasSelection();').find('img').attr('src', 'img/screenLineSelected.png');
        $('#previousImage').attr('src', source);
        if (jcrop_api) {
            destroyCrop();
            $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');
            selectionStatus('unselect');
        }
        stage = new createjs.Stage("screenshotcanvas");
        
        $('#selectInfo').addClass('hidden');
        //$('#lineInfo').removeClass('hidden');
    } else {
        stage = new createjs.Stage("screenshotcanvas");
    }
    
    
    canvas = document.getElementById('screenshotcanvas');
    stage.enableDOMEvents(true);
    color = jsColorGlobal;
    var pastedImage = new Image();
   
    //сохраним предыдущее состояние картинки, если включается инструмент "линия"
    pastedImage.src = source;
    pastedImage.onload = function () {

        var iW = this.width;
        var iH = this.height;

        canvas.width = iW;
        canvas.height = iH;
        contextWidth = canvas.width;
        contextHeight = canvas.height;
        
        var bmp = new createjs.Bitmap(pastedImage);
        
        shape = new createjs.Shape();
        stage.addChild(bmp,shape);

       
        stage.addEventListener("stagemousedown", lineMouseDown);
      

        stage.update();
    };
    
    return false;

}

//открытие диалогового окна по событию добавления на картинку текста
function textFromPopup() {
    $('#drawingMenu').addClass('hidden');
    $('<div id="screenshotdialogtext"><div>' +
        '<div><label>Размер текста</label><input type="text" value="16" id="textSize"/>' +
        '<div style="padding-top:2px"><span id="btext"> <span id="boldtext" onclick="return setBold();"><img src="img/text_bold_sel.png"></span><input type="hidden" value="true" id="isBoldText"></span>' +
        '<span  id="itext"><span id="italictext" onclick="return setItalic();"><img src="img/text_italic.png"></span><input type="hidden" value="false" id="isItalicText"></span></div> </div>' +
        '<div><label>Введите текст:</label><textarea id="AddText" row="3" style="width:250px;"></textarea></div>' +
        '</br><button onclick="return TextSwitchAction();return false;">' +
        'Добавить</button></div></div>').dialog({
            autoOpen: true,
            width: 'auto',
            modal: true,
            resizable: true,
            open: function () {
                $('#AddText').focus();
                $('#AddText').keyup(function (e) {
                    var code = (e.keyCode ? e.keyCode : e.which);
                    if (code == 13) {
                        TextSwitchAction();
                    }
                });
                $('#textSize').keyup(function (e) {
                    var code = (e.keyCode ? e.keyCode : e.which);
                    if (code == 13) {
                        TextSwitchAction();
                    }
                });
            },
            close: function () {
                $(this).dialog("destroy");
                $(this).remove();

            }
    });
    return false;
}

function setBold() {
    var input = $('#isBoldText');
    if (input.val() == 'true') {
        $('#boldtext img').attr('src', 'img/text_bold.png');
        input.val('false');
    }
    else {
        $('#boldtext img').attr('src', 'img/text_bold_sel.png');
        input.val('true');
    }
    return false;
}

function setItalic() {
    var input = $('#isItalicText');
    if (input.val() == 'true') {
        $('#italictext img').attr('src', 'img/text_italic.png');
        input.val('false');
    }
    else {
        $('#italictext img').attr('src', 'img/text_italic_sel.png');
        input.val('true');
    }
    return false;
}



function dialogClose() {
    $("#screenshotdialogtext").dialog("close");
    $("#screenshotdialogtext").html("");
}

function focusEditable(e) {
    if ($('#screenshotarea')) {
        $('#screenshotarea').focus();
    }
}


//#region вставка скриншота в поля Заявки (Комментарий, Описание
function pasteScreenToFields(e, elementid, positionStart, positionEnd) {    
    if (elementid) {//значит это мозилла - у нее свой алгоритм        
        var text = '';
        if ($.browser.msie)
            text = (window.clipboardData) ? window.clipboardData.getData('Text') : '';
        else {
            e.clipboardData.getData('Text')
        }
        setTimeout(function () { checkInputFromComment(elementid, positionStart, positionEnd, text); }, 1);
    }
    else if(e.clipboardData.items) {
        // получаем все содержимое буфера
        var items = e.clipboardData.items;
        if (items) {
            // находим изображение
            for (var i = 0; i < items.length; i++) {                
                if (items[i].type.indexOf("image") !== -1) {                   
                    // представляем изображение в виде файла
                    var blob = items[i].getAsFile();
                    // создаем временный урл объекта
                    var URLObj = window.URL || window.webkitURL;
                    var source = URLObj.createObjectURL(blob);
                    pasteScreenshot('Task/PasteScreenShotDialog?fromComment=true', source);
                }                
            }
        }       
    }   
}

function checkInputFromComment(elementid, positionStart, positionEnd, pasteText) {
    var divId = '#' + elementid + 'div';    
    var pasteCatcher = $(divId);
    if (pasteText) {
        setSelectionRange(pasteText, elementid, positionStart, positionEnd);
        pasteCatcher.html('');
    } else {
        $(divId).focus;
        var child = pasteCatcher.find('img');        
        if (child && child.first() && child.first().attr('src')) {
            pasteCatcher.innerHTML = "";
            var childsource = child.first().attr('src');           
            child.remove();
            $('#' + elementid).focus();
            pasteScreenshot('Task/PasteScreenShotDialog?fromComment=true', childsource);            
        }
        else {
            $('#' + elementid).focus();
            setSelectionRange($(pasteCatcher).html(), elementid, positionStart, positionEnd);
            $(pasteCatcher).html("");
        }
    } 
}

function afterPasteScreenToComment(source) {
    var date = new Date();
    //задаём дату в инвариантном формате
    $('#filename').val('Screenshot ' + date.print('%Y-%m-%d %k:%M:%S'));
    $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');

    createImage(source);
}
//#endregion

//#region обработчик для вставки скриншотов по кнопке

//обработчик события вставки из буфера обмена по кнопке
function pasteHandler(e) {
    if (e.clipboardData && e.clipboardData.items) {
        // получаем все содержимое буфера
        var items = e.clipboardData.items;
        if (items) {
            // находим изображение
            for (var i = 0; i < items.length; i++) {
                if (items[i].type.indexOf("image") !== -1) {
                    // представляем изображение в виде файла
                    var blob = items[i].getAsFile();
                    // создаем временный урл объекта
                    var URLObj = window.URL || window.webkitURL;
                    var source = URLObj.createObjectURL(blob);
                    // добавляем картинку в DOM                   
                    afterPasteScreen();
                    $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');
                    createImage(source);
                }
                else {
                    //alert(ScreenshotResources.ClipBoardNoImage);
                    jAlert(ScreenshotResources.ClipBoardNoImage, ScreenshotResources.PasteMessageTitle);
                    //$('#screenshotarea').blur().empty();
                    setTimeout(function () { $('#screenshotarea').blur().empty(); }, 1);
                    return false;
                }
            }
        }
        // для Firefox проверяем элемент с атрибутом contenteditable
    } else {        
        setTimeout(checkInput, 1);
    }
}

//после того, как вставили скриншот, делаем видимой область редактирования изображения
function afterPasteScreen() {
    $('#workArea').removeClass('hidden');
    $('#msgPaste').addClass('hidden');
    var date = new Date();
    //задаём дату в инвариантном формате
    $('#filename').val('Screenshot ' + date.print('%Y-%m-%d %k:%M:%S'));
}

//вспомогательная функция для вставки картинки из буфера обмена для браузера FireFox
function checkInput() {
    var pasteCatcher = $('#screenshotarea').focus();   
    var child = pasteCatcher.children('img');
    pasteCatcher.innerHTML = "";   
    if (child && child.first() && child.first().attr('src')) {
        // если пользователь вставил изображение – создаем изображение                
        afterPasteScreen();
        pasteCatcher.empty();
        $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');
        createImage(child.first().attr('src'));
    }
    else {
        pasteCatcher.empty();
        jAlert(ScreenshotResources.ClipBoardNoImage, ScreenshotResources.PasteMessageTitle);        
        return false;
    }
}

//#endregion

//отрсовка картинки из буфера обмена
function createImage(source) {
    var pastedImage = new Image();
    $('#currentImage').attr('src', source);
    
    canvas = document.getElementById('screenshotcanvas');
    context = canvas.getContext('2d');
    pastedImage.src = source;
    pastedImage.id = 'screenshot';    
    pastedImage.onload = function () {
        var iW = this.width;
        var iH = this.height;    
                   
        canvas.width = iW;
        canvas.height =  iH;
        contextWidth = canvas.width;
        contextHeight = canvas.height;
        
            stage = new createjs.Stage("screenshotcanvas");
            var bmp = new createjs.Bitmap(pastedImage);
            stage.addChild(bmp);
            stage.update();

        $('#screenshotdialog').trigger('screenDialogResize');
            addCanvasSelection();
            $('#mainBtn').removeClass('hidden');
            canvas = document.getElementById('screenshotcanvas');
            $('#currentImage').attr('src', canvas.toDataURL());
            $('#imagearea').addClass('selectarea');
            //чтобы диалоговое окно не расползалось по  горизонтали
            $('.ui-widget-content').css('max-width', screen.width - 25);        

            window.removeEventListener("paste", pasteHandler);
            window.removeEventListener('click', focusEditable);           
    };
}



//функция обрезания выделенной части картинки
function crop() {    
    if (jcrop_api && $('#w').val() != 0 && $('#w').val() != '' && $('#h').val() != 0 && $('#h').val() != '') {     
       
        var cropX = $('#x').val();
        var cropY = $('#y').val();       
        var cropWidth = $('#w').val();
        var cropHeight = $('#h').val();
        destroyCrop();
        $('#drawingMenu').addClass('hidden');
        $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');
        canvas = document.getElementById('screenshotcanvas');
        var source = $('#currentImage').attr('src');
        $('#previousImage').attr('src', source);
        if (!source || source == '') return;
        var pastedImage = new Image();
        canvas.width = cropWidth;
        canvas.height = cropHeight;
        contextWidth = cropWidth;
        contextHeight = cropHeight;
        context = canvas.getContext('2d');
        pastedImage.src = source;
        pastedImage.id = 'screenshot';
        pastedImage.onload = function () {
            var img = new Image();
            img.src = source;
            // теперь у нас есть изображение из буфера   
            context.drawImage(pastedImage, cropX, cropY, cropWidth, cropHeight, 0, 0, cropWidth, cropHeight);
            $('#currentImage').attr('src', canvas.toDataURL());
            addCanvasSelection();
            $('#screenshotdialog').trigger('screenDialogResize');
            StepBackButton('select');
        };
    }
    return false;
}

//после закрытия диалогового окна ввода текста для добавления, проверяем, был ли введен текст
//если текста не было - ничего не делаем.
//если был - то добавлям текст, убираем основные кнопки, заменяя их на кнопки подтеверждения или отмены манипуляций с текстом
function TextSwitchAction() {
    if ($('#AddText') && $('#AddText').val() != '') {
        textGl = $('#AddText').val();
         textGlX = $('#x').val();
         textGlY = $('#y').val();
         textGlWidth = $('#w').val();
        isBoldText = $('#isBoldText').val();
        isItalicText = $('#isItalicText').val();
         textSize = $('#textSize').val();
        //SwitchAction('text');
         isSelect = false;

         if (destroyCrop()) {
             selectionStatus('unselect');
             drawPicture('currentImage');
             isSelect = true;
         }
        // addText(textGl);
         addText2();
       // $('#blocktext').removeClass('hidden');
       // $('#mainBtn').addClass('hidden');
        $("#screenshotdialogtext").dialog('close');
    }
    
    return false;
}

function addText2() {
    isLineNow = false;
    stage = new createjs.Stage("screenshotcanvas");
    $('#previousImage').attr('src', $('#currentImage').attr('src'));
    var source = $('#currentImage').attr('src');
    //$('#previousImage').attr('src', source);
    var pastedImage = new Image();
    pastedImage.src = source;
    var textPropStr = '';
    if (isBoldText == 'true') textPropStr += 'bold';
    if (isItalicText == 'true') textPropStr += ' italic';
    textPropStr += ' ' + textSize + 'px';


    pastedImage.onload = function () {

        var text = new createjs.Text(textGl, textPropStr + " Arial", jsColorGlobal);
      
        textGl = '';
        var bmp = new createjs.Bitmap(pastedImage);
        bmp.sourceRect = new createjs.Rectangle(0, 0, contextWidth, contextHeight);
        text.lineWidth = textGlWidth;
        text.x = textGlX;
        text.y = textGlY;

        stage.addChild(bmp, text);
        stage.update();
        $('#currentImage').attr('src', document.getElementById('screenshotcanvas').toDataURL());
        StepBackButton('select');
        addCanvasSelection();
    };

    return false;
}


//отменирть операцию вставки текста
function cancelText() {
    stage = new createjs.Stage("screenshotcanvas");
    var source = $('#currentImage').attr('src');
   // $('#previousImage').attr('src', source);
    var pastedImage = new Image();
    pastedImage.src = source;
    pastedImage.onload = function () {
        var bmp = new createjs.Bitmap(pastedImage);
        bmp.sourceRect = new createjs.Rectangle(0, 0, contextWidth, contextHeight);
        stage.addChild(bmp);
        stage.update();
        $('#blocktext').addClass('hidden');
        $('#mainBtn').removeClass('hidden');
        addCanvasSelection();
    };
   
    
}

//применить текст к текущей картинке
function ApplyText() {
    $('#previousImage').attr('src', $('#currentImage').attr('src'));
    $('#currentImage').attr('src', canvas.toDataURL());
    var source = $('#currentImage').attr('src');
    var pastedImage = new Image();
    pastedImage.src = source;
    pastedImage.onload = function () {
        var bmp = new createjs.Bitmap(pastedImage);
        bmp.sourceRect = new createjs.Rectangle(0, 0, contextWidth, contextHeight);
        stage.addChild(bmp);
        stage.update();
        StepBackButton('select');
        $('#blocktext').addClass('hidden');
        $('#mainBtn').removeClass('hidden');
        
        addCanvasSelection();
    };
    // drawPicture('currentImage');
   
    


    return false;
}

//перед тем как выбирать действие, проверяем на нажатие кнопку выделить, если есть - убираем jcrop
function SwitchAction(action) {    
    if (destroyCrop()) {
        selectionStatus('unselect');
        drawPicture('currentImage');
    }
        chooseAction(action);
    
    return false;
}



//функция для выбора действия: текст, линия, выделение области прямоугольником
function chooseAction(action) {
    switch (action) {
        case 'text':           
            addText(textGl);
            return false;
            break;
    }
    return false;
}

//функция добавления текста на канвас и навешивание на него события перетаскивания
function addText(textstr) {
    isLineNow = false;
    stage = new createjs.Stage("screenshotcanvas");
    var source = $('#currentImage').attr('src');
    //$('#previousImage').attr('src', source);
    var pastedImage = new Image();
    pastedImage.src = source;
    var textPropStr = '';
    if (isBoldText=='true') textPropStr += 'bold';   
    if (isItalicText == 'true') textPropStr += ' italic';
    textPropStr += ' ' + textSize + 'px';


    pastedImage.onload = function () {
        var text = new createjs.Text(textstr, textPropStr+" Arial", jsColorGlobal);
        textGl = '';
        var bmp = new createjs.Bitmap(pastedImage);
        bmp.sourceRect = new createjs.Rectangle(0, 0, contextWidth, contextHeight);

        text.x = 50;
        text.y = 50;
        var hit = new createjs.Shape();
        hit.graphics.beginFill("#000").drawRect(0, 0, text.getMeasuredWidth(), text.getMeasuredHeight());

        text.hitArea = hit;
        text.cursor = "move";
        stage.enableMouseOver(10);
        text.addEventListener("pressmove", function (evt) {
            // currentTarget will be the container that the event listener was added to:
            evt.currentTarget.x = evt.stageX;
            evt.currentTarget.y = evt.stageY;
            // make sure to redraw the stage to show the change:
            stage.update();
        });


        stage.addChild(bmp, text);
        stage.update();
       

    };

    return false;
}


function addColorSelection() {
    if (jcrop_api && $('#w').val() != 0 && $('#w').val() != '' && $('#h').val() != 0 && $('#h').val() != '') {
        jcrop_api.release();
        var cropX = $('#x').val();
        var cropY = $('#y').val();
        var cropWidth = $('#w').val();
        var cropHeight = $('#h').val();
        //if (destroyCrop()) {
        //    drawPicture('currentImage');
        //    selectionStatus('unselect');
        //}
      
        stage = new createjs.Stage("screenshotcanvas");

        var source = $('#currentImage').attr('src');
       
        $('#previousImage').attr('src', source);
        var pastedImage = new Image();
        pastedImage.src = source;

        pastedImage.onload = function () {
            var border = new createjs.Shape();
            border.graphics.beginStroke(jsColorGlobal);
            border.graphics.setStrokeStyle(3);
            border.snapToPixel = true;
            border.graphics.drawRect(cropX, cropY, cropWidth, cropHeight);
           
            var bmp = new createjs.Bitmap(pastedImage);
            bmp.sourceRect = new createjs.Rectangle(0, 0, contextWidth, contextHeight);                     

            stage.addChild(bmp, border);
         
            stage.update();
            $('#currentImage').attr('src', document.getElementById('screenshotcanvas').toDataURL());
            StepBackButton('select');
            //drawPicture('currentImage');
        };        
    }
    return false;
}

function selectCancel() {
    if (jcrop_api) {
        jcrop_api.release();
    }
    return false;
}

//добавляем  выделение области и "нажимаем" кнопку "выделить"
function addCanvasSelection() {
    isLineNow = false;
    $('#selectInfo').removeClass('hidden');
   // $('#lineInfo').addClass('hidden');
    addCrop();
    selectionStatus('select');    
    return false;
}

//функция по нажатию кнопки "снять выделение"
//если JCrop пристутсвует - удаляет его, отрисовывает картинку и показывает кнопку, что выделение не выбрано
function removeCanvasSelection() {    
    if (destroyCrop()) {
        drawPicture('currentImage');
        selectionStatus('unselect');
    }
   
    return false;
}


//навешиваем плагин выдеения области на канвас
function addCrop() {
    $('#drawingMenu').addClass('hidden');
    $('#screenshotcanvas').Jcrop({
        bgOpacity: 1,
        borderOpacity:1,
        onChange: function() {
            $('#drawingMenu').addClass('hidden');
        },
        onRelease: function() {
            $('#drawingMenu').addClass('hidden');
        },
        onSelect: function (evt) {
            var cropX1 = evt.x;
            var cropY1 = evt.y;
            var cropX2 = evt.x2;
            var cropY2 = evt.y2;
            var cropW = evt.w;
            var cropH = evt.h;
            $('#x').val(cropX1);
            $('#y').val(cropY1);
            $('#w').val(cropW);
            $('#h').val(cropH);
            $('#drawingMenu').removeClass('hidden').css('position', 'absolute').css('top', cropY2-32).css('left', cropX2-5).css('z-index', 3000);
        }
        },
       function () {
           jcrop_api = this;
       }
       );
    return false;
}

//если плагин выделения области пристутсвует - то убираем его и записываем в значения ширины и высоты выделения нули
function destroyCrop() {
    if (jcrop_api) {
        jcrop_api.destroy();
        jcrop_api = null;
        $('#w').val('0');
        $('#h').val('0');
        return true;
    }
    return false;
}

//в зависимости от переданного статуса показывает либо кнопку что выделение области включено, либо выключено
function selectionStatus(status) {
    switch (status) {
        case 'select':
            $('.imgUnSelect').addClass('hidden');
            $('.imgSelect').removeClass('hidden');
            $('#lineBtn').attr('onclick', 'return AddLine(true)').find('img').attr('src', 'img/screenLine.png');
           
            break;
        case 'unselect':
            $('.imgUnSelect').removeClass('hidden');
            $('.imgSelect').addClass('hidden');
            $('#drawingMenu').addClass('hidden');
            $('#lineBtn').attr('onclick', 'return addCanvasSelection();').find('img').attr('src', 'img/screenLineSelected.png');
            break;
    }
    return false;
}

//взять и отрисовать текущую картинку
//возможно передать action - тогда после отрисовки текущей картинки выполненся метод chooseAction с заданным action
function drawPicture(pictureStatus,selectionOn,isline) {
    if ($('#screenshotcanvas')) {
        $('#screenshotcanvas').remove();
        $('#imagearea').append('<canvas id="screenshotcanvas"></canvas>');
    }    
    canvas = document.getElementById('screenshotcanvas');
   
    var picId = '#' + pictureStatus;
    var source = $(picId).attr('src');
    context = canvas.getContext('2d');
    var pastedImage = new Image();
    pastedImage.src = source;
    pastedImage.id = 'screenshot';
    pastedImage.onload = function () {
        var img = new Image();
        img.src = source;
        canvas.width = img.width;
        canvas.height = img.height;
        contextWidth = img.width;
        contextHeight = img.height;
         
        context.drawImage(pastedImage, 0, 0);
        $('#screenshotdialog').trigger('screenDialogResize');
        $('#currentImage').attr('src', canvas.toDataURL());
        if (selectionOn) {
            addCanvasSelection();
        }
        else if (isline) {
            AddLine(true);
        }
    };

    return false;
}
// записывает координаты выделения с помощью Jcrop
function showCoords(c) {    
    $('#x').val(c.x);
    $('#y').val(c.y);  
    $('#w').val(c.w);
    $('#h').val(c.h);
};

function StepToBack() {
    if (destroyCrop()) {
        selectionStatus('unselect');
    }
    if ($('#previousImage').attr('src') && $('#previousImage').attr('src') != '') {
        
        drawPicture('previousImage', !isLineNow, isLineNow);
        
        StepBackButton('hidden');
    }
    else {

        $('#screenshotcanvas').remove();
        window.addEventListener("paste", pasteHandler);
        $('#workArea').addClass('hidden');
        StepBackButton('select');
        $('#msgPaste').removeClass('hidden');
        $('#imagearea').removeClass('selectarea');
        if ($('#screenshotdialog')) {
            $('#screenshotdialog').trigger('screenDialogResize');
            window.addEventListener('click', focusEditable);
        }
    }
    
    return false;
}

//есть или нет шага назад - показываем кнопки , пока так
function StepBackButton(status) {
    switch (status) {
        case 'select':
            $('.stepSel').removeClass('hidden');
            $('.stepUnSel').addClass('hidden');
            break;
        case 'hidden':
            $('.stepSel').addClass('hidden');
            $('.stepUnSel').removeClass('hidden');
            break;
    }
}


function SavePasteScreenshot() {
    //if ($('#drawingMenu')) {
    //    $('#drawingMenu').remove();
    //}
    if ($('#screenshotcanvas').size() > 0) {
        if ($('#filename').val() == '') {
            //alert('Введите название файла');
            jAlert(ScreenshotResources.EnterFileName, ScreenshotResources.PasteMessageTitle);
            return false;
        }
        canvas = document.getElementById('screenshotcanvas');
        var name=$('#filename').val();        
        attachPasteScreenshot(canvas.toDataURL(), name);       
       
        $('#screenshotdialog').dialog('close');
       
    }
    return false;   

}
