function get_card_coords(element) {
  var E = {x:0,y:0};
  var B = element;
  while (B) {
    E.x += B.offsetLeft;
    E.y += B.offsetTop;
    B = B.offsetParent;

  }
  return E;
}

function showCardTable(element)
{
  coord = get_card_coords(element);
  el = dgbi('cards_table');
  el.style.display = "block";
  client_x = my_GetClientW();
  if (client_x > 1000) {
    delta = (client_x - 1000) / 2;
  } else {
    delta = 0;
  }
  new_left = (coord.x - delta);
  new_left = new_left + 400 >= client_x ? new_left - 226 : new_left - 13;
  el.style.top = (coord.y + 50) + 'px';
  el.style.left = new_left + 'px';
  el.card = element;
}

function checkCardIfExists(card)
{
  if (dgbi("pcard_1").code == card || dgbi("pcard_2").code == card ||
      dgbi("ocard_1").code == card || dgbi("ocard_2").code == card
          || dgbi("fcard_1").code == card || dgbi("fcard_2").code == card
          || dgbi("fcard_3").code == card || dgbi("tcard").code == card
          || dgbi("rcard").code == card)
    return true;
  return false;


}

function validateRequestedCards() {
  if (dgbi("pcard_1").code == null || dgbi("pcard_2").code == null ||
      dgbi("ocard_1").code == null || dgbi("ocard_2").code == null)
    return false;
  return true;
}

function generateRequest()
{
  if (validateRequestedCards())
  {
    var requestData = new Array();
    requestData['player'] = dgbi("pcard_1").code + dgbi("pcard_2").code;
    requestData['opp'] = dgbi("ocard_1").code + dgbi("ocard_2").code;
    if (dgbi("fcard_1").code && dgbi("fcard_2").code && dgbi("fcard_3").code)
      requestData['flop'] = dgbi("fcard_1").code + dgbi("fcard_2").code + dgbi("fcard_3").code;
    if (requestData['flop'])
    {
      if (dgbi("tcard").code)
        requestData['turn'] = dgbi("tcard").code;
      if (requestData['turn'])
        requestData['river'] = dgbi("rcard").code;
    }
    sendCalcRequest(requestData);

  }

}


function sendCalcRequest(data) {
  dgbi('win_rate').style.display="none";
  dgbi("calc_loader").style.display="block";
  ajaxObj = new XMLHTTP("/ajax_servers/odds_calculator.php");
  dgbi("calc_loader").innerHTML = '<img src="/images/ajax-loader.gif" style="position:relative;top:5px;">';
  ajaxObj.debug = 0;
  ajaxObj.format = "text";
  ajaxObj.method = "POST";
  pars = "simple=1";
  pars += '&game=h';
  pars += '&opps=2'
  pars += '&hero=' + data['player'];
  pars += '&opp1=' + data['opp'];
  pars += '&board=' + (data['flop'] ? data['flop'] : "")
          + (data['turn'] ? data['turn'] : "") + (data['river'] ? data['river'] : "");
  ajaxObj.call(pars, calculationCallBack);
}

function calculationCallBack(resp)
{
    var win_rate = dgbi('win_rate');
    
    win_rate.innerHTML = resp;

    win_rate.style.display="block";
    dgbi("calc_loader").style.display="none";
    dgbi("calc_loader").innerHTML =""; 

}

function putCardToBox(card)
{
  if (checkCardIfExists(card))
    return;
  el = dgbi('cards_table');
  el.card.setAttribute("src", el.card.getAttribute("src").replace(/\/[A-z2-9]{2,5}\.PNG/, "/" + card + ".PNG"));
  el.card.code = card;
  el.style.display = "none";
}

function clearCalculator()
{
  restCard(dgbi("pcard_1"));
  restCard(dgbi("pcard_2"));
  restCard(dgbi("ocard_1"));
  restCard(dgbi("ocard_2"));
  restCard(dgbi("fcard_1"));
  restCard(dgbi("fcard_2"));
  restCard(dgbi("fcard_3"));
  restCard(dgbi("tcard"));
  restCard(dgbi("rcard"));
  dgbi("calc_loader").innerHTML="";
  dgbi('win_rate').style.display="none";
  dgbi("calc_loader").style.display="block";
}

function restCard(card) {
  if (card.code)
  {
    card.code = null;
    card.setAttribute("src", card.getAttribute("src").replace(/\/[A-z2-9]{2,5}\.PNG/, "/blank.PNG"));
  }
}

function my_GetClientW()
{
  return(document.body && (typeof(document.body.clientWidth) != tt_u) ? document.body.clientWidth
          : (typeof(window.innerWidth) != tt_u) ? window.innerWidth
          : tt_db ? (tt_db.clientWidth || 0)
          : 0);
}