function chatFormSubmit() {
  if (document.chatmessages.message.value == '') {
    alert(document.msgs["chat_enter_message"]);
    document.clearEnterKey = true;
    return false;
  }
  var httpReq = getXmlHttpRequestObject();
  var roomId = document.chatmessages.roomId.value;
  var message = document.chatmessages.message.value;
  if (httpReq.readyState == 4 || httpReq.readyState == 0) {
    httpReq.open("GET", '/infostock/control/chat/send?roomId=' + encodeURIComponent(roomId) + '&message=' + encodeURIComponent(message) , false);
    httpReq.send(null);
    if(httpReq.status == 200) {
      //remove autorefresh postpone
      if (refreshPostponed != undefined) {
          refreshPostponed = false;          
      }
      document.chatmessages.message.value = '';
      refreshChatMessages(1, document.chatmessages.roomId.value, document.last_message_id ? document.last_message_id : 0, document.chatmessages.maxChatMsgsCount.value);
      if (httpReq.responseText == "") {
        $("errormessage").hide();
      } else {
        $("errormessage").show();
        $("errormessage").innerHTML = httpReq.responseText;
      }
      if (httpReq.responseText == "" && document.chatsettings.chatStatus.value == 0) {
        //Ako vsi4ko e ok i statusa na potebitelq e bil nevidim - to toj trqbva da se promeni na vidim
        if ($('userStatus') != null) {
          $('userStatus').checked = true;
          $('userStatusText').removeClassName("red");
          $('userStatusText').addClassName("green");
          $('userStatusText').innerHTML = document.msgs["chat_status_active"];
        }
        document.chatsettings.chatStatus.value = 1;
        updateUsersList();

      }
    } else {
      alert(document.msgs["databaseError"]);
    }
  } else {
    alert(document.msgs["databaseError"]);
  }
  return true;
}
function scrollChatTable() {
  $("chat").scrollTop = $("chat").scrollHeight;
}
function keyDownPressed(txtarea, event) {
    var KeyID = event.keyCode;
    if (KeyID == 17) { //Ctrl
        document.ctrl_button = true;
    } else if (KeyID == 13 && (!document.ctrl_button || document.ctrl_button == false)) { //Enter
        document.ctrl_button = false;
        document.clearEnterKey = true;
        //stop postpone autorefresh
        if (refreshPostponed != undefined) {
            refreshPostponed = false;
        }
        $('clickbutton').click();
    } else if (KeyID == 13 && document.ctrl_button == true) {
        txtarea.value = txtarea.value + '\n';
        document.ctrl_button = false;
    }  else {
        //postpone autorefresh
        if (refreshPostponed != undefined) {
            refreshPostponed = true;
        }
    }
}
function keyUpPressed() {
    document.ctrl_button = false;
    if (document.clearEnterKey && document.clearEnterKey == true) {
        document.clearEnterKey = false;
        document.chatmessages.message.value = '';
    }
    //postpone autorefresh
    if (refreshPostponed != undefined) {
        refreshPostponed = true;
    }
}





function updateUsersCount() {
  var httpReq = getXmlHttpRequestObject();
  if (httpReq.readyState == 4 || httpReq.readyState == 0) {
    httpReq.open("GET", '/infostock/ar/aloggedusers/' + document.chatmessages.roomId.value  + '/count', false);
    httpReq.send(null);
    if(httpReq.status == 200) {
      $("usersCnt").innerHTML = httpReq.responseText;
    } else {
     // alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
    }
  } else {
    //alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
  }
}
function showUsers() {
  var el = $('usersList');
  if( !el )
    return;
  if( el.style.display == "none" ) {
    updateUsersList();
    changeUsersWindowSizePosition();
    el.show();
  } else {
    //Effect.BlindUp(el);
    el.hide();
  }
}
function updateUsersList() {
  var httpReq = getXmlHttpRequestObject();
  if (httpReq.readyState == 4 || httpReq.readyState == 0) {
    httpReq.open("GET", '/infostock/ar/aloggedusers/' + document.chatmessages.roomId.value , false);
    httpReq.send(null);
    if(httpReq.status == 200) {
      var xmlData = Base.XML.parseFromString(httpReq.responseText);
      $("usersTable").update(generateTableHtml(xmlData));
    } else {
     // alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
    }
  } else {
    //alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
  }
}
function updateCreateChatRoomWindow() {
  var httpReq = getXmlHttpRequestObject();
  if (httpReq.readyState == 4 || httpReq.readyState == 0) {
    httpReq.open("GET", '/infostock/control/achat/getActiveChatRooms' , false);
    httpReq.send(null);
    if(httpReq.status == 200) {
      $("activeChatRoomsDiv").innerHTML = httpReq.responseText;
    } else {
     // alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
    }
  } else {
    //alert('<%=ResourceBundleHelper.getString(ResourceBundleHelper.RESOURCE_BASE_ERRORS, lang, "databaseError" )%>');
  }
}
window.onresize = function() {
  if ($('usersList') == null || !$('usersList').visible()) {
    return;
  }
  changeUsersWindowSizePosition();
};
function initActiveUsersListPosition() {
  var offset = $("chat_container").cumulativeOffset().top - 19;
  $("usersList").style.top = offset + "px";
  //Dolnite nastroiki sa samo za stranicata s tranzakciite
  if (!document.chatsettings.transactionsPage) {
    return;
  }
  $("usersList").style.height = document.chatsettings.addNews.value == 0  ? "370px" : "267px" ;
  $("usersTable").up(0).style.height = document.chatsettings.addNews.value == 0  ? "353px" : "250px";
}

function changeUsersWindowSizePosition() {
  var width = document.documentElement.clientWidth;
  if (width < 1000) {
    $("usersList").style.left = "997px";
  } else {
    $("usersList").style.left = (width - (width - 1000) / 2 - 3) + "px";
  }
}

function generateTableHtml(parsedXML) {
  var userData = parsedXML.getElementsByTagName('user-data')[0]
  var users = userData.getElementsByTagName('user');
  var rowsNum = users.length;
  var chatHtml = "";
    //"<table border='0' cellspacing='0' cellpadding='0'  style='table-layout:fixed'>";
  if (rowsNum > 0) {
    for (var i = 0; i < rowsNum; i++) {
      var user = users[i].firstChild.nodeValue;
      chatHtml += '<tr class="' + (i % 2 != 0 ? 'evenrow' : 'oddrow') + '">' +
                     ' <td><span class="green">' + user + '</span></td>' +
                     '</tr>';
    }
  } else {
    chatHtml += '<tr><td>' + document.msgs["no_active_users"] + '</td></tr>';
  }
  //chatHtml += '</table>';
  return chatHtml;
}
function setUserStatus(el) {
  document.chatsettings.chatStatus.value = el.checked ? 1: 0;
  document.chatsettings.redirectPage.value = document.location;
  document.chatsettings.submit();
}




function showChatRoomOptions() {
  if ($("chat_room_options").innerHTML == "") {
    updateChatRoomOptions();
  }
  $("chat_room_options").toggle();
}
function submitChatOptionsChange() {
  document.room_options.redirectPage.value = document.location;
  document.room_options.submit();
}
function addCompany() {
  if (document.room_options.addChatRoomForIssue.value == document.msgs["searchIssueDefault"]) {
    return false;
  }
  var ticker;
  var companyName = document.room_options.addChatRoomForIssue.value;
  if (document.room_options.ticker.value == '') {
    ticker = document.room_options.addChatRoomForIssue.value;
  } else {
    ticker = document.room_options.ticker.value;
  }
  document.room_options.ticker.value = "";
  document.room_options.addChatRoomForIssue.value = document.msgs["searchIssueDefault"];

  //obhojda vsi4ki elementi da vidi dali ve4e nqma dobaven element sys sy6toto ID...
  var br = false;
  $("companies").childElements().each(function(el) {
    if (el.id.replace("id_","") == ticker ) {
      //Veche ima dobavena kompaniq s tova ime...
      alert(document.msgs["current_room_exists"]);
      br = true;
    }
  });
  if (br) {
    return false;
  }
  //Dobavq companyId-to kym spisyka ot kompanii, koito trqbva da se dobavqt
  addCompanyId(document.room_options.companiesToAdd, ticker);
  var el = new Element('div', {'id':'id_' + ticker, 'class' : 'h20'}).update(companyName +  "&nbsp;<img src=\"/infostock/images/buttons/filter-delete.gif\" onclick=\"deleteCompany('" + ticker + "');\" style=\"cursor:pointer\"/>");
  $("companies").appendChild(el);
  updateChatOptionsPosition(true);
}
function deleteCompany(companyId) {
  //Maha companyId-to ot spisyka s kompanii, koito trqbva da se dobavqt
  removeCompanyId(document.room_options.companiesToAdd, companyId);
  $("id_"+companyId).remove();
  updateChatOptionsPosition(false);
}
function addCompanyId(inputBox,companyId) {
  var str = inputBox.value;
    if (str == '') {
      str += companyId;
    } else {
      str += ";" + companyId;
    }
    inputBox.value = str;
}
function removeCompanyId(inputBox, companyId) {
  if (inputBox.value == "") {
    } else {
      var arr = inputBox.value.split(";");
      var result = "";
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] != companyId) {
          result += (result == "") ? arr[i] : ";" + arr[i];
        }
      }
      inputBox.value = result;
    }
}
function initChatOptionsPosition() {
  //Pri pyrvonachalnoto zarejdane - obhojda vsi4ki elementi - za da znae kolko visok da napravi prozoreca s opciite
  //kakto i kolko da e margin-top-a mu
  var count = 0;
  $("companies").childElements().each(function(el) {
    count ++;
  });
  updateChatOptionsPosition(true, count);

}
function updateChatOptionsPosition(isAdd, count) {
  if (count == null) {
    count = 1;
  }
  //Count - pokazva kolko elementa trqbva da se dobavqt/premahnat
  //Za vseki edin element se dobavqt/mahat po 20px kym viso4inata na prozoreca kakto i ot marginTop-a....
  $("chat_room_options").style.height = (parseInt($("chat_room_options").style.height) +  20 * (isAdd ? count : - count) ) + "px";
  $("chat_room_options").style.marginTop = (parseInt($("chat_room_options").style.marginTop) - 20 * (isAdd ? count : - count) ) + "px";
}


function updateChatRoomOptions() {
    var httpReq = getXmlHttpRequestObject();
    if (httpReq.readyState == 4 || httpReq.readyState == 0) {
      httpReq.open("GET", '/infostock/control/achat/readRoomOptions/' + document.chatsettings.roomId.value , false);
      httpReq.send(null);
      if(httpReq.status == 200) {
        $("chat_room_options").innerHTML = httpReq.responseText;
        initChatOptionsPosition();
      } else {
       alert(document.msgs["databaseError"]);
      }
    } else {
      alert(document.msgs["databaseError"]);
    }
}

function showCustomRooms() {
  var el = $('createRoomDiv');
  if( !el )
    return;
  if( el.style.display == "none" ) {
    updateCreateChatRoomWindow();
    var elementsCount = $("activeChatRoomsDiv").firstDescendant() == null ? 0 : $("activeChatRoomsDiv").firstDescendant().firstDescendant().childElements().size();
    $("createRoomDiv").style.height = (80 +  20 * elementsCount ) + "px";
    $("createRoomDiv").style.marginTop = (-100 - 20 * elementsCount ) + "px";
    el.show();
  } else {
    el.hide();
  }
}
function popupNewChatRoom(myform, windowname) {
  if (! window.focus)return true;
  myform.target=windowname;
  window.open('',windowname,'width=1000,height=600,resizable=yes,scrollbars=no,toolbar=no,menubar=no,status=no');
  return true;
}


//Speciffic for Transactions Page only
function scrollRssTable() {
  $("rssnews").scrollTop = $("rssnews").scrollHeight;
}
function setRssNews(el) {
  document.chatsettings.addNews.value = el.checked ? 1 : 0;
  document.chatsettings.submit();
}
function setChatMessages(el) {
  document.chatsettings.addChat.value = el.checked ? 1 : 0;
  document.chatsettings.submit();
}
//End of Speciffic for Transactions Page only

