﻿$(document).ready(function()
{
    VariantLoad();
});

//called after document ready and ajax update
function VariantLoad(responseText, textStatus, XMLHttpRequest)
{
    if (responseText) 
    {
        if ($(".JSONDivID").html() != "") //if a json message is available update the plugins and prices etc
        {
            if ($(".MagicZoomLinkID").hasClass("MagicZoom")) 
            {
                MagicZoom_stopZooms();
                MagicThumb.stop();
            }
            
            eval("var json=" + $(".JSONDivID").html());
            
            if (json.PictureMaster == "" || json.PictureLarge == "") 
            {
                $(".MagicZoomLinkID").removeClass("MagicZoom");
                $(".MagicZoomLinkID").removeClass("MagicThumb");
            }
            else 
            {
                $(".MagicZoomLinkID").addClass("MagicZoom");
                $(".MagicZoomLinkID").addClass("MagicThumb");
            }
            
            $(".MagicZoomLinkID").attr("href", json.PictureMaster);
            $(".MagicZoomImageID").attr("src", json.PictureLarge);
            $("#Price").html(json.Price);
            $(".NameID").html(json.Name);
            $(".DescriptionLongID").html(json.DescriptionLong);
            var r=new RegExp("^[0-9]+","gi");
            if(r.test($("#stockstatusID").html())) //only update if digits
            {
                $("#stockstatusID").html(json.Stock);
            }
            if ($(".MagicZoomLinkID").hasClass("MagicZoom")) 
            {
                MagicZoom_findZooms();
                MagicThumb.init();
            }
        }
    }
    else 
    {
        //on buy click check that all options is choosen
        $(".buybuttonID").click(function(event)
        {
            $("#VariantDiv select").each(function(index, obj)
            {
                if ($(obj).val() == '') 
                {
                    $(".MustSelectVariantLabelID").removeClass("Hidden");
                    event.stopImmediatePropagation();
                    event.stopPropagation();
                    event.preventDefault();
                    return false;
                }
            });
            return true;
        });
        
    }
    //on every selectbox force disabled options and reload with ajax
    $("#VariantDiv select").each(function(index, obj)
    {
        $(obj).change(function(eventObject)
        {
            if ($(this).val() == '') 
            {
                $(this).val($("option[class!=disabledOption]:first", this).attr("value"));
            }
        });
        $(obj).change(function(eventObject)
        {
            $("#VariantDiv").load(GetControlPath("Product/Variant.ascx") + "&" + Serialize($("#VariantDiv"), false), null, VariantLoad)
        });
    });
    
    
}

function Serialize(element, useFullName) //the jquery serialize cant serialize divs
{
    var s = "";
    $(":input", element).each(function(index, obj)
    {
        if (s != "") 
        {
            s += "&";
        }
        var name = $(obj).attr("name");
        if (!useFullName) 
        {
            name = name.split("$")[name.split("$").length - 1];
         //   name = name.replace(/Field/, '');
        } 
        s += name + "=" + encodeURIComponent($(obj).val());
    });
    return s;
}

function GetControlPath(control)
{
    return applicationPath + "/UserControlHandler.axd?rand=" + Math.random() + "&userControl=" + encodeURIComponent(control);
}



