
// Begin GearsJS
GearsJS = {
    CartUpdate: function(item_no, qty) {
        $.ajax({
            type: "POST",
            url: "/Gears/MarketPlace/WebServices/MarketPlaceServices.asmx/UpdateCart",
            contentType: "application/json; charset=utf-8",
            data: "{ \"no\" : \"" + item_no + "\", \"qty\" : " + qty + "  }",
            dataType: "json",
            success: GearsJS.UpdateSuccess,
            error: GearsJS.UpdateFail
        });
    },
    CartRemove: function(item_no) {
        $.ajax({
            type: "POST",
            url: "/Gears/MarketPlace/WebServices/MarketPlaceServices.asmx/RemoveFromCart",
            contentType: "application/json; charset=utf-8",
            data: "{ \"no\" : \"" + item_no + "\"  }",
            dataType: "json",
            success: GearsJS.RemoveSuccess,
            error: GearsJS.RemoveFail
        });
    },
    CartAdd: function(item_no, item_qty) {
        $.ajax({
            type: "POST",
            url: "/Gears/MarketPlace/WebServices/MarketPlaceServices.asmx/AddToCart",
            contentType: "application/json; charset=utf-8",
            data: "{ \"no\" : \"" + item_no + "\", \"qty\" : " + item_qty + "  }",
            dataType: "json",
            success: GearsJS.AddSuccess,
            error: GearsJS.AddFail
        });

    },
    RemoveSuccess: String,
    RemoveFail: String,
    AddSuccess: String,
    AddFail: String,
    UpdateSuccess: String,
    UpdateFail: String
}
// end GearsJS

// STATUS

function renderStatus(resultString, enum_statusType) {
        $("#marketplacestatus_inner").html(resultString);
        document.getElementById('marketplacestatus').className = enum_statusType;
        $("#marketplacestatus").stop().fadeTo('slow', 1).show();
}

function hideStatus() {
        $("#marketplacestatus").stop().fadeTo('fast', 1).hide();
}
// 

// Togglers
function toggleCart( ) {
        $("#shoppingCartWrapper").slideToggle('fast');
}


function hideWishList() {
        $("#wishListSelector").slideToggle('fast');
        // $("#wishListSelect").slideToggle('fast');
        // $("#wishListCreate").slideToggle('fast');
    }

// Wishlist

function AddToWishlist(item_no) {
        //alert('Adding to wishlist : ' + item_no);
        if (document.getElementById("sltAddToFavorite").options.length == 0 || document.getElementById("sltAddToFavorite").options[0].value == "---") {
            
            Gears.MarketPlace.WebServices.MarketPlaceServices.GetFavouriteLists(WLPopulate, WLFail);
        }
        $("#wishListSelector").slideToggle('fast');
        $("#wishListSelector").position({
            my: "left bottom",
            of: this,
            offset: "-50 -50",
            /*offset: "-100 -100",*/
            collision: "none"
        });
        
        
        document.getElementById("activeProductNo").value = item_no;
    }

function WLCreate() {
        //   $("#wishListSelect").fadeOut('fast');
        // $("#wishListCreate").slideToggle('fast');
    }
function WLCreateList() {
        var list_name = document.getElementById('wishListNew').value;
        var should_add_product = document.getElementById('also_add_to_list').checked;
        if (list_name != '') {
            Gears.MarketPlace.WebServices.MarketPlaceServices.CreateFavoriteList(list_name, OnCompleteCreateList, WLFail);
        } else {
            var str = "oppgi listenavn";  
        
            renderStatus(str, 'result_error');
        }
}
function WLAddToList() {
        elSelect = document.getElementById("sltAddToFavorite");
        if(elSelect.value == '---'){
          var str = "du har ingen lister. Lag en ny";  
          renderStatus(str, 'result_error');
        } else {
        Gears.MarketPlace.WebServices.MarketPlaceServices.SaveToFavourite(elSelect.value, document.getElementById("activeProductNo").value, OnCompleteSaveFavourite, WLFail);
        }
}

function WLPopulate(str) {
        if (str == "") {
            WLCreate();
        }
        if (str != "") {
            elSelect = document.getElementById("sltAddToFavorite");
            elSelect.options.length = 0;
            arr = str.split("###");
            for (var i = 0; i < arr.length; i++) {
                arr2 = arr[i].split(";;;");
                elSelect.options[elSelect.options.length] = new Option(arr2[1], arr2[0]);
            }
            //  $("#wishListCreate").fadeOut('fast');
            //  $("#wishListSelect").slideToggle('fast');
        }

    }
function WLFail(str) {
        alert('error:' + str);

}

function OnCompleteGetFavouriteLists(str) {
        if (str != "") {
            elSelect = document.getElementById("sltAddToFavorite");
            arr = str.split("###");
            for (var i = 0; i < arr.length; i++) {
                arr2 = arr[i].split(";;;");
                elSelect.options[elSelect.options.length] = new Option(arr2[1], arr2[0]);
            }
            document.getElementById("divBox").style.display = "";
        }
        else {
            document.getElementById("divAlert").style.display = "";
        }
    }

    function OnTimeoutGetFavouriteLists() {
    }


function OnCompleteCreateList(result) {

        var should_add_product = document.getElementById('also_add_to_list').checked;
        //alert(result);
        //
        if (result == 0) {
            var str = "Kunne ikke skape liste";  
            renderStatus(str, 'result_error');
        }
        if (result != 0 && should_add_product) {
            document.getElementById('wishListNew').value = '';
            Gears.MarketPlace.WebServices.MarketPlaceServices.SaveToFavourite(result, document.getElementById("activeProductNo").value, OnCompleteSaveFavourite, WLFail);
        }
        if (!should_add_product) {
            // refresh dropdown
            var list_name = document.getElementById('wishListNew').value;
            document.getElementById("sltAddToFavorite").options.length = 0;
            Gears.MarketPlace.WebServices.MarketPlaceServices.GetFavouriteLists(WLPopulate, WLFail);
            
            var str = "skapt liste %1";  
            str = str.replace("%1", list_name);
            renderStatus(str, 'result_success');
        }
        document.getElementById('wishListNew').value = '';
    }
    function OnCompleteSaveFavourite(str) {
        //alert('saved!');
        //alert(str);

        var item_no = str.split('###')[1];
        var list_no = str.split('###')[0];
        var list_name = str.split('###')[2];
        $("#wishListSelector").slideToggle('fast');
        elSelect = document.getElementById("sltAddToFavorite").options.length = 0;
         //var status = 'Item \'' + item_no + '\' saved to list ' + list_name;
         str = "produkt %1 lagt til liste %2";  
         str = str.replace("%1", item_no);
         str = str.replace("%2", list_name);
        var status = str;
        renderStatus(status, 'result_success');
    }

    function OnTimeoutSaveFavourite() {
    }
    
    
// QB

   function QuickBuyAddItem()
    {
        var itemNo = document.getElementById("textQuickBuyNo").value;
        var quantity = document.getElementById("textQuickBuyQuantity").value;
        
        if(itemNo == "")
        {
            document.getElementById("textQuickBuyNo").focus();
            return;
        }
        
        if((quantity=="") || isNaN(quantity))
        {
            document.getElementById("textQuickBuyQuantity").value = "";
            document.getElementById("textQuickBuyQuantity").focus();
            return;
        }
        
        if((itemNo != "") && (quantity!="") && (!isNaN(quantity)))
        {
            /*Gears.MarketPlace.WebServices.MarketPlaceServices.ExistItem(itemNo,OnCompleteQuickBuyExistItem,OnTimeoutQuickBuyExistItem);   */
            Gears.MarketPlace.WebServices.MarketPlaceServices.ValidateItemNo(itemNo,OnCompleteQuickBuyExistItem,OnTimeoutQuickBuyExistItem);   
        }
    }
  
    function OnCompleteQuickBuyExistItem(status)
    {
        if(status !=null ){
            //var itemNo = document.getElementById("textQuickBuyNo").value;
            var itemNo = status;
            var quantity = document.getElementById("textQuickBuyQuantity").value;
            Gears.MarketPlace.WebServices.MarketPlaceServices.AddToCart(itemNo,quantity,OnCompleteQuickBuyAddToCart);
            }
        else
        {
            document.getElementById("textQuickBuyNo").value = "";
            document.getElementById("textQuickBuyQuantity").value = "";
            document.getElementById("textQuickBuyNo").focus();
            str = "produktet fins ikke";  
            renderStatus(str, 'result_warning');
        }
    }
    
    function OnTimeoutQuickBuyExistItem()
    {
        str = "produktet fins ikke";  
        renderStatus(str, 'result_warning');
    }
    
    function OnCompleteQuickBuyAddToCart()
    {
        
        try
        {
            str = "Legg til produkt % 1 antall %2";
            str = str.replace("%1", document.getElementById("textQuickBuyNo").value);
            str = str.replace("%2", document.getElementById("textQuickBuyQuantity").value);
            //renderStatus(str, 'result_success');
            renderMiniCart(null, false);
        }
        catch(e)
        {
        }
        document.getElementById("textQuickBuyNo").value = "";
        document.getElementById("textQuickBuyQuantity").value = "";
        document.getElementById("textQuickBuyNo").focus();
    }
    
     function checkEnter(e, posting_control) {
        var key;
        if (window.event)
            key = window.event.keyCode; //IE
        else
            key = e.which; //firefox
        //alert(key);

        if (key == 13) {
            document.getElementById(posting_control).click();
        }
        return (key != 13);
    }

     function Search( e,p ){
        var key;
        if (window.event)
            key = window.event.keyCode; //IE
        else
            key = e.which; //firefox
        //alert(key);

        if (key == 13) {

            //document.getElementById(posting_control).click();
	    //document.location='/Search.aspx?ItemNo=&amp;Query=' + document.getElementById('search_box').value;
	    document.location = p;
        }
        return (key != 13);
	
     }

    function QuickBuyAddItemCheckout()
    {
        var itemNo = document.getElementById("textQuickBuyNo").value;
        var quantity = document.getElementById("textQuickBuyQuantity").value;
        
        if(itemNo == "")
        {
            document.getElementById("textQuickBuyNo").focus();
            return;
        }
        
        if((quantity=="") || isNaN(quantity))
        {
            document.getElementById("textQuickBuyQuantity").value = "";
            document.getElementById("textQuickBuyQuantity").focus();
            return;
        }
        
        if((itemNo != "") && (quantity!="") && (!isNaN(quantity)))
        {
            Gears.MarketPlace.WebServices.MarketPlaceServices.ExistItem(itemNo,OnCompleteQuickBuyExistItemCheckout,OnTimeoutQuickBuyExistItem);   
        }
    }
  
    function OnCompleteQuickBuyExistItemCheckout(status)
    {
        if(status == "yes"){
            var itemNo = document.getElementById("textQuickBuyNo").value;
            var quantity = document.getElementById("textQuickBuyQuantity").value;
            Gears.MarketPlace.WebServices.MarketPlaceServices.AddToCart(itemNo,quantity,OnCompleteQuickBuyAddToCartCheckout);
            }
        else
        {
            document.getElementById("textQuickBuyNo").value = "";
            document.getElementById("textQuickBuyQuantity").value = "";
            document.getElementById("textQuickBuyNo").focus();
            str = "produktet fins ikke";  
            renderStatus(str, 'result_warning');
        }
    }
    
    
    function OnCompleteQuickBuyAddToCartCheckout()
    {
        //document.location.reload();
	document.location.href = document.location.href;
    }
    
    
