jQuery.ajaxSetup({cache:false});
jQuery.noConflict();


function changeMoms(elm) {
    var newMomsValue = elm.value;

    var urlStr = '/ecommerce/jsp/changeMoms.jsp?MOMS=' + newMomsValue;
    jQuery.noConflict();
    jQuery.ajax({
        url: urlStr,
        type: 'GET',
        dataType: 'xml',
        timeout: 15000,
        error: function() {
            alert('Misslyckades att spara orderinformation .');
        },
        success: function(xml) {
            var locationHref = window.location.href;
            if (locationHref.indexOf("paymentandprocessordersvanstroms") > 0) {
                window.location.href = "/ecommerce/control/main";
            } else if ((locationHref.indexOf("additem") > 0) || (locationHref.indexOf("modifycart") > 0)) {
                window.location.href = "/ecommerce/control/showcartsvanstroms";   
            }
            else {
            }
                //Nothing in particular
                window.location.reload();
            }
    });
}




function addItemToCart(productId, minAntal,button) {
    var url = '/ecommerce/control/additem';
    var data = 'add_product_id=' + productId + '&product_id=' + productId + '&quantity=' + minAntal;
    updateShoppingCartWithAjax(url,data,button);
}





function updateShoppingCartWithAjax(url,data,button,effects){
    Wait(button);
    jQuery.ajax({
        type: "GET",
        url: url,
        data: data,
        timeout: 15000,
        success: function(responseText){
            jQuery("#microcart").html(responseText);
            EffectsOnShoppngCart(effects);
            WaitComplete();
        } ,
        error: function(jqXHR, textStatus, errorThrow){
            alert( "Ett fel intr&auml;ffade: " + textStatus );
            WaitComplete();
        }
    });

}

function Wait(button){
    jQuery("body").css("cursor", "wait");
    jQuery(button).addClass("addedToCartButton");
    var container =jQuery(".addedToCartContainer",jQuery(button).parent());
    if(container.length == 0){
       container = jQuery(document.createElement('div'));
       container.addClass("addedToCartContainer");
       container.attr('style', 'bottom:'+(button.offsetParent().innerHeight()-button.position().top)+'px;right:'+(button.offsetParent().innerWidth()-button.position().left-(button.outerWidth()/2)-50)+'px;'); //
       jQuery(button).after(container);
       container = jQuery(".addedToCartContainer",jQuery(button).parent());
    }

    var newdiv = document.createElement('div');
    newdiv.innerHTML='Varan &auml;r tillagd';
    jQuery(newdiv).addClass("addedToCart");
    container.append(newdiv);

}


function WaitComplete(){
    jQuery("body").css("cursor", "");
    jQuery(".addedToCartButton").removeClass("addedToCartButton");
}


function EffectsOnShoppngCart(effects){
    if(effects==undefined){
        jQuery('.shoppingCartEffect').fadeIn('fast', function() {
        jQuery('.shoppingCartEffect').fadeOut();
        });
    }else if(effects){
        jQuery('.shoppingCartEffect').fadeIn('fast', function() {
        jQuery('.shoppingCartEffect').fadeOut();
        });
    }

    jQuery('.addedToCart').fadeIn('fast', function() {
       var shownDivs = jQuery('.addedToCart');
       shownDivs.delay(2000).fadeOut('slow',function() {
           shownDivs.remove();
      });
    });
}

function toggleFavoriteIcons(cl,button){
   if(jQuery('.'+cl).is(':visible')){
      jQuery('.'+cl).hide();
     button.text('Visa ikoner för favoritlista');

   }else{
      jQuery('.'+cl).show();
     button.text('Dölj ikoner för favoritlista');
   }
}


function showHide(el) {
    var itemDiv = document.getElementById(el);
    var currState = itemDiv.style.display;
    if (currState == 'none') {
        itemDiv.style.display = 'block';
    } else {
        itemDiv.style.display = 'none';
    }
}
   /*
function additemsToShoppingListForm(productId, quantity, comment,shoppingListId,button) {
    var url = ofbizUrl + "additemsToShoppingList";
    var data = "add_product_id=" + productId +
                "&comments=" + comment +
                "&quantity=" + quantity+
                "&shoppingListId=" + shoppingListId;

    updateShoppingCartWithAjax(url,data,button);
} */
    /*
    var formName = "addform" + indexItem;
    var comFormName = "commentForm" + indexItem;
    var comments = document.forms[comFormName].comments.value;
    document.forms[formName].comments.value = comments;
    document.forms[formName].action = "/ecommerce/control/additemsToShoppingList";
    if (document.forms[formName].quantity.value > 0) {
        document.forms[formName].submit();
    } */
/*
   document.addform.action = "/ecommerce/control/additemsToShoppingList";
    document.addform.shoppingListId.value = document.getElementById("shoppingListId" + id).value;
    document.addform.submit();
      */





    function displayDescription(e) {
       jQuery(".hiddenDescription",jQuery(e).parent(".productDescription")).toggle();
       if(jQuery(".hiddenDescription",jQuery(e).parent(".productDescription")).is(':visible')){
          e.innerHTML=".. D&ouml;lj"
       }else{
          e.innerHTML=".. L&auml;s mer"
       }
    }

    function IsNumeric(sText)
{
   var ValidChars = "0123456789 ";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function checkAntal(elm, minAntal, allowBreakPackage) {
    var newQ = elm.value;
    if (!/^([0-9\s]*)$/.test(newQ)) {
        alert("Endast siffror f\u00e5r anges!");
        newQ = minAntal;
        elm.value = newQ;
        return false;
    }
    if ((!allowBreakPackage) && (minAntal > newQ)) {
        alert("Denna artikel levereras endast i hel förpackning om " + minAntal + ". Ange ett antal som är en multipel av " + minAntal);
        newQ = minAntal;
        elm.value = newQ;
        return false;
    }
    if ((!allowBreakPackage) && (newQ % minAntal > 0)) {
        alert("Denna artikel levereras endast i hel förpackning om " + minAntal + ". Ange ett antal som är en multipel av " + minAntal);
        newQ = newQ - (newQ % minAntal);
        elm.value = newQ;
        return false;
    }
    return true;
}

    function submit_form() {
        var nbOfVariants = document.addform.nbOfVariants.value;
        var sendSubmit = 0;
        for (i=0; i<nbOfVariants; i++) {
            var quantTempElm = document.getElementById("quantity_" + i);
            var quantTemp = quantTempElm.value;
            if ((quantTemp.length > 0) && (quantTemp != 0)) sendSubmit = 1;

        }
        if (sendSubmit == 1) {
            document.addform.submit();
        }
    }

function addItem(productId, quantity, comment,button) {
    var url = ofbizUrl + "additem";
    var data = "add_product_id=" + productId +
                "&comments=" + comment +
                "&quantity=" + quantity;
    updateShoppingCartWithAjax(url,data,button);
}

function addItemToShoppingList(shoppingListId, productId, quantity, comment,button) {
    var url = ofbizUrl + "additemsToShoppingList";
    var data =  "shoppingListId=" + shoppingListId +
                "&add_product_id=" + productId +
                "&comments=" + comment +
                "&quantity=" + quantity;
    updateShoppingCartWithAjax(url,data,button,false);
}

function additems(indexItem) {
    var comFormName = "commentForm" + indexItem;
    var comments = document.forms[comFormName].comments.value;
    var formName = "addform" + indexItem;
    document.forms[formName].comments.value = comments;
    if (document.forms[formName].quantity.value > 0) {
        document.forms[formName].submit();
    }
}

function toggle(e) {
    e.checked = !e.checked;
}

            function showPriceCached(id, variant, trOpen, trClosed, index){
                variant.style.display = 'block';
                trOpen.style.display = 'block';
                trClosed.style.display = 'none';
            }
            function showPriceAjax(id, variant, trOpen, trClosed,index){
                if(variant.getAttribute('loaded')=='true'){
                    variant.style.display = 'block';
                    trOpen.style.display = 'block';
                    trClosed.style.display = 'none';
                } else {
                    var urlStr = '/ecommerce/jsp/priceHelper.jsp?productId='+id;
                    jQuery.noConflict();
                    jQuery.ajax({
                        url: urlStr,
                        type: 'GET',
                        dataType: 'xml',
                        timeout: 15000,
                        error: function() {
                            alert('Misslyckades att ladda priser.');
                        },
                        success: function(xml) {
                            var element = xml.documentElement;
                            var productId = jQuery(element).attr('productId');

                            jQuery(xml).find('variant').each(function() {
                                var table = "<table border='0' cellpadding='0' cellspacing='0'>";
                                var variantid = jQuery(this).attr('id');
                                jQuery(this).find('price').each(function(){
                                    var amount =jQuery(this).attr('amount');
                                    var price =jQuery(this).attr('priceToDisplay');
                                    var isCampaign = jQuery(this).attr('isCampaign')=="true" ? true : false;
                                    var isPromo = jQuery(this).attr('isPromo')=="true" ? true : false;
                                    var recommendedRetailPrice=jQuery(this).attr('recommendedRetailPrice');
                                    var unitOfMeasure =jQuery(this).attr('unitOfMeasure');
                                    var recommendedRetailPriceString = "";
                                    var priceString = "";

                                    if((price<recommendedRetailPrice) && isCampaign) {
                                        recommendedRetailPriceString = " <span class=\"lineThrough\"\">" + recommendedRetailPrice + "&nbsp;" + unitOfMeasure + " </span>";
                                        priceString = "<span class=\"campaignPrice\"\">" + price + "&nbsp;" + unitOfMeasure + " </span>";
                                    }else {
                                        priceString = price + "/"+ unitOfMeasure;
                                    }



                                   // table = table + "<tr><td>"+ amount + " " + unitOfMeasure + ":&nbsp;&nbsp</td><td align='right'>" + price + "/"+ unitOfMeasure  + ${recPriceStringInclHtml?if_exists} +" </td></tr>";
                                    table = table + "<tr><td>"+ amount + " " + unitOfMeasure + ":&nbsp;&nbsp</td><td align='right'>" + priceString + recommendedRetailPriceString +"</td></tr>";
                                });
                                table = table + "</table>"
                                var element = document.getElementById('table-' + variantid);
                                if(element!=null){
                                    element.innerHTML = table + element.innerHTML;
                                }
                            });
                            variant.style.display = 'block';
                            trOpen.style.display = 'block';
                            trClosed.style.display = 'none';
                            var variant1 = document.getElementById("variant_" + productId);
                            variant1.setAttribute('loaded','true');
                        }
                    });
                }
            }
            function toggleVariant(id, index, fetchedPrices) {
                var variant = document.getElementById("variant_" + id);
                var tdOpen = document.getElementById("td_open_" + id);
                var tdClosed = document.getElementById("td_closed_" + id);
                var trOpen = document.getElementById("tr_open_" + id);
                var trClosed = document.getElementById("tr_closed_" + id);
                if (variant != null) {
                    if (variant.style.display == 'block') {
                        variant.style.display = 'none';
                        trOpen.style.display = 'none';
                        trClosed.style.display = 'block';
                    } else {
                        if(fetchedPrices)
                            showPriceCached(id, variant, trOpen, trClosed, index );
                        else
                            showPriceAjax(id, variant, trOpen, trClosed, index);
                    }
                }
            }
            function showError(t){
                alert(t);
            }
            function showPrices(xml) {
            alert(xml);
                $(xml).find('price').each(function() {
                    var price = $(this).text();
                    alert('PRICE='+price);
                    $('')
                            .html(price)
                            .appendTo('td#variant-price-'+id);
                });
            }

function readMore(){
     jQuery('#carrierReadMore').toggle();
    if(!clicked){
        jQuery(document).mouseup(function(e) {
            if(e.target.id!='readMoreLink' && jQuery(e.target).parents("div#carrierReadMore").length==0) {
                jQuery('#carrierReadMore').hide();
                return;
            }
        });
        var clicked=true;
    }
}

function validateAndUpdateDate( date, emptyValue, hasAddres, hasItem){
    if (date != emptyValue){
        if(date != ''){
            var datePattern = /^[0-9]{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/;
            if(date.match(datePattern)){
                sendOrderInfo('date', date,hasAddres,hasItem);
                return false;
            }else{
                alert('Du har angett ett ogiltigt datum');
            }
        }
    }
    sendOrderInfo('date', null,hasAddres,hasItem);
    return false;
}

function toggleAllVariants(){
    var value=jQuery("#toggleAllVariants").is(':checked');
      if (value){
          jQuery(".openDetails").show();
          jQuery(".closedDetails ").hide();
          jQuery(".productsummary-variant").show();

        //  showPriceAjax: will we ever need to use Ajax to load this?
      }else{
          jQuery(".openDetails").hide();
          jQuery(".closedDetails").show();
          jQuery(".productsummary-variant").hide();
      }
}

function reloadLink(option){

   location=(jQuery.trim(jQuery(option).val()));

}

function removeEffectedArticles(){
    jQuery('.amount',jQuery('#changesInCart')).val('0');
    document.changesInCart.submit();
}

<!-- Usermenu dropdown menu  -->
jQuery(document).ready(function() {

    jQuery(".toggleBtn").click(function(e) {
        e.preventDefault();
        jQuery(".userMenuToggle").toggle();
        jQuery(".toggleBtn").toggleClass("menu-open");
    });

    jQuery(".userMenuToggle").mouseup(function() {
        return false
    });
    jQuery(document).mouseup(function(e) {
        if(jQuery(e.target).parent(".toggleBtn").length==0 && !jQuery(e.target).hasClass('toggleBtn')) {
            jQuery(".toggleBtn").removeClass("menu-open");
            jQuery(".userMenuToggle").hide();
        }
    });

});

<!-- Comment category list  -->
  jQuery(document).ready(function() {
      /* for keeping track of what's "open" */
      var activeClass = 'dropdown-active', showingDropdown, showingMenu, showingParent;
      /* hides the current menu */
      var hideMenu = function() {
        if(showingDropdown) {
          showingDropdown.removeClass(activeClass);
          showingMenu.hide();
        }
      };

      /* recurse through dropdown menus */
      jQuery('.dropdown').each(function() {
        /* track elements: menu, parent */
        var dropdown = jQuery(this);
        var menu = dropdown.next('.dropdown-menu'), parent = dropdown.parent();
        /* function that shows THIS menu */
        var showMenu = function() {
          hideMenu();
          showingDropdown = dropdown.addClass(activeClass);
          showingMenu = menu.show();
          showingParent = parent;
          jQuery('.input-field',showingMenu).focus();
        };
        /* function to show menu when clicked */
        dropdown.bind('click',function(e) {
          if(e) e.stopPropagation();
          if(e) e.preventDefault();
          if(dropdown.hasClass(activeClass)){
              hideMenu();
          }else{
              showMenu();
          }
        });

      });

      /* hide when clicked outside */
      jQuery(document.body).bind('click',function(e) {
        if(showingParent) {
          var parentElement = showingParent[0];
          if(!jQuery.contains(parentElement,e.target) || !parentElement == e.target) {
            hideMenu();
          }
        }
      });
  });
