var month_array = new Array();
month_array["Jan"] = 1;
month_array["Feb"] = 2;
month_array["Mar"] = 3;
month_array["Apr"] = 4;
month_array["May"] = 5;
month_array["Jun"] = 6;
month_array["Jul"] = 7;
month_array["Aug"] = 8;
month_array["Sep"] = 9;
month_array["Oct"] = 10;
month_array["Nov"] = 11;
month_array["Dec"] = 12;

/*
 * Sorting function for price boxes TODO: need changes when layout of price
 * boxes changed
 */
function sort_price_box(parent_obj, col_name, icon_id, isSingle, isASC, pageId,
		pageThreshold) {
	var contentArray = new Array();
	var keyArray = new Array();
	var flightsContainer = parent_obj.find(".pricebox").find(".flights");
	var flights = flightsContainer.find(".flight");
	var i = 0;
	flights.each(function(index) {
		// avoid inserting duplicate keys!
		var insertKey = false;
		var col_element = $(this).find("a").find("." + col_name);
		if (col_name == "col-price") { // price column
			var price = col_element.find("span").html();
			var amount = parseFloat(price.substring(6));
			if (contentArray[amount] == undefined) {
				contentArray[amount] = new Array(); // Use associate array
				insertKey = true;
			}
			contentArray[amount].push($(this));
			if (insertKey) {
				keyArray[i++] = amount;
			}
		} else if (col_name == "col-departure-date") {
			var dep_date = col_element.find("div").find("span").html();
			var split_arr = dep_date.split("-");
			var day = parseInt(split_arr[0], 10);
			var month = parseInt(month_array[split_arr[1]]);
			var year = parseInt(split_arr[2]);
			dep_date = new Date(year, month - 1, day);
			if (contentArray[dep_date] == undefined) {
				contentArray[dep_date] = new Array(); // Use associate array
				insertKey = true;
			}
			contentArray[dep_date].push($(this));
			if (insertKey) {
				keyArray[i++] = dep_date;	
			}
		} else if (col_name == "col-departure") {
			var dep_time = isSingle ? col_element.text() : col_element.find(
					"div").find("span").html();
			var split_arr = dep_time.split(":");
			dep_time = new Date(1970, 1, 1, parseInt(split_arr[0], 10),
					parseInt(split_arr[1], 10), 0, 0);
			if (contentArray[dep_time] == undefined) {
				contentArray[dep_time] = new Array(); // Use associate array
				insertKey = true;
			}
			contentArray[dep_time].push($(this));
			if (insertKey) {
				keyArray[i++] = dep_time;
			}
		} else if (col_name == "col-arrival") {
			var arr_time = isSingle ? col_element.text() : col_element.find(
					"div").find("span").html();
			var split_arr = arr_time.split(":");
			arr_time = new Date(1970, 1, 1, parseInt(split_arr[0], 10),
					parseInt(split_arr[1], 10), 0, 0);
			if (contentArray[arr_time] == undefined) {
				contentArray[arr_time] = new Array(); // Use associate array
				insertKey = true;
			}
			contentArray[arr_time].push($(this));
			if (insertKey) {
				keyArray[i++] = arr_time;
			}
		} else {
		}
	});
	if (keyArray.length > 0) {
		// sorting the key array in ascending | descending order
		keyArray.sort(function(a, b) {
			return isASC ? a - b : b - a;
		});
		flightsContainer.empty();
		var count = 0;
		var pageCount = 0;
		var pageContainer;
		var divContainer;
		// force creation of the first div
		var empty = false;
		for ( var i = 0; i < keyArray.length; i++) {
			// checking if a new div should be created - divcontainer anyway may be undefined
			if (count % pageThreshold == 0) {
				if (!empty) {
					pageCount++;
					if (pageCount != 1) {
						flightsContainer.append(divContainer);
					}
					var divHtml = "<div class='tabcontent paddingAll ";
					if (pageCount != 1) {
						divHtml += " hide";
					}
					divHtml += "' id='" + pageId + "-" + pageCount
							+ "-1' style='height: 281px;'>";
					divContainer = $(divHtml + "</div>");
					empty = true;
				} else {
					empty = false;
				}

			}
			var key = keyArray[i];
			var items = contentArray[key];
			for (var ii in items) {
				if (count % pageThreshold == 0) {
					// if no flights have been inserted yet, no need to open a div
					if (!empty && count > 0) {
						pageCount++;
						if (pageCount != 1) {
							flightsContainer.append(divContainer);
						}
						var divHtml = "<div class='tabcontent paddingAll ";
						if (pageCount != 1) {
							divHtml += " hide";
						}
						divHtml += "' id='" + pageId + "-" + pageCount
								+ "-1' style='height: 281px;'>";
						divContainer = $(divHtml + "</div>");
						empty = true;
					} else {
						empty = false;
					}
				}
				var val = items[ii];
				if ((count % 2) == 0) {
					val.removeClass("flights-background-A");
					val.addClass("flights-background-white");
				} else {
					val.removeClass("flights-background-white");
					val.addClass("flights-background-A");
				}
				divContainer.append(val);
				count++;
				empty = false;
			}
		}
		// append last set of flights!
		flightsContainer.append(divContainer);
		// change style
		var header_span = parent_obj.find(".header").find("." + col_name);
		if ($("#" + icon_id) != undefined) {
			$("#" + icon_id).remove();
		}
		header_span.append("<span id=\"" + icon_id + "\" class=\"icon-sort\">"
				+ (isASC ? "▲" : "▼") + "</span>");
	}
	// light up first tab

	var links = $("#bottom-tabs-" + pageId).find("a");
	links.each(function() {
		if ($(this).attr("id") == "" + pageId + "-1") {
			$(this).addClass("activeLink");
		} else {
			$(this).removeClass("activeLink");
		}
	});
}

