function formEmailType() {
  $display  = (document.getElementById('send_mail').value == '1')? 'table-row' : 'none';
  $text_html  = document.getElementById('mail_type').value;
  document.getElementById('tr_mail_type').style.display = $display;
  document.getElementById('tr_subject').style.display = $display;
  document.getElementById('tr_message_text').style.display = ($text_html!='html')? $display : 'none';
  document.getElementById('tr_message_html').style.display = ($text_html=='html')? $display : 'none';
}
function showHide($value_field, $hide_field, $show_value, $display_type) {
  $display = (document.getElementById($value_field).value == $show_value)? $display_type : 'none';
  document.getElementById($hide_field).style.display = $display;
}
function editContent($lang) {
  $i = 0;
  if (document.getElementById('edit_lang_nl').checked) {
    $i++;
  }
  if (document.getElementById('edit_lang_en').checked) {
    $i++;
  }
  if (document.getElementById('edit_lang_de').checked) {
    $i++;
  }
  if (document.getElementById('edit_lang_fr').checked) {
    $i++;
  }
  $display = (document.getElementById('edit_lang_' + $lang).checked)? 'table-row' : 'none';
  document.getElementById('tr_content_' + $lang).style.display = $display;
}

function CollapseExpandMenu(img, ul) {
  if (img.src.search(/collapse.png/i) != -1) {
    img.src = '/cms_config/images/backend/nl/expand.png';
    document.getElementById(ul).style.display = '';
  } else {
    img.src = '/cms_config/images/backend/nl/collapse.png';
    document.getElementById(ul).style.display = 'none';
  }
}
function maxChars(field, counter, limit) {
  current_length = field.value.length;
  display_counter  = ((limit - current_length) > 0)? limit - current_length : 0;
  if (current_length > limit) {
    field.value = field.value.substr(0, limit);
  }
  counter.innerHTML = (display_counter == 1)? display_counter + " teken" : display_counter + " tekens";
}
function maxWords(field, counter, limit, split_char) {
  field_split    = field.value.split(split_char);
  current_length  = field_split.length;
  display_counter  = ((limit - current_length) > 0)? limit - current_length : 0;
  check_length  = (current_length > limit)? limit : current_length;
  if (current_length > limit) {
    sub_length  = 0;
    for (i=0; i < limit; i++) {
      sub_length += field_split[i].length + 1;
    }
    sub_length--;
    field.value = field.value.substr(0, sub_length);
  }
  if (field_split[check_length - 1].length == 0) { display_counter++; }
  counter.innerHTML = (display_counter == 1)? display_counter + " woord" : display_counter + " woorden";
}
function hotKeys (event) {

var keyActions = new Array ();

keyActions [0] = {character:  "2", 
                  actionType: "link", 
                  param:      "/login"};
          
keyActions [1] = {character:  "3", 
                  actionType: "link",
                  param:      "/cms_config/index.php?switchfromfront=1"};

keyActions [2] = {character:  "L", 
                  actionType: "code", 
                  param:      "toggle_login();"};

  // Get details of the event dependent upon browser
  event = (event) ? event : ((window.event) ? event : null);
  
  // We have found the event.
  if (event) {   
    
    // Hotkeys require that either the control key or the alt key is being held down
    if (event.ctrlKey || event.altKey || event.metaKey) {

  // Pick up the Unicode value of the character of the depressed key.
      var charCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode);
      
      // Convert Unicode character to its lowercase ASCII equivalent
      var myChar = String.fromCharCode (charCode).toLowerCase();
      
      // Convert it back into uppercase if the shift key is being held down
      if (event.shiftKey) {myChar = myChar.toUpperCase();}
          
      // Now scan through the user-defined array to see if character has been defined.
      for (var i = 0; i < keyActions.length; i++) {

    // See if the next array element contains the Hotkey character
        if (keyActions[i].character == myChar) { 
      
          // Yes - pick up the action from the table
          var action;
          
          // If the action is a hyperlink, create JavaScript instruction in an anonymous function
          if (keyActions[i].actionType.toLowerCase() == "link") {
            action = new Function ('location.href  ="' + keyActions[i].param + '"');
          }
            
          // If the action is JavaScript, embed it in an anonymous function
          else if (keyActions[i].actionType.toLowerCase()  == "code") {
            action = new Function (keyActions[i].param);
          }

          // Error - unrecognised action.
          else {
            alert ('Hotkey Function Error: Action should be "link" or "code"');
            break;
          }
          // At last perform the required action from within an anonymous function.
          action ();
         
          // Hotkey actioned - exit from the for loop.
          break;
        }
      }
    }
  }
}
// Start datepicker
var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";
// these variables define the date formatting we're expecting and outputting.
// If you want to use a different format by default, change the defaultDateSeparator
// and defaultDateFormat variables either here or on your HTML page.
var defaultDateSeparator = "-";        // common values would be "/" or "."
var defaultDateFormat = "dmy"    // valid values are "mdy", "dmy", and "ymd"
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;

function displayDatePicker(dateFieldName, dateSaveFieldName, displayBelowThisObject, dtFormat, dtSep)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
 
  // if we weren't told what node to display the datepicker beneath, just display it
  // beneath the date field we're updating
  if (!displayBelowThisObject)
    displayBelowThisObject = targetDateField;
 
  // if a date separator character was given, update the dateSeparator variable
  if (dtSep)
    dateSeparator = dtSep;
  else
    dateSeparator = defaultDateSeparator;
 
  // if a date format was given, update the dateFormat variable
  if (dtFormat)
    dateFormat = dtFormat;
  else
    dateFormat = defaultDateFormat;
 
  var x = displayBelowThisObject.offsetLeft;
  var y = displayBelowThisObject.offsetTop + displayBelowThisObject.offsetHeight ;
 
  // deal with elements inside tables and such
  var parent = displayBelowThisObject;
  while (parent.offsetParent) {
    parent = parent.offsetParent;
    x += parent.offsetLeft;
    y += parent.offsetTop ;
  }
 
  drawDatePicker(targetDateField, x, y);
}

function drawDatePicker(targetDateField, x, y)
{
  var dt = getFieldDate(targetDateField.value );

  if (!document.getElementById(datePickerDivID)) {
    var newNode = document.createElement("div");
    newNode.setAttribute("id", datePickerDivID);
    newNode.setAttribute("class", "dpDiv");
    newNode.setAttribute("style", "visibility: hidden;");
    document.body.appendChild(newNode);
  }
 
  // move the datepicker div to the proper x,y coordinate and toggle the visiblity
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.position = "absolute";
  pickerDiv.style.left = x + "px";
  pickerDiv.style.top = y + "px";
  pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
  pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
  pickerDiv.style.zIndex = 10000;
 
  // draw the datepicker table
  refreshDatePicker(targetDateField.name, dt.getFullYear(), dt.getMonth(), dt.getDate());
}


/**
This is the function that actually draws the datepicker calendar.
*/
function refreshDatePicker(dateFieldName, year, month, day)
{
  var dayArrayShort    = new Array('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za');
  var dayArrayMed    = new Array('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za');
  var dayArrayLong    = new Array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
  var monthArrayShort  = new Array('Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
  var monthArrayMed    = new Array('Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec');
  var monthArrayLong  = new Array('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');
  var buttonToday    = 'Vandaag';
  var buttonClose    = 'Sluiten';
  var buttonNone    = 'Geen datum';
  // if no arguments are passed, use today's date; otherwise, month and year
  // are required (if a day is passed, it will be highlighted later)
  var thisDay = new Date();
 
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }

  var crlf = "\r\n";
  var TABLE = "<table cols=7 class='dpTable'>" + crlf;
  var xTABLE = "</table>" + crlf;
  var TR = "<tr class='dpTR'>";
  var TR_title = "<tr class='dpTitleTR'>";
  var TR_days = "<tr class='dpDayTR'>";
  var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
  var xTR = "</tr>" + crlf;
  var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
  var TD_title = "<td colspan=5 class='dpTitleTD'>";
  var TD_buttons = "<td class='dpButtonTD'>";
  var TD_todaybutton = "<td colspan=7 class='dpTodayButtonTD'>";
  var TD_days = "<td class='dpDayTD'>";
  var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
  var xTD = "</td>" + crlf;
  var DIV_title = "<div class='dpTitleText'>";
  var DIV_selected = "<div class='dpDayHighlight'>";
  var xDIV = "</div>";
 
  // start generating the code for the calendar table
  var html = TABLE;
 
  // this is the title bar, which displays the month and the buttons to
  // go back to a previous month or forward to the next month
  html += TR_title;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, -1, "&lt;") + xTD;
  html += TD_title + DIV_title + monthArrayLong[ thisDay.getMonth()] + " " + thisDay.getFullYear() + xDIV + xTD;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, 1, "&gt;") + xTD;
  html += xTR;
 
  // this is the row that indicates which day of the week we're on
  html += TR_days;
  
  for(i = 0; i < dayArrayShort.length; i++)
    html += TD_days + dayArrayShort[i] + xTD;
  html += xTR;
 
  // now we'll start populating the table with days of the month
  html += TR;
 
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++)
    html += TD + "&nbsp;" + xTD;
 
  // now, the days of the month
  do {
    dayNum = thisDay.getDate();
    TD_onclick = " onclick=\"updateDateField('" + dateFieldName + "', '" + getDateString(thisDay) + "');\">";
    
    if (dayNum == day)
      html += TD_selected + TD_onclick + DIV_selected + dayNum + xDIV + xTD;
    else
      html += TD + TD_onclick + dayNum + xTD;
    
    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6)
      html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--)
      html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  // add a button to allow the user to easily return to today, or close the calendar
  var today = new Date();
  var todayString = "Today is " + dayArrayMed[today.getDay()] + ", " + monthArrayMed[ today.getMonth()] + " " + today.getDate();
  html += TR_todaybutton + TD_todaybutton;
  html += "<button class='dpTodayButton' onClick='refreshDatePicker(\"" + dateFieldName + "\");'>" + buttonToday + "</button> ";
  html += "<button class='dpTodayButton' onClick='updateDateField(\"" + dateFieldName + "\");'>" + buttonClose + "</button>";
  html += "<button class='dpTodayButton' onClick='document.getElementById(\"" + dateFieldName + "\").value = \"Geen datum\";'>" + buttonNone + "</button>";
  html += xTD + xTR;
 
  // and finally, close the table
  html += xTABLE;
 
  document.getElementById(datePickerDivID).innerHTML = html;
  // add an "iFrame shim" to allow the datepicker to display above selection lists
  adjustiFrame();
}


/**
Convenience function for writing the code for the buttons that bring us back or forward
a month.
*/
function getButtonCode(dateFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
 
  return "<button class='dpButton' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</button>";
}


/**
Convert a JavaScript Date object to a string, based on the dateFormat and dateSeparator
variables at the beginning of this script library.
*/
function getDateString(dateVal)
{
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);
  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
 
  switch (dateFormat) {
    case "dmy" :
      return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
    case "ymd" :
      return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
    case "mdy" :
    default :
      return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
  }
}


/**
Convert a string to a JavaScript Date object.
*/
function getFieldDate(dateString)
{
  var dateVal;
  var dArray;
  var d, m, y;
 
  try {
    dArray = splitDateString(dateString);
    if (dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
        case "ymd" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          break;
        case "mdy" :
        default :
          d = parseInt(dArray[1], 10);
          m = parseInt(dArray[0], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
      }
      dateVal = new Date(y, m, d);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
 
  return dateVal;
}


/**
Try to split a date string into an array of elements, using common date separators.
If the date is split, an array is returned; otherwise, we just return false.
*/
function splitDateString(dateString)
{
  var dArray;
  if (dateString.indexOf("/") >= 0)
    dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0)
    dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0)
    dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0)
    dArray = dateString.split("\\");
  else
    dArray = false;
 
  return dArray;
}

function updateDateField(dateFieldName, dateString)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
  if (dateString)
    targetDateField.value = dateString;
 
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.visibility = "hidden";
  pickerDiv.style.display = "none";
 
  adjustiFrame();
  targetDateField.focus();
 
  // after the datepicker has closed, optionally run a user-defined function called
  // datePickerClosed, passing the field that was just updated as a parameter
  // (note that this will only run if the user actually selected a date from the datepicker)
  if ((dateString) && (typeof(datePickerClosed) == "function"))
    datePickerClosed(targetDateField);
}



function adjustiFrame(pickerDiv, iFrameDiv)
{
  // we know that Opera doesn't like something about this, so if we
  // think we're using Opera, don't even try
  var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
  if (is_opera)
    return;
  
  // put a try/catch block around the whole thing, just in case
  try {
    if (!document.getElementById(iFrameDivID)) {
      // don't use innerHTML to update the body, because it can cause global variables
      // that are currently pointing to objects on the page to have bad references
      //document.body.innerHTML += "<iframe id='" + iFrameDivID + "' src='javascript:false;' scrolling='no' frameborder='0'>";
      var newNode = document.createElement("iFrame");
      newNode.setAttribute("id", iFrameDivID);
      newNode.setAttribute("src", "javascript:false;");
      newNode.setAttribute("scrolling", "no");
      newNode.setAttribute ("frameborder", "0");
      document.body.appendChild(newNode);
    }
    
    if (!pickerDiv)
      pickerDiv = document.getElementById(datePickerDivID);
    if (!iFrameDiv)
      iFrameDiv = document.getElementById(iFrameDivID);
    
    try {
      iFrameDiv.style.position = "absolute";
      iFrameDiv.style.width = pickerDiv.offsetWidth;
      iFrameDiv.style.height = pickerDiv.offsetHeight ;
      iFrameDiv.style.top = pickerDiv.style.top;
      iFrameDiv.style.left = pickerDiv.style.left;
      iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
      iFrameDiv.style.visibility = pickerDiv.style.visibility ;
      iFrameDiv.style.display = pickerDiv.style.display;
    } catch(e) {
    }
 
  } catch (ee) {
  }
 
}
// End date picker

function collapse(id,menu,action,open) {
  if (action == "plus") {
    document.getElementById("min"+id).style.display = "none";
    document.getElementById("plus"+id).style.display = "inline-block";
    document.getElementById("submenu"+menu).style.display = "block";
  }else{
    document.getElementById("min"+id).style.display = "inline-block";
    document.getElementById("plus"+id).style.display = "none";
    document.getElementById("submenu"+menu).style.display = "none";
  }
}

function Set_Cookie(name, value, expires, path, domain, secure)
{
  // set time, it's in milliseconds
  var today = new Date();
  today.setTime( today.getTime() );
  
  /*
  if the expires variable is set, make the correct
  expires time, the current script below will set
  it for x number of days, to make it for hours,
  delete * 24, for minutes, delete * 60 * 24
  */
  if ( expires )
  {
    expires = expires * 1000 * 60 * 60 * 24;
  }
  var expires_date = new Date( today.getTime() + (expires) );
  
  document.cookie = name + "=" +escape( value ) +
  ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
  ( ( path ) ? ";path=" + path : "" ) +
  ( ( domain ) ? ";domain=" + domain : "" ) +
  ( ( secure ) ? ";secure" : "" );
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') {
      c = c.substring(1,c.length);
    }
    if (c.indexOf(nameEQ) == 0) {
      return c.substring(nameEQ.length,c.length);
    }
  }
  return null;
}
function returnCookieKeys(subkey, value) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  var ret_keys  = "";
  var splitter  = "";
  for (var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') {
      c = c.substring(1,c.length);
    }
    if (c.indexOf(subkey) == 0) {
      parts  = c.split("=");
      if (parts[1] == "expand") {
        ret_keys += splitter + parts[0];
        splitter  = ","
      }
    }
  }
  return ret_keys;
}
function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict; 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {                return true;
            }
        }
    }
     return false;
}
function toggleCategory(img, tableID) {
  if (img.src.search(/expand_white.png/) !== -1) {
    img.src = '/cms_config/images/backend/nl/collapse_white.png';
    $(tableID).style.display = '';
    $('div a');
    Set_Cookie("cc_" + tableID, "expand");
  } else {
    img.src = '/cms_config/images/backend/nl/expand_white.png';
    $(tableID).style.display = 'none';
    Set_Cookie("cc_" + tableID, "collapse");
  }
}

// Expanding and collapsing of blocks
window.addEvent('domready', function() {
  // Set some default values for blocks
  var expandedByDefault = new Array('page', 'welcome', 'my_account', 'change_password', 'change_account', 'administrator', 'menu', 'templates', 'modules', 'plugins', 'users', 'form_manager', 'settings', 'help', 'social_media', 'videos', 'custom_user_rights');
  var excludedBlocks    = new Array('login', 'language_block');
  
  // Retrieve pageID from URL
  var urlParts = location.pathname.split('/');
  var pageID = (!urlParts || isNaN(urlParts[4])) ? null : urlParts[4];
  
  // Currently sliding
  var currentlySliding = new Array();
  
  // Add expand or collapse image to the titles on the page
  var titles = $$('div.block div.title');
  var contentSlides = new Array();
  titles.each(function(item) {
    if (in_array(item.parentNode.id, excludedBlocks)) return;
    
    // Create an identifier based on blockID and pageID (except for menus)
    var isMenu = item.parentNode.parentNode.id == 'left';
    var identifier = (isMenu || pageID == null) ? 'toggle_' + item.parentNode.id : 'toggle_' + item.parentNode.id + '_' + pageID;
    
    // Is the block expanded or collapsed (based on cookie, defaults and menu)
    var cookie = readCookie(identifier);
    var expandedOrCollapsed = (cookie !== null && (cookie == 'expanded' || cookie == 'collapsed'))
      ? cookie
      : (in_array(item.parentNode.id, expandedByDefault) || isMenu)
        ? 'expanded'
        : 'collapsed';
    
    // Add expand/collapse image
    var expandOrCollapse = (expandedOrCollapsed == 'expanded') ? 'collapse' : 'expand';
    item.innerHTML = '<img src="/cms_config/images/backend/nl/' + expandOrCollapse + '_grey_light.png" class="toggle" id="' + identifier + '" />' + item.innerHTML;
    item.addClass('pointer');
    
    // Possibly hide the content block
    // IE solution? var contentBlock = $$('#' + item.parentNode.id + ' .content');
    var contentBlock = $(item.parentNode.id).getElement('div.content');
    var contentSlide = new Fx.Slide(contentBlock);
    if (expandedOrCollapsed == 'collapsed') {
      contentSlide.hide();
    } else {
      contentBlock.parentNode.style.overflow = 'visible';
    }
    
    // Show or hide the content block when a title is clicked
    item.addEvent('click', function(e) {
      // Change image to expand or collapse
      var expandOrCollapse    = (contentSlide.open) ? 'expand' : 'collapse';
      this.getElement('img').src = '/cms_config/images/backend/nl/' + expandOrCollapse + '_grey_light.png';
      
      // Set cookie
      var expandedOrCollapsed = (contentSlide.open) ? 'collapsed' : 'expanded';
      Set_Cookie(identifier, expandedOrCollapsed, 0, '/', '', '');
      
      // Toggle element
      if (!currentlySliding[identifier]) {
        currentlySliding[identifier] = true;
        if (contentSlide.open) {
          contentBlock.parentNode.style.overflow = 'hidden';
          contentSlide.slideOut('vertical').chain(function() {
            currentlySliding[identifier] = false;
          });
        } else {
          contentSlide.slideIn('vertical').chain(function() {
            currentlySliding[identifier] = false;
            contentBlock.parentNode.style.overflow = '';
            contentBlock.parentNode.style.height   = '';
          });
        }
      }
    });
  });
});

function toggleBlock(image, identifier)
{
  // Read cookie and set expanded or collapsed
  var cookie = readCookie(identifier);
  var expandedOrCollapsed = (cookie !== null && (cookie == 'expanded' || cookie == 'collapsed')) ? cookie : 'collapsed';
  
  // Expand or collapse block and set image
  var block = document.getElementById(identifier);
  block.style.display  = (expandedOrCollapsed == 'expanded') ? 'none' : 'block';
  var expandOrCollapse = (expandedOrCollapsed == 'expanded') ? 'expand' : 'collapse';
  image.src = '/cms_config/images/backend/nl/' + expandOrCollapse + '_grey.png';
  
  // Set cookie
  expandedOrCollapsed = (expandedOrCollapsed == 'expanded') ? 'collapsed' : 'expanded';
  Set_Cookie(identifier, expandedOrCollapsed, 0, '/', '', '');
}

function hideContent(id) {
  document.getElementById(id + '_up').style.visibility = "hidden";
  document.getElementById(id + '_down').style.visibility = "hidden";
}

function showContent(id) {
  document.getElementById(id + '_up').style.visibility = "visible";
  document.getElementById(id + '_down').style.visibility = "visible";
}

function switchView(close_id, open_id, field_id) {
  document.getElementById(close_id).style.display  = 'none';
  document.getElementById(open_id).style.display  = '';
  if (field_id != '') {
    document.getElementById(field_id).focus();
  }
}
function saveAjax(field_id, old_value, description_confirm, request_file, request1_var, request2_vars, request2_refresh_id, close_id, open_id) {
  if (document.getElementById(field_id).value != old_value && confirm(description_confirm) && doRequest(request_file, 'displayError', request1_var.replace("||new_value||", document.getElementById(field_id).value), false, false)) { 
    doRequest(request_file, 'displayHTML', request2_vars, request2_refresh_id); 
  } else { 
    document.getElementById(close_id).style.display = 'none'; 
    document.getElementById(open_id).style.display = ''; 
    document.getElementById(field_id).value = old_value; 
  }
}

// Close exceptions and messages
window.onload = function() {
  var closes = $$('div.block div.content div.exception span.close');
  
  closes.each(function(item) {
    var close = function() {
      this.parentNode.style.display = 'none';
    }
    item.onclick = close;
  });
}

  jQuery.noConflict();
  
  (function($) {
    
    $(document).ready(function() {
      
      // alert
      //if($('#div_msg').length > 0) {
      //  $('#div_msg').dialog({
      //    buttons: { 
      //      "Ok": function() { 
      //        $(this).dialog("close");
      //      }
      //    },
      //    modal: true,
      //    open: function(event, ui) {
      //      $('.ui-dialog-buttonpane button[type=button]:first').focus();
      //    }
      //  });
      //}
      
      // logboek
      $('#table_log_entrys input[type=checkbox]').change(function () {
        if($(this).attr('checked')) {
          $('#td_logentry_'+$(this).val()).show();
        } else {
          $('#td_logentry_'+$(this).val()).hide();
        }
      });
      
      $('#input_logentrys_checkall').click(function() {
        if($(this).attr('checked')) {
          $('.tr_log_entry input[type=checkbox]').attr('checked', 'checked').change();
        } else {
          $('.tr_log_entry input[type=checkbox]').removeAttr('checked').change();
        }
      });
      
      
    });
    
  })(jQuery);
