
  function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
      var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
      if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
  }

  function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  }

  function slideshow(img){
  	fo('SLIDESHOW').src = img;
  }

  function fo(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
      d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=fo(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
  }

  function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
     if ((x=fo(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  }

  function sh(id) {
  	if ((obj=fo(id))!=null) {
  		obj.style.display = ((obj.style.display == 'block')?'none' :'block');
  	}
  }

  function show(id) {
  	if ((obj=fo(id))!=null) {
  		obj.style.display = 'block';
  		obj.style.zIndex = 0;
  	}
  }

  function hide(id) {
  	if ((obj=fo(id))!=null) {
  		obj.style.display = 'none';
  		obj.style.zIndex = 0;
  	}
  }

  function MM_scanStyles(obj, prop) { //v8.0
    var inlineStyle = null; var ccProp = prop; var dash = ccProp.indexOf("-");
    while (dash != -1){ccProp = ccProp.substring(0, dash) + ccProp.substring(dash+1,dash+2).toUpperCase() + ccProp.substring(dash+2); dash = ccProp.indexOf("-");}
    inlineStyle = eval("obj.style." + ccProp);
    if(inlineStyle) return inlineStyle;
    var ss = document.styleSheets;
    for (var x = 0; x < ss.length; x++) { var rules = ss[x].cssRules;
  	for (var y = 0; y < rules.length; y++) { var z = rules[y].style;
  	  if(z[prop] && (rules[y].selectorText == '*[ID"' + obj.id + '"]')) {
          return z[prop];
    }  }  }  return "";
  }

  function MM_getProp(obj, prop) { //v8.0
    if (!obj) return ("");
    if (prop == "L") return obj.offsetLeft;
    else if (prop == "T") return obj.offsetTop;
    else if (prop == "W") return obj.offsetWidth;
    else if (prop == "H") return obj.offsetHeight;
    else {
      if (typeof(window.getComputedStyle) == "undefined") {
  	    if (typeof(obj.currentStyle) == "undefined"){
  		    if (prop == "P") return MM_scanStyles(obj,"position");
          else if (prop == "Z") return MM_scanStyles(obj,"z-index");
          else if (prop == "V") return MM_scanStyles(obj,"visibility");
  	    } else {
  	      if (prop == "P") return obj.currentStyle.position;
          else if (prop == "Z") return obj.currentStyle.zIndex;
          else if (prop == "V") return obj.currentStyle.visibility;
  	    }
      } else {
  	    if (prop == "P") return window.getComputedStyle(obj,null).getPropertyValue("position");
        else if (prop == "Z") return window.getComputedStyle(obj,null).getPropertyValue("z-index");
        else if (prop == "V") return window.getComputedStyle(obj,null).getPropertyValue("visibility");
      }
    }
  }

  function MM_dragLayer(objName,x,hL,hT,hW,hH,toFront,dropBack,cU,cD,cL,cR,targL,targT,tol,dropJS,et,dragJS) { //v8.0
    //Copyright 2005 Macromedia, Inc. All rights reserved.
    var i,j,aLayer,retVal,curDrag=null,curLeft,curTop,IE=document.all,NS4=document.layers;
    var NS6=(!IE&&document.getElementById), NS=(NS4||NS6); if (!IE && !NS) return false;
    retVal = true; if(IE && event) event.returnValue = true;
    if (MM_dragLayer.arguments.length > 1) {
      curDrag = fo(objName); if (!curDrag) return false;
      if (!document.allLayers) { document.allLayers = new Array();
        with (document) if (NS4) { for (i=0; i<layers.length; i++) allLayers[i]=layers[i];
          for (i=0; i<allLayers.length; i++) if (allLayers[i].document && allLayers[i].document.layers)
            with (allLayers[i].document) for (j=0; j<layers.length; j++) allLayers[allLayers.length]=layers[j];
        } else {
          if (NS6) { var spns = getElementsByTagName("span"); var all = getElementsByTagName("div");
            for (i=0;i<spns.length;i++) if (MM_getProp(spns[i],'P')) allLayers[allLayers.length]=spns[i];}
          for (i=0;i<all.length;i++) {
  	  if (NS4){if (all[i].style&&all[i].style.position) allLayers[allLayers.length]=all[i];}
            else if (MM_getProp(all[i],'P')) allLayers[allLayers.length]=all[i];
          }
      } }
      curDrag.MM_dragOk=true; curDrag.MM_targL=targL; curDrag.MM_targT=targT;
      curDrag.MM_tol=Math.pow(tol,2); curDrag.MM_hLeft=hL; curDrag.MM_hTop=hT;
      curDrag.MM_hWidth=hW; curDrag.MM_hHeight=hH; curDrag.MM_toFront=toFront;
      curDrag.MM_dropBack=dropBack; curDrag.MM_dropJS=dropJS;
      curDrag.MM_everyTime=et; curDrag.MM_dragJS=dragJS;

      curDrag.MM_oldZ = (NS4)?curDrag.zIndex:MM_getProp(curDrag,'Z');
      curLeft= (NS4)?curDrag.left:MM_getProp(curDrag,'L');
      if (String(curLeft)=="NaN") curLeft=0; curDrag.MM_startL = curLeft;
      curTop = (NS4)?curDrag.top:MM_getProp(curDrag,'T');
      if (String(curTop)=="NaN") curTop=0; curDrag.MM_startT = curTop;
      curDrag.MM_bL=(cL<0)?null:curLeft-cL; curDrag.MM_bT=(cU<0)?null:curTop-cU;
      curDrag.MM_bR=(cR<0)?null:curLeft+cR; curDrag.MM_bB=(cD<0)?null:curTop+cD;
      curDrag.MM_LEFTRIGHT=0; curDrag.MM_UPDOWN=0; curDrag.MM_SNAPPED=false; //use in your JS!
      document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;
      if (NS) document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
    } else {
      var theEvent = ((NS)?objName.type:event.type);
      if (theEvent == 'mousedown') {
        var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
        var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
        var maxDragZ=null; document.MM_maxZ = 0;
        for (i=0; i<document.allLayers.length; i++) { aLayer = document.allLayers[i];
          var aLayerZ = (NS4)?aLayer.zIndex:MM_getProp(aLayer,'Z');
          if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
          var isVisible = ((NS4)?aLayer.visibility:MM_getProp(aLayer,'V')).indexOf('hid') == -1;
          if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
            var parentL=0; var parentT=0;
            if (NS6) { parentLayer = aLayer.parentNode;
              while (parentLayer != null && parentLayer != document && MM_getProp(parentLayer,'P')) {
                parentL += parseInt(MM_getProp(parentLayer,'L')); parentT += parseInt(MM_getProp(parentLayer,'T'));
                parentLayer = parentLayer.parentNode;
                if (parentLayer==document) parentLayer = null;
            } } else if (IE) { parentLayer = aLayer.parentElement;
              while (parentLayer != null && MM_getProp(parentLayer,'P')) {
                parentL += MM_getProp(parentLayer,'L'); parentT += MM_getProp(parentLayer,'T');
                parentLayer = parentLayer.parentElement; } }
            var tmpX=mouseX-((NS4)?pageX:(MM_getProp(aLayer,'L'))+parentL+MM_hLeft);
            var tmpY=mouseY-((NS4)?pageY:(MM_getProp(aLayer,'T'))+parentT+MM_hTop);
            if (String(tmpX)=="NaN") tmpX=0; if (String(tmpY)=="NaN") tmpY=0;
            var tmpW = MM_hWidth;  if (tmpW <= 0) tmpW += (NS4)?clip.width:MM_getProp(aLayer,'W');
            var tmpH = MM_hHeight; if (tmpH <= 0) tmpH += (NS4)?clip.height:MM_getProp(aLayer,'H');
            if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) && (maxDragZ == null
                || maxDragZ <= aLayerZ)) { curDrag = aLayer; maxDragZ = aLayerZ; } } }
        if (curDrag) {
          document.onmousemove = MM_dragLayer; if (NS4) document.captureEvents(Event.MOUSEMOVE);
          curLeft = (NS4)?curDrag.left:MM_getProp(curDrag,'L');
          curTop = (NS4)?curDrag.top:MM_getProp(curDrag,'T');
          if (String(curLeft)=="NaN") curLeft=0; if (String(curTop)=="NaN") curTop=0;
          MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;
          document.MM_curDrag = curDrag;  curDrag.MM_SNAPPED=false;
          if(curDrag.MM_toFront) {
            var newZ = parseInt(document.MM_maxZ)+1;
            eval('curDrag.'+((NS4)?'':'style.')+'zIndex=newZ');
            if (!curDrag.MM_dropBack) document.MM_maxZ++; }
          retVal = false; if(!NS4&&!NS6) event.returnValue = false;
      } } else if (theEvent == 'mousemove') {
        if (document.MM_curDrag) with (document.MM_curDrag) {
          var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
          var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
          var newLeft = mouseX-MM_oldX; var newTop  = mouseY-MM_oldY;
          if (MM_bL!=null) newLeft = Math.max(newLeft,MM_bL);
          if (MM_bR!=null) newLeft = Math.min(newLeft,MM_bR);
          if (MM_bT!=null) newTop  = Math.max(newTop ,MM_bT);
          if (MM_bB!=null) newTop  = Math.min(newTop ,MM_bB);
          MM_LEFTRIGHT = newLeft-MM_startL; MM_UPDOWN = newTop-MM_startT;
          if (NS4) {left = newLeft; top = newTop;}
          else if (NS6){style.left = newLeft + "px"; style.top = newTop + "px";}
          else {style.pixelLeft = newLeft; style.pixelTop = newTop;}
          if (MM_dragJS) eval(MM_dragJS);
          retVal = false; if(!NS) event.returnValue = false;
      } } else if (theEvent == 'mouseup') {
        document.onmousemove = null;
        if (NS) document.releaseEvents(Event.MOUSEMOVE);
        if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS
        if (document.MM_curDrag) with (document.MM_curDrag) {
          if (typeof MM_targL =='number' && typeof MM_targT == 'number' &&
              (Math.pow(MM_targL-((NS4)?left:MM_getProp(document.MM_curDrag,'L')),2)+
               Math.pow(MM_targT-((NS4)?top:MM_getProp(document.MM_curDrag,'T')),2))<=MM_tol) {
            if (NS4) {left = MM_targL; top = MM_targT;}
            else if (NS6) {style.left = MM_targL + "px"; style.top = MM_targT + "px";}
            else {style.pixelLeft = MM_targL; style.pixelTop = MM_targT;}
            MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL-MM_targL; MM_UPDOWN = MM_startT-MM_targT; }
          if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
          if(MM_dropBack) {if (NS4) zIndex = MM_oldZ; else style.zIndex = MM_oldZ;}
          retVal = false; if(!NS) event.returnValue = false; }
        document.MM_curDrag = null;
      }
      if (NS) document.routeEvent(objName);
    } return retVal;
  }




  // ======================================
  // Sets the focus on the first form field
  // ======================================

  function focusFirstField() {

    // Sets the focus on the first textfield
    for (var j=0; j<document.forms.length; j++ ) {
      with(document.forms[j]) {
        if (name != 'login') {
          for (var i=0; i<elements.length; i++) {
            if (elements[i].type == 'text' || elements[i].type == 'file') {
              elements[i].focus();
              return true;
            }
          }
        }
      }
    }

  }


  // =============================================
  // Collection: opens popup window with indexlist
  // =============================================

  function openIndexList(sItemid, sFormName, sInputName, sFieldName) {

    var sProperties = 'toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes';
    var iWidth      = 640;
    var iHeight     = 480;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var sUrl        = '/index.php?option=com_nfm_collection&sub=indexlist&popup=1&Itemid=' + sItemid + '&formname=' + sFormName + '&inputname=' + sInputName + '&fieldname=' + sFieldName;
    var oWin        = window.open(sUrl, 'indexlist', sProperties);
    oWin.focus();

  }


  // =============================================
  // Collection: opens popup window with help text
  // =============================================

  function openHelp(sItem) {

    var sProperties = 'toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes';
    var iWidth      = 640;
    var iHeight     = 480;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var sUrl        = '/index.php?option=com_nfm_collection&sub=help&popup=1&Itemid=&Item=' + sItem;
    var oWin        = window.open(sUrl, 'help', sProperties);
    oWin.focus();

  }


  // =====================================================
  // Collection: opens popup window with TopView help text
  // =====================================================

  function openTopViewHelp() {

	var sProperties = 'toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes';
    var iWidth      = 640;
    var iHeight     = 480;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var sUrl        = '/index.php?option=com_content&task=view&popup=1&id=143';
    var oWin        = window.open(sUrl, 'help', sProperties);
    oWin.focus();
    //alert('Nog niet beschikbaar.');
  }


  // =================================================
  // Collection: opens popup window with action dialog
  // =================================================

  function openAction(sUrl) {

    var sProperties = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no';
    var iWidth      = 480;
    var iHeight     = 320;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var oWin        = window.open(sUrl, 'action', sProperties);
    oWin.focus();

  }


  // ==========================
  // Joomla: opens popup window
  // ==========================

  function openPopup(sUrl) {

    //var sUrl = sUrl + '&amp;popup';
    var sProperties = 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes';
    var iWidth      = 800;
    var iHeight     = 750;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var oWin        = window.open(sUrl, 'action', sProperties);
    oWin.focus();

  }
  
  // ==========================
  // Joomla: opens popup window
  // ==========================

  function openPopupNoToolbars(sUrl) {
    var sProperties = 'toolbar=nu,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes';
    var iWidth      = 800;
    var iHeight     = 750;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var oWin        = window.open(sUrl, 'action', sProperties);
    oWin.focus();

  }


  // ===================
  // Opens topview popup
  // ===================

  function openTopview(sCollectionId, sRecordId) {

    var sProperties = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no';
    var iWidth      = 800;
    var iHeight     = 600;
    var iLeft       = (screen.availWidth - iWidth) / 2;
    var iTop        = (screen.availHeight - iHeight) / 2;
    var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
    var sUrl        = '/index.php?option=com_nfm_collection&sub=topview&topview=1&collection_id=' + sCollectionId + '&record_id=' + sRecordId;
    var oWin        = window.open(sUrl, 'topview', sProperties);
    oWin.focus();

  }



  // ===========================================
  // Fills a text field with the specified value
  // ===========================================

  function fillTextWithIndex(sValue, sFormName, sInputName) {

    if (window.opener && !window.opener.closed) window.opener.document[sFormName][sInputName].value = sValue;
    top.window.close();

  }


  // ===============================
  // Shows / hides login form on top
  // ===============================

  function toggleLogin() {

    var oDivLogin = document.getElementById('login_form');
    if (oDivLogin.style.display == 'block') {
      oDivLogin.style.display = 'none';
    } else {
      oDivLogin.style.display = 'block';
      document.form_login.username.focus();
    }

  }



  // ===========================================================
  // Shows a popup via which an image can be downloaded if MaxDownloadResolution > 100
  // ===========================================================

  function download(iCollectionID, iRecordID) {

    sUrl = '/index.php?option=com_nfm_collection&popup=1&sub=download&iCollectionID=' + iCollectionID + '&iRecordID=' + iRecordID;
    openAction(sUrl);

  }

  // =======================================
  // Performs a task on the selected records
  // =======================================

  function selection (sTask, sFolderId) {

    // Create string with record_ids in the format '1286_1288_1299_1330'
    var iCounter = 0;
    var aRecordIds = new Array();
    with(document.form_result) {
      for (var i=0; i<elements.length; i++) {
        if (elements[i].name.substring(0,6)=='record') {
          if (elements[i].checked) {
            var a = elements[i].name.split('_');
            var sCollectionID = a[1];
            var sRecordID = a[2];
            aRecordIds[iCounter] = sRecordID;
            iCounter++;
          }
        }
      }
    }
    var sRecordIds = aRecordIds.join('_');

    // Perform task
    switch (sTask) {
      case 'addToFavorites':
        if(sRecordIds == '') {
            alert('Geen records geselecteerd! / No records selected!')
        }
        else {
            favorite(sCollectionID, sRecordIds, 'add', '');
        }
        break;
      case 'addToShoppingcart':
        if(sRecordIds == '') {
            alert('Geen records geselecteerd! / No records selected!')
        }
        else {
            shoppingcart(sCollectionID, sRecordIds, 'add');
        }
        break;
      case 'removeFromFavorites':
        if(sRecordIds == '') {
            alert('Geen records geselecteerd! / No records selected!')
        }
        else {
            favorite(sCollectionID, sRecordIds, 'remove', sFolderId);
        }
        break;
      case 'moveFavorites':
        if(sRecordIds == '') {
            alert('Geen records geselecteerd! / No records selected!')
        }
        else {
      	     favorite(sCollectionID, sRecordIds, 'move', sFolderId);
        }
      	break;
    }


  }


  //
  function showFavorites(sFolder, bModule) {

    var sFormName = bModule ? 'form_favorites_module' : 'form_favorites';
    document.forms[sFormName].folder.value = sFolder;
    document.forms[sFormName].submit();

  }
  
  function showMyExpositions(sFolder) {
  	var sFormName = 'form_my_expositions';
  	document.forms[sFormName].folder.value = sFolder;
  	document.forms[sFormName].submit();
  }


  // ===========================================================
  // Adds or removes one or more records from / to the favorites
  // ===========================================================

  function favorite(sCollectionId, sRecordIds, sTask, sFolderId) {

    /*sTask = 'folder';*/
    sUrl = '/index.php?option=com_nfm_collection&popup=1&sub=favorites_actions&task=' + sTask + '&collection_id=' + sCollectionId + '&record_ids=' + sRecordIds + '&folder_id=' + sFolderId;

		openAction(sUrl);
  }

  
  // ==============================================================
  // Adds or removes one or more records from / to "My expositions"
  // ==============================================================

  function myWebCollection(sRecordId) {
    /*sTask = 'folder';*/
    sUrl = '/index.php?option=com_nfm_my_expositions&popup=1&sub=addFromPopup&record_id=' + sRecordId;
		openAction(sUrl);
  }
  

  // ==============================================================
  // Adds or removes one or more records from / to the shoppingcart
  // ==============================================================

  function shoppingcart(sCollectionId, sRecordIds, sTask) {

    sUrl = '/index.php?option=com_nfm_collection&popup=1&sub=shoppingcart_actions&task=' + sTask + '&collection_id=' + sCollectionId + '&record_ids=' + sRecordIds;
    openAction(sUrl);

  }

	function shoppingcart_product(sPrId, sTask) {
		sUrl = '/index.php?option=com_webwinkel&popup=1&task=' + sTask + '&id=' + sPrId;
		//alert(sUrl);
    openAction(sUrl);
	}


  // =====================
  // Closes current window
  // =====================

  function closeWindow() {

    top.window.close();

  }



  function selectAllRecords(bNewState) {

    var a = document.getElementsByTagName('input');
    for(var i=0; i<a.length; i++) {
      var oElement = a[i];
      var sElementName = oElement.name;
      if(sElementName.substring(0, 7) == 'record_') {
        oElement.checked = bNewState;
      }
    }

  }
















  function isEmpty(oText) {

    s = oText.value;
    if (s.length==0) return true;
    for (var i=0; i<s.length; i++) {
      bIsSpace          = (s.charAt(i) == ' ');
      bIsNewline        = (s.charAt(i).charCodeAt(0) == 10);
      bIsCarriageReturn = (s.charAt(i).charCodeAt(0) == 13);
      if ((!bIsSpace) && (!bIsNewline) && (!bIsCarriageReturn)) return false;
    }
    oText.value = '';
    return true;

  }

  function isEmail(oText) {

  	s = oText.value;
  	var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
  	return(email.test(s));

  }


  function isInteger(oText) {

  	s = oText.value;
  	var integer=/(^-?\d\d*$)/;
  	return(integer.test(s));

  }


  function getEmail(s1, s2, s3, sClass) {

    sEmail = s1 + '@' + s2 + '.' + s3;
    document.write('<a class="' + sClass + '" href="mailto:' + sEmail + '">' + sEmail + '</a>');

  }


function rotate(a,s,b){
    oImg = document.getElementById(s);
    // Change the image
    for(i=0;i<a.length;i++){
      if(a[i][0]==oImg.src){
        j = b ? ((i+1)<a.length?i+1:0) : ((i-1)<0?a.length-1:i-1);
        if(a[j][0]!=''){
          oImg.src = a[j][0];
          // Change the toolbar-items. That is if there are any!
          for(k=0;k<aActions.length;k++){
            // Fill the container with something else if the container exsists
            o = document.getElementById(aActions[k]+s);
            if(o) o.innerHTML = a['actions'][j][k];
          }
        }
        break;
      }
    }
  }

  function erase(node){
    if(node.type=='text') node.value='';
  }

  function traverse(node,action){
    //document.documentElement is the root of a HTML-document
    if(node){
      eval(action);
      if (node.childNodes != null) {
        for (var i=0; i < node.childNodes.length; i++) {
          traverse(node.childNodes.item(i),action);
        }
      }
    }
  }

  function getScreenWidth(){
    var oRoot = document.documentElement;
    var oBody = document.body;
    return window.innerWidth?(window.innerWidth-18):((oRoot&&oRoot.clientWidth)?oRoot.clientWidth:((oBody&&oBody.clientWidth)?oBody.clientWidth:0));
  }

  function getScreenHeight(){
    var oRoot = document.documentElement;
    var oBody = document.body;
    return window.innerHeight?(window.innerHeight-0):((oRoot&&oRoot.clientHeight)?oRoot.clientHeight:((oBody&&oBody.clientHeight)?oBody.clientHeight:0));
  }

  function getScrollX(){
    var oRoot = document.documentElement;
    var oBody = document.body;
    return (typeof(window.pageXOffset)=='number')?window.pageXOffset:((oRoot&&oRoot.scrollLeft)?oRoot.scrollLeft:((oBody&&oBody.scrollLeft)?oBody.scrollLeft:(window.scrollX?window.scrollX:0)));
  }

  function getScrollY(){
    var oRoot = document.documentElement;
    var oBody = document.body;
    return (typeof(window.pageYOffset)=='number')?window.pageYOffset:((oRoot&&oRoot.scrollTop)?oRoot.scrollTop:((oBody&&oBody.scrollTop)?oBody.scrollTop:(window.scrollY?window.scrollY:0)));
  }

  function setTooltipPos(e){
    o = document.getElementById('tt');

    var iWidth   = getScreenWidth();
    var iHeight  = getScreenHeight();
    var iScrollX = getScrollX();
    var iScrollY = getScrollY();
    var iOffsetX = 20;
    var iOffsetY = 20;

    if(arguments.length==1){
      e = e ? e: window.event;
      if (!e.preventDefault) e.preventDefault = function () { return false; }
      if (!e.stopPropagation) e.stopPropagation = function () { if (window.event) window.event.cancelBubble = true; }
    }

    var x=e.pageX?e.pageX:e.clientX+iScrollX;
    var y=e.pageY?e.pageY:e.clientY+iScrollY;

    if((x+o.offsetWidth+iOffsetX>iWidth+iScrollX)&&(y+o.offsetHeight+iOffsetY>iHeight+iScrollY)){
      x=(iWidth+iScrollX)-o.offsetWidth;
      if(x<0)x=0;
      y=y-o.offsetHeight-iOffsetY;
      if(y<iScrollY)y=iHeight+iScrollY-o.offsetHeight;
    } else {
      if(x+o.offsetWidth+iOffsetX>iWidth+iScrollX){
        x=(iWidth+iScrollX)-o.offsetWidth;
        if(x<0)x=0;
      }else x=x+iOffsetX;
      if(y+o.offsetHeight+iOffsetY>iHeight+iScrollY){
        y=(iHeight+iScrollY)-o.offsetHeight;
      }else y=y+iOffsetY;
    }

    o.style.left = x + 'px';
    o.style.top  = y + 'px';
  }

  function hideTooltip(e){
    if(window.setTooltipPos){
      removeEventListener('mousemove',setTooltipPos,true);
      //removeEventListener(document,'click',setTooltipPos,true);
    }
    oDiv = document.getElementById('tt');
    if(oDiv){
      oDiv.style.top     = '-999px';
      oDiv.style.left    = '-999px';
      oDiv.style.display = 'none';
    }
  }

  function showTooltip(o,s){
  
  
  
   if(document.getElementById(s)){
   
   //set the onmouseout action for object o
    o.onmouseout = hideTooltip;
    //create the tooltip-div if it is not already there
    if(!document.getElementById('tt') && document.createElement&&document.body && typeof(document.body.appendChild) != 'undefined'){
   
      var el=document.createElement('DIV');
      el.id             = 'tt';
      el.className      = 'tooltip';
      el.style.position = 'absolute';
      el.style.zIndex   = '999';
      el.style.display  = 'none';
      el.style.top      = '-999px';
      el.style.left     = '-999px';
      document.body.appendChild(el);
    }else if(!document.getElementById('tt'))return;
    
    
	if ( document.addEventListener ) {
		o.addEventListener('mousemove', setTooltipPos, true);
	} else {
		// IE
		o.attachEvent('onmousemove', setTooltipPos);
    }    
    // o.addEventListener('mousemove',setTooltipPos,true);
    
    //copy html to tooltip div
    
    document.getElementById('tt').innerHTML = document.getElementById(s).innerHTML;
    
    document.getElementById('tt').style.display='';



    //if(oTimer){clearTimeout(oTimer);oTimer=0;}
    //oTimer=setTimeout('bShow=true;',2000);
    }
  }
  
function openInterfacePopup(sUrl, sAlbumId, sLanguage) {
	var sProperties = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes';
	var iWidth= screen.availWidth - 100;
	var iHeight = screen.availHeight - 100;
	var iLeft = (screen.availWidth - iWidth) / 2;
	var iTop= (screen.availHeight - iHeight) / 2;
	var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
	var sUrl= sUrl + '/index.php?option=com_nfm_album&task=viewer&album_id=' + sAlbumId + '&lang=' + sLanguage;
	var oWin= window.open(sUrl, 'albumviewer', sProperties);
	oWin.focus();
}


window.addEvent('domready', function() {
	// if show or hide description button is clicked - toggle display of description intro and full tags
	$$('.highlightedShowDescription').addEvent('click', function(event) {
		event = new Event(event).stop();
		if ($$('.descriptionIntro').getStyle('display') == 'none') {
			$$('.descriptionIntro').setStyle('display', 'block');
			$$('.descriptionFull').setStyle('display', 'none');
		} else {
			$$('.descriptionIntro').setStyle('display', 'none');
			$$('.descriptionFull').setStyle('display', 'block');
		}
		return false;
	});
});