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) {
  var contentArray = new Array();
  var keyArray = new Array();
  var flightsContainer = parent_obj.find(".pricebox").find(".flights");
  var flights = flightsContainer.find(".flight");
  flights.each(function(index) {
  	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
	  }
	  contentArray[amount].push($(this));
        keyArray[index] = 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
	   }
	   contentArray[dep_date].push($(this));
         keyArray[index] = 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
	   }
	   contentArray[dep_time].push($(this));
         keyArray[index] = 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
	   }
	   contentArray[arr_time].push($(this));
         keyArray[index] = arr_time;
	} else {
	}
  });
  if (keyArray.length > 0) {
    	keyArray.sort(function(a,b) {
      return isASC ? a-b : b-a;
    });
    flightsContainer.empty();
    var count = 0;
    for (var i = 0; i < keyArray.length; i++) {
      var key = keyArray[i];
      var items = contentArray[key];
      for (var ii in items) {
	  var val = items[ii];
	  count++;
	  if ((count % 2) == 0) {
	    val.css("background-color", "transparent");
	  }
	  else {
	    val.css("background-color", "white");
	  }
	  flightsContainer.append(val);
     }
    }
    // 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>");
  }
}
