if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

var alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
var brands = [];

function getBrandsByLetter(letter) {
    // return first brand occurence position
    //alert('We\'ve got letter ' + letter);
    for (var i = 0; i < brands.length; i++) {
        if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
            return i;
        }
    }
    var nLetterNum = alphabet.indexOf(letter.toLowerCase())+1;
    if (nLetterNum == alphabet.length)
        nLetterNum = 0;
    //alert(alphabet[nLetterNum]);
    return getBrandsByLetter(alphabet[nLetterNum]);
}

function getBrandsCount(letter) {
    var j = 0;
    for (var i = 0; i < brands.length; i++) {
        if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
            j++;
        }
    }
    return j;
}

var current_letter = '';
function renderTable(letter) {
    var start = getBrandsByLetter(letter);
    var end = start + 40;
    var result = '';
    if (end < brands.length) {
        var row = 0;
        for (var i = start; i < end; i++) {
            if (row == 20) {
                result += '</ul><ul class="brands_right">';
            }
            result += '<li';
			if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
				result += ' class="highlight"';
			}
			result += '><a class="';
            if (brands[i][1].toLowerCase() == current_brand.toLowerCase()) {
                result += 'brlist_item_unlink' + '" href="javascript:;">';
            } else if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
                result += 'brlist_item_current' + '" href="' + brands[i][0] + '">';
            } else {
                result += 'brlist_item' + '" href="' + brands[i][0] + '">';
            }
            result += brands[i][1] + '</a></li>';
            row++;
        }
    } else if (end >= brands.length) {
        var fromEnd = brands.length - start;
        var fromStart = 40 - fromEnd;
        var row = 0;
        for (var i = start; i < brands.length; i++) {
            if (row == 20) {
                result += '</ul><ul class="brands_right">';
            }
			result += '<li';
			if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
				result += ' class="highlight"';
			}
			result += '><a class="';
            if (brands[i][1].toLowerCase() == current_brand.toLowerCase()) {
                result += 'brlist_item_unlink';
            } else if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
                 result += 'brlist_item_current';
            } else {
                 result += 'brlist_item';
            }
            result += '" href="' + brands[i][0] + '">' + brands[i][1] + '</a></li>';
            row++;
        }

        for (var i = 0; i < fromStart; i++) {
            if (row == 20) {
                result += '</ul><ul class="brands_right">';
            }
            result += '<li><a class="';
            if (brands[i][1].charAt(0).toLowerCase() == letter.toLowerCase()) {
                 result += 'brlist_item_current';
            } else {
                 result += 'brlist_item';
            }
            result += '" href="' + brands[i][0] + '">' + brands[i][1] + '</a></li>';
            row++;
        }
    }
    result = '<ul class="brands_left">' + result;
    result +=  '</ul>';
    if (current_letter != '') {
        document.getElementById('link_' + current_letter).className = 'br_letter';
    }
    current_letter = letter.toLowerCase();
    document.getElementById('link_' + letter.toLowerCase()).className = 'brl_highlight';
    document.getElementById('brands').innerHTML = result;
}
