if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}

// {{{1 showPricingTable
function showPricingTable()
{
    var productOptions = $('productOptions').getElementsByTagName('select');
    var result;
    var flag;

    if (! productOptions[0]) return;

    var selectedPropertyValueIds = new Array();
    for (var i = (productOptions.length-1); i>= 0; i--)
    {
        selectedPropertyValueIds.push(productOptions[i].value);
    }

    var tables = $$('#pricingTables table'); 
    for(var i = tables.length - 1; i >= 0; i--)
    {
        try{
            tables[i].setStyle('display', 'table');
        }
        catch(e) {tables[i].style.display = 'table';} // IE 7 
    }

    if (tables.length == 1) return;

    for(var i = selectedPropertyValueIds.length - 1; i >= 0; i--)
    {
        var propertyValueId = selectedPropertyValueIds[i];

        // Skip if no table has this propertyValueId.
        if(tables.getElement('var[title=propertyValueIds] var[title=' + propertyValueId + ']').clean().length == 0) continue;

        for(var t = tables.length - 1; t >=0; t--)
        {
            var table = tables[t];
            if (table.getElement('var[title=propertyValueIds] var[title=' + propertyValueId + ']')) { null; }
            else {table.setStyle('display', 'none'); }
        }
    }
}

// {{{1 getActivePricingTable
function getActivePricingTable()
{
    var tables = $$('#pricingTables table'); 
    for(var t = tables.length - 1; t >=0; t--)
    {
        var table = tables[t];
        if (table.getStyle('display') != 'none') return table;
    }
}

// {{{1 setProductOptions
function setProductOptions()
{
    var regQueryString = /\?(.*)$/;
    var url = new String(location);
    var result = url.match(regQueryString);
    if (! result) {return;}
    var queryStrings = result[1].split('&');
    for (var i = queryStrings.length - 1; i >= 0; i--)
    {
        result = queryStrings[i].split('=');
        selectElement = document.getElementsByName(result[0])[0];
        selectElement.value = result[1];
    }
}

// {{{1 addEventToProductOptions
function addEventToProductOptions()
{
    var productOptions = $('productOptions').getElementsByTagName('select');
    for (var i = (productOptions.length-1); i>= 0; i--)
    {
        productOptions[i].onchange = function() { showPricingTable(); }
    }
}
