var SelectedThumbImage = 0;

//Global Declorations 
var resourcesFolder = "/resources";

function getFlashMovie(movieName)
{
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    if (isIE)
    {
        return swfobject.getObjectById(movieName);
     }
    else
    {
        return document[movieName];
     }
}

function SendTextToSWF(str)
{
    var fm = getFlashMovie("plTextUpdater");
    if (fm)
    {
        fm.sendTextToFlash(str);
    }
}

//Add Event on load
window.addEvent('domready', function()
{
    if ($("Customization"))
    {
        $('Customization').setProperty("value", "");
        swfobject.embedSWF("/resources/flash/plTextUpdater.swf", "plFlash", "150", "170", "10.0.0");

        $("Customization").addEvent("keyup", function()
        {
            var FlashElement = getFlashMovie('plTextUpdater');
            var TextBoxElement = $('Customization');
            var filteredString = FilterString(TextBoxElement.getProperty("value"), "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
            filteredString = filteredString.toUpperCase();
            $('Customization').setProperty("value", filteredString);
            
            FlashElement.sendTextToFlash(filteredString)
        });
    }

    $$('.ProductImageThumb').each(function(e, i, a)
    {
        e.addEvent("click", function()
        {
            var Amorph = $('MainImageDIV').get("morph");

            Amorph.addEvent("complete", function()
            {
                //Change src = to selecte source
                var newSrc = e.getFirst('.ThumbProductImagePath').get("html");
                $('MainImageDIV').set("html", newSrc);
                Amorph.start({ "opacity": "1" });
            });

            Amorph.start({ "opacity": "0" });
        });

        e.addEvent("mouseenter", function()
        {
            //Hide Grey Layer
            e.getFirst('.ThumbProductImageOver').setStyle("opacity", "0");
        });

        e.addEvent("mouseleave", function()
        {
            e.getFirst('.ThumbProductImageOver').setStyle("opacity", "1");
        });
    });

    // alert('sdfsd');
    $$('.SelectSizeDropDownRow').each(function(e, i, a)
    {
        e.addEvent("mouseenter", function()
        {
            e.setStyle("background-color", "#c4c4c4");
        });

        e.addEvent("mouseleave", function()
        {
            e.setStyle("background-color", "#ffffff");
        });

        e.addEvent("click", function()
        {
            //alert(e.getFirst(".ID").get("text").trim());
            //Set Value of SelectSizeValue
            $('SelectSizeValue').setProperty("text", e.getFirst(".Value").getProperty("text"));

            //Set Stock Indicator
            if (e.getFirst(".Stock").get("text").trim().toInt() > 0)
            {
                //alert(e.getFirst(".Stock").get("text"));
                $('StockImg').setProperty("src", "/Resources/images/layout/stockHigh.png");
            }
            else
            {
                //alert(e.getFirst(".Stock").get("text"));
                $('StockImg').setProperty("src", "/Resources/images/layout/stockLow.png");
            }

            //Set ProductVariantID Value
            $('ProductVariantID').setProperty("value", e.getFirst(".ID").get("text").trim());

            //Hide size menu
            $('SelectSizeDropDown').setStyle("opacity", 0);
        });

    });

    //Add Click listners for SelectSizeValue
    $('SelectSizeValue').addEvent("click", function()
    {
        //show/hide size selector
        if ($('SelectSizeDropDown').getStyle("opacity") == "0")
        {
            $('SelectSizeDropDown').setStyle("opacity", 1);
        }
        else
        {
            $('SelectSizeDropDown').setStyle("opacity", 0);
        }
    });

    $('SelectSizeValue').getParent().addEvent("mouseleave", function()
    {
        //show/hide size selector

        $('SelectSizeDropDown').morph({ "opacity": 0 });

    });


    if ($("AddToBasketDescriptionPositioner"))
    {
        //Add Event Listner to submit form
        $("AddToBasketDescriptionPositioner").addEvent("click", function()
        {
            CheckAddToBasketForm();
        });
    }

    $('SelectSizeDropDown').setStyle("opacity", 0);

    $('Quantity').addEvent("keyup", function()
    {
        $('Quantity').setProperty("value", FilterString($('Quantity').getProperty("value"), "0123456789"));
    });

});

function FilterString(str, allowedChars)
{
    var returnString = "";
    //alert(str.length);
    for (var i = 0; i < str.length; i++)
    {
        //alert(allowedChars.indexOf(str.charAt(i)) + " : " + str.charAt(i));
        if (allowedChars.indexOf(str.charAt(i)) > -1)
        {
            returnString = returnString + str.charAt(i);
        }
    }

    return returnString;
}

function CheckAddToBasketForm()
{
    var BasketAddOK = true;
    msg = "";

    //Check size selected
    var ProductVariantID = $("ProductVariantID").getProperty("value");
    var stock = 0;

    if (!IsNumeric(ProductVariantID) || ProductVariantID == "")
    {
        BasketAddOK = false;
        msg += "Please select size for the item\n";
    }

    var Quantity = 0;

    //Check Quantity is numeric
    if (!IsNumeric($("Quantity").getProperty("value")))
    {
        BasketAddOK = false;
        msg += "Please enter a number in the quantity field\n";
    }
    else
    {
        Quantity = $("Quantity").getProperty("value").toInt();
    }

    if ($("RecipientName") && $("RecipientName").getProperty("value") == "") {
        BasketAddOK = false;
        msg += "Please complete the recipients name\n";
    }

    $$(".SelectSizeDropDownRow").each(function(e, i, a)
    {
        var ID = e.getFirst(".ID").get("text").trim();

        if (ID == ProductVariantID.toInt())
        {
            stock = e.getFirst(".Stock").get("text").trim().toInt();
            if (stock < Quantity)
            {
                BasketAddOK = false;
                msg += "The quantity you have selected is not available, you may currently add up to " + stock + " of this item.\n";
            }
        }
    });

    if (BasketAddOK)
    {
        $('AddToBasketForm').submit();
    }
    else
    {
        alert(msg);
    }
}

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;

}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }