﻿var ResourcePhrase = "";

function CenterDiv(point, element) {

    var div = document.getElementById(element);

    div.style.left = point.x - 150 + "px";
    div.style.top = point.y - 100 + "px";
}

function UpdateCartInfo(Pulsate) {

    jQ.get("AjaxCalls/GetUpdatedCartInfo.aspx?msmademedothis=" + new Date().getTime(), function (data) {

        var ShoppingCartLink = jQ("#ShoppingCartLink");

        if (Pulsate == 'Yes') {
            ShoppingCartLink.effect("pulsate", { times: 1 }, 800);
        }
        ShoppingCartLink.html(data);
        ShoppingCartLink.css("cursor","pointer");
    });
}

function BuyButton_Click(VariantListIDsID, VariantListErrorExpression, ProductID, VariantHiddenID, InputIDsID, BuyButtonID) {

    var VariantListIDList = jQ("#" + VariantListIDsID).val().split('|');
    var VariantOK = true;

    if (VariantListIDList.length > 1) {
        for (var i = 0; i < VariantListIDList.length - 1; i++) {

            var dlValue = jQ("#" + VariantListIDList[i] + " :selected").val();
            
            if (dlValue == "ingen") {
                VariantOK = false;
            }
        }            
    }

    if (VariantOK) {
        AddProductToCart(ProductID, encodeURIComponent(jQ("#" + VariantHiddenID).val()), InputIDsID);
        NotifyAddedProductToCart(BuyButtonID, 2);
    }
    else {
        alert(VariantListErrorExpression);
    }
}

function AddProductToCart(ProductID, Variant, InputID) {

    var VariantAdditions = "";
    var InputIDList = jQ("#" + InputID).val().split('|');

    if(InputIDList.length>0)
    {
        for (var i = 0; InputIDList.length-1 > i; i++) {
            
            var InputIndID = InputIDList[i].split('$')[0];
            var DefaultArg = InputIDList[i].split('$')[1].split('£')[0];
            
            var Title = InputIDList[i].split('$')[1].split('£')[1];
            var Value = jQ("#" + InputIndID).val();

            if(DefaultArg!=Value)
            VariantAdditions += "|" + Title + ":'" + Value + "'$0";
        }

    }
    Variant = decodeURIComponent(Variant) + VariantAdditions;
    Variant = encodeURIComponent(Variant);

    jQ.get("AjaxCalls/AddProductToCart.aspx?ID=" + ProductID + "&Variant=" + Variant + "&msmademedothis=" + new Date().getTime(), function (data) {
        UpdateCartInfo("Yes");
    });
}

function NotifyAddedProductToCart(ButtonID, Type) {

    var CartIndicator = jQ("#CartIndicator");
    var CartIndicator2 = jQ("#CartIndicator2");
    var ShoppingCartImage = jQ("#" + ButtonID);


    if (Type == 1) {
        CartIndicator.show();
        CartIndicator.css({ top: (parseInt(ShoppingCartImage.offset().top) - 3).toString() + "px", left: (parseInt(ShoppingCartImage.offset().left) + 70).toString() + "px" });
    }
    else {
        CartIndicator2.show();
        CartIndicator2.css({ top: (parseInt(ShoppingCartImage.offset().top) - 47).toString() + "px", left: (parseInt(ShoppingCartImage.offset().left) + 0).toString() + "px" });

    }

    setTimeout("HideCartIndicator()", 2000);
}


function HideCartIndicator()
{
    var CartIndicator = jQ("#CartIndicator");
    var CartIndicator2 = jQ("#CartIndicator2");
    CartIndicator.hide();
    CartIndicator2.hide();
}

var originalPrice = 0;
var originalPriceSet = false;

function AddVariantToHidden(DropDownListID, HiddenValueID, PriceHiddenID, CurrencyConvertedPrice, PriceLableID, RentalConstants, RentPriceLabelID, RentOnly) {

    var variant = jQ("#"+DropDownListID + " :selected").text();
    var variantValue = jQ("#"+DropDownListID + " :selected").val().split('|');
    var hidden = jQ("#"+HiddenValueID);
    var priceHidden = jQ("#"+PriceHiddenID);
    var PriceLabel = jQ("#"+PriceLableID);
    var RentPriceLabel = jQ("#" + RentPriceLabelID);

    if (RentalConstants != "") {
        var RentalConstant12 = parseDecimal(RentalConstants.split('|')[0]);
        var RentalConstant24 = parseDecimal(RentalConstants.split('|')[1]);
        var RentalConstant36 = parseDecimal(RentalConstants.split('|')[2]);
        var RentalConstant48 = parseDecimal(RentalConstants.split('|')[3]);
        var RentalConstant60 = parseDecimal(RentalConstants.split('|')[4]);
    }

    if (!originalPriceSet) {
        originalPrice = CurrencyConvertedPrice;
        originalPriceSet = true;
    }

    var Currency = PriceLabel.html().split(' ')[1];

    jQ("#"+DropDownListID +" option").each(function(i){

        var optionText = jQ(this).text();
        var optionValue = jQ(this).val();

        var pos = hidden.val().indexOf(optionText + "$" + optionValue.split('|')[0]);

        if (pos > -1) {
            hidden.val(hidden.val().replace('|' + optionText + "$" + optionValue.split('|')[0], ''));
            hidden.val(hidden.val().replace(optionText + "$" + optionValue.split('|')[0], ''));
        }

    });


    if (hidden.val() != "")
        hidden.val(hidden.val() + "|");

    if (jQ("#" + DropDownListID + " :selected").val() != "ingen") {
        hidden.val(hidden.val() + variant + "$" + variantValue[0]);
    }

    //Get the new total
    var newTotal = 0;

    jQ.get("AjaxCalls/GetCurrencyConvertedVariants.aspx?VariantString=" + hidden.val() + "&msmademedothis=" + new Date().getTime(), function (data) {

        newTotal = data;
        newTotal = (parseInt(newTotal) + parseInt(originalPrice)).toString();
        if (!RentOnly)
            PriceLabel.html(ReformatPrice(newTotal) + " " + Currency);
        else 
            PriceLabel.html(ReformatPrice(Math.round(newTotal * RentalConstant60)) + " " + Currency + " / " + GetResourceTranslation("PerMonthShort"));

        RentPriceLabel.html(ReformatPrice(Math.round(newTotal * RentalConstant60)) + " " + Currency);
    });
}


function GetCurrencyConvertedPrice(oldPrice) {

    var ConvertedPrice = oldPrice;

    jQ.get("AjaxCalls/GetCurrencyConvertedPrice.aspx?Price=" + oldPrice + "&msmademedothis=" + new Date().getTime(), function (data) {
        ConvertedPrice = data;
       
    });

    return ConvertedPrice;

}

function GetResourceTranslation(Key) {


    var strUrl = "AjaxCalls/GetResource.aspx?Key=" + Key + "&msmademedothis=" + new Date().getTime(); //whatever URL you need to call
    var strReturn = "";

    jQuery.ajax({
     url:strUrl, success:function(html){strReturn = html;}, async:false
    });

    return strReturn;
    
}

function ChangeTab(sourceElementID, targetElementID, CallingTabID) {

    var sourceElement = jQ("#"+sourceElementID);
    var targetElement = jQ("#"+targetElementID);
    var callingTab = jQ("#"+CallingTabID);

    jQ('div[id$="Tab"]').removeClass("active");
    jQ('div[id*="Tab"]').addClass("notactive");

    callingTab.removeClass("notactive");
    callingTab.addClass("active");
    
    targetElement.html(sourceElement.html());

}

function ReplaceNestedSortable(inputString) {

    var result = inputString.replace(/\item\[/g, '|').replace(/\]/g, '').replace(/\&/g, '').replace(/\=root/g, '');
    result = result.substr(1);
    return result;
}

function WarnAboutPNum(sPNum) {
 
    if (!IsPersonNummer(sPNum)) {

if (confirm(GetResourceTranslation("ConfirmWrongPNum"))) {
                return true;
            }
            else {
                return false;
            }
        }
        else {
            return true;
}

    }




