// JScript File
var popup_menu = null;
var popup_body = null;

function ShowMenu(o,id, mb) {
  try {
    var prnt = getPartParent(o);
    if (prnt) {      
      var mnu = prnt.nextSibling;
      while (mnu) {
        if (mnu && mnu.nodeType == 1 && mnu.className == "part_popup")
          break;
        else
          mnu = mnu.nextSibling;
      }
      if (mnu) {
        popup_menu = mnu;
        popup_menu.style.left = prnt.offsetLeft + o.offsetLeft + 15 + "px";
        popup_menu.style.top = prnt.offsetTop + o.offsetTop + 1 + "px";
        popup_menu.style.display = "";
        popup_menu.style.zIndex = 5000;
        if (mb) {
          popup_body = document.getElementById(id);
          if (popup_body) {
            popup_body.style.paddingTop = "80px";
          }
        }
      }
    }
  }
  catch (e) {alert("ShowMenu ERROR " + e);}
}

function cls_mnu() {
  if (popup_menu != null) {
    popup_menu.style.display = "none";
    if (popup_body) popup_body.style.paddingTop = "0px";
  }
}

function getPartParent(o) {
  if (o && o.className == "PartDrag")
    return o;
  else if (o && o.parentNode)
    return (getPartParent(o.parentNode));
  else return null;
}

function getMenuParent(o) {
  if (o && o.className == "part_popup")
    return o;
  else if (o && o.parentNode)
    return (getMenuParent(o.parentNode));
  else return null;
}

function partParams(_prnt, _counter) {
  this.Counter = _counter;
  this.Row = 0;
  this.Col = 0;
  this.Parent = _prnt;

  this.grc=function() {
    while (this.Parent.previousSibling != null) {
      this.Parent = this.Parent.previousSibling;
      //if (this.Parent.nodeType == 1 && this.Parent.className != "part_popup" && this.Parent.className != "DropZone") this.Counter++;
      if (this.Parent.nodeType == 1 && this.Parent.className == "PartDrag") this.Counter++;
    }
    this.Parent = this.Parent.parentNode;
    var idRS = this.Parent.id.indexOf("_");
    var idCS = this.Parent.id.indexOf("_", idRS + 1);
    this.Row = parseInt(this.Parent.id.substr(idRS + 1, idCS - (idRS + 1)));
    this.Col = parseInt(this.Parent.id.substr(idCS + 1));
  }
  this.grc();
}

function shwPrts(p) {
  for (var c = 0; c < p.childNodes.length; c++) {
    alert("shwPrts "+p.childNodes[c].innerHTML);
  }
}

function ClosePart(o) {
  if (window.confirm("Are you sure you want to remove this part from the display ? " + String.fromCharCode(13) + String.fromCharCode(10) + String.fromCharCode(13) + "(you can add it back again from the content finder at any time)")) {
    var mnuParent = getMenuParent(o);
    var part = mnuParent.previousSibling;
    while (part) {
      if (part && part.nodeType == 1 && part.className == "PartDrag")
        break;
      else
        part = part.previoussibling;
    }
    var partToDelete = part;
    if (part) {
      var wt = gwi(part);
      var pp = new partParams(part, 1);
      RequestData("CLS_PRT", cbClosePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter, wt, pp.Parent, part);
    }
  }
  return false;
}

function cbClosePart(response,wait,mnuParent, partToDelete) {  
  var data = PreProcessResponse(response);
  if (data[0]) {
    mnuParent.removeChild(partToDelete);
  }
  if (wait) wait.style.visibility = "hidden";
}

function HistD(o, tab, row, col, partType, page, language, parent, dataID) {
  HistP(o, tab, row, col, partType, page, language, parent, dataID, true);
}

function HistP(o, tab, row, col, partType, page, language, parent, dataID, getData) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);    
    var pp = new partParams(mnuParent, 1);
    var dType = document.getElementById(parent + "_DataType");
    dType = (dType.options && dType.options.length>0 ? dType.options[dType.selectedIndex].value : dType.innerHTML);
    var sDte = "";
    var eDte = "";
    var dtM = document.getElementById(parent + "_SMTH");
    var dtY = document.getElementById(parent + "_SYR");
    if (dtM != null && dtY != null) {
      sDte = dtY.options[dtY.selectedIndex].value + dtM.options[dtM.selectedIndex].value + "01";
    }
    var dtM = document.getElementById(parent + "_EMTH");
    var dtY = document.getElementById(parent + "_EYR");
    if (dtM != null && dtY != null) {
      eDte = dtY.options[dtY.selectedIndex].value + dtM.options[dtM.selectedIndex].value + "01";
    }
    var itype = document.getElementById(parent + "_InstType");
    if (itype) itype = itype.options[itype.selectedIndex].value;
    var iprnt = document.getElementById(parent + "_InsPrnt");
    if (iprnt) iprnt = iprnt.options[iprnt.selectedIndex].value;
    var ins = document.getElementById(parent + "_Ins");
    if (ins) ins = ins.options[ins.selectedIndex].value;
    var datID = document.getElementById(parent + "_DataID");
    if (datID) dataID = datID.options[datID.selectedIndex].value;
    var ohlcp = document.getElementById(parent + "_OHLCP");
    if (ohlcp) ohlcp = ohlcp.options[ohlcp.selectedIndex].value;    
    var bi=
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + partType + "&dataID=" + dataID + "&page=" + page + (sDte != "" ? "&sdte=" + sDte : "") + (eDte != "" ? "&edte=" + eDte : "") + "&dtype=" + dType + (itype ? "&itype=" + itype : "") + (iprnt ? "&iprnt=" + iprnt : "") + (ins ? "&ins=" + ins : "") + (ohlcp ? "&ohlcp=" + ohlcp : "") + (getData ? "&getData=true" : ""), wt, mnuParent);
  }
  return false;
}

function ShowHidePart(o, minimized) {
  var mnuParent = getMenuParent(o);
  var part = mnuParent.previousSibling;
  while (part) {
    if (part && part.nodeType == 1 && part.className == "PartDrag")
      break;
    else 
      part = part.previoussibling;
  }
  if (part != null) {
    var wt = gwi(part);
    var pp = new partParams(part, 1);
    RequestData("MIN_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=" + minimized, wt, part);
  }
  return false;
}

function ShowClock(o, prnt) {
  var mnuParent = document.getElementById(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    var clk = (document.getElementById(prnt + "_TS") ? false : true);     
    RequestData("UPD_CLK", cbShowClock, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&ShowClock=" + clk, wt,prnt);
  }
}

function cbShowClock(response, wait, prnt) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    var clk = (document.getElementById(prnt + "_TS") ? false : true);
    var td = document.getElementById(prnt + "_tdK");
    var tdC = document.getElementById(prnt + "_tdTopClock");
    if (td && tdC) {
      if (clk) {
        td.innerHTML = "<img src='img/icon/tick.gif'>";
        tdC.innerHTML = "<span id='" + prnt + "_TS'></span>";
      }
      else {
        td.innerHTML = "";
        tdC.innerHTML = "";
      }
    }
  }
  if (wait) wait.style.visibility = "hidden";
}

function rs(resp) {
  var res = resp;
    var st1 = resp.indexOf("<style");
    if (st1 >= 0) {
      st1 = resp.indexOf("</style>");
      if (st1 > 0) {
        res = resp.substr(st1 + 8);
        var style = resp.substr(0, st1);
        st1 = style.indexOf("id='");
        if (st1 >= 0) {
          var st2 = style.indexOf("'", st1 + 4);
          var id = style.substring(st1 + 4, st2);
          st1 = style.indexOf(">");
          style = style.substr(st1 + 1);
          var ss = document.getElementById(id);
          if (ss)ss.parentNode.removeChild(ss);
          ss = document.createElement('style');
          ss.setAttribute('type', 'text/css');
          ss.id = id;
          var head = document.getElementsByTagName('head')[0];
          head.appendChild(ss);
          var css = document.createTextNode(style);
          ss.nodeValue = "";
          if (ss.styleSheet)
            ss.styleSheet.cssText = css.nodeValue;
          else
            ss.appendChild(css);
        }
      }
    }  
  return res;
}

function rs_gt(resp) {
  var res = resp;
  var stS = res.indexOf("<style");
  while (stS >= 0) {
    var stE = res.indexOf("</style>");
    if (stE > 0) {
      var style = res.substr(stS, stE - stS);
      res = res.substr(0, stS) + res.substr(stE + 8);
      var stID_S = style.indexOf("id='");
      if (stID_S >= 0) {
        var stID_E = style.indexOf("'", stID_S + 4);
        var id = style.substring(stID_S + 4, stID_E);
        stE = style.indexOf(">");
        style = style.substr(stE + 1);
        var ss = document.getElementById(id);
        if (ss)ss.parentNode.removeChild(ss);
        ss = document.createElement('style');
        ss.setAttribute('type', 'text/css');
        ss.id = id;
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(ss);
        var css = document.createTextNode(style);
        ss.nodeValue = "";
        if (ss.styleSheet)
          ss.styleSheet.cssText = css.nodeValue;
        else
          ss.appendChild(css);
      }
    }
    stS = res.indexOf("<style");
  }
  return res;
}

function cbShowHidePart(response, wait,prnt) {  
  var data = PreProcessResponse(response);
  if (data[0]) {
    if (prnt) {      
      var mnu = prnt.nextSibling;
      while (mnu) {
        if (mnu && mnu.nodeType == 1 && mnu.className == "part_popup")
          break;
        else
          mnu = mnu.nextSibling;
      }
      var m = fsn(data[0], "ctm", 50);
      if (m >= 0) {
        var mt = data[0].substr(m);
        var idS = mt.indexOf(">");
        var idE = mt.lastIndexOf("</div>");        
        mnu.innerHTML = mt.substr(idS + 1, idE - (idS + 1));        
        data[0] = data[0].substr(0, m);
      }
      idS = data[0].indexOf(">");
      idE = data[0].lastIndexOf("</div>");
      data[0] = data[0].substr(idS + 1, idE - (idS + 1));
      prnt.innerHTML = rs(data[0]);
      for (var d = 1; d < data.length; d++) eval(data[d]);
    }
  }
  if(wait)wait.style.visibility="hidden";
}

function Drill(o, comm, tab, row, col, part, partType, yr, mn, dy, zoom, cstm) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {  
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&Commodity="+comm+"&sy="+yr+"&sm="+mn+"&sd="+dy+"&zoom="+zoom+"&custom="+cstm,wt,mnuParent);
  }
  return false;
}

function init_ctl_rfsh(op, prnt, tab, row, col, part, partType, lang,tmt) {
  var dynID = document.getElementById(op + "_DynID").innerHTML;
  setTimeout("wait_ctl_rfsh('" + dynID+"','"+op+"','"+prnt+"',"+tab+","+row+","+col+","+part+","+partType+",'"+lang+"');", tmt);
}

function wait_ctl_rfsh(_dynID,op, prnt, tab, row, col, part, partType, lang) {
  var dynID = document.getElementById(op + "_DynID");
  if (dynID && _dynID == dynID.innerHTML) {    
    ctl_rfsh(prnt, tab, row, col, part, partType, lang);
  }
}

function ctl_rfsh(prnt, tab, row, col, part, partType, lang) {  
  var o = document.getElementById(prnt);
  Drill(o, '', tab, row, col, part, partType, 0, 0, 0, false, '', lang);
}

function DrillPeriod(o, comm, tab, row, col, part, partType, prd,cstm,lang) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {    
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);    
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&Commodity="+comm+"&period=" + prd+"&custom="+cstm,wt,mnuParent);
  }
  return false;
}

function UpdTicker(o, ctlID, tab, row, col, part, partType, lang) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);    
    //get the selected commodities
    var arrCom = new Array("CU", "AL", "NI", "ZN", "PB", "SN", "AA", "AN", "CO", "MO");
    var selCom = "";
    var sep = "";
    for (var c = 0; c < arrCom.length; c++) {
      var chk = document.getElementById(ctlID + "_Com" + arrCom[c]);
      if (chk && chk.checked) {
        selCom = selCom + sep + arrCom[c];
        sep = ",";
      }
    }
    if (selCom.length == 0) {
      alert("Please select at least 1 commodity from the list.");
    }
    else {
      //get the selected contract types
      var broker = document.getElementById(ctlID + "_lstSourceB").checked;
      var floor = document.getElementById(ctlID + "_lstSourceR").checked;
      var select = document.getElementById(ctlID + "_lstSourceS").checked;
      var carries = document.getElementById(ctlID + "_chkCarries").checked;
      if (!broker && !floor && !select && !carries) {
        alert("Please selet at least one of Broker, Floor, Select, Carries.");
      }
      else {
        //is it today ?
        var today = document.getElementById(ctlID + "_optToday").checked;
        //get the filter times
        var st = document.getElementById(ctlID + "_txtStartTime").value;
        var et = document.getElementById(ctlID + "_txtEndTime").value;
        if (st.length == 0 || et.length == 0) {
          alert("Please enter the Start and End Times (HH:mm)");
        }
        else {
          RequestData("UPD_TKR", cbShowHidePart, "TabIndex=" + tab + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&st=" + st + "&et=" + et + "&commodity=" + selCom + "&broker=" + broker + "&floor=" + floor + "&select=" + select + "&carries=" + carries + "&today=" + today, wt,mnuParent);
        }
      }
    }
  }
  return false;
}

function CalcLMEAvg(o, parent, lang, tab, row, col, part,partType) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var sd = document.getElementById(parent + "_calStartDate_lblSelectedDate").innerHTML;
    var ed = document.getElementById(parent + "_calEndDate_lblSelectedDate").innerHTML;
    var com = document.getElementById(parent + "_Instrument");
    com = com.options[com.selectedIndex].value;
    var fx = document.getElementById(parent + "_Currency");
    fx = fx.options[fx.selectedIndex].value;
    pp = new partParams(mnuParent, 1);
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&sdte=" + sd + "&edte=" + ed + "&commodity=" + com + "&ccy=" + fx + "&lang=" + lang + "&parent=" + parent + "&MinimizedPart=false", wt, mnuParent);
  }
}

function CalcFwdSprd(o, parent, lang, tab, row, col, part, partType) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var sd = document.getElementById(parent + "_calStartDate_lblSelectedDate").innerHTML;
    var ed = document.getElementById(parent + "_calEndDate_lblSelectedDate").innerHTML;
    var com = document.getElementById(parent + "_Instrument");
    com = com.options[com.selectedIndex].value;
    var cash = document.getElementById(parent + "_optStartCash").checked;
    var _3M = document.getElementById(parent + "_optStart3M").checked;
    var selD = document.getElementById(parent + "_optStartSelectDate").checked;
    if (!selD) sd = "";
    var pp = new partParams(mnuParent, 1);
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&sdte=" + sd + "&edte=" + ed + "&commodity=" + com + "&cash=" + cash + "&M3=" + _3M + "&lang=" + lang + "&parent=" + parent + "&MinimizedPart=false", wt, mnuParent);
  }
}

function BuildCurve(o, parent, lang, tab, row, col, part, partType) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var sd = document.getElementById(parent + "_calStartDate_lblSelectedDate").innerHTML;
    var ed = document.getElementById(parent + "_calEndDate_lblSelectedDate").innerHTML;
    var com = document.getElementById(parent + "_Instrument");
    com = com.options[com.selectedIndex].value;
    var sttl = document.getElementById(parent + "_calSettlementDate_lblSelectedDate").innerHTML;
    var pp = new partParams(mnuParent, 1);
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&sdte=" + sd + "&edte=" + ed + "&commodity=" + com + "&sttl=" + sttl + "&lang=" + lang + "&parent=" + parent + "&MinimizedPart=false", wt, mnuParent);
  }
}

function DrillRpt(o, comm, parent, lang, tab, row, col, part, partType, precom, prompt) {  
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var sttl = document.getElementById(parent + "_calSettlementDate_lblSelectedDate").innerHTML;
    var pp = new partParams(mnuParent, 1);
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&Commodity=" + comm + "&sttl=" + sttl + "&lang=" + lang + "&parent=" + parent + "&MinimizedPart=false&prompt=" + prompt, wt, mnuParent);
  }
}

function ShwMD(o, Tab, Row, Col, Part, Inst, Mkd, Exp, Lang,PartType) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    RequestData("PRC_EXP_INST", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&InstIndex=" + Inst + "&MarketDepth=" + Mkd + "&Expand=" + Exp + "&lang=" + Lang, wt, mnuParent);
  }
  return false;
}

function gwi(parent) {
  return parent.getElementsByTagName("table")[0].rows[0].cells[4].getElementsByTagName("img")[0];
}

function shw_ctx(o,pt,ct) {
  o = document.getElementById(o);
  if (o) {
    if (o.cells[1].childNodes.length == 0) {
      var i = o.id.indexOf("cdp");
      var id = o.id.substr(0, i - 1);
      var b = document.getElementById(id + "_cdp_Base_ID").innerHTML;            
      switch (ct) {
        case 1:
          {
            var s = document.getElementById("pnlPriceFields");
            var re = new RegExp('ctlPriceFields', 'gi');
            s = s.innerHTML.replace(re, id);
            var re = new RegExp('@@@', 'gi');
            s = s.replace(re, o.id);
            var ns = document.createElement("span");
            ns.innerHTML = s;
            o.cells[1].appendChild(ns);
            
            var cf = document.getElementById(id + "_cdp_" + b + "_CSTMF");
            if (cf) {
              var arrFO = cf.innerHTML.split(",");
              for (var f = 0; f < arrFO.length; f++) {
                if (arrFO[f].length > 0) {
                  var el = document.getElementById(id + "_F" + arrFO[f]);
                  if (el) el.checked = true;
                  el = document.getElementById(id + "_FO" + arrFO[f]);
                  if (el) el.value = f + 1;
                }
              }
            }
            cf = document.getElementById(id + "_cdp_" + b + "_CSTMG");
            if (cf && cf.innerHTML == "true") {
              var el = document.getElementById(id + "_Grid");
              if (el) el.checked = true;
            }
            cf = document.getElementById(id + "_cdp_" + b + "_CSTMCS");
            if (cf) {
              var el = document.getElementById(id + "_Pad");
              if (el) el.value = cf.innerHTML;
            }
            cf = document.getElementById(id + "_cdp_" + b + "_CSTML");
            if (cf && cf.innerHTML == "true") {
              var el = document.getElementById(id + "_Link");
              if (el) el.checked = true;
            }
            cf = document.getElementById(id + "_cdp_" + b + "_CSTMSIN");
            if (cf && cf.innerHTML == "true") {
              var el = document.getElementById(id + "_SSIN");
              if (el) el.checked = true;
            }
            break;
          }
        case 6:
          {
            var s = document.getElementById("pnlPriceInstruments");
            var re = new RegExp('ctlPriceInstruments', 'gi');
            s = s.innerHTML.replace(re, id);
            var re = new RegExp('@@@', 'gi');
            s = s.replace(re, o.id);
            var ns = document.createElement("span");
            ns.innerHTML = s;
            o.cells[1].appendChild(ns);
            
            var sc = document.getElementById(id + "_cdp_" + b + "_CSTMSC");
            var sn = document.getElementById(id + "_cdp_" + b + "_CSTMSN");
            if (sc && sn) {
              var el = document.getElementById(id + "_sc");
              if (el) {
                el.options.length = 0;
                var arrIC = sc.innerHTML.split(",");
                var arrIN = sn.innerHTML.split(",");
                if (arrIN.length == arrIC.length) {
                  for (var i = 0; i < arrIC.length; i++) {
                    var op = new Option(arrIN[i], arrIC[i], false, false);
                    el.options[el.options.length] = op;
                  }
                }
              }
            }
          }
      }
    }
    o.style.display = "";
  }
}

function shw_sty(o) {
  o = document.getElementById(o);
  if (o) {
    if (o.cells[1].childNodes.length == 0) {
      var i = o.id.indexOf("cdp");
      var id = o.id.substr(0, i-1);
      var s = document.getElementById("pnlStyles");
      var re = new RegExp('ctlStyles', 'gi');
      s = s.innerHTML.replace(re, id);
      var re = new RegExp('@@@', 'gi');
      s = s.replace(re, o.id);
      var ns = document.createElement("span");
      ns.innerHTML = s;
      o.cells[1].appendChild(ns);
      var b = document.getElementById(id + "_cdp_Base_ID").innerHTML;
      var st = document.getElementById(id + "_cdp_" + b + "_styles");
      if (st) {
        re = new RegExp("#" + id + "_cdp_" + b + " .", 'gi');
        st = st.innerHTML.replace(re, '');
        re = new RegExp(' ', 'gi');
        st = st.replace(re, '');
        re = new RegExp('\n', 'gi');
        st = st.replace(re, '');
        re = new RegExp('\r', 'gi');
        st = st.replace(re, '');
        re = new RegExp('\t', 'gi');
        st = st.replace(re, '');
        re = new RegExp('#', 'gi');
        st = st.replace(re, '');
        var ast = st.split("}");
        for (var lp = 0; lp < ast.length; lp++) {
          if (ast[lp] != "") {
            var thST = ast[lp].split("{");
            if (thST.length == 2) {
              var stTy = thST[0];
              var stSTY = thST[1];
              var aSTY = stSTY.split(";");
              var vs = "";
              var vl = "";
              for (var lst = 0; lst < aSTY.length; lst++) {
                var arSTY = aSTY[lst].split(":");
                if (arSTY.length == 2) {
                  var fld = "";
                  var val = arSTY[1];
                  switch (arSTY[0].toLowerCase()) {
                    case "font-family": fld = "Font"; break;
                    case "font-weight":
                      {
                        fld = "Bold";
                        val = (val == "normal" ? "false" : "true");
                        break;
                      }
                    case "font-size":
                      {
                        val = val.replace("px", "");
                        fld = "Size";
                        break;
                      }
                    case "color": fld = "Colourfield"; break;
                    case "background-color": fld = ((stTy.indexOf("_A") > 0) ? "AltRowColfield" : "BackColourfield"); break;
                  }
                  var sid = 0;
                  switch (stTy.substr(0, 2)) {
                    case "th": sid = 1; break;
                    case "td": sid = 2; break;
                    case "ts": sid = 3; break;
                  }
                  var os = document.getElementById(id + "_Style" + sid + "_" + fld);
                  if (os) {
                    switch (os.nodeName.toUpperCase()) {
                      case "SELECT":
                        {
                          for (var oc = 0; oc < os.options.length; oc++) {
                            if (os.options[oc].value == val) {
                              os.selectedIndex = oc;
                              break;
                            }
                          }
                          break;
                        }
                      case "INPUT":
                        {
                          if (val == "true" || val == "false")
                            os.checked = (val == "true");
                          else
                            os.value = val;
                          break;
                        }
                    }
                  }
                  vl += vs + val;
                  vs = ",";
                }
              }
              //if(sid>0)document.getElementById(id + "_Style" + sid + "_Values").innerHTML = vl;
            }
          }
        }
      }      
    }
    o.style.display = "";
  }
}

function close_ctx(o, id) {
  var s = document.getElementById(id);
  if (s) s.style.display = "none";
}

function save_style(oo,id) {
  var arrType = new Array(); 
  var arrFont=new Array();
  var arrFontSize=new Array();
  var arrBold=new Array();
  var arrColor=new Array();
  var arrBackColor = new Array();
  var arrAltRow = new Array();
  //var arrChanged = new Array();
  for (var i = 1; i <= 3; i++) {
    //var st = "";    
    var pt = document.getElementById(id+"_cdp_Part_Type").innerHTML;
    var o = document.getElementById(id + "_Style" + i + "_Font");
    if (o) {
      arrFont[i - 1] = o.options[o.selectedIndex].value;
      //st = arrFont[i - 1];
      o = document.getElementById(id + "_Style" + i + "_Size");
      arrFontSize[i - 1] = o.value;
      //st += "," + arrFontSize[i - 1];
      o = document.getElementById(id + "_Style" + i + "_Bold");
      arrBold[i - 1] = o.checked;
      //st += "," + arrBold[i - 1];
      o = document.getElementById(id + "_Style" + i + "_Colourfield");
      arrColor[i - 1] = o.value;
      //st += "," + arrColor[i - 1];
      o = document.getElementById(id + "_Style" + i + "_BackColourfield");
      arrBackColor[i - 1] = o.value;
      //st += "," + arrBackColor[i - 1];
      o = document.getElementById(id + "_Style" + i + "_AltRowColfield");
      arrAltRow[i - 1] = (o ? o.value : "");
      //st += "," + arrAltRow[i - 1];
      //var ex = document.getElementById(id + "_Style" + i + "_Values").innerHTML;
      //arrChanged[i - 1] = (st != ex);      
      o = document.getElementById(id + "_Style" + i + "_Type");
      arrType[i - 1] = o.innerHTML;
    }
  }
  var url = "";
  var errs = "";
  //now check we have all the values necessary to create a style
  for (var i = 1; i <= 3; i++) {
    //if(arrChanged[i - 1]){
      if (arrBackColor[i-1] != "" && arrColor[i-1] != "" && arrFontSize[i-1] != "") {
        //we have a style so append to the url
        url += "&stfont" + i + "=" + arrFont[i - 1] +
              "&stsize" + i + "=" + arrFontSize[i - 1] +
              "&stbold" + i + "=" + arrBold[i - 1] +
              "&stcolor" + i + "=" + arrColor[i - 1] +
              "&stback" + i + "=" + arrBackColor[i - 1] +
              "&stalt" + i + "=" + arrAltRow[i - 1];
      }
      else errs+="<br>Please choose font size, colour and background for "+arrType[i-1];      
    //}
  }
  if (errs.length > 0) {
    showBox(errs);
  }
  else if (url.length > 0) {
    var mnuParent = getPartParent(oo);
    if (mnuParent != null) {
      var wt = gwi(mnuParent);
      var pp = new partParams(mnuParent, 1);
      RequestData("UPD_STY", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,mnuParent);
    }
  }
  else close_ctx(oo, id);
}

function save_com(oo, prnt, pt, id, mx) {
  var errs = "";  
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var cc = 0;
  var arrCom = new Array("CU", "AL", "NI", "ZN", "PB", "SN", "AA", "AN","FM", "PP", "LL","CO","MO");
  for (var f = 0; f < arrCom.length; f++) {
    var cm = document.getElementById(prnt + "_M" + arrCom[f]);    
    if(cm && cm.checked){
      cc++;
      nv += (nv.length > 0 ? "," : "") + arrCom[f];      
    }
  }  
  if (nv != cv) {
    if (cc == 0) errs += "<br>Please select at least 1 commodity";
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (nv.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + "&selcom="+nv, wt,mnuParent);
      }
    }
  }
  else close_ctx(oo, id);
}

function Contains(arr, v) {
  var res = false;
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == v) {
      res = true;
      break;
    }
  }
  return res;
}

function save_fld(oo, prnt, pt, id,mx) {
  var errs="";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_Grid");
  if (o) {
    nv = o.checked + ",";
    url = "&grid=" + o.checked;
  }
  o = document.getElementById(prnt + "_SSIN");
  if (o) {
    nv+=o.checked + ",";
    url += "&ssin=" + o.checked;
  }
  o = document.getElementById(prnt+"_Pad");
  if (o) {
    nv += o.value;
    url += "&cpad=" + o.value;
  }
  o = document.getElementById(prnt + "_Link");
  if (o) {
    nv += o.value;
    url += "&clnk=" + o.checked;
  }
  var fc = 0;
  var arrFO = new Array;
  for (var f = 2; f <= mx; f++) {
    o = document.getElementById(prnt + "_F" + f);
    if (o) {
      nv += "," + o.checked;
      url += "&fld" + f + "=" + o.checked;
      if (o.checked) {
        var fo = document.getElementById(prnt + "_FO" + f);
        if (fo.value.length != 0) {
          var fov=parseInt(fo.value);
          if (fov > 0 && fov <= mx) {
            if (!Contains(arrFO, fov)) {
              arrFO.push(fov);
              nv += "_" + fov;
              url += "&fldo" + f + "=" + fov;
              fc++;
            }
            else errs += "<br>Duplicate field order entered for " + o.nextSibling.innerHTML.replace("&nbsp;"," ");
          }
          else errs += "<br>Invalid field order entered for " + o.nextSibling.innerHTML.replace("&nbsp;", " ") + ", must be between 1 and " + mx;
        }
        else errs += "<br>Enter the field order for " + o.nextSibling.innerHTML.replace("&nbsp;", " ");
      }
    }
  }
  if (nv != cv) {
    if (fc == 0) errs += "<br>At least 1 field must be selected";
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {    
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + "&max=" + mx + url, wt, mnuParent);
      }
    }
  }
  else {
    close_ctx(oo, id);
  }
}

function save_lme_fld(oo, prnt, pt, id, mx) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var fc = 0;  
  var arrPFX = new Array("SUM", "DTL");
  var arrPFXCaption = new Array("Summary", "Detail");
  for (var pfx = 0; pfx < arrPFX.length; pfx++) {
    var arrFO = new Array;
    for (var f = 0; f <= mx; f++) {
      o = document.getElementById(prnt +"_"+arrPFX[pfx]+ "_F" + f);
      if (o) {
        nv += "," + arrPFX[pfx] + o.checked;
        url += "&fld"+arrPFX[pfx] + f + "=" + o.checked;
        if (o.checked) {
          var fo = document.getElementById(prnt +"_"+arrPFX[pfx]+ "_FO" + f);
          if (fo.value.length != 0) {
            var fov = parseInt(fo.value);
            if (fov > 0 && fov <= mx) {
              if (!Contains(arrFO, fov)) {
                arrFO.push(fov);
                nv += "_" + fov;
                url += "&fldo" + arrPFX[pfx] + f + "=" + fov;
                fc++;
              }
              else errs += "<br>Duplicate "+arrPFXCaption[pfx]+" field order entered for " + o.nextSibling.innerHTML;
            }
            else errs += "<br>Invalid " + arrPFXCaption[pfx] + " field order entered for " + o.nextSibling.innerHTML + ", must be between 1 and " + mx;
          }
          else errs += "<br>Enter the " + arrPFXCaption[pfx] + " field order for " + o.nextSibling.innerHTML;
        }
      }
    }
  }
  if (nv != cv) {
    if (fc == 0) errs += "<br>At least 1 field must be selected";
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + "&max=" + mx + url, wt,mnuParent);
      }
    }
  }
  else close_ctx(oo, id);
}

function save_hist(oo, prnt, pt, id) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_PS");
  var ps = parseInt(o.value);
  if (!(ps > 0 && ps <= 200)) ps = 0;
  nv = ps + ",";

  if (nv != cv) {
    if (ps <= 0 || ps > 200) errs += "<br>PageSize must be between 1 and 200";   
    url = "&ps=" + ps;
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,mnuParent);
      }
    }
  }
  else close_ctx(oo, id);
}

function save_cpt(oo, prnt, pt,id, cid) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_HD");
  var cpt = o.value;
  nv = cpt + ","; 

  if (nv != cv) {
    cpt = inp_vld(cpt);
    url = "&cpt=" + cpt;
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_BSC_CSTM", cbSaveCpt, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,cid,cpt);
      }
    }
  }
  close_ctx(oo, id);
}

function cbSaveCpt(response,wait,cid,cpt) {
  var data = PreProcessResponse(response);
  var c = document.getElementById(cid);
  if (c) c.innerHTML = cpt;
  if (wait) wait.style.visibility = "hidden";
}

function inp_vld(v) {
  var rV = new Array(";", "'", '"');
  for (var i = 0; i < rV.length; i++) {
    if (v.indexOf(rV[i]) >= 0) v = v.replace(rV[i], "");
  }
  return v;
}

function save_bc(oo, prnt, pt, id) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_BC");
  var bc = o.options[o.selectedIndex].value;
  nv = bc + ",";

  if (nv != cv) {    
    url = "&bc=" + bc;
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_BC", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt, mnuParent);
      }
    }
  }
  close_ctx(oo, id);
}

function save_news(oo, prnt, pt, id) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_NS");
  var nums = parseInt(o.value);
  if (!(nums > 0 && nums <= 100)) nums = 0;
  nv = nums + ",";
  url = "&numst=" + nums;

  if (nv != cv) {    
    if (nums<=0 || nums>100) errs += "<br>Number of stories must be between 1 and 100";
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,mnuParent);
      }
    }
  }
  else close_ctx(oo, id);
}

function save_chrt(oo, prnt, pt, id) {
  var errs = "";
  var url = "";
  var cv = document.getElementById(prnt + "_Values").innerHTML;
  var nv = "";
  var o = document.getElementById(prnt + "_CW");
  var cw = parseInt(o.value);
  o = document.getElementById(prnt + "_CH");
  var ch = parseInt(o.value);
  nv = cw + ","+ch;
  
  url = "&ch=" + ch+"&cw="+cw;

  if (nv != cv) {
    if (cw <= 0) errs += "<br>Chart width must be greater than 0";
    if (ch <= 0) errs += "<br>Chart height must be greater than 0";
    if (errs.length > 0) {
      showBox(errs);
    }
    else if (url.length > 0) {
      var mnuParent = getPartParent(oo);
      if (mnuParent != null) {
        var wt = gwi(mnuParent);
        var pp = new partParams(mnuParent, 1);
        RequestData("UPD_CSTM", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,mnuParent);
      }
    }
  }
  else close_ctx(oo, id);
}

function fo_chg(o) {
  var v = o.value;  
  var i = o.id.lastIndexOf("_FO");
  o = document.getElementById(o.id.substr(0, i) + "_F" + o.id.substr(i + 3));    
  o.checked = (v.length > 0);
}

function f_chg(o) {
  var v = o.checked;  
  var i = o.id.lastIndexOf("_F");
  o = document.getElementById(o.id.substr(0, i) + "_FO" + o.id.substr(i + 2));
  if (v)
    o.focus();
  else
    o.value = "";
}

function slct_sty(o, parent) {
  var x = parseInt(o.options[o.selectedIndex].value);
  for (var i = 1; i <= 3; i++) {
    var s = document.getElementById(parent + "_Style" + i+"_T");
    if (s) s.style.display = (i==x?"":"none");
  }
}

function mya_edt(o) {
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALTEDT", GetWait());
}

function mya_cr(o) {
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALT", GetWait());
}

function PopupPart(pt) {
  var ctype = "";
  switch (pt) {
    case 19: ctype = "MYPRC"; break;
    case 25: ctype = "MYALT"; break;
  }
  RequestData("UPD_CTL", cbPopupPart, "ctype="+ctype, GetWait());
}

function UpdPopupPart(pt) {
  var ctype = "";
  switch (pt) {
    case 19: ctype = "MYPRC"; break;
    case 25: ctype = "MYALT"; break;
  }
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=" + ctype, GetWait());
}

function cbPopupPart(response, wait) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    showPopup(data[0], 550, 440);
  }
  if (wait) wait.style.visibility = "hidden";
}

function cbUpdPopupPart(response, wait) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    UpdPopup(data[0]);
    for (var d = 1; d < data.length; d++) eval(data[d]);
  }
  if (wait) wait.style.visibility = "hidden";
}

function myp_step(oo, step, prnt,pt,id) {
  var c = document.getElementById(prnt + "_caption").innerHTML;
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pr = document.getElementById(prnt + "_parent").innerHTML;
  var ic = document.getElementById(prnt + "_instC").innerHTML;
  var iv = document.getElementById(prnt + "_instN").innerHTML;
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  var res = myp_g_sc(prnt);
  
  var errs = "";
  var url="";
  switch (st) {
    case 1:
      {
        var v = document.getElementById(prnt + "_tC").value;
        if (v.length == 0)
          errs += "\r\nPlease enter the name for your prices";
        else {
          url += "&caption=" + v;
          var gd = document.getElementById(prnt + "_grid").innerHTML;
          var lk = document.getElementById(prnt + "_Link").innerHTML;          
          var ss = document.getElementById(prnt + "_SSIN").innerHTML;
          var pd = document.getElementById(prnt + "_pad").innerHTML;
          var fo = document.getElementById(prnt + "_fieldorder").innerHTML;
          var fm = document.getElementById(prnt + "_fields").innerHTML;
          url += "&grid=" + gd + "&ssin=" + ss + "&pad=" + pd + "&mask=" + fm + "&fldo=" + fo + "&clnk=" + lk;
          for (var sy = 1; sy <= 3; sy++) {
            var sty = document.getElementById(prnt + "_Style" + sy);
            if(sty)url += "&stV" + sy + "=" + sty.innerHTML;
          }
        }
        break;
      }
    case 2:
      {
        if (res.Codes.length == 0)
          errs += "\r\nPlease select at least one instrument.";
        else {
          var gd = document.getElementById(prnt + "_grid").innerHTML;
          var lk = document.getElementById(prnt + "_Link").innerHTML;
          var ss = document.getElementById(prnt + "_SSIN").innerHTML;
          var pd = document.getElementById(prnt + "_pad").innerHTML;
          var fo = document.getElementById(prnt + "_fieldorder").innerHTML;
          var fm = document.getElementById(prnt + "_fields").innerHTML;
          url += "&caption=" + c + "&grid=" + gd + "&ssin=" + ss + "&pad=" + pd + "&mask=" + fm + "&fldo=" + fo + "&clnk=" + lk;
          for (var sy = 1; sy <= 3; sy++) {
            var sty = document.getElementById(prnt + "_Style" + sy);
            if (sty) url += "&stV" + sy + "=" + sty.innerHTML;
          }
        }
        break;
      }
    case 3:
      {
        var gd = document.getElementById(prnt + "_Grid").checked;
        var lk = document.getElementById(prnt + "_Link").checked;
        var pd = document.getElementById(prnt + "_Pad").value;
        var ss = document.getElementById(prnt + "_SSIN").checked;
        url += "&caption=" + c + "&grid=" + gd + "&pad=" + pd + "&ssin=" + ss + "&clnk=" + lk;        
        var fc = 0;
        var arrFO = new Array;
        for (var f = 1; f <= 50; f++) {
          var ff = document.getElementById(prnt + "_F" + f);
          if (ff) {
            url += "&fld" + f + "=" + ff.checked;
            if (ff.checked) {
              var fo = document.getElementById(prnt + "_FO" + f);
              if (fo.value.length != 0) {
                var fov = parseInt(fo.value);
                //if (fov > 0 && fov <= mx) {
                if (fov > 0 && fov <= 46) {
                  if (!Contains(arrFO, fov)) {
                    arrFO.push(fov);
                    url += "&fldo" + f + "=" + fo.value;
                    fc++;
                  }
                  else errs += "<br>Duplicate field order entered for " + ff.nextSibling.innerHTML.replace("&nbsp;", " ");
                }
                else errs += "<br>Invalid field order entered for " + ff.nextSibling.innerHTML.replace("&nbsp;", " ") + ", must be between 1 and " + 50;
              }
              else errs += "\r\nEnter the field order for " + ff.nextSibling.innerHTML.replace("&nbsp;", " ");
            }
          }
        }
        if (fc <= 0)
          errs += "\r\nPlease select at least one field.";
        else {
          url += "&max=50";
          for (var sy = 1; sy <= 3; sy++) {
            var sty = document.getElementById(prnt + "_Style" + sy);
            if (sty) url += "&stV" + sy + "=" + sty.innerHTML;
          }
        }
        break;
      }
    case 4:
      {
        var gd = document.getElementById(prnt + "_grid").innerHTML;
        var lk = document.getElementById(prnt + "_Link").innerHTML;
        var ss = document.getElementById(prnt + "_SSIN").innerHTML;
        var pd = document.getElementById(prnt + "_pad").innerHTML;
        var fo = document.getElementById(prnt + "_fieldorder").innerHTML;
        var fm = document.getElementById(prnt + "_fields").innerHTML;
        url += "&caption=" + c + "&grid=" + gd + "&pad=" + pd + "&mask=" + fm + "&fldo=" + fo + "&ssin=" + ss + "&clnk=" + lk;
        var arrType = new Array();
        var arrFont = new Array();
        var arrFontSize = new Array();
        var arrBold = new Array();
        var arrColor = new Array();
        var arrBackColor = new Array();
        var arrAltRow = new Array();
        var arrChanged = new Array();
        var arrEX = new Array();
        for (var i = 1; i <= 3; i++) {
          var sty = "";
          var o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Font");
          arrFont[i - 1] = o.options[o.selectedIndex].value;
          sty = arrFont[i - 1];
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Size");
          arrFontSize[i - 1] = o.value;
          sty += "," + arrFontSize[i - 1];
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Bold");
          arrBold[i - 1] = o.checked;
          sty += "," + arrBold[i - 1];
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Colourfield");
          arrColor[i - 1] = o.value;
          sty += "," + arrColor[i - 1];
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_BackColourfield");
          arrBackColor[i - 1] = o.value;
          sty += "," + arrBackColor[i - 1];
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_AltRowColfield");
          arrAltRow[i - 1] = (o ? o.value : "");
          sty += "," + arrAltRow[i - 1];
          arrEX[i - 1] = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Values").innerHTML;
          arrChanged[i - 1] = (sty != arrEX[i - 1]);
          o = document.getElementById(prnt + "_ctlStyles_Style" + i + "_Type");
          arrType[i - 1] = o.innerHTML;
        }
        //now check we have all the values necessary to create a style
        for (var i = 1; i <= 3; i++) {
          if (arrChanged[i - 1]) {
            if (arrBackColor[i - 1] != "" && arrColor[i - 1] != "" && arrFontSize[i - 1] != "") {
              //we have a style so append to the url
              url += "&stfont" + i + "=" + arrFont[i - 1] +
              "&stsize" + i + "=" + arrFontSize[i - 1] +
              "&stbold" + i + "=" + arrBold[i - 1] +
              "&stcolor" + i + "=" + arrColor[i - 1] +
              "&stback" + i + "=" + arrBackColor[i - 1] +
              "&stalt" + i + "=" + arrAltRow[i - 1];
            }
            else errs += "\r\nPlease choose font size, colour and background for " + arrType[i - 1];
          }
          else url += "&stV" + i + "=" + arrEX[i - 1];
        }
        break;
      }
  }
  if (errs.length > 0) {
    alert(errs);
  }
  else {        
    url += "&scc=" + res.Codes + "&sct=" + res.Values + "&it=" + it + "&prnt=" + pr+"&ppid="+pp;
    st += step;
    url= "ctype=MYPRC&parttype=" + pt + "&partid=" + id + url + "&step=" + st;
    RequestData("UPD_CTL", (st <= 4 ? cbUpdPopupPart : cbSavePricePart), url, GetWait(),prnt);    
  }
}

function cbSavePricePart(response, wait,prnt) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    UpdPopup(data[0]);
    RequestData("UPD_CTL", cbShowCat, "ctype=CTLG", GetWait());
  }
  else if (wait) wait.style.visibility = "hidden";
}

function cbShowCat(response, wait) {
  var data = PreProcessResponse(response);
  if (data[0]) {    
    RfshCat(data[0]);    
  }
  if (wait) wait.style.visibility = "hidden";
}

function cbShowCatRfshTab(response, wait) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    RfshCat(data[0]);
    var ct = mSelectedTabIndex;
    mSelectedTabIndex = -1;
    clkTab(ct);
  }
  if (wait) wait.style.visibility = "hidden";
}

function myp_it(o, prnt, pt, id) {
  var c = document.getElementById(prnt + "_caption").innerHTML;
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  var url = "&caption=" + c + "&step=" + st;
  url += "&it=" + o.options[o.selectedIndex].value;
  var c = "";
  var t = "";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values;
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYPRC&parttype=" + pt + "&partid=" + id + url + "&ppid=" + pp, GetWait());
}

function myp_prnt(o, prnt, pt, id) {
  var c = document.getElementById(prnt + "_caption").innerHTML;
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  var url = "&caption=" + c + "&step=" + st+"&it="+it;
  url += "&prnt=" + o.options[o.selectedIndex].value;
  var c = "";
  var t="";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values + "&ppid=" + pp; 
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYPRC&parttype=" + pt + "&partid=" + id + url, GetWait());
}

function SelVal() {
  this.Codes = "";
  this.Values = "";
}

function myp_g_sc(prnt) {
  var res = new SelVal();
  var sc = document.getElementById(prnt + "_sc");
  if (sc) {
    var s = "";
    for (var lp = 0; lp < sc.options.length; lp++) {
      res.Codes += s + sc.options[lp].value;
      res.Values += s + sc.options[lp].text;
      s = ",";
    }
  }
  else {
    res.Codes = document.getElementById(prnt + "_instC").innerHTML;
    res.Values = document.getElementById(prnt + "_instN").innerHTML;
  }
  return res;
}

function myp_add(o, prnt) {
  var sc = document.getElementById(prnt + "_sc");
  var i = document.getElementById(prnt + "_inst");
  var c = i.options[i.selectedIndex].value;
  var t = i.options[i.selectedIndex].text;
  var f=false;
  for (var lp = 0; lp < sc.options.length; lp++) {
    if (sc.options[lp].value == c) {
      f = true;
      break;
    }
  }
  if (!f) {
    var op = new Option(t, c, false, false);
    sc.options[sc.options.length] = op;
    sc.selectedIndex = sc.options.length - 1;
  }
}

function myp_rmv(prnt) {
  var sc = document.getElementById(prnt + "_sc");
  for (var i = 0; i < sc.options.length; i++) {
    if (sc.options[i].selected) {
      sc.remove(i);
      i--;
    }
  }
}

function myp_del(pt, pd) {
  RequestData("RMV_MYP", cbDeletePricePart, "&parttype=" + pt + "&partid=" + pd, GetWait());
}

function myp_up(o, prnt) {
  var sc = document.getElementById(prnt + "_sc");
  if (sc.selectedIndex > 0) {
    var opt = sc.options;
    var no = new Array;
    var x = sc.selectedIndex - 1;
    for (var i = 0; i < sc.selectedIndex - 1; i++) no.push(sc.options[i]);
    no.push(sc.options[sc.selectedIndex]);
    for (var i = sc.selectedIndex - 1; i < sc.options.length; i++) {
      if (i != sc.selectedIndex) no.push(sc.options[i]);
    }
    sc.options.length = 0;
    for (var i = 0; i < no.length; i++) sc.options[i] = no[i];
    sc.selectedIndex = x;
  }
}

function myp_dwn(o, prnt) {
  var sc = document.getElementById(prnt + "_sc");
  if (sc.selectedIndex >= 0 && sc.selectedIndex<sc.options.length-1) {
    var opt = sc.options;
    var no = new Array;
    var x = sc.selectedIndex + 1;
    for (var i = 0; i <= sc.selectedIndex + 1; i++) {
      if (i != sc.selectedIndex)no.push(sc.options[i]);
    }
    no.push(sc.options[sc.selectedIndex]);
    for (var i = sc.selectedIndex + 2; i < sc.options.length; i++)no.push(sc.options[i]);
    sc.options.length = 0;
    for (var i = 0; i < no.length; i++) sc.options[i] = no[i];
    sc.selectedIndex = x;
  }
}

function edt_pr_it(o, prnt) { 
  var mnuParent = getPartParent(o);
  var wt =(mnuParent != null? gwi(mnuParent):GetWait());
  var url = "&it=" + o.options[o.selectedIndex].value+"&pid="+prnt;  
  RequestData("GET_INS_IT", cbEditIns, url, wt, prnt);
}

function edt_prnt(o, prnt) {
  var mnuParent = getPartParent(o);
  var wt = (mnuParent != null ? gwi(mnuParent) : GetWait());
  var tit = document.getElementById(prnt + "_tit");
  var url = "&it=" + tit.options[tit.selectedIndex].value + "&pid=" + prnt + "&ip=" + o.options[o.selectedIndex].value;
  RequestData("GET_INS_IT", cbEditIns, url, wt, prnt);
}

function cbEditIns(response, wait, prnt) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    //have we got a parent and child drop down
    var x_pr = document.getElementById(prnt + "_pr");
    var x_ch = document.getElementById(prnt + "_inst");    
    var et = data[0].indexOf("</select>");
    var nt = data[0].indexOf("<select", et);
    if (nt >= 0) {
      if (x_pr) {
        x_pr.parentNode.innerHTML = data[0].substr(0, et + 9);
        x_ch.parentNode.innerHTML = data[0].substr(nt);
      }
      else {
        var tr = x_ch.parentNode.parentNode.previousSibling;
        gnl(tr, 1).style.visibility = "";
        gnl(tr, 2).innerHTML = data[0].substr(0, et + 9);
        x_ch.parentNode.innerHTML = data[0].substr(nt);
      }
    }
    else {
      if (x_pr) {
        x_pr.parentNode.parentNode.childNodes[0].style.visibility = "hidden";
        x_pr.parentNode.innerHTML = "";
      }
      x_ch.parentNode.innerHTML = data[0];
    }
  }
  if (wait) wait.style.visibility = "hidden";
}

function save_ins(o, prnt) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    var url = "&sc=";
    var sc = document.getElementById(prnt + "_sc");
    if (sc && sc.options.length > 0) {
      var s = "";
      for (var lp = 0; lp < sc.options.length; lp++) {
        url += s + sc.options[lp].value;
        s = ",";
      }
      RequestData("UPD_INS", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + url, wt, mnuParent);
    }
    else alert("Please select at least one instrument to display on this price part.");
  }
}

function cbDeletePricePart(response, wait, prnt) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    var err = data[0].indexOf("ERROR:");
    var msg = (err < 0 ? data[0] : data[0].substr(err + 6));
    alert(msg);
    if (err<0) RequestData("UPD_CTL", cbShowCatRfshTab, "ctype=CTLG", GetWait());
  }
  else if (wait) wait.style.visibility = "hidden";
}

function GetHlp(o, hid) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    RequestData("GET_HLP", cbShowHelp, "hlp=" + hid, wt);
  }
}

function cbShowHelp(response, wait) {
  var data = PreProcessResponse(response);
  if (data[0]) {
    showPopup(data[0], 700, 550);
  }
  if (wait) wait.style.visibility = "hidden";
}

function UpdLink(o, prnt,pt) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    //create the url for the Link parameters
    var url = "";
    var href = document.getElementById(prnt + "_txtURL").value;
    var height = document.getElementById(prnt + "_txtH").value;
    var width = document.getElementById(prnt + "_txtW").value;
    var caption = document.getElementById(prnt + "_txtCaption").value;
    var scroll = document.getElementById(prnt + "_chkScroll").checked;
    var scrollL = document.getElementById(prnt + "_txtSL").value;
    var scrollT = document.getElementById(prnt + "_txtST").value;
    var refresh = document.getElementById(prnt + "_txtRR").value;
    if (href != "") {
      href = escape(href);
      url = "&href=" + href + "&height=" + height + "&width=" + width + "&scroll=" + scroll + "&caption=" + caption + "&scrollL=" + scrollL + "&scrollT=" + scrollT + "&rfsh=" + refresh;
      var pp = new partParams(mnuParent, 1);
      RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + url, wt,mnuParent);
    }
    else alert("Please enter the URL you want to display in this external link part");
  }
}

function ScrWin(id, l, t) {
  try {
    var w = top.frames[id];
    w.scrollTo(l, t);
  } catch (e) { }
}

function Nav(o, Page, Lang, CTL_ID, ctx,pt) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    //do we need search keywords ?
    var kwd = document.getElementById(CTL_ID + "_txtSearchNews");
    kwd = (kwd ? kwd.value : "");
    if (kwd.length > 0) {
      var re = new RegExp(',', 'gi');
      kwd = kwd.replace(re, ' ');
      re = new RegExp('  ', 'gi');
      kwd = kwd.replace(re, ' ');
      re = new RegExp(' ', 'gi');
      kwd = kwd.replace(re, ',');
    }
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + "&Page=" + Page + "&Keywords=" + kwd + "&ctx=" + ctx, wt,mnuParent);
  }
  return false;
}

function Srch(o, Page, Lang,pt) {
  var mnuParent = getPartParent(o);
  if (mnuParent != null) {
    var wt = gwi(mnuParent);
    var pp = new partParams(mnuParent, 1);
    //get the keywords from this news Part
    var kwd = o.parentNode.previousSibling.childNodes[0].value;    
    var re = new RegExp(',', 'gi');
    kwd = kwd.replace(re, ' ');
    re = new RegExp('  ', 'gi');
    kwd = kwd.replace(re, ' ');
    re = new RegExp(' ', 'gi');
    kwd = kwd.replace(re, ',');    
    RequestData("DRL_PRT", cbShowHidePart, "TabIndex=" + mSelectedTabIndex + "&RowIndex=" + pp.Row + "&ColIndex=" + pp.Col + "&PartIndex=" + pp.Counter + "&MinimizedPart=false&partType=" + pt + "&Page=" + Page + "&Keywords=" + kwd , wt,mnuParent);
  }
  return false;
}

function dwnl_lme(o,prnt,pt){  
  var dte=document.getElementById(prnt+"_Date");
  dte=(dte?dte.options[dte.selectedIndex].value:"");
  var tt=document.getElementById(prnt+"_TType");
  tt=(tt?tt.options[tt.selectedIndex].value:"");
  var ins=document.getElementById(prnt+"_Instrument");
  ins=(ins?ins.options[ins.selectedIndex].value:"");
  var url = "ExportData.aspx?dataid=LME&dte=" + dte + "&tt=" + tt + "&ins=" + ins;
  window.open(url);    
  return false;
}

function swch_cstm(o) {
  for (var i = 0; i < o.options.length; i++)document.getElementById(o.options[i].value).style.display = (o.options[i].selected?"":"none");
}

function sp_clk(o, bp, zn, sp,sn) {
  var url = "bp=" + bp + "&zn=" + zn + "&sp=" + sp+"&sn="+sn;
  RequestDataPub("SP_CLK", null, url, null);
}

function mya_step(oo, step, prnt, pt, id) {  
  var errs = "";
  var url = "";
  var at;  
  for(var a=1;a<=3;a++){
    var ato = document.getElementById(prnt + "_at_"+a);
    if (ato && (ato.checked || (ato.innerHTML && ato.innerHTML == "checked"))) {
      url = "at="+a;
      at=a;
      break;
    }
  }  
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pr = document.getElementById(prnt + "_parent").innerHTML;
  var ic = document.getElementById(prnt + "_instC").innerHTML;
  var iv = document.getElementById(prnt + "_instN").innerHTML;
  var ad = document.getElementById(prnt + "_AD");
  if (ad)url+="&ad=" +(ad.value?ad.value:ad.innerHTML);
  var dt = document.getElementById(prnt + "_DT");
  if (dt){
    if (dt.options)
      url += "&dt=" + (dt.selectedIndex >= 0 ? dt.options[dt.selectedIndex].value : "1");
    else
      url += "&dt=" + dt.innerHTML;
  }
  
  if (step > 0) {
    switch (at) {
      case 1:
      case 3:
        {
          var pf = document.getElementById(prnt + "_PF");
          if (pf) {
            pf = (pf.options ? pf.options[pf.selectedIndex].value : pf.innerHTML);
            pf = parseInt(pf);
            url += "&pf=" + pf;
          }
          var pfh = document.getElementById(prnt + "_PFH");
          if (pfh) {
            pfh = (pfh.value ? pfh.value : pfh.innerHTML);
            pfh = pfh.replace(":", "");
            if (pfh.length > 0) {
              if (pfh.length == 3) pfh = "0" + pfh;
              if (pfh.length == 4) {
                var pfhH = pfh.substr(0, 2);
                pfhH = parseInt(pfhH);
                if (pfhH >= 0 && pfhH <= 23) {
                  var pfhM = pfh.substr(2, 2);
                  pfhM = parseInt(pfhM);
                  if (pfhM >= 0 && pfhM <= 59)
                    url += "&pfh=" + pfh;
                  else
                    errs += "\r\nInvalid daily starting hours entered (HH:MM).";
                }
                else errs += "\r\nInvalid daily starting hours entered (HH:MM).";
              }
              else errs += "\r\nInvalid daily starting hours entered (HH:MM).";
            }
          }

          var sth = document.getElementById(prnt + "_SH");
          if (sth) {
            sth = (sth.value ? sth.value : sth.innerHTML);
            sth = parseInt(sth);
            if (pf > 0) {
              if (sth >= 0 && sth <= 23)
                url += "&sh=" + sth;
              else
                errs += "\r\nStart hours should be between 0 and 23.";
            }
            else url += "&eh=" + enh;
          }
          var enh = document.getElementById(prnt + "_EH");
          if (enh) {
            enh = (enh.value ? enh.value : enh.innerHTML);
            enh = parseInt(enh);
            if (pf > 0) {
              if (enh >= 0 && enh <= 23)
                url += "&eh=" + enh;
              else
                errs += "\r\nEnd hours should be between 0 and 23.";
            }
            else url += "&sh=" + enh;
          }

          var tl = document.getElementById(prnt + "_TL");
          if (tl) url += "&tl=" + (tl.value ? tl.value : tl.innerHTML);
          var tt = document.getElementById(prnt + "_TT");
          if (tt) url += "&tt=" + (tt.options ? tt.options[tt.selectedIndex].value : tt.innerHTML);

          var res = myp_g_sc(prnt);
          switch (st) {
            case 1: res = myp_g_sc(prnt); break;
            case 2:
              {
                var sc = document.getElementById(prnt + "_sc");
                if (!sc) {
                  res = new SelVal();
                  sc = document.getElementById(prnt + "_inst");
                  if (sc && sc.options) {
                    var s = (sc.selectedIndex ? sc.selectedIndex : 0);
                    res.Codes = sc.options[s].value;
                    res.Values = sc.options[s].text;
                  }
                }
                else res = myp_g_sc(prnt);
                if (res.Codes.length == 0) errs += "\r\nPlease select at least one instrument.";
                break;
              }
            case 3:
              {
                res = myp_g_sc(prnt);
                break;
              }
            case 4:
              {

              }
          }
          url += "&scc=" + res.Codes + "&sct=" + res.Values + "&it=" + it + "&prnt=" + pr;          
          break;
        }
      case 2:
        {
          switch (st) {
            case 1:
              {
                var kwd = document.getElementById(prnt + "_KWDS");
                if (kwd) url += "&kwd=" + kwd.innerHTML;
                kwd = document.getElementById(prnt + "_KWNS");
                if (kwd) url += "&kwn=" + kwd.innerHTML;
                break;
              }
            case 2:
              {
                var kwd = document.getElementById(prnt + "_kw");
                if (kwd.selectedIndex < 0)
                  errs += "\r\nPlease select at least one news keyword.";
                else {
                  url += "&kwd=";
                  var ks = "";
                  for (var k = 0; k < kwd.options.length; k++) {
                    if (kwd.options[k].selected) {
                      url += ks + kwd.options[k].value;
                      ks = ",";
                    }
                  }
                  url += "&kwn=";
                  ks = "";
                  for (var k = 0; k < kwd.options.length; k++) {
                    if (kwd.options[k].selected) {
                      url += ks + kwd.options[k].text;
                      ks = ",";
                    }
                  }
                }
                break;
              }
            case 3:
              {                
                var kwd = document.getElementById(prnt + "_KWDS");
                if (kwd) url += "&kwd=" + kwd.innerHTML;
                kwd = document.getElementById(prnt + "_KWNS");
                if (kwd) url += "&kwn=" + kwd.innerHTML;               
                break;
              }
            case 4:
              {                
                break;
              }
          }
          break;
        }
    }
  }
  else {
    switch (at) {
      case 1:
      case 3:
        {
          var res;
          if(st==2){
            var sc = document.getElementById(prnt + "_sc");
            if (!sc) {
              res = new SelVal();
              sc = document.getElementById(prnt + "_inst");
              if (sc && sc.options) {
                var s = (sc.selectedIndex ? sc.selectedIndex : 0);
                res.Codes = sc.options[s].value;
                res.Values = sc.options[s].text;
              }
            }
            else res = myp_g_sc(prnt);
          }
          else res= myp_g_sc(prnt);
          url += "&scc=" + res.Codes + "&sct=" + res.Values + "&it=" + it + "&prnt=" + pr;
          var pf = document.getElementById(prnt + "_PF");
          if (pf) url += "&pf=" + (pf.options ? pf.options[pf.selectedIndex].value : pf.innerHTML);
          var pfh = document.getElementById(prnt + "_PFH");
          if (pfh) url += "&pfh=" + (pfh.value ? pfh.value : pfh.innerHTML);
          var sth = document.getElementById(prnt + "_SH");
          if (sth) url += "&sh=" + (sth.value ? sth.value : sth.innerHTML);
          var enh = document.getElementById(prnt + "_EH");
          if (enh) url += "&eh=" + (enh.value ? enh.value : enh.innerHTML);
          var tl = document.getElementById(prnt + "_TL");
          if (tl) url += "&tl=" + (tl.value ? tl.value : tl.innerHTML);
          var tt = document.getElementById(prnt + "_TT");
          if (tt) url += "&tt=" + (tt.options ? tt.options[tt.selectedIndex].value : tt.innerHTML);
          break;
        }
      case 2:
        {
          var kwd = document.getElementById(prnt + "_KWDS");
          if (kwd) url += "&kwd=" + kwd.innerHTML;
          kwd = document.getElementById(prnt + "_KWNS");
          if (kwd) url += "&kwn=" + kwd.innerHTML;
          break;
        }
    }
  }
  if (errs.length > 0) {
    alert(errs);
  }
  else {
    st += step;
    url += "&ctype=MYALT&parttype=" + pt + "&partid=" + id + "&step=" + st;
    RequestData("UPD_CTL", (st <= 4 ? cbUpdPopupPart : cbSaveMyAlert), url, GetWait(), prnt);
  }
}

function mya_prd_chg(o, prnt) {
  var op = document.getElementById(prnt + "_PFD");
  op.style.display = (o.selectedIndex > 0 ? "none" : "");
  op = document.getElementById(prnt + "_tr3_2");
  op.style.display = (o.selectedIndex == 0 ? "none" : "");  
}

function mya_it(o, prnt, pt, id) {
  var url = "";
  for (var a = 1; a <= 3; a++) {
    var at = document.getElementById(prnt + "_at_" + a);
    if (at && (at.checked || (at.innerHTML && at.innerHTML == "checked"))) {
      url = "&at=" + a;
      break;
    }
  }
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);  
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  url += "&step=" + st;
  url += "&it=" + o.options[o.selectedIndex].value;
  var c = "";
  var t = "";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values;
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALT&parttype=" + pt + "&partid=" + id + url + "&ppid=" + pp, GetWait());
}

function mya_prnt(o, prnt, pt, id) {
  var url = "";
  for (var a = 1; a <= 3; a++) {
    var at = document.getElementById(prnt + "_at_" + a);
    if (at && (at.checked || (at.innerHTML && at.innerHTML == "checked"))) {
      url = "&at=" + a;
      break;
    }
  }  
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  url += "&step=" + st + "&it=" + it;
  url += "&prnt=" + o.options[o.selectedIndex].value;
  var c = "";
  var t = "";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values + "&ppid=" + pp;
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALT&parttype=" + pt + "&partid=" + id + url, GetWait());
}

function myae_step(oo, step, prnt, pt, id) {
  var errs = "";
  var url = "";
  var at;
  for (var a = 1; a <= 3; a++) {
    var ato = document.getElementById(prnt + "_at_" + a);
    if (ato && (ato.checked || (ato.innerHTML && ato.innerHTML == "checked"))) {
      url = "at=" + a;
      at = a;
      break;
    }
  }
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pr = document.getElementById(prnt + "_parent").innerHTML;
  var ic = document.getElementById(prnt + "_instC").innerHTML;
  var iv = document.getElementById(prnt + "_instN").innerHTML;
  var aid = document.getElementById(prnt + "_AD");
  var ad = document.getElementById(prnt + "_AD");
  if (ad) url += "&ad=" + (ad.value ? ad.value : ad.innerHTML);
  var dt = document.getElementById(prnt + "_DT");
  if (dt) {
    if (dt.options)
      url += "&dt=" + (dt.selectedIndex >= 0 ? dt.options[dt.selectedIndex].value : "1");
    else
      url += "&dt=" + dt.innerHTML;
  }

  if (step > 0) {
    switch (at) {
      case 1:
      case 3:
        {
          var pf = document.getElementById(prnt + "_PF");
          if (pf) {
            pf = (pf.options ? pf.options[pf.selectedIndex].value : pf.innerHTML);
            pf = parseInt(pf);
            url += "&pf=" + pf;
          }
          var pfh = document.getElementById(prnt + "_PFH");
          if (pfh) {
            pfh = (pfh.value ? pfh.value : pfh.innerHTML);
            if (pfh.length > 0) {
              pfh = pfh.replace(":", "");
              if (pfh.length == 3) pfh = "0" + pfh;
              if (pfh.length == 4) {
                var pfhH = pfh.substr(0, 2);
                pfhH = parseInt(pfhH);
                if (pfhH >= 0 && pfhH <= 23) {
                  var pfhM = pfh.substr(2, 2);
                  pfhM = parseInt(pfhM);
                  if (pfhM >= 0 && pfhM <= 59)
                    url += "&pfh=" + pfh;
                  else
                    errs += "\r\nInvalid daily starting hours entered (HH:MM).";
                }
                else errs += "\r\nInvalid daily starting hours entered (HH:MM).";
              }
              else errs += "\r\nInvalid daily starting hours entered (HH:MM).";
            }
          }

          var sth = document.getElementById(prnt + "_SH");
          if (sth) {
            sth = (sth.value ? sth.value : sth.innerHTML);
            sth = parseInt(sth);
            if (pf > 0) {
              if (sth >= 0 && sth <= 23)
                url += "&sh=" + sth;
              else
                errs += "\r\nStart hours should be between 0 and 23.";
            }
            else url += "&sh=" + sth;
          }
          var enh = document.getElementById(prnt + "_EH");
          if (enh) {
            enh = (enh.value ? enh.value : enh.innerHTML);
            enh = parseInt(enh);
            if (pf > 0) {
              if (enh >= 0 && enh <= 23)
                url += "&eh=" + enh;
              else
                errs += "\r\nEnd hours should be between 0 and 23.";
            }
            else url += "&eh=" + enh;
          }
          var tl = document.getElementById(prnt + "_TL");
          if (tl) url += "&tl=" + (tl.value ? tl.value : tl.innerHTML);
          var tt = document.getElementById(prnt + "_TT");
          if (tt) url += "&tt=" + (tt.options ? tt.options[tt.selectedIndex].value : tt.innerHTML);

          var res = myp_g_sc(prnt);
          switch (st) {
            case 1: res = myp_g_sc(prnt); break;
            case 2:
              {
                var sc = document.getElementById(prnt + "_sc");
                if (!sc) {
                  res = new SelVal();
                  sc = document.getElementById(prnt + "_inst");
                  if (sc && sc.options) {
                    var s = (sc.selectedIndex ? sc.selectedIndex : 0);
                    res.Codes = sc.options[s].value;
                    res.Values = sc.options[s].text;
                  }
                }
                else res = myp_g_sc(prnt);
                if (res.Codes.length == 0) errs += "\r\nPlease select at least one instrument.";
                break;
              }
            case 3:
              {
                res = myp_g_sc(prnt);
                break;
              }
            case 4:
              {

              }
          }
          url += "&scc=" + res.Codes + "&sct=" + res.Values + "&it=" + it + "&prnt=" + pr;          
          break;
        }
      case 2:
        {
          switch (st) {
            case 1:
              {
                var kwd = document.getElementById(prnt + "_KWDS");
                if (kwd) url += "&kwd=" + kwd.innerHTML;
                kwd = document.getElementById(prnt + "_KWNS");
                if (kwd) url += "&kwn=" + kwd.innerHTML;
                break;
              }
            case 2:
              {
                var kwd = document.getElementById(prnt + "_kw");
                if (kwd.selectedIndex < 0)
                  errs += "\r\nPlease select at least one news keyword.";
                else {
                  url += "&kwd=";
                  var ks = "";
                  for (var k = 0; k < kwd.options.length; k++) {
                    if (kwd.options[k].selected) {
                      url += ks + kwd.options[k].value;
                      ks = ",";
                    }
                  }
                  url += "&kwn=";
                  ks = "";
                  for (var k = 0; k < kwd.options.length; k++) {
                    if (kwd.options[k].selected) {
                      url += ks + kwd.options[k].text;
                      ks = ",";
                    }
                  }
                }
                break;
              }
            case 3:
              {
                var kwd = document.getElementById(prnt + "_KWDS");
                if (kwd) url += "&kwd=" + kwd.innerHTML;
                kwd = document.getElementById(prnt + "_KWNS");
                if (kwd) url += "&kwn=" + kwd.innerHTML;
                break;
              }
            case 4:
              {
                break;
              }
          }
          break;
        }
    }
  }
  else {
    switch (at) {
      case 1:
      case 3:
        {
          var res;
          if (st == 2) {
            var sc = document.getElementById(prnt + "_sc");
            if (!sc) {
              res = new SelVal();
              sc = document.getElementById(prnt + "_inst");
              if (sc && sc.options) {
                var s = (sc.selectedIndex ? sc.selectedIndex : 0);
                res.Codes = sc.options[s].value;
                res.Values = sc.options[s].text;
              }
            }
            else res = myp_g_sc(prnt);
          }
          else res = myp_g_sc(prnt);
          url += "&scc=" + res.Codes + "&sct=" + res.Values + "&it=" + it + "&prnt=" + pr;
          var pf = document.getElementById(prnt + "_PF");
          if (pf) url += "&pf=" + (pf.options ? pf.options[pf.selectedIndex].value : pf.innerHTML);
          var pfh = document.getElementById(prnt + "_PFH");
          if (pfh) url += "&pfh=" + (pfh.value ? pfh.value : pfh.innerHTML);
          var sth = document.getElementById(prnt + "_SH");
          if (sth) url += "&sh=" + (sth.value ? sth.value : sth.innerHTML);
          var enh = document.getElementById(prnt + "_EH");
          if (enh) url += "&eh=" + (enh.value ? enh.value : enh.innerHTML);
          var tl = document.getElementById(prnt + "_TL");
          if (tl) url += "&tl=" + (tl.value ? tl.value : tl.innerHTML);
          var tt = document.getElementById(prnt + "_TT");
          if (tt) url += "&tt=" + (tt.options ? tt.options[tt.selectedIndex].value : tt.innerHTML);
          break;
        }
      case 2:
        {
          var kwd = document.getElementById(prnt + "_KWDS");
          if (kwd) url += "&kwd=" + kwd.innerHTML;
          kwd = document.getElementById(prnt + "_KWNS");
          if (kwd) url += "&kwn=" + kwd.innerHTML;
          break;
        }
    }
  }
  if (errs.length > 0) {
    alert(errs);
  }
  else {
    st += step;
    url += "&ctype=MYALTEDT&parttype=" + pt + "&partid=" + id + "&step=" + st + "&aid=" + id;
    RequestData("UPD_CTL", (st <= 4 ? cbUpdPopupPart : cbSaveMyAlert), url, GetWait(), prnt);
  }
}

function myae_at_chg(o,prnt) {
  var url = "ctype=MYALTEDT_F&at=";
  var at = document.getElementById(prnt + "_FAT");
  if (at) url += at.options[at.selectedIndex].value;
  RequestData("UPD_CTL", cbUpdPopupPart, url, GetWait(), prnt);
}

function myae_del(o, prnt, aid,at,ins) {
  if (window.confirm("Are you sure you want to delete this alert ? ")) {
    var url = "ctype=MYALTEDT_D&aid=" + aid+"&at="+at+"&scc="+ins;    
    RequestData("UPD_CTL", cbUpdPopupPart, url, GetWait(), prnt);
  }
}

function myae_edt(o, prnt, aid, at) {
  var url = "step=2&ctype=MYALTEDT&aid="+aid+"&at="+at;  
  RequestData("UPD_CTL", cbUpdPopupPart, url, GetWait(), prnt);
}

function myae_prd_chg(o, prnt) {
  var op = document.getElementById(prnt + "_PFD");
  op.style.display = (o.selectedIndex > 0 ? "none" : "");
  op = document.getElementById(prnt + "_tr3_2");
  op.style.display = (o.selectedIndex == 0 ? "none" : "");
}

function myae_it(o, prnt, pt, id) {
  var url = "";
  for (var a = 1; a <= 3; a++) {
    var at = document.getElementById(prnt + "_at_" + a);
    if (at && (at.checked || (at.innerHTML && at.innerHTML == "checked"))) {
      url = "&at=" + a;
      break;
    }
  }
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  url += "&step=" + st;
  url += "&it=" + o.options[o.selectedIndex].value;
  var c = "";
  var t = "";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values;
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALTEDT&parttype=" + pt + "&partid=" + id + url + "&ppid=" + pp, GetWait());
}

function myae_prnt(o, prnt, pt, id) {
  var url = "";
  for (var a = 1; a <= 3; a++) {
    var at = document.getElementById(prnt + "_at_" + a);
    if (at && (at.checked || (at.innerHTML && at.innerHTML == "checked"))) {
      url = "&at=" + a;
      break;
    }
  }
  var st = parseInt(document.getElementById(prnt + "_step").innerHTML);
  var it = document.getElementById(prnt + "_insttype").innerHTML;
  var pp = document.getElementById(prnt + "_PPID").innerHTML;
  url += "&step=" + st + "&it=" + it;
  url += "&prnt=" + o.options[o.selectedIndex].value;
  var c = "";
  var t = "";
  var res = myp_g_sc(prnt);
  url += "&scc=" + res.Codes + "&sct=" + res.Values + "&ppid=" + pp;
  RequestData("UPD_CTL", cbUpdPopupPart, "ctype=MYALTEDT&parttype=" + pt + "&partid=" + id + url, GetWait());
}