// JavaScript Document
var Anchors = function(element, node, columnMax, items){
	//our 'constructor'
	this.element = document.getElementById(element).getElementsByTagName(node);
	this.length = this.element.length;
	this.columnMax = columnMax;
	this.items = items;
	this.display();
}
Anchors.prototype.getItemsPerColumn = function() {
	var items = this.items;
	var itemMax = this.columnMax * items;
	if (this.length > itemMax) {
		var remainingItems = this.length - itemMax;
		items = items + Math.ceil(remainingItems / this.columnMax);
	}
	return items;
}
Anchors.prototype.display = function() {
	this.setMaxColumnHeight();
	this.setColumnMargin();
}
Anchors.prototype.setColumnList = function() {
	var k = 0;
	var itemsPerColumn = this.getItemsPerColumn();
	var columnMax = this.columnMax;
	var a = [columnMax];
	for (i=0; i < columnMax; i++) {
		var l = 0;
		a[i] = [];
		for (j=k; j < itemsPerColumn + k; j++) {
			if (this.element[j]) {
				a[i][l] = this.element[j];
			}
			l = l + 1;
		}
		k = k + itemsPerColumn;
	}
	return a;
}

Anchors.prototype.getColumnHeight = function() {
	var heights = [];
	var columnHeight = 0;
	var columnList = this.setColumnList();
	
	for (i=0; i < columnList.length; i++) {
		columnHeight = 0;
		for (j=0; j < columnList[i].length; j++) {
			columnList[i][j].className = "anchorSection" + (i + 1);
			columnList[i][j].style.height = columnList[i][j].offsetHeight + "px";
			columnHeight = columnHeight + columnList[i][j].offsetHeight;
		}
		heights[i] = columnHeight;
		
	}
	return heights;
}
Anchors.prototype.getMaxColumnHeight = function() {
	var maxHeight = 0;
	var remainder = [];
	var element = this.getColumnHeight();
	for (i=0; i < element.length; i++) {
		maxHeight = element[i] > maxHeight ? element[i] : maxHeight;
		remainder[i] = maxHeight - element[i];
	}
	return remainder;
}
Anchors.prototype.setMaxColumnHeight = function() {
	var element = this.setColumnList();
	var columnHeightRemainder = this.getMaxColumnHeight();
	var columnHeight = 0;
	var lastListItemHeight;
	var lastListItem;
	for (i=0; i < element.length; i++) {
		if (element[i][element[i].length - 1]) {
			lastListItem = element[i].length - 1;
			lastListItemHeight = element[i][lastListItem].offsetHeight + columnHeightRemainder[i] + "px";
			element[i][lastListItem].style.height = lastListItemHeight;
		}
	}
}
Anchors.prototype.setColumnMargin = function() {
	var element = this.setColumnList();
	var columnHeight = this.getColumnHeight();
	var remainder = this.getMaxColumnHeight();
	for (i=0; i < element.length; i++) {
		if (i > 0) {
			if (element[i][0]) {
				element[i][0].style.marginTop = "-" + columnHeight[i - 1] + "px";
			}
		}
	}
}

function displayAnchorList() {
	// var anchorList = new Anchors('deals-participating-states', 'li', 4, 12);
	// var cityAnchorList = new Anchors('deals-participating-cities', 'li', 5, 5);
	if (document.getElementById('deals-participating-states')) {
		var anchorList = new Anchors('deals-participating-states', 'li', 4, 12);
	}
	if (document.getElementById('deals-participating-countries')) {
		var anchorList = new Anchors('deals-participating-countries', 'li', 4, 12);
	}
}

$(function(){
	var isParticipatingHotel = $('#participating-hotel-state');
	
	if($(isParticipatingHotel).length > 0)
	{
		displayAnchorList();
	}

});
