var apos = "'";
function popupPrompt(title, msg1, msg2, prompt, type, path, admin)
{
  var actionUrl = admin;
  if (admin == null || admin == '') {
    actionUrl = 'admin';
  }
  strAttr = "status:no;dialogWidth:400px;dialogHeight:300px;help:no;scrollbar:no;";
  strAction = actionUrl + "?action=popup&popupTitle="+title
    + "&popupMsg1=" + msg1
    + "&popupMsg2=" + msg2
    + "&popupPrompt=" + prompt
    + "&popupType=" + type
    + "&path=" + path;
  return showModalDialog(strAction, document, strAttr);
}

function displayPopup(path, params, ptt, tu)
{
  var url = path;
  if (tu == "") {
    url = "staging" + path;
  }
  else {
    url = ptt + path;
  }
  return showModalDialog(url, document, params);
}

function getMultiValue(sel, req)
{
  var result = "";
  var sv = (req == 'yes') ? 0 : 1;
  for (var i=sv; i<sel.length; i++) {
    if (sel[i].selected) {
      result += sel[i].value + " | ";
    }
  }
  return result;
}

function updateParentOrNew(url)
{
  if (window.opener != null) {
    window.opener.location = url;
  }
  else {
    open(url,'_blank');
  }
}

function validFilename(path)
{
  if (path == null ||
      path == ''   ||
      path.indexOf('"') != -1 ||
      path.indexOf("'") != -1 ||
      path.indexOf('<') != -1 ||
      path.indexOf('>') != -1 ||
      path.indexOf('&') != -1 )  {
    alert("The supplied filename is invalid, it cannot contain the following characters: & ' < > ");
    return false;
  }
  else {
    return true;
  }
}

var currentPane = null;
var currentItem = null;
var currentInfo = null;
function updatePane(id, path)
{
  updatePane2(id, path, 'admin?action=view&tag=HEAD&path=', '&ieFriendly=true');
}
function updatePane2(id, url, urlPrefix, urlSuffix)
{
  if (currentPane != null) {
    currentPane.style.display = 'none';
  }
  currentPane = document.getElementById('pph' + id);
  currentPane.style.display = '';
  contentPreview.location = urlPrefix + url + urlSuffix;
  if (currentItem != null) {
    currentItem.style.backgroundColor = '';
    currentItem.style.color = '';
  }
  currentItem = document.getElementById('item' + id);
  currentItem.style.backgroundColor = '#3c8ac4';
  currentItem.style.color = '#ffffff';
  if (currentInfo != null) {
    currentInfo.style.display = 'none';
    currentInfo.style.visibility = 'hidden';
  }
  currentInfo = document.getElementById('docInfo' + id);
  currentInfo.style.display = '';
  currentInfo.style.visibility = 'visible';
}

// Menu functions 
var menuWidth = 130;
var menuActive = new Array();
function cmsShowMenu(elem, dpyMode,name)
{
  if (currentMenu != '') {
    cmsCheckMenu(currentMenu, dpyMode);
    cmsHideContextMenu();
  }
  var menu = elem.childNodes[1];
  menu.style.visibility = 'visible';
  menu.style.display = '';
  menu.style.width = menuWidth + 'px';
  //menu.scrollIntoView();
  currentMenu = name;
  var highlighted = elem.id + 'high';
  if (document.getElementById(highlighted)) {
    document.getElementById(highlighted).className='cmscontentitem-'+cmsMenuType+'-up';
    //window.status='className=cmscontentitem-'+cmsMenuType+'-up';

  }
}
function cmsPosMenu(btn, dpyMode)
{
  var menu = btn.parentNode.childNodes[1];
  if (dpyMode == 'icon') {
    menu.style.pixelLeft = event.x - menuWidth + 5;
    menu.style.pixelTop = event.y - 5;
    menu.style.pixelLeft += document.body.scrollLeft;
    menu.style.pixelTop += document.body.scrollTop;
    //window.status='cmsPosMenu()';
  }
}
function cmsCheckMenu(name, dpyMode)
{
  //window.status='cmsCheckMenu('+name+')';
  if (!menuActive[name]) {
    var elem = document.getElementById('item_menu'+name);
    var child = elem.firstChild;
    cmsHideMenu(elem, dpyMode);
    child.className='cmsmenubutton';
  }
  if (currentMenu == name && !currentMenuActive) {
    cmsHideContextMenu();
  } 
}
function cmsHideMenu(elem, dpyMode)
{
  var menu = elem.childNodes[1];
  menu.style.visibility = 'hidden';
  menu.style.display = 'none';
  var highlighted = elem.id + 'high';
  if (document.getElementById(highlighted)) {
    document.getElementById(highlighted).className='cmscontentitem-'+cmsMenuType;
  }
}
function cmsShowSubmenu(elem)
{
  var menuitem = elem.childNodes[1];
  var submenu = elem.childNodes[0];
  submenu.style.visibility = 'visible';
  submenu.style.display = '';
  submenu.style.width = menuWidth + 'px';
  var menuOffset = '-' + menuWidth + 'px';
  submenu.style.left = menuOffset;
}
function cmsHideSubmenu(elem)
{
  var menuitem = elem.childNodes[1];
  var submenu = elem.childNodes[0];
  submenu.style.visibility = 'hidden';
  submenu.style.display = 'none';
}

// Old Menu functions 

function showmenu(elmnt)
{
  var highlighted = (elmnt)+"high";
  var button = (elmnt)+"button";
  document.getElementById(elmnt).style.visibility="visible";
  document.getElementById(elmnt).style.display="";
  document.getElementById(button).className='cmsmenubuttonup';
  if (document.getElementById(highlighted)) {
    document.getElementById(highlighted).className='cmsitemup';
  }
}

function hidemenu(elmnt)
{
  var highlighted = (elmnt)+"high";
  var button = (elmnt)+"button";
  document.getElementById(elmnt).style.visibility="hidden";
  document.getElementById(elmnt).style.display="none";
  document.getElementById(button).className='cmsmenubutton';
  if (document.getElementById(highlighted)) {
    document.getElementById(highlighted).className='cmsitem';
  }
}

function showsubmenu(elmnt)
{
  document.getElementById(elmnt).style.pixelLeft = - 100;
  document.getElementById(elmnt).style.visibility="visible";
}
function hidesubmenu(elmnt)
{
  document.getElementById(elmnt).style.visibility="hidden";
}

var requiredFields = new Array();
function addRequiredField(field)
{
  len = requiredFields.length;
  requiredFields[len] = field;
  len = requiredFields.length;
}
function checkRequiredFields()
{
  for (i=0; i<requiredFields.length; i++) {
    field = requiredFields[i].value;
    if (field == null || field == "") {
      alert("Missing Required Field: Please supply values for all required fields"
            + " (ie those marked with an *)");
      return false;
    }
  }
  return true;
}

var jsfilenameList = new Array();
function addToFilenameList(name)
{
  jsfilenameList[name] = 'y';
}
function filenameAvailable(name)
{
  return (jsfilenameList[name] == null || jsfilenameList[name] == '');
}
function showElement(elmnt)
{
  document.getElementById(elmnt).style.visibility="visible";
  document.getElementById(elmnt).style.display="";
}
function hideElement(elmnt)
{
  document.getElementById(elmnt).style.visibility="hidden";
  document.getElementById(elmnt).style.display="none";
}


// Doc Listing

var draggedDocumentPath = '';
var draggedDocumentName = '';
var draggedDocumentType = '';

function docListingDumpOrder(nla)
{
  var result = "";
  for (i=1; i<nla.length; i++) {
    result += i + ":" + nla[i] + "|";
  }
  return result;
}

var oPopup = window.createPopup();
var currentMenu = '';
var currentMenuActive = false;
var showingMessage = false;

function cmsHideContextMenu()
{
  if (!showingMessage) {
    var menuDiv = document.getElementById('cmsContextMenuDiv');
    menuDiv.style.display='none';
    menuDiv.style.visibility = 'hidden';
    menuDiv.innerHTML = '';
    if (currentMenu != '') {
      var highlighted = 'item_menu' + currentMenu + 'high';
      if (document.getElementById(highlighted)) {
        document.getElementById(highlighted).className='cmscontentitem-'+cmsMenuType;
      }
    }
    currentMenu = '';
    currentMenuActive = false;
    currentContentItem = new Array();
    //window.status='cmsHideContextMenu()';
  }
}


function cmsShowContextMenu(menuId)
{
  if (!showingMessage) {
    cmsHideContextMenu();
    var menuDiv = document.getElementById('cmsContextMenuDiv');
    var menuContent = document.getElementById('item_menu' + menuId);
    var menuContentDiv = menuContent.childNodes[1];
    menuDiv.innerHTML = menuContentDiv.innerHTML;
    if (document.body.clientWidth < 120 + event.clientX) {
      menuDiv.style.left = document.body.clientWidth - 120;
    } else if (event.clientX < 120) {
      menuDiv.style.left=120;
    } else {
      menuDiv.style.left = event.clientX + document.body.scrollLeft - 5;
    }
    menuDiv.style.top = event.clientY + document.body.scrollTop - 5;
    menuDiv.style.display='block';
    menuDiv.style.visibility = 'visible';
    var highlighted = 'item_menu' + menuId + 'high';
    if (document.getElementById(highlighted)) {
      document.getElementById(highlighted).className='cmscontentitem-'+cmsMenuType+'-up';
    }
    currentMenu = menuId;
    currentMenuActive = true;
    event.cancelBubble = true;
  }
}


function cmsShowCustomContextMenu(html,centre)
{
  cmsHideContextMenu();
  var menuDiv = document.getElementById('cmsContextMenuDiv');
  menuDiv.innerHTML = html;
  if (centre) {
    menuDiv.style.left = (document.body.clientWidth - 100) / 2 + document.body.scrollLeft;
    menuDiv.style.top = (document.body.clientHeight - 50) / 2 + document.body.scrollTop;
  }
  else {
    if (document.body.clientWidth < 120 + event.clientX) {
      menuDiv.style.left = document.body.clientWidth - 120;
    } else if (event.clientX < 120) {
      menuDiv.style.left=120;
    } else {
      menuDiv.style.left = event.clientX + document.body.scrollLeft - 5;
    }
  }
  menuDiv.style.top = event.clientY + document.body.scrollTop - 5;
  menuDiv.style.display='block';
  menuDiv.style.visibility = 'visible';
  event.cancelBubble = true;
  //window.status='cmsShowCustomContextMenu()';
}


function cmsShowContextMessage(html,centre)
{
  cmsShowCustomContextMenu('<div class="cmsContextMessage">' + html + '</div>',true);
  showingMessage = true;
}


function cmsHideContextMessage() {
  showingMessage = false;
  cmsHideContextMenu();
}


function cmsAbsPosMenu(menu)
{
  menu.style.top = event.y + document.body.scrollTop;
  menu.style.left = event.x + document.body.scrollLeft;
  //window.status='cmsAbsPosMenu()';

}

var currentContentItem = new Array();

function cmsContentItemEnter(elem) {
  if (!currentMenuActive && cmsMenuType == 'context') { 
    if (currentContentItem.length > 0) {
      myparent = currentContentItem[currentContentItem.length - 1];
      myparent.className='cmscontentitem-'+cmsMenuType ;
    }
    elem.className='cmscontentitem-'+cmsMenuType + '-over';
    currentContentItem.push(elem);
  }
}

function cmsContentItemLeave(elem) {
  if (!currentMenuActive && cmsMenuType == 'context') { 
    elem.className='cmscontentitem-'+cmsMenuType ;
    currentContentItem.pop();
    if (currentContentItem.length > 0) {
      current = currentContentItem[currentContentItem.length - 1];
      current.className='cmscontentitem-'+cmsMenuType + '-over';
    }
  }
}


      /* XP Style Menu Box */

      function toggleMenuBox(elem) {
        var chevron = elem.parentNode.childNodes[0].childNodes[2];
        var content = elem.parentNode.childNodes[1];
        if (chevron.className == 'menuBoxRight') {
          chevron.className='menuBoxRightHidden';
          content.style.display='none';
          content.style.visibility='hidden';
        }
        else {
          chevron.className='menuBoxRight';
          content.style.display='';
          content.style.visibility='visible';
        }
      }

function cmsPerformAction(msg, loc) {
  cmsShowContextMessage(msg, true);
  window.location = loc;
}


function toggleDisplay(elem, class1, class2) {
  if (elem.className == class1) {
    elem.className=class2;
  }
  else {
    elem.className=class1;
  }
}


