function libraryDeleteElements(nodepath) {
  var elements, url, s;
  s = '';
  elements = $$('.libraryfoldercheck', '.libraryfilecheck');
  if (elements.length > 0) {
    for (i=0; i<elements.length; i++) {
      if (elements[i].checked) {  
        if (elements[i].name.substr(0,15) == 'libraryelement_') {
          n = elements[i].name.substr(15,elements[i].name.length);
          if (s != '') {
            s += '_';
          }
          s += nodepath + '/' + String(n);
        }
      }
    }
  }  
  if (s != '') {
    if (confirm('Are you sure you want to delete selected items(s)?')) {
      var url = '/ext/mycf/delete/?nodepathlist=' + encodeURIComponent(s);     
      new Ajax.Request(url, {
        onSuccess: function(transport) {
          document.location.reload();
        }
      });    
    }
  } else {
    alert('No files or folders selected');
  }
}

function librarySelectFolders() {
  elements = $$('.libraryfoldercheck');
  for (i=0; i<elements.length; i++) {
    elements[i].checked = true;
  }
}

function librarySelectFiles() {
  elements = $$('.libraryfilecheck');
  for (i=0; i<elements.length; i++) {
    elements[i].checked = true;
  }
}

function librarySelectAll() {
  librarySelectFolders();
  librarySelectFiles();
}

function libraryClearFolders() {
  elements = $$('.libraryfoldercheck');
  for (i=0; i<elements.length; i++) {
    elements[i].checked = false;
  }
}

function libraryClearFiles() {
  elements = $$('.libraryfilecheck');
  for (i=0; i<elements.length; i++) {
    elements[i].checked = false;
  }
}

function libraryClearAll() {
  libraryClearFolders();
  libraryClearFiles();
}

function libraryCopySelectedToClipboard() {
  var i, n;
  elements = $$('.libraryfoldercheck', '.libraryfilecheck');
  if (elements.length == 0) {
    alert('No items selected to copy to Clipboard');
  } else {
    for (i=0; i<elements.length; i++) {
      if (elements[i].checked) {
        // get node id
        if (elements[i].name.substr(0,15) == 'libraryelement_') {
          n = elements[i].name.substr(15,elements[i].name.length);
          UserClipboard.add_element(n);
        }
      }
    }
    libraryClearAll();
  }
}

function libraryCopySelectedToFavourites() {
  var i, n;
  elements = $$('.libraryfoldercheck', '.libraryfilecheck');
  if (elements.length == 0) {
    alert('No items selected to copy to Favorites');
  } else {
    for (i=0; i<elements.length; i++) {
      if (elements[i].checked) {
        // get node id
        if (elements[i].name.substr(0,15) == 'libraryelement_') {
          n = elements[i].name.substr(15,elements[i].name.length);
          UserFavourites.add_element(n);
        }
      }
    }
    libraryClearAll();
  }
}

function setMainColumnHeights() {
/*
  sh = $('leftcell').getHeight() - $('leftcontent').getHeight() - 9;
  if (sh > 9) {
    $('leftspacer').setStyle({height: sh+'px', backgroundColor: '#999'});
    $('leftspacerregion').show();
  }
  alert($('leftcell').getHeight() + '  ' + $('rightcontent').getHeight());
  sh = $('leftcell').getHeight() - $('rightcontent').getHeight() - 9;
  if (sh > 9) {
    $('rightspacer').setStyle({height: sh+'px', backgroundColor: '#999'});
    $('rightspacerregion').show();
  }  
*/
}

function createWindow(prmURL,prmName,prmWidth,prmHeight,prmExtra,prmRandomizeName,prmReturnWindow){
  if (prmRandomizeName) {
    var d=new Date();
    var randomprefix=d.getHours()+d.getSeconds()+d.getMinutes();
    if(prmExtra==null) prmExtra="";else prmExtra=","+prmExtra;
    win=window.open(prmURL,randomprefix+prmName,"width="+prmWidth+",height="+prmHeight+prmExtra);
  } else {
    win=window.open(prmURL,prmName,"width="+prmWidth+",height="+prmHeight+prmExtra);
  }
  if (prmReturnWindow) {
    return win;
  } else {
    win.focus();
  }
}

function setProductMenu(id, menubar_id) {
  elements = $$('.productcontentregion');
  for (i=0; i<elements.length; i++) {
    elements[i].hide();
  }
  $(id).show();
  elements = $$('.prodmenubar');
  for (i=0; i<elements.length; i++) {
    elements[i].setStyle({backgroundColor: '#999'});
    elements[i].removeClassName('prodmenubaractive');
  }
  $(menubar_id).addClassName('prodmenubaractive');
  $(menubar_id).setStyle({backgroundColor: '#333'});
}

function setProductTechnicalMenu(id) {
  elements = $$('.product_technical_table');
  for (i=0; i<elements.length; i++) {
    elements[i].hide();
  }
  $(id).show();
}

function toggleClassNameByClass(target, classname) {
  elements = $$(target);
  for (i=0; i<elements.length; i++) {
    elements[i].toggleClassName(classname);
  }  
}

function setVisibleInSet(set_class, target_id) {
  elements = $$(set_class);
  for (i=0; i<elements.length; i++) {
    elements[i].hide();
  }
  $(target_id).show();
}

function setClassInSet(set_class, target_id, classname) {
  elements = $$(set_class);
  for (i=0; i<elements.length; i++) {
    elements[i].removeClassName(classname);
  }
  $(target_id).addClassName(classname);
}

function search_process() {
  // get all elements
  var i, s, n
  elements = document.getElementsByClassName('searchenum');
  s = '';
  for (i=0; i<elements.length; i++) {
    if (elements[i].checked) {
      if (elements[i].name.substr(0,5) == 'enum_') {
        n = elements[i].name.substr(5,elements[i].name.length);
        if (s != '') {
          s += '_';
        }
        s += String(n);
      }
    }
  }
//  alert(s);
  $('tags').value = s;
}

function preload(imgObj,imgSrc) {
  /*
    function to preload images
  */
  if (document.images) {
    eval(imgObj+' = new Image()');
    eval(imgObj+'.src = "'+imgSrc+'"');
  }
}

function changeImage(imgName,imgObj,layer) {
  /*
    function to do rollovers of images
  */
  if (gIsImagePreloadDone == true) {
    if (document.images) {
      if (document.layers) {
        if (layer!=null){
          eval('document.layers.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src');
        } else {
          document.images[imgName].src = eval(imgObj+".src");
        }
      } else {
        document.images[imgName].src = eval(imgObj+".src");
      }
    }
  }
}

function changeImageFull(imgName, imgObj, imgSrc, layer, pwidth, pheight, margin_top) {
  var _alpha;
  // see if already loaded
  if (eval(typeof(imgObj) != "undefined")) {
    preload(imgObj, imgSrc);
  }
  opacity(imgName, 100, 0, 200);
  if (gTimeoutID > 0) {
    clearTimeout(gTimeoutID);
  }
  gTimeoutID = setTimeout('changeImageFullAction (\''+imgName+'\', \''+imgObj+'\', \''+imgSrc+'\', \''+layer+'\', \''+pwidth+'\', \''+pheight+'\', \''+margin_top+'\')',200);
}

function changeImageFullAction (imgName, imgObj, imgSrc, layer, pwidth, pheight, margin_top) {
  changeImage(imgName, imgObj, layer);
  document.images[imgName].height = pheight;
  document.images[imgName].width = pwidth;
  document.images[imgName].style.marginTop = margin_top;
  opacity(imgName, 0, 100, 200);
  gTimeoutID = 0;
}

function changeBG(id, color) {
  /* simple swap of element background */
  /* added check for active state for product menus */
  if ($(id).hasClassName('prodmenubaractive')) {
    return;
  }
  element = document.getElementById(id);
  element.style.background = color;
}

function fadeBG(id, hex) {
  /* simple fade of solid element background to black */
  element = document.getElementById(id);
  current = element.style.background;
  if (hex == null) {
    hex = 99;
  }
  if (hex > 0) {
    hex -= 1;
    if (hex < 0) {
      hex = 0;
    }
    element.style.background="rgb("+hex+","+hex+","+hex+")";
    setTimeout("fadeBG('"+id+"',"+hex+")", 20);
  } else {
    hex = 0;
  }
}

function opacity(id, opacStart, opacEnd, millisec) {
  //speed for each frame
  var speed = Math.round(millisec / 100);
  var timer = 0;

  //determine the direction for the blending, if start and end are the same nothing happens
  if(opacStart > opacEnd) {
    for(i = opacStart; i >= opacEnd; i--) {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
    }
  } else if(opacStart < opacEnd) {
    for(i = opacStart; i <= opacEnd; i++)
      {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
    }
  }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
  var object = document.getElementById(id).style; 
  object.opacity = (opacity / 100);
  object.MozOpacity = (opacity / 100);
  object.KhtmlOpacity = (opacity / 100);
  object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
  //if an element is invisible, make it visible, else make it ivisible
  if(document.getElementById(id).style.opacity == 0) {
    opacity(id, 0, 100, millisec);
  } else {
    opacity(id, 100, 0, millisec);
  }
}

function blendimage(divid, imageid, imagefile, millisec) {
  var speed = Math.round(millisec / 100);
  var timer = 0;
  
  //set the current image as background
  document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
  
  //make image transparent
  changeOpac(0, imageid);
  
  //make new image
  document.getElementById(imageid).src = imagefile;

  //fade in image
  for(i = 0; i <= 100; i++) {
    setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
    timer++;
  }
}

function currentOpac(id, opacEnd, millisec) {
  //standard opacity is 100
  var currentOpac = 100;
  
  //if the element has an opacity set, get it
  if(document.getElementById(id).style.opacity < 100) {
    currentOpac = document.getElementById(id).style.opacity * 100;
  }

  //call for the function that changes the opacity
  opacity(id, currentOpac, opacEnd, millisec)
}

// Zero padding
function pad0(string, newlength) {
  var pad = "";
  var len = newlength-String(string).length;
  var i;
  for (i = 0; i<len; i++) {
    pad += "0";
  }
  return pad+string;
}