	function menu_toggle(id) {
		$("#catalognavigation ul ul:visible").not("#" + id).hide("slow");
		$("#catalognavigation ul ul:visible").not("#" + id).parent().removeClass("expanded");
		$("#" + id).parent().toggleClass("expanded");
		$("#" + id).toggle("slow");
	}

	function submenu_toggle(id) {
		$("#catalognavigation ul ul ul:visible").not("#" + id).hide("slow");
		$("#" + id).parent().toggleClass("expanded");
		$("#" + id).toggle("slow");
	}

	function LoadCatalogMenu(categoryId, mode) {
	  $.ajax({
	    type: "POST",
	    contentType: "application/json; charset=utf-8",
	    url: "/InfotheekService.asmx/GetCatalogMenuHtml",
	    dataType: "json",
	    data: "{'categoryId':'" + categoryId + "', 'mode':'" + mode + "'}",
	    success:
   function (data) {
     $('#catalog_menu').html(data.d);

     //set mode
     if (mode == 0) {
       $("#lnk_expand_menu").hide();
       $("#lnk_collapse_menu").show();
     }
     else {
       $("#lnk_expand_menu").show();
       $("#lnk_collapse_menu").hide();
     }

     //fix menu
     $("ul.level2>li:last").css("border-bottom", "0px solid #fff");
     $("ul.level2>li:last").find("ul.level3").css("border-bottom", "0px solid #fff");

   },
	    error:
   function (XMLHttpRequest, textStatus, errorThrown) {
     alert("Unknow error! Message: " + textStatus);
   }
	  });
	}


	function ShowExtended() {
	  $("#extendedspecification").show();
	  $("#basic_info").hide();
	  $(".togglespecification_normal").toggle();
	  $(".togglespecification_extended").toggle();
	}

	function HideExtended() {
	  $("#extendedspecification").hide();
	  $("#basic_info").show();
	  $(".togglespecification_normal").toggle();
	  $(".togglespecification_extended").toggle();
	}

	function collapse(id) {
	  $("#" + id).hide('slide', { direction: 'up' }, 'slow');
	}

	function expand(id) {
	  $("#" + id).show('slide', { direction: 'up' }, 'slow');

	}

	function toggle_product(id) {
	  if ($("#" + id).is(":visible")) {
	    collapse(id);
	  }
	  else {
	    expand(id);
	  }
	}

	function expand_rentproduct(id) {
	  if (!$("#" + id).is(":visible")) {
	    expand(id);
	  }
	}

	function toggle(id) {
	  $("#" + id).toggle("fast");
	}

	function toggle_accessories(sender, divID) {

	  toggleDiv(sender, divID, "groupcaption_extended", "groupcaption_normal");

    //load cnet images
	  if ($("#" + divID).is(":visible")) {
	    LoadCNETImages(divID);
	  }	  
	}

	function toggleDiv(sender, divID, class1, class2) {
	  
	  if (sender.className == class1) {
	    expand(divID);
      sender.className = class2; 
	  }
	  else {
	    collapse(divID);
	    sender.className = class1;
	  }    
  }

  function toggleproductdetailed(id) {
    $("#productshort_" + id).toggle();

    var $productdetailed = $("#productdetailed_" + id);

    $productdetailed.toggle("slow", function() {

      if ($productdetailed.is(":visible")) {
        LoadCNETImages("productdetailed_" + id);
      }

    });

  }

  function LoadCNETImages(containerId) {
    //alert('loading cnet images...');

    $("#" + containerId).find("img.cnet").each(function(i) {

      if (this.src == '') {
        var path = cnet_images[this.id];
        if (path != undefined) {
          this.src = cnet_images[this.id];
        }
      }
    });
  }
  
function minus(field_id) {

  quantity = parseInt($(field_id).attr('value'));

  if ((quantity - 1) < 1)
    return false;

  $(field_id).attr('value', quantity - 1);

}

function plus(field_id) {

  quantity = parseInt($(field_id).attr('value'));  
  
  if ((quantity + 1) > 9999)
    return false;  

  $(field_id).attr('value', quantity + 1);
}

function ValidateQuantityBox(txt_quantity) {
  $txt_quantity = $(txt_quantity);
  if (($txt_quantity.val() === '') || ($txt_quantity.val() == '0'))
    $(txt_quantity).val("1");
}

function isValidQuantity(evt, val) {

  //if (window.event)
  //  evt = window.event;

  if (isNumberKey(evt) == false) 
  return false;

  if (val.length >= 4)
    return false;
    
  return true;  
}

function isNumberKey(evt) {

  var charCode = (evt.which) ? evt.which : event.keyCode
  
  if ((charCode == 37) || (charCode == 39) || (charCode == 46) || (charCode == 8))
    return true;

  if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    return false; 

  return true;
}



function showForgotPwdModalPopup(ev) { 
  
  ev.preventDefault();
  var modalPopupBehavior = $find('forgotPasswordPopupBehavior');
  modalPopupBehavior.show();
}

function hideForgotPwdModalPopup(ev) {
  ev.preventDefault();
  var modalPopupBehavior = $find('forgotPasswordPopupBehavior');
  modalPopupBehavior.hide();
}

// cookies

    function getCookie(name) {
        var start = document.cookie.indexOf(name + "=");
        var len = start + name.length + 1;
        if ((!start) && (name != document.cookie.substring(0, name.length))) {
            return null;
        }
        if (start == -1) return null;
        var end = document.cookie.indexOf(";", len);
        if (end == -1) end = document.cookie.length;
        return unescape(document.cookie.substring(len, end));
    }

    function setCookie(name, value, expiredays, path, domain, secure) {
   
        var exdate = new Date();
        exdate.setTime(exdate.getTime() + (expiredays * 24 * 60 * 60 * 1000));        
        
        document.cookie = name + "=" + escape(value) +
        ((exdate) ? ";expires=" + exdate.toGMTString() : "") +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
        
    }

    function deleteCookie(name, path, domain) {
        if (getCookie(name)) document.cookie = name + "=" +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
    }

    var COOKIE_NAME = 'compare_products';

    function moveProdKeyToCookie(checkbx, productKey) {
        var currValue = getCookie(COOKIE_NAME);
        if (!currValue)
            currValue = '';

        if (checkbx.firstChild) {
            checkbx = checkbx.firstChild;
        }

        var countOfProducts = currValue.split('^');

        if (checkbx.checked) {
            if (countOfProducts.length < 4) {
                setCookie(COOKIE_NAME, currValue + productKey + '^', 7, '/');
            }
            else {
                checkbx.checked = false;
                alert('U kunt maximaal 3 producten selecteren');
            }
        }
        else {
            setCookie(COOKIE_NAME, currValue.replace(productKey + '^', ''), 7, '/');
        }

        updateCompareProductsCount();
    }

    function deleteProduct(productKey, tblID, source) {

        var currValue = getCookie(COOKIE_NAME);
        
        if (!currValue)
            currValue = '';

        setCookie(COOKIE_NAME, currValue.replace(productKey + '^', ''), 7, '/');
        deleteColumn(tblID, source);
    }

    function deleteColumn(tblId, source) {

        var i;
        var allRows = document.getElementById(tblId).rows;
                
        var currTD = source.parentNode;       
        var aCells = currTD.parentNode.cells;       
        
        for (i = 0; i < aCells.length; i++) {
            if (currTD == aCells[i]) { var currIndex = i; break }
        }
      
        for (i = 0; i < allRows.length; i++) {
            allRows[i].deleteCell(currIndex);
        }

        for (i = 0; i < allRows.length; i++) {
            if (allRows[i].cells.length == 1)
                allRows[i].deleteCell(0);
        }

        if (aCells.length == 0)
            ShowNoProducts();

    }

    function deleteRow(tblId, source) {

        var i;
        var currTR = source.parentNode.parentNode.parentNode;
        var allRows = document.getElementById(tblId).rows;

        for (i = 0; i < allRows.length; i++) {
            if (currTR == allRows[i]) { var currIndex = i; break }   
        }

        document.getElementById(tblId).deleteRow(currIndex);
    }

    function updateCompareProductsCount() {
        
        var label = document.getElementById('comp_producs_count');

        if (label) {

            var curr = getCookie(COOKIE_NAME);
            var count = (curr) ? curr.split('^').length-1 : 0;

            label.innerHTML = count;
        }
    }

    function ShowNoProducts() {

        var messagebox = document.getElementById('no_products_to_compare').getElementsByTagName('span')[0] ;

        if (messagebox) {
            messagebox.style.display = 'block';          
        }    

        var compare_panel = document.getElementById('product_compare');
        if (compare_panel) {            
            compare_panel.style.display = 'none';
        }
    }

    function ismaxlength(obj, maxLen) {
        if (obj.value.length > maxLen)
            obj.value = obj.value.substring(0, maxLen)
    }