﻿//WEB SERVICE RELATED FUNCTIONS ===========================================
function wsSubmit (func, arg) {
  var i = getInfo(arg);

  if (func.indexOf("Pop") < 0) 
    pop("wait", mX - 20, mY - 20);
  
  BFWsvc.Action(func, i, onSubmit);  
}
//==================================================
function onSubmit(info) {
  for (var i = 0; i < info.length; i++) 
    process(info[i]);
  hide("wait");
}
//==================================================
function process(info) {

  var s = info.split(",");
  var cmd = s[0];

  if (cmd == "msg") {
    showMsg(info);
    return;
  }

  var obj = getObj(s[1]);
  if (obj == null)
    return;

  //set, append, html
  var v = s[2];
  if (cmd == "set") {
    obj.value = v;
    return;
  } 
  if (cmd == "append") {
    obj.value += v;
    return;
  }
  if (cmd == "html") {
   obj.innerHTML = info.substring(s[0].length + s[1].length + 2);
   return;
  }

  if (cmd == "move") {
    obj.style.left = s[2] + "px";
    obj.style.top = s[3] + "px";
    return;
  }
            
  // show, hide
  obj.style.display = (cmd == "hide") ? "none" : "block";
  
  if (cmd == "hide")  {
    hide("spec");
    return;
  }
  
  //html content
  var i = info.indexOf("|");
  if (i > 1) {
    var txt = info.substring(i + 1); 
    try { obj.innerHTML = txt; } catch(e) { }
  }
    
  obj.style.overflow = "hidden";
  
  if (cmd == "showm")  {
    s[2] = mX + s[2] * 1;
    s[3] = mY + s[3] * 1;
  } 
  
  //element location, size, background
  if (s[2] > 0)
    obj.style.left = s[2] + "px";
  if (s[3] > 0)
    obj.style.top = s[3] + "px";
  
  if (s[4] > 0)
    obj.style.width = s[4] + "px";
  if (s[5] > 0)
    obj.style.height = s[5] + "px";

}
//==================================================
function getInfo(arg) {
  var info = new Array();

  if (arg != null) {
    if (arg.length > 1)
      info[0] = arg;
  }
  
  var x = 1;
  var d = document.getElementsByName("bfw");
  for (var i = 0; i < d.length; i++) {
    var n = info.length;
    var v = d[i].id + "=";
    if (d[i].type == "checkbox" || d[i].type == "radio") {
      if (d[i].checked)
        info[n] = v + d[i].value;
    } else if (d[i].type == "select-one") {
      for (var j = 0; j < d[i].length; j++)
        if (d[i][j].selected)
          info[n] = v + d[i][j].value;
    } else          
      info[n] = v + d[i].value;
  }
 return info;
}

// ===========================================
function showMsg(info) {
  hide("wait");
  
  var  i = info.indexOf("|");
  var msg = info.substring(i + 1);
  var t = info.substring(0, i);
  t = t.substring(4);  
  var b = getObj("msgBox");
  b.innerHTML = msg;
  var m = getObj("msgBox");
  m.style.display = "block";
  
  var x = mX * 1 - 100;
  if (x < 10) 
    x = 10;
  var y = mY * 1 - 60;
  if (y < 10)
    y = 10;
  
  m.style.left = x + "px";
  m.style.top = y + "px";
  
  if (t > 0)
    setTimeout ( "hide('msgBox')", t * 1000);
}

function hideMommy(x) {
  x.parentNode.style.display = "none";
}
