var ctrl_enter_js_1 = "Please input report";
var ctrl_enter_js_2 = "Suggest Translation";
var ctrl_enter_js_3 = "Your marked"; 
var ctrl_enter_js_4 = "Please enter correct translation:";  
var ctrl_enter_js_5 = "Send";
var ctrl_enter_js_6 = "Cancel";
var ctrl_enter_js_7 = "Your report was sent. Thank you!";
var ctrl_enter_js_8 = "Report a Bug";  
var ctrl_enter_js_9 = "Please enter bug description";

var display = '';

var	allInps;
var evt, key;
var evt, key;
var count = 0;
var count_msg_ok = 0;
var PopupOnSend=true;
var scroll_top;
var scroll_left;

var onkey = "KeyPressedDetect(event);";

var x = document.getElementsByTagName('body')[0];

if (x.attachEvent) {
	x.attachEvent("onkeydown", KeyPressedDetect);
	}

x.setAttribute("onkeydown",onkey);
x.setAttribute("style","position:relative;");

function clonedBlur(id1,type)
{
    $(id1).blur();
    var elm = $(id1);
    var cloned = elm.cloneNode(false);
    //cloned.type = type;
    //cloned.value = "";
    elm.parentNode.replaceChild(cloned, elm);
    cloned.blur();
    var f = function() { cloned.blur(); }
    setTimeout(f, 20);
}


function clonedFocus(id1,type)
{
    $(id1).focus();
    //count = 1;
    var elm = $(id1);
    var cloned = elm.cloneNode(false);
    //cloned.type = "text";
    //cloned.value = "";
    elm.parentNode.replaceChild(cloned, elm);
    cloned.focus();
    var f = function() { cloned.focus(); }
    setTimeout(f, 20);
}

function xyScroll(x,y,x1)
{
  if (document.body.scrollTop) {  
    scroll_top = document.body.scrollTop + y;
    scroll_left = document.body.scrollLeft + x
  }
  else if (window.innerHeight) {  
    scroll_top = window.pageYOffset + y;
    scroll_left = window.pageXOffset + x;  
  }
  else if (document.body.clientHeight) {
    scroll_top = document.documentElement.scrollTop + y;
    scroll_left = document.documentElement.scrollLeft + x1;
  };  
}

function layerHidden(id)
{
  count = -1;
  if (id == "vp_translator_msg_ok") {count_msg_ok = 1;}
  if ($('newtranslate'))  {clonedBlur('newtranslate','text');}
  if ($('ok_button'))     {clonedBlur('ok_button','button');}
  if ($('cancel_button')) {clonedBlur('cancel_button','button');}
  if ($('button_msg_ok')) {clonedBlur('button_msg_ok','button');}
  $(id).style.display = 'none';
  return count;
}

function layerVisible(id)
{
  if (id == "vp_translator_msg_ok") { xyScroll(380,150,320); count_msg_ok = 2;}
  else xyScroll(300,100,250);
  $(id).style.top =  "" + scroll_top + "px";
  $(id).style.left = "" + scroll_left + "px";
  $(id).style.display = '';
  count = 1;
  return count;
}


function CreateLayer(count)
{   
  var layer = document.createElement('div');
  var elem = Event.element(layer);
  layer.id = "vp_translator";
  xyScroll(300,100,250);
  layer.style.top =  "" + scroll_top + "px";
  layer.style.left = "" + scroll_left + "px";
  layer.style.offset = "0px";
  document.getElementsByTagName('body')[0].appendChild(layer);
  return;
}

function CreateMsgLayer()
{ 
    var layer = document.createElement('div');
    var elem = Event.element(layer);
    layer.id = "vp_translator_msg";
    layer.className = "vzo-translator-msg";
    layer.innerHTML = "<div style='color:#CD3333; font-size:13px;'>" + ctrl_enter_js_1 + "</div>";
    document.getElementsByClassName('vzo-translator')[0].appendChild(layer);
    return;
}


function CreateMsgOk()
{ 
  var layer = document.createElement('div');
  var elem = Event.element(layer);
  layer.id = "vp_translator_msg_ok";
  layer.className = "vzo-translator-msg-ok";
  layer.style.width = "250px";
  layer.style.position = "absolute";
  xyScroll(380,150,320);
  layer.style.top =  "" + scroll_top + "px";
  layer.style.left = "" + scroll_left + "px";
  layer.style.border = "1px solid #000";
  layer.style.backgroundColor = "#E6FFBD";
  layer.style.padding = "15px";
  layer.style.offset = "0px"; 
  layer.innerHTML = "<div align='center' style='color:#008B45; font-size:13px;'><b>" + ctrl_enter_js_7 + "</b></div><br>";
  layer.innerHTML +="<input id='button_msg_ok' type='button' onclick="+'"'+"layerHidden('vp_translator_msg_ok')"+'"'+" style='width:70px; margin: 4px 90px 2px 90px;' value='Ok'/>";
  document.getElementsByTagName('body')[0].appendChild(layer);
  return;
}


function CheckNullStr(str)
{
  str = str.replace(/[\n\t\x\s%0D%0A%20]+/igm,"");
  if ($('vp_translator_msg')){layerHidden('vp_translator_msg');}
  if (str!="")
    return true;
}


function CreateXMLHttpRequestObject(url) 
{
  if (window.XMLHttpRequest) {client = new XMLHttpRequest();}
  else if (window.ActiveXObject){client = new ActiveXObject("Msxml2.XMLHTTP");}
  if (client!=null){
    client.open("GET",url,true);
    client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    client.send(null);
    layerHidden('vp_translator');
    if (count_msg_ok == 0) {CreateMsgOk(); count_msg_ok = 2;}
    else layerVisible("vp_translator_msg_ok");
  }
  else {alert("Your browser does not support XMLHTTP.");} 
}


function sendTranslate(OLD_TRANSLATION,NEW_TRANSLATION) 
{
  if (CheckNullStr(NEW_TRANSLATION)){
    var URL=escape(document.URL);
    var SERVERURL = escape(document.URL);
    var client = null;
    var urlForAjax = "%SERVERURL/translate.asp?bad_translation_at=%URL&old=%OLD_TRANSLATION&new=%NEW_TRANSLATION";
    urlForAjax = urlForAjax.replace(/%SERVERURL/ig,SERVERURL).replace(/%URL/ig,URL).replace(/%OLD_TRANSLATION/ig,encodeURIComponent(OLD_TRANSLATION)).replace(/%NEW_TRANSLATION/ig,encodeURIComponent(NEW_TRANSLATION));
    CreateXMLHttpRequestObject(urlForAjax);
  }
  else {
    clonedFocus('newtranslate','text');
    return;
  }
}


function DisplayTranslateDialog(id,str,count)
{ 	
  var lang="";
  var obj = $('vp_translator');
  obj.innerHTML = "";
  obj.innerHTML += "<b id='id_div' style='font-size:15px;'>" + ctrl_enter_js_2 + "</b><br/><br/>";
  obj.innerHTML += "<b>" + ctrl_enter_js_3 + "</b><br/><br/>";
  obj.innerHTML += "<div style='color:#636363;' id='divStr'>'"+str+"'</div><br/><br/>";
  obj.innerHTML += "<b>" + ctrl_enter_js_4 + "</b>";
  obj.innerHTML += "<form id='sentTranslate'>";
  obj.innerHTML += "<textarea id='newtranslate' type='text' style='width: 396px;height: 50px;font-size:14px;' ></textarea>";
  obj.innerHTML += "<br><input id='ok_button' type='button' onclick="+'"'+"sendTranslate($('divStr').innerHTML, $('newtranslate').value)"+'"'+" style='width:86px; margin: 1em 2em 0 1em;' value='" + ctrl_enter_js_5 + "'/>";
  obj.innerHTML += "<input id='cancel_button' type='button' onclick="+'"'+"layerHidden('vp_translator')"+'"'+" value='" + ctrl_enter_js_6 + "'/>";  
  obj.innerHTML += "</form></p>";
  NEW_TRANSLATION = $('newtranslate');
  return;
}

function DisplayBugDialog(id,str,count)
{ 	
  var lang="";
  var obj = $('vp_translator');
  obj.innerHTML = "";
  obj.innerHTML += "<b id='id_div' style='font-size:15px;'>" + ctrl_enter_js_8 + "</b><br><br>";
  obj.innerHTML += "<b style='font-size:13px;'>" + ctrl_enter_js_9 + "</b>";
  obj.innerHTML += "<form id='sentTranslate'>";
  obj.innerHTML += "<textarea id='newtranslate' type='text' style='width: 396px;height: 50px;font-size:14px;' value='Input Newlines'></textarea>";
  obj.innerHTML += "<br><input id='ok_button' type='button' onclick="+'"'+"sendTranslate(null,$('newtranslate').value)"+'"'+" style='width:86px; margin: 1em 2em 0 1em;' value='" + ctrl_enter_js_5 + "'/>";
  obj.innerHTML += "<input id='cancel_button' type='button' onclick="+'"'+"layerHidden('vp_translator')"+'"'+" value='" + ctrl_enter_js_6 + "'/>";  
  obj.innerHTML += "</form></p>";
  NEW_TRANSLATION = $('newtranslate');
  return;
}

function DisplayQuestionDialog(id,count)
{ 	
  var lang="";
  var str="";
  var obj = $('vp_translator');
  obj.innerHTML = "";
  obj.innerHTML += "<b id='id_div' style='font-size:15px;'>" + ctrl_enter_question_1 + "</b><br><br>";
  obj.innerHTML += "<b style='font-size:13px;'>" + ctrl_enter_question_2 + "</b>";
  obj.innerHTML += "<form id='sentTranslate'>";
  obj.innerHTML += "<textarea id='newtranslate' type='text' style='width: 396px;height: 50px;font-size:14px;' value='Input Newlines'></textarea>";
  obj.innerHTML += "<br><input id='ok_button' type='button' onclick="+'"'+"sendTranslate(null,$('newtranslate').value)"+'"'+" style='width:86px; margin: 1em 2em 0 1em;' value='" + ctrl_enter_question_3 + "'/>";
  obj.innerHTML += "<input id='cancel_button' type='button' onclick="+'"'+"layerHidden('vp_translator')"+'"'+" value='" + ctrl_enter_question_4 + "'/>";  
  obj.innerHTML += "</form></p>";
  NEW_TRANSLATION = $('newtranslate');
  return;
}

function GetSelectStr(str)
{	
    if (window.getSelection) {
        selection = window.getSelection();
        if(selection.getRangeAt) {
            range = selection.getRangeAt(0);
            
            if (window.opera)
                before = selection.getRangeAt(0);
            else
                before=document.createRange();

            before.setStartBefore(range.startContainer);
            before.setEnd(range.startContainer,range.startOffset);
            before = before.toString();

            if (before.length > 64)
                before = before.toString().substring(before.length - 64, before.length);

            if (window.opera)
                after = selection.getRangeAt(0);
            else
                after = document.createRange();

            after.setStart(range.endContainer, range.endOffset);
            after.setEndAfter(range.endContainer);
            if (after.toString().length > 64)
                after = after.toString().substring(0,63);
        }

    } else if (window.document.selection.createRange) {
        selection = window.document.selection.createRange();

        selection.expand("character");

        before = window.document.selection.createRange();
        before.moveStart("character", -64);
        before.setEndPoint('EndToStart',selection);
        before.expand("character");
        before = before.text;

        after = window.document.selection.createRange();
        after.moveEnd("character", 64);
        after.setEndPoint('StartToEnd',selection);
        after.expand("character");
        after = after.text;
        selection = selection.text;
    }
    return before + "<span style='color: green; font-weight: bold;'>" + selection + "</span>" + after;
}


function Key_press(key_press)
{
  var key_Code;
  var ctrl_Key;
  var key_Modif;
  if(window.event){key_Code=window.event.keyCode;ctrl_Key=window.event.ctrlKey;key_Modif=2;}
  else
  if(parent&&parent.event){key_Code=parent.event.keyCode;ctrl_Key=parent.event.ctrlKey;key_Modif=2;}
  else {
    key_Code=key_press.keyCode;ctrl_Key=key_press.ctrlKey;
    if(key_press.modifiers!=undefined){
      key_Modif=key_press.modifiers;ctrl_Key=2;key_Code=key_press.which;
    }
   else key_Modif=2;
  }
  if(ctrl_Key&&key_Modif==2&&(key_Code==13||key_Code==10)) {
   return true;
  }
  else {return false;} 
}

//Функция на onkeydown
function KeyPressedDetect(e)
{
    if (!e) 
        var e=window.event;
        
    var str = "";
    str += GetSelectStr(str);
    str = str.replace(/#/igm,"");
    var targ;	    

    if (e.keyCode == 27 || (e.keyCode == 13 && display == 'sendMessageConfirmation'))
        RemoveCurrentLayer();

    if (Key_press(e)) 
    {
        if (e.target) 
            targ = e.target;
        else if (e.srcElement) 
            targ = e.srcElement;
            
        if (targ.nodeType == 3) 
            targ = targ.parentNode;
            
        if (targ.tagName.match(/INPUT|TEXTAREA|BUTTON/i)) 
            str = "VZOchat_null_str";
            
        var id = 'vp_translator';
        if (str != "" && str != "VZOchat_null_str")
        { 
            if (count == -1)
            {
                layerVisible(id);
                DisplayTranslateDialog(id,str); 
                $('newtranslate').focus(); 
                count = 1;
            }
            else if (count == 0)
            {
                CreateLayer(count);
                DisplayTranslateDialog(id,str);
                $('newtranslate').focus();
                count = 1;
            }
        }

        else if (str!="VZOchat_null_str")
        {
            if (count == -1)
            {
                layerVisible(id);
                DisplayBugDialog(id,str);
                clonedFocus('newtranslate','text');              
            }
            else if (count == 0)
            {
                CreateLayer(count);
                DisplayBugDialog(id,str);
                clonedFocus('newtranslate','text');
                count = 1;
            }         
        }
    }
    else if (e.keyCode == 27 && (count > 0))
    {
        layerHidden('vp_translator');
    }
    else if (count_msg_ok == 2 && e.keyCode == 13 && $('vp_translator_msg_ok'))
        layerHidden('vp_translator_msg_ok');
    else if (window.event)
    {
        if (window.event.keyCode == 27 && (count > 0)) 
            layerHidden('vp_translator');
        if (count_msg_ok == 2 && window.event.keyCode == 13 && $('vp_translator_msg_ok'))
            layerHidden('vp_translator_msg_ok');
    }
  return true;
}

function RemoveCurrentLayer()
{
    if (display != '')
    {
        $(display).parentNode.removeChild($(display));
        display = '';
    }
}



function SentQuestion()
{

var id = 'vp_translator';
var str = '';
if (count == -1)
            {
                layerVisible(id);
                DisplayQuestionDialog(id,count);
                clonedFocus('newtranslate','text');              
            }
            else if (count == 0)
            {
                CreateLayer(count);
                DisplayQuestionDialog(id,count);
                clonedFocus('newtranslate','text');
                count = 1;
            }         
            
}