var depCal, retCal;
function createAutoComplete(url, elInput, elHiddenInput, elContainer, callB) {
var oDS = new YAHOO.util.XHRDataSource(url);
oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
oDS.responseSchema = {
recordDelim: "\n",
fieldDelim: ";",
fields: ["name", "code", "country"]
};

oDS.maxCacheEntries = 5;

var oAC = new YAHOO.widget.AutoComplete(elInput, elContainer, oDS);
oAC.resultTypeList = false;
oAC.useIFrame = true;
oAC.formatResult = function(data, query, match) {
return '<b>' + data.name + '</b>' + '<b>' + " " + data.code + '</b>' + '<b>' + " " + data.country + '</b>';
};
var myHiddenField = $(elHiddenInput);
var myHandler = function(sType, aArgs) {
var myAC = aArgs[0];
var elLI = aArgs[1];
var oData = aArgs[2];
myHiddenField.val(oData.code);
if (callB) {
callB(oData);
}
};
oAC.itemSelectEvent.subscribe(myHandler);
return {
oDS: oDS,
oAC: oAC
};
}
function syncCals(departure) {
var selDepartureMonthYear = $("#departureMonthYear").val();
var departureDay = parseInt($("#departureDay").val());
var departureMonth = parseInt(selDepartureMonthYear.substring(5, 7));
var departureYear = parseInt(selDepartureMonthYear.substring(0, 4));
var selReturnMonthYear = $("#returnMonthYear").val();
var returnDay = parseInt($("#returnDay").val());
var returnMonth = parseInt(selReturnMonthYear.substring(5, 7));
var returnYear = parseInt(selReturnMonthYear.substring(0, 4));
var u = false;
if (!isNaN(departureDay) && !isNaN(departureMonth) && !isNaN(departureYear)
&& !isNaN(returnDay) && !isNaN(returnMonth) && !isNaN(returnYear)) {
if (returnYear < departureYear) {
if (departure) {
returnYear = departureYear;
} else {
departureYear = returnYear;
}
u = true;
}
if (returnYear == departureYear && returnMonth < departureMonth) {
if (departure) {
returnMonth = departureMonth;
} else {
departureMonth = returnMonth;
}
u = true;
}
if (returnYear == departureYear && returnMonth == departureMonth
&& returnDay < departureDay) {
if (departure) {
returnDay = departureDay;
} else {
departureDay = returnDay;
}
u = true;
}
if (u) {
var p, d, m, y, c;
if (departure) {
p = "return";
d = returnDay;
m = returnMonth;
y = returnYear;
c = retCal
} else {
p = "departure";
d = departureDay;
m = departureMonth;
y = departureYear;
c = depCal;
}
$("#" + p + "Day").val(d);
$("#" + p + "MonthYear").val(y + "-" + m);
c.select(m + "/" + d + "/" + y);
c.cfg.setProperty("pagedate", m + "/" + y);
c.render();
}
}
}
function initYUICalendar(fromDate, toDate, elPrefix, calContainer) {
var cal = new YAHOO.widget.Calendar(calContainer, {
mindate:fromDate,
maxdate:toDate,
LOCALE_WEEKDAYS:"1char",
START_WEEKDAY: 1});
cal.cfg.setProperty("MONTHS_LONG",
["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"]);
cal.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "T", "O", "T", "F", "L"]);
cal.render();
cal.selectEvent.subscribe(function (p_sType, p_aArgs) {
if (p_aArgs) {
var aDate = p_aArgs[0][0];
var dM = aDate[0] + "-" + aDate[1];
$("#" + elPrefix + "MonthYear").val(dM);
$("#" + elPrefix + "Day").val(aDate[2]);
syncCals("departure" == elPrefix);
}
});
$("#" + elPrefix + "Day").bind("change", {cal:cal, elPrefix:elPrefix}, updateCal);
$("#" + elPrefix + "MonthYear").bind("change", {cal:cal, elPrefix:elPrefix}, updateCal);
return cal;
}
function updateCalendar(cal, prefix) {
var selMonthYear = $("#" + prefix + "MonthYear").val();
var month = selMonthYear.substring(5, 7);
var year = selMonthYear.substring(0, 4);
cal.cfg.setProperty("pagedate", month + "/" + year);
cal.select(month + "/" + $("#" + prefix + "Day").val() + "/" + year);
cal.render();
syncCals("departure" == prefix);
}
function updateCal(event) {
updateCalendar(event.data.cal, event.data.elPrefix);
}
function toggleRow(i) {
$("#row" + i).toggle();
var l = $("#moreButton"+i).val();
$("#moreButton"+i).val("+" == l ? "-" : "+");
}
function popup() {
var url = arguments[0];
var name = 'popup';
var width = 400;
var height = 400;
if (arguments.length >= 2) {
name = arguments[1];
if (arguments.length >= 4) {
width = arguments[2];
height = arguments[3];
}
}
var w = window.open(url, name, "toolbar=no,location=0,directories=no,scrollbars=yes,resizable=yes,width=" + width + ",height=" + height);
w.focus();
}function updateTo2(oData) {
$("input#toIATA2").val($("input#fromIATA").val());
$("input#toName2").val($("input#fromName").val());
}
function updateFrom2(oData) {
$("input#fromIATA2").val($("input#toIATA").val());
$("input#fromName2").val($("input#toName").val());
}
$(function() {
createAutoComplete("/citySuggest.action", "fromName", "#fromIATA", "fromCityContainer", updateTo2);
createAutoComplete("/citySuggest.action", "toName", "#toIATA", "toCityContainer", updateFrom2);
createAutoComplete("/citySuggest.action", "fromName2", "#fromIATA2", "fromCityContainer2");
createAutoComplete("/citySuggest.action", "toName2", "#toIATA2", "toCityContainer2");
$("#oneway").bind("click", function() {
if ($("#oneway").is(":checked")) {
$("#returnTripProperties").hide();
} else {
$("#returnTripProperties").show();
}
});
$("#openJaw").bind("click", function() {
toggleOpenJaw();
});
$("#children").change(function() {
if ($("#children").val() > 0) {
$("#childrenAges").show();
var i = 0;
for (i = 0; i < $("#children").val(); i++) {
$("#child" + i).show();
}
for (i; i < 8; i++) {
$("#child" + i).hide();
}
} else {
$("#childrenAges").hide();
}
});
toggleOpenJaw();
});
function toggleOpenJaw() {
if ($("#openJaw").is(":checked")) {
$("#openJawFromTo").show();
$("#city1Txt").html("Avresa från");
$("#city2Txt").html("Avresa till");
} else {
$("#openJawFromTo").hide();
$("#city1Txt").html("Från");
$("#city2Txt").html("Till");
}
}