/*
 * Common JavaScript helpers.
 */

function $(obj)
{
	try {
		return document.getElementById(obj);
	} catch(e) {alert(e);}
	
	return false;
}

Array.prototype.unique = function () {
    var r = new Array();
    o:for(var i = 0, n = this.length; i < n; i++) {
        for(var x = 0, y = r.length; x < y; x++) {
            if(r[x] == this[i])
                continue o;
        }
        r[r.length] = this[i];
    }
    return r;
}

/*
 * Common module for general utility methods.
 */
var Common = {
	// Currently placeholder only for other modules. Do not remove.
};

/*
 * Browser settings detection module.
 */
Common.Browser = {
  innerWidth: function() {
    return window.innerWidth || document.documentElement.clientWidth;
  },

  innerHeight: function() {
    return window.innerHeight || document.documentElement.clientHeight;
  }
};

/*
 * Module for popups related functions.
 */
Common.Popups = {		
	/*
	 * Open popup window with specified options. Default options
	 * should be prefered for consistency where possible.
	 *
	 * Returns window object.
	 */
	openPopup : function(url, name, width, height, options)
	{
		var defaults = {
			toolbar:		'no',
			location:		'no',
			directories:	'no',
			status:			'yes',
			menubar:		'no',
			scrollbars:		'yes',
			resizable:		'yes',
			alwaysRaised:	'yes',
			width:			'670',
			height:			'500',
			dependent:		'yes'
		}
		
		for (var property in (options || {})) {
     		defaults[property] = source[property];
  		}
  		
  		var params = '';
  		var first = true;
		for (var property in defaults)
		{
			if (first)
				first = false
			else
				params += ',';
				
			params += property + '=' + defaults[property];
		}
		var win = window.open(url, name, params);
		win.focus();
		return win;
	},
	
	/*
	 * Open schedule window with default popup settings for specified parameters.
	 * Returns window object.
	 */
	openScheduleWindow : function(baseUrl, departCity, depDay, depMonth,
		depTime, destCity, airline)
	{
		url = [baseUrl, '&page=flightScheduleMessage_learn',
			'&action=flightSchedule',
			'&departCity=', departCity,
			'&depDay=', depDay,
			'&depMonth=', depMonth,
			'&depTime=', depTime,
			'&destCity=', destCity,
			'&Airline=', airline];
		return this.openPopup(url.join(''), 'flightScheduleWin', {});
	}
};