/* * Aviation alert javascript * Developer: Pravesvuth Uparanukraw * Version: 1.1 */ // Variables var firstLoad = true; var datePickerOption = { showAnim: 'fadeIn', duration: 'fast', dateFormat: 'dd-M-yy', maxDate: new Date(), hideIfNoPrevNext: true, changeMonth: true, changeYear: true } $(document).ready(function () { initControls(); initEvents(); initDatePickers(); initRssMenu(); }); //Initialize Controls function initControls() { hiddenRegion = getHiddenRegion().value; hiddenSubregion = getHiddenSubregion().value; getRegionCallBack.argument.selectingOption = hiddenRegion; ajaxGetRegion(); getSubregionCallBack.argument.selectingOption = hiddenSubregion; ajaxGetSubregion(hiddenRegion.replace("&","%26")); ajaxGetAviationAlerts(hiddenRegion.replace("&","%26"), hiddenSubregion.replace("&","%26"), getFromDatePicker().value, getUntilDatePicker().value); } //Initialize Events function initEvents() { initRegionEvents(); initSubregionEvents(); initRangeEvents(); initFromDateEvents(); initUntilDateEvents(); } //Initialize Date Pickers function initDatePickers() { $("#fromDatePicker").datepicker(datePickerOption); $("#untilDatePicker").datepicker(datePickerOption); $("#fromDatePicker").change(function () { if ($("#fromDatePicker").datepicker("getDate") > $("#untilDatePicker").datepicker("getDate")) $("#untilDatePicker").val($("#fromDatePicker").val()); ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); }); $("#untilDatePicker").change(function () { if ($("#untilDatePicker").datepicker("getDate") < $("#fromDatePicker").datepicker("getDate")) $("#fromDatePicker").val($("#untilDatePicker").val()); ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); }); if (getFromDatePicker().value == "" && getUntilDatePicker().value =="") { $("#specify").hide(); } } //Initialize Tabs (Sections) function initTabs() { var tabView = new YAHOO.widget.TabView('profileMainTabs'); tabView.addListener('contentReady', function(t) { var t = queryString("tab"); var idx = 0; for (var x=0; x 0 ) { $('#main_rss ul').append("
  • "+regionTxt+" - Region
  • "); } if (subregion!=null && subregion!="null" && subregion.length > 0 ) { $('#main_rss ul').append("
  • "+subregionTxt+" - Subregion
  • "); } } //Initialize Trigger (Type) function initTriggers() { $('.type').each(function () { var trigger = $('.trigger', this); var content = $('.alertContent', this).hide(); trigger.click(function () { if ($(this).hasClass("open")) { $(this).removeClass("open"); $("span",this).removeClass("afterLinkArwDwn"); content.slideUp(); } else { $(this).addClass("open"); $("span",this).addClass("afterLinkArwDwn"); content.slideDown(); } }); }); } //Initialize Trigger (Inner Content) function initContentTrigger() { $(".qTrigger, .aClose").css("cursor","pointer"); $('.triggerContainer').each(function () { var t = $(this); $(".qTrigger",this).click(function () { if ($(t).next().hasClass('hide')) { $("span",this).addClass("afterLinkArwDwn"); $(t).next().removeClass('hide'); } else { $("span",this).removeClass("afterLinkArwDwn"); $(t).next().addClass('hide'); } }); $(".aClose",$(this).parent()).click(function () { $(".afterLinkArwDwn",t).removeClass("afterLinkArwDwn"); $(t).next().addClass('hide'); }); }); } //Initialize Trigger (Block) function initBlockContent() { $(".alertBlock").hover( function() { $(this).addClass("alertBlockAlt"); }, function() { $(this).removeClass("alertBlockAlt"); }); } //Initialize Auto Expand and Focus on the specific function initAutoExpandFocus() { } /* * Callback functions */ var getRegionCallBack = { success : function(o) { if (o.responseText !== undefined) { refreshOptions("regionPicker", o.responseXML, o.argument.selectingOption); } }, failure : function(o) { //do nothing }, argument: { selectingOption: null } }; var getSubregionCallBack = { success : function(o) { if (o.responseText !== undefined) { refreshOptions("subregionPicker", o.responseXML, o.argument.selectingOption); } }, failure : function(o) { //do nothing }, argument: { selectingOption: null } }; function initBlock() { $(".lnk").each(function() { var file = $(this).attr("href"); $(this).load("ajax_loadContent.jsp?file="+file); }); } var getAviationAlertsCallBack = { success : function(o) { if (o.responseText !== undefined) { displayContent("alerts-body", o.responseText); $("#alerts-body").fadeIn("fast"); initTabs(); initTriggers(); refreshMainRssMenu(); initRssMenu(); initBubble(); initScroll(); //initBlock(); initBlockContent(); initContentTrigger(); $("#status-pane").hide(); initAutoExpandFocus(); } }, failure : function(o) { $("#status-pane").hide(); } }; function getRegionPicker() { return document.getElementById('regionPicker'); } function getSubregionPicker() { return document.getElementById('subregionPicker'); } function getHiddenRegion() { return document.getElementById('hiddenRegion'); } function getHiddenSubregion() { return document.getElementById('hiddenSubregion'); } function getFromDatePicker() { return document.getElementById('fromDatePicker'); } function getUntilDatePicker() { return document.getElementById('untilDatePicker'); } function getRangePicker() { return document.getElementById('rangePicker'); } function refreshOptions(pickerElementId, optionXml, selectingOption) { var pickerElement = document.getElementById(pickerElementId); var groups = $('optgroup',optionXml); var picker = $("#"+pickerElementId); var newOptions = ""; $("*", picker).remove(); if (groups.length > 0) { for (var g = 0; g < groups.length; g++) { var groupLabel = $(groups[g]).attr('label'); newOptions += ""; var opts = $('option',groups[g]); for (var i=0; i < opts.length; i++) { var selected = false; var optVal = $(opts[i]).attr('value'); var optLabel = $(opts[i]).text(); if (selectingOption!=null && selectingOption.replace("&","%26") == optVal) { selected = true; }; newOptions += ""; } newOptions += ""; } picker.append(newOptions); } else { var opts = $('option',optionXml); for (var i=0; i"+optLabel+""; } picker.append(newOptions); } pickerElement.disabled = false; } function displayContent(targetElementId, content) { document.getElementById(targetElementId).innerHTML = content; } function onRegionChange(e) { getSubregionCallBack.argument.selectingOption = null; ajaxGetSubregion(getRegionPicker().value); ajaxGetAviationAlerts(getRegionPicker().value,null,getFromDatePicker().value,getUntilDatePicker().value); } function onSubregionChange(e) { ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); } function onFromDateChange(e) { ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); } function onUntilDateChange(e) { ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); } function onRangeChange(e) { if (getRangePicker() != null) { var range = getRangePicker().value; var date; if (range.indexOf("all") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); $("#fromDatePicker").val(""); } else if (range.indexOf("specify") != -1) { $("#specify").show(); } else if (range.indexOf("7 days") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); date = getdDateWithinDays(7); $("#fromDatePicker").val($.datepicker.formatDate("dd-M-yy",date)); } else if (range.indexOf("14 days") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); date = getdDateWithinDays(14); $("#fromDatePicker").val($.datepicker.formatDate("dd-M-yy",date)); } else if (range.indexOf("30 days") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); date = getdDateWithinDays(30); $("#fromDatePicker").val($.datepicker.formatDate("dd-M-yy",date)); } else if (range.indexOf("3 months") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); date = getdDateWithinMonth(3); $("#fromDatePicker").val($.datepicker.formatDate("dd-M-yy",date)); } else if (range.indexOf("1 year") != -1) { $("#specify").hide(); $("#untilDatePicker").val(""); date = new Date(); date.setFullYear(date.getFullYear()-1,date.getMonth(),1); $("#fromDatePicker").val($.datepicker.formatDate("dd-M-yy",date)); } if (range != "specify") { ajaxGetAviationAlerts(getRegionPicker().value,getSubregionPicker().value,getFromDatePicker().value,getUntilDatePicker().value); } } } function ajaxGetRegion() { getRegionPicker().disabled = true; getRegionPicker().options.length = 0; getRegionPicker().options[0] = new Option(" Loading... ",null); var url = "ajax_getRegion.jsp"; YAHOO.util.Connect.asyncRequest('GET', url, getRegionCallBack, null); } function ajaxGetSubregion(region) { getSubregionPicker().disabled = true; getSubregionPicker().options.length = 0; getSubregionPicker().options[0] = new Option(" Loading... ",null); var url = "ajax_getSubregion.jsp"; if (region != null && region != "null") { url += "?region=" + region; } YAHOO.util.Connect.asyncRequest('GET', url, getSubregionCallBack, null); } function ajaxGetAviationAlerts(region, subregion, from_date, until_date) { var url = "ajax_getAviationAlert.jsp"; var i=0; if (subregion!=null && subregion!="null" && subregion.length > 0) { if (i!=0) url += "&"; else url += "?"; url += "subregion=" + subregion; i++; } if (region!=null && region!="null" && region.length > 0 ) { if (i!=0) url += "&"; else url += "?"; url += "region=" + region; i++; } if (from_date!=null && from_date!="null" && from_date.length > 0) { if (i!=0) url += "&"; else url += "?"; url += "from=" + from_date; i++; } if (until_date!=null && from_date!="null" && until_date.length > 0) { if (i!=0) url += "&"; else url += "?"; url += "until=" + until_date; i++; } $("#alerts-body").fadeOut("fast"); $("#status-pane").show(); YAHOO.util.Connect.asyncRequest('GET', url, getAviationAlertsCallBack, null); } function initRegionEvents() { YAHOO.util.Event.addListener(getRegionPicker(), "change", onRegionChange); } function initSubregionEvents() { YAHOO.util.Event.addListener(getSubregionPicker(), "change", onSubregionChange); } function initFromDateEvents() { YAHOO.util.Event.addListener(getFromDatePicker(), "change", onFromDateChange); } function initUntilDateEvents() { YAHOO.util.Event.addListener(getUntilDatePicker(), "change", onUntilDateChange); } function initRangeEvents() { YAHOO.util.Event.addListener(getRangePicker(), "change", onRangeChange); } /* * Utility Functions */ function updateRegionText(txt) { if (txt != null && txt != "null") { $("#regionTxt").text(txt.replace("%26","&")); } else { $("#regionTxt").text("All Regions"); } } function getdDateWithinMonth(month) { d = new Date(); m = d.getMonth(); y = d.getFullYear(); if (m < month) { y = y-1; tm = month - m; m = m - tm; } else { m = m - month; } d.setMonth(m); d.setFullYear(y); d.setDate(1); return d; } function getdDateWithinDays(day) { d = new Date(); dt = d.getTime(); t = day * 24 * 60 * 60 * 1000; nt = dt - t; d.setTime(nt); return d; }