/*
 * ANplumbing.com
 * Site wide javascript
 */

var cacheButtonImages = [];

function initAnplumbingSiteWide()
{
    /* init button */
    $('.buttonDefault').hover(buttonOver, buttonOut);
    //$('.buttonDefault').each(preloadOverButtonImages);
    /* select text input */
    $("input[type=text]").focus(function(){
        // Select field contents
        this.select();
    });
    $('input.basketAddButton').click(basketAdd);
    /* ajax busy indication */
    $('body').ajaxComplete(ajaxJustFinsihed);
    $('body').ajaxStart(ajaxJustStarted);
    
    $('select.qty').mousedown(loadQtyOptions);
    
    
}

function loadQtyOptions(event)
{
    if (1 == $(this).children('option').size()){
        var options = [];
        for (var i = 0; i < 101; i++) {
            var option = $(this).val() == i ? '<option selected="selected">' : '<option>';
            option += i + '</option>';
            options.push(option);
        }
        $(this).html(options.join(''));
    }
}

/**
 * Update basket summary widget
 */
function refreshBasketSummary()
{
    var data = {
        ajax:       'true'
    }
    $.ajax({
        type: "GET",
        url: "/basket/ajaxSummary",
        data: data,
        success: function(msg)
        {
            $('#basket_summary').html(msg);
        }
    });
}

/**
 * Button mouse over handler
 */
function buttonOver(event)
{
    var imageUrl = $(this).attr('src');
    if ( null == imageUrl ){
        imageUrl = $(this).css('background-image');
        imageUrl = imageUrl.replace('_hover.png', '.png');
        imageUrl = imageUrl.replace('.png', '_hover.png');
        $(this).css('background-image', imageUrl);
    }else{
        imageUrl = imageUrl.replace('_hover.png', '.png');
        imageUrl = imageUrl.replace('.png', '_hover.png');
        $(this).attr('src', imageUrl);
    }
}

/**
 * Button mouse out handler
 */
function buttonOut(event)
{
    var imageUrl = $(this).attr('src');
    if ( null == imageUrl ){
        imageUrl = $(this).css('background-image');
        imageUrl = imageUrl.replace('_hover.png', '.png');
        $(this).css('background-image', imageUrl);
    }else{
        imageUrl = imageUrl.replace('_hover.png', '.png');
        $(this).attr('src', imageUrl);
    }
}

/**
 * Preload images for smother user experience
 */
function preloadOverButtonImages(index, value)
{
    if ( null != $(this).attr('src') ){
        var cacheImage = document.createElement('img');
        cacheImage.src = $(this).attr('src').replace('.png', '_hover.png');
        cacheButtonImages.push(cacheImage);
    }
}

/**
 * Add to basket button click handler
 */
function basketAdd(event)
{
    event.preventDefault();
    $(this).parent().find("div span.inputAlert").remove();
    var product_option_id = $(this).attr('id');
    product_option_id = product_option_id.substr(product_option_id.lastIndexOf('_')+1);
    var quantity = $('#qty_'+product_option_id+' option:selected').val();
    if (0 < quantity){
        $("body").css("cursor", "busy");
        var data = {
            ajax:       'true',
            product_option_id:   product_option_id,
            quantity:   quantity
        }
        $.ajax({
            type: "POST",
            url: "/basket/add",
            data: data,
            success: function(msg)
            {
                $("body").css("cursor", "auto").append(msg);
                //Anlytics tracking
                $("#continueShoppingBtn").click( function(event)
                {
                    event.preventDefault();
                    $("#basketDisplayWidgetWrapper").slideUp(500);
                    $('#basketDisplayWidgetWrapper').remove();
                });
                $('.buttonDefault').hover(buttonOver, buttonOut);
                $("#basketDisplayWidgetWrapper").slideDown(500);
                $('#basket img').attr('src', $('#basket img').attr('src').replace('empty', 'full'));
                //no warning so slide close after 10 seconds
                setTimeout("hideBasketWidget();",10000);
                refreshBasketSummary();
            },
            error: function(req)
            {
                $("body").css("cursor", "auto");
                alert('Sorry there was an error adding this item to your basket. Please try again.');
            }
        });
    }else{
        alert('Please first select a quantity to add to your basket.');
    }
}


/**
 * Auto close basket popup widget unless there is a warning
 */
function hideBasketWidget()
{
    $('#basketDisplayWidgetWrapper').slideUp(500, function()
    {
        $('#basketDisplayWidgetWrapper').remove();
    });
}

/**
 * used to hook into the AJAX used by treeView to know about changes
 */
function ajaxJustStarted(event, XMLHttpRequest, ajaxOptions)
{
    $('body').css('cursor', 'busy');
}

/**
 * used to hook into AJAX to stop notify of activity
 */
function ajaxJustFinsihed(event, XMLHttpRequest, ajaxOptions)
{
    $('body').css('cursor', 'auto');
}

function searchClick(input){
    if ( 'Part# or Keyword' == $(input).val() ){
        $(input).val('');
    }
}

