// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function toggleDisplayOn(elementId)
{
    var elementObject = document.getElementById(elementId);
    if(elementObject != null)
    {
        var displayStyle = elementObject.style.display;
        elementObject.style.display = 'block';
    }
}

function toggleDisplayOff(elementId)
{
    var elementObject = document.getElementById(elementId);
    
    if(elementObject != null)
    {
        var displayStyle = elementObject.style.display;
        elementObject.style.display = 'none';
    }
}

function showHoverLayer(elementId)
{
    toggleDisplayOn('opaque-hover-background');
    jQuery('#opaque-hover-background').css({height: jQuery('body').height()});
    toggleDisplayOn(elementId);
    return false;
}

function hideHoverLayer(elementId)
{
    toggleDisplayOff(elementId);
    toggleDisplayOff('opaque-hover-background');
    return false;
}

function giftListCommentMouseOver(index)
{
    ShowContent('giftlist-long-comment-' + index);
}

function giftListCommentMouseOut(index)
{
    toggleDisplayOff('giftlist-long-comment-' + index);
}

function productSortOptionsSelectBoxChanged(web_context, page, state_code, centre_id, segment_id, price_range_id, retail_chain_name, search_text)
{
    var select_box = document.getElementById('sort-options-select-box-id');
    var selected_option = select_box.options[select_box.selectedIndex];
    var selected_option_value = selected_option.value;
    var selected_option_values_array = selected_option_value.split("-");
    var sort_field = selected_option_values_array[0];
    var sort_order = selected_option_values_array[1];
    location.href = web_context + '/products/find/?' + concatenateProductSortParameters(sort_order, sort_field, page, state_code, centre_id, segment_id, price_range_id, retail_chain_name, search_text);
    return false;
}

function concatenateProductSortParameters(sort_order, sort_field, page, state_code, centre_id, segment_id, price_range_id, retail_chain_name, search_text)
{
  var parametersString = "";
  parametersString = parametersString + 'sort_order=' + sort_order;
  parametersString = parametersString + '&sort_field=' + sort_field;

  parametersString = parametersString + '&page=' + page;
  parametersString = parametersString + '&state_code=' + state_code;
  parametersString = parametersString + '&centre_id=' + centre_id;
  parametersString = parametersString + '&segment_id=' + segment_id;
  parametersString = parametersString + '&price_range_id=' + price_range_id;
  parametersString = parametersString + '&retail_chain_name=' + retail_chain_name;
  parametersString = parametersString + '&search_text=' + search_text;
  return parametersString;
}

function giftListSortOptionsSelectBoxChanged(web_context, gift_list_name, page, masked_id)
{
    var select_box = document.getElementById('sort-options-select-box-id');
    var selected_option = select_box.options[select_box.selectedIndex];
    var selected_option_value = selected_option.value;
    var selected_option_values_array = selected_option_value.split("-");
    var action = 'contents';
    var id = '';
    if (masked_id != null && masked_id != '') {
        action = 'public_contents';
        id = '/' + masked_id;
    }
    location.href= web_context + '/gift_lists/' + action + id + '?page='+page+'&name='+gift_list_name+'&sort_field='+selected_option_values_array[0]+'&sort_order='+selected_option_values_array[1] + '&state_code=' + selected_option_values_array[2] + '&centre_id=' + selected_option_values_array[3];
	return true;
}

function replaceImage(imageElementId, newImageUrl)
{
  var imageElement = document.getElementById(imageElementId);
  imageElement.src = newImageUrl;
}

/* ripped from http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/ */
function getElementsByClassName(oElm, strTagName, strClassName)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++)
  {
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className))
    {
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(item)
{
    return '<div class="product-thumbnail"><a href="/product_details/show/' + item.id + '"><img class="gallPic" src="' + item.photography_code + '" alt="Product picture"/></a><div class="carousel-product-description">'+item.description+'</div><div class="carousel-product-price">'+item.rrp+'</div></div>'
};
