// $Id: common.js 35609 2010-04-07 18:40:42Z tosho $

/**
* Sets a dropdown's selected option or options if multiple select
*
* @param	select
* @param	string/array of string	option values
*/
function set_selected(select) {
	var args = set_selected.arguments;
	for (var i = 1; i < args.length; i++) {
		for (var j = 0; j < select.length; j++) {
			if (select.options[j].value == args[i]) {
				select.options[j].selected = true;
				if (select.type == 'select-one') {
					break;
				}
			}
		}
	}
}

function execute_callbacks() {
	for (var i = 0; i < arguments.length; i++) {
		if (typeof arguments[i] == 'function') {
			arguments[i]();
		}
	}
}

/**
 * Tosho commented out this line
 * because of the thickbox image prev/next issue
 * 'Item page when you have multiple images and you click one to enlarge the prev and next do not work.'
 */
//jQuery.noConflict();

jQuery(document).ready(function () {

    /*
    * Switch List/Grid layout
    * 
    */
    
    jQuery(".nav-layout a").click(function() {
        if ( jQuery(this).is(".nav-layout-list") ) {
            jQuery.ajax({
                url: "list.html",
                success: function(html){
                    $("#products-content").append(html);
                }
            });
        }
    });

    /**
    * CHECKOUT Step 1 of 3: Authentication; sets the radio button
    * next to the password field to 'checked'
    */
    jQuery("input[name='password']").focus(function () {
        jQuery("input[value='login']").attr("checked", "checked");
    });

    /**
    * Initialize jCarousel for RSS feeds
    */
    if (typeof jQuery.fn.jcarousel != "function") {
    	jQuery.fn.jcarousel = function() {}
    	}

    jQuery('#rss-carousel').jcarousel({
        "vertical": true,
        "scroll": 2
    });

    jQuery('.front-page-products').jcarousel({
        "vertical": false
    });

    /*
    * Show/Hide Tabs for category selection
    */
    /*
    jQuery(".feeds-button").click(function () {
      jQuery(this).next().slideToggle("slow");
    });

    jQuery(".feeds-content").hide();
    */

    /*
    * Dropdown menu for category selection
    */
    jQuery("#feeds-selector").change(function () {

        var selected = jQuery(this).val();
        var products_template = jQuery("#products_template").val();
        var url = smarty_vars['html_url']+"?page=rss&action=products_list&feed=" + selected + "&products_template=" + products_template;
        jQuery(".feeds-content *").remove();
        jQuery(".feeds-content").append('<ul class="jcarousel jcarousel-skin-strict"></ul>');

        jQuery.ajax({
            url:  url,
            cache: false,
            dataType: 'html',
            success: function(html){
                jQuery("ul.jcarousel").append(html);
                jQuery('ul.jcarousel').jcarousel({
                    "vertical": true,
                    "scroll": 2
                });
            }
        });
    });

});

/**
 * Vote for review
 *
 * @param {String} sku
 * @param {Integer} review_id
 * @param {String} vote (yes|no)
 */
function review_vote(sku, review_id, vote) {
	var url = smarty_vars['html_url']+"?page=review_vote&id="+sku+"&reviewid="+review_id+"&vote=" + vote;
	window.location.replace(url);
}

///////////////////////////////////////////////////////////////////////////////

var add_stock_level_overlay_skus = Array();

function add_stock_level_overlay(element, sku) {
	add_stock_level_overlay_skus[sku] = element;
}

function stock_level_overlays(base_url) {
	var skus = Array();
	for (var i in add_stock_level_overlay_skus) {
		skus.push(i);
	}

	jQuery.getJSON(base_url + "index.php?type=ajax&page=stock_levels&id=" + escape(JSON.stringify(skus)), function(data) {
		$.each(data, function(sku, level) {
			add_stock_level_overlay_skus[sku].className += ' stock-level-' + level;
		});
	});
}