var needToConfirm = true;
var prevNeedToConfirm = true;

function saveNeedToConfirm() {
   prevNeedToConfirm = needToConfirm;
   needToConfirm = false;
}

function restoreNeedToConfirm() {
   needToConfirm = prevNeedToConfirm;
}

function popup(url, width, height, name, toolbar, scrollbars, resizable) {
   restoreNeedToConfirm();

   // defaults
   var format = '';
   if (!name) {
      name = '_blank';
   }
   if (!toolbar) {
      toolbar = 'no';
   }
   if (!scrollbars) {
      scrollbars = 'yes';
   }
   if (!resizable) {
      resizable = 'yes';
   }

   // build format
   if (toolbar) {
      format += 'toolbar='+toolbar+',';
   }
   if (scrollbars) {
      format += 'scrollbars='+scrollbars+',';
   }
   if (resizable) {
      format += 'resizable='+resizable+',';
   }
   if (width) {
      format += 'width='+width+',';
   }
   if (height) {
      format += 'height='+height+',';
   }
   if (format != '') {
      format = format.substr(0, format.length-1);
   }

   // create window
   var win = open(url, name, format);
   if (win) {
      win.focus();
      if (!win.opener) {
         win.opener = self;
      }
   }
}

function newWindow(url, name) {
   // create window
   var win = open(url, name);
   if (win) {
      win.focus();
      if (!win.opener) {
         win.opener = self;
      }
   }
}

function reloadParent(close, params) {
   //alert("" + window.opener.location.href)
   if (params) {
      var parentQuery = new Query(window.opener.location.search);
      parentQuery.merge(params);
      window.opener.location.href = 
         parentQuery.toString(window.opener.location.href);
   }
   else {
 //     window.opener.location.reload();
      window.opener.location.href = window.opener.location.href
   }
   if (close) {
      window.close();
   }
}

function redirectParent(url) {
   window.opener.location.href = url;
}

function confirmForm(message) {
   if (!message) {
      message = 'You are about to perform a delete. ' +
                'Please press OK to continue or CANCEL to cancel';
   }
   var r = window.confirm(message);
   if (r) {
      return(true);
   }
   else {
      return(false);
   }
}

function toggleObject(node, display, anchor, on, off) {
   restoreNeedToConfirm();

   if (!display) {
      display = 'block';
   }
   if (display == 'table-row' && document.all) {
      display = 'block';
   }
   var objNode = document.getElementById(node).style;
   var anchorNode;
   if (anchor) {
      anchorNode = document.getElementById(anchor);
   }
   if (objNode) {
      if (objNode.display == 'none') {
         objNode.display = display;
         if (anchorNode) {
            anchorNode.innerHTML = off;
         }
      }
      else {
         objNode.display = 'none';
         if (anchorNode) {
            anchorNode.innerHTML = on;
         }
      }
   }
}

function toggleBetweenObjects(offNode, onNode) {
   hideObject(offNode, null, null);
   showObject(onNode, null, null);

}

function hideObject(node, anchor, off) {
   var objNode = document.getElementById(node).style;
   var anchorNode;
   if (anchor) {
      anchorNode = document.getElementById(anchor);
   }
   if (objNode) {
      objNode.display = 'none';
      if (anchorNode) {
         anchorNode.innerHTML = off;
      }
   }
}

function showObject(node, display, anchor, on) {
   if (!display) {
      display = 'block';
   }
   if (display == 'table-row' && document.all) {
      display = 'block';
   }
   var objNode = document.getElementById(node).style;
   var anchorNode;
   if (anchor) {
      anchorNode = document.getElementById(anchor);
   }
   if (objNode) {
      objNode.display = display;
      if (anchorNode) {
         anchorNode.innerHTML = on;
      }
   }
}

function popupConfirm(msg, url, width, height, name, toolbar, scrollbars,
                      resizable) {
   var message = '';
   if (msg) {
      message = msg + ' ';
   }
   message += 'Please press OK to continue or CANCEL to cancel.';
   var r = window.confirm(message);
   if (r) {
      popup(url, width, height, name, toolbar, scrollbars, resizable);
   }
}

function hrefConfirm(msg) {
   var message = '';
   if (msg) {
      message = msg + ' ';
   }
   message += 'Please press OK to continue or CANCEL to cancel.';
   var r = window.confirm(message);
   return(r);
}

function buttonConfirm(msg, href) {
   var message = '';
   if (msg) {
      message = msg + ' ';
   }
   message += 'Please press OK to continue or CANCEL to cancel.';
   var r = window.confirm(message);
   if (r) {
      window.location.href = href;
   }
   return(false);
}

function popupForm(form, mode, type, selected,
                   width, height, name, toolbar, scrollbars, resizable) {
   var f = form;
   var m = eval('f.'+ mode);
   var t = eval('f.' + type);
   var s = eval('f.'+ selected);
   var url = m.options[m.selectedIndex].value;
   var confirm = eval('f.selectedConfirm_'+url);
   var error = eval('f.selectedError');
   var confirmed = f.selectedConfirmed;
   var base = f.selectedBase.value
   var ext = f.selectedExt.value

   var checked = false;
   if (t.options[t.selectedIndex].value == 'all') {
      checked = true;
   }
   else {
      if (s.length) {
         for (var i=0;i < s.length;i++) {
            if (s[i].checked) {
               checked = true;
            }
         }
      }
      else {
         checked = s.checked;
      }
   }
   if (!checked) {
      var message = 'You must select one or more records.';
      if (error && error.value) {
         message = error.value;
      }
      alert(message);
      return(false);
   }

   if (confirm && confirm.value && confirmed.value == '') {
      f.target = '';
      message = Messages[confirm.value] + ' ';
      message += 'Please press OK to continue or CANCEL to cancel.';
      var r = window.confirm(message);
      if (!r) {
         return(false);
      }
   }
   f.action = base+url+ext;
   f.target = name;
   popup('', width, height, name, toolbar, scrollbars, resizable);
   return(true);
}

function copyCOPSection(s, t) {
   var selected = s.selectedIndex;
   if (selected > 0) {
      var p = s.options[selected].value;
      var obj = document.getElementById('cop_principle_'+p);
      if (obj) {
         t.value = obj.value;
      }
   }
   else {
      t.value = "";
   }
}

