var childs = new Array();

function templ_next(web_context, cbo, addParam) {
  try {
    var frm = document.forms['frmWizard'];
    if (!frm) return;
    templ_onSubmit(frm);
    var list = frm.elements['list' + cbo];
    if(!list)
     list = frm.elements['l' + cbo];
    if (list && list.selectedIndex > -1
          && !isNaN(parseInt(list.selectedIndex))) {
      var cat   = hashKbCat[list[list.selectedIndex].value];
      if (cat) {
        var newUrl = web_context + '/templ/' + cat.templId + '.jsp?catId=' + cat.id;
        if (addParam) newUrl += addParam;
         document.location.href =  newUrl;
      }
    }
  } catch (err) {
    alert('templ_next\n' + err.description);
  }
}

function templ_onSubmit(frm) {
 try {
  if (!frm) return false;
  var list = null;
  var indx = null;
  for (var i = 1; i < 11; i++) {
    list = frm.elements['list' + i];
    if(!list)
      list = frm.elements['l' + i];
    if (list) {
      indx = frm.elements['index' + i];
      if (indx) indx.value = list.selectedIndex;
    }
  }
 } catch (err) {
    alert('templ_onSubmit\n' + err.description);
 }
}

function templ_onLoad(frm, arr) {
  try {
    if (!frm) return;
    var cbo = null;
    var ind = null;
    var ik   = -1;
    var ik2  = -1;
    for (var i = 0; arr && arr.length && i < arr.length; i++) {
      cbo = frm.elements['list' + (i + 1)];
      ind = frm.elements['index' + (i + 1)];
      if (cbo) {
        ik = getIndex(cbo, arr[i]);
        if (ind) ik2 = parseInt(ind.value);
        if (!isNaN(ik2) && 0 < ik2) {
          ik = ik2;
        }
        if (0 <= ik) cbo.selectedIndex = ik;
        if (cbo.onchange) cbo.onchange();
      }
    }
try {    
    if (window.curPageLoad) curPageLoad();
} catch (err2) {
  alert('Error curPageLoad();');
}
  } catch (err) {
    alert('templ_onLoad\n' + err.description);
  }
}

var hashKbCat = new Array();

function kbCat(id, name, templId) {
  this.id      = id;
  this.name    = name;
  this.templId = templId;
  hashKbCat[id] = this;
  return this;
}

function updateChilds(list1, list2, redText) {
  if (list1) {
    var cat = -10;
    if (list1.selectedIndex > -1) {
      cat = list1[list1.selectedIndex].value;
    }
    updateChildsById(cat, list2, redText);
  }
}

function updateChildsById(cat, list2, redText) {
  var ch  = null;
  if (list2 && list2.options) {
    list2.selectedIndex  = 0;
    list2.options.length = 0;
    if (cat) {
      ch = childs[cat];
      for (var i = 0; ch && ch.length && i < ch.length; i++) {
        list2.options[i] = new Option(ch[i].name, ch[i].id);
        if (list2.options[i].text == redText) {
          list2.options[i].style.color = '#ff0000';
        }
      }
    }
    if (list2.onchange) list2.onchange();
  }
}

function checkForm(frm) {
  var res = true;
  if (frm.list2)      res = (frm.list2.length == 1 || frm.list2.selectedIndex > 0);
  else if (frm.list1) res = (frm.list1.length == 1 || frm.list1.selectedIndex > 0);

  if (!res) alert('Select KB Category!');
  return res;
}

function firstFocus(obj) {
  if (!obj.firstFocus) {
    obj.firstFocus = 1;
    obj.value = '';
  }
}

function templ_onChangeLang(s) {
  try {
    var frm = document.forms['frmWizard'];
    if (frm) {
      frm.action = (frm.action == "" ? "?" : frm.action + "&") + "foLang=" + s[s.selectedIndex].value;
      frm.submit();
    }
  } catch (err) {
    alert('templ_onChangeLang\n' + err.description);
  }
}

function winOpen(url, wd, hd) {
  var w = 600;
  var h = 300;
  if (screen) {
    w = screen.width  * wd;
    h = screen.height * hd;
  }
  return window.open(url, '_blank', 'width=' + w + ', height=' + h + ', scrollbars=1, resizable=1');
}
