/*unfortunatly requires global name-space due to global functions*/
var fms_dialog;
var fms_map;
var $jq = jQuery.noConflict();

function showFindMyStop() {
	$jq.cookie('disableVeb', 'true', {expires: 365});
	$jq('#flashcontent').hide();
	fms_dialog.dialog('open');
	show_veb('flashcontent2', 1);
}

function vebClosed(){
	$jq.cookie('disableVeb', 'true', {expires: 365});
	pageTracker._trackEvent('VEB', 'Close');
	$jq('#flashcontent').hide();
}

function vebFinished(){
	$jq.cookie('disableVeb', 'true', {expires: 365});
	pageTracker._trackEvent('VEB', 'Finished');
	$jq('#flashcontent').hide();
}
	
$jq(document).ready(function() {
	
	var map_fromStreet;
	var fms_fromStreet;
	var map_toStreet;
	var fms_toStreet;
	
	var getVpidQueryString = function () {
		var stopNumber = $jq.cookie('vpidStopNumber');
		var queryString = '?fmsEnabled=true&maxresults=5&saveStopNumber=false&standalone=false';
		
		if (stopNumber) {
			queryString = '?stopNumber=' + stopNumber + '&fmsEnabled=true&maxresults=5&saveStopNumber=false&standalone=false';
		}
		return queryString;
	}
	
	fms_map = $jq('#map_canvas').fms({
		stopNumber: '7106',
		stopText: '7106',
		stopClickedCallBack: function (stop) {
			$jq('#stopNumber').val(stop['number']);
			fms_dialog.dialog( "close" );
			$jq('#vpidForm').submit();
			pageTracker._trackEvent('Find My Stop', 'Stop Selected', stop['number']);
		},
		mapSearchCallBack: function (searchString) {
			pageTracker._trackEvent('Find My Stop', 'Search', searchString);
		}
	});
	
	fms_dialog = $jq("#fms_container").dialog({
		title: 'Enter a location to find your bus stop, then simply click on the stop icon<img class="clickable help2" src="/images/helpIcon_24x24.png" alt"Help" style="position:absolute; top:1px; right:30px;"></img>',
		height: 420,
		width: 700,
		minHeight: 400,
		minWidth:700,
		modal: true,
		autoOpen: false,
		open: function(event, ui) {
			fms_map.trigger('updateStopNumber', $jq('#stopNumber').val());
			fms_map.trigger('show');
		},
		close: function () {
			$jq('#flashcontent2').hide();
			fms_map.trigger('close');
		},
		resize: function() {
			fms_map.trigger('resize');
		}
	});
	
	map_fromStreet = $jq('#map_fromStreet').fms({
		stopClickedCallBack: function (stop) {
			$jq('#fromLoc').val('');
			$jq('#fromStreet').val(stop['number']);
			fms_fromStreet.dialog( "close" );
			pageTracker._trackEvent('Find My Stop', 'Origin Stop Selected', stop['number']);
		},
		mapSearchCallBack: function (searchString) {
			pageTracker._trackEvent('Find My Stop', 'Search', searchString);
		}
	});
	
	fms_fromStreet = $jq("#fms_fromStreet").dialog({
		title: 'Enter a location to find your bus stop, then simply click on the stop icon',
		height: 420,
		width: 700,
		minHeight: 400,
		minWidth:700,
		modal: true,
		autoOpen: false,
		open: function(event, ui) {
			map_fromStreet.trigger('updateStopText', $jq('#fromStreet').val());
			map_fromStreet.trigger('show');
		},
		close: function () {
			map_fromStreet.trigger('close');
		},
		resize: function() {
			map_fromStreet.trigger('resize');
		}
	});
	
	map_toStreet = $jq('#map_toStreet').fms({
		stopClickedCallBack: function (stop) {
			$jq('#fromLoc').val('');
			$jq('#toStreet').val(stop['number']);
			fms_toStreet.dialog( "close" );
			pageTracker._trackEvent('Find My Stop', 'Destination Stop Selected', stop['number']);
		},
		mapSearchCallBack: function (searchString) {
			pageTracker._trackEvent('Find My Stop', 'Search', searchString);
		}
	});
	
	fms_toStreet = $jq("#fms_toStreet").dialog({
		title: 'Enter a location to find your bus stop, then simply click on the stop icon',
		height: 420,
		width: 700,
		minHeight: 400,
		minWidth:700,
		modal: true,
		autoOpen: false,
		open: function(event, ui) {
			map_toStreet.trigger('updateStopText', $jq('#toStreet').val());
			map_toStreet.trigger('show');
		},
		close: function () {
			map_toStreet.trigger('close');
		},
		resize: function() {
			map_toStreet.trigger('resize');
		}
	});
	
	$jq('#fromStreetMap').click(function () {
		fms_fromStreet.dialog('open');
	});
	
	$jq('#toStreetMap').click(function () {
		fms_toStreet.dialog('open');
	});
	
	/*vpid*/
	var initVpid = function () {
		$jq('#stopNumber').autocomplete({
			source: function(request, response) {
				$jq.ajax({
					url: MAXX['jpHost'] + '/iptis/ajax/stops-jsonp.asp',
					dataType: "jsonp",
					data: request,
					success: function(data) {
						response(data);
					}
				});
			},
			select: function(event, ui) {
				$jq('#stopNumber').val(ui.item.id);
				$jq('#vpidForm').submit();
			}
		});
	};
	
	$jq('body').delegate('#refreshVpid', 'click', function () {
		$jq('#vpidWait').show();
		
		// Fire Google Analytics event
		var stopNumber = $jq.cookie('vpidStopNumber');
		
		if(stopNumber && stopNumber !== "") {
			pageTracker._trackEvent('VPID', 'Refresh', stopNumber);
		} else {
			pageTracker._trackEvent('VPID', 'Refresh', 'DEFAULT');
		}
		
		$jq.ajax({
			url: '/_vpid.cfm'  + getVpidQueryString(),
			timeout: 25000,
			dataType: "html",
			success: function(data) {
				$jq('#vpid').html(data);
				initVpid();
				$jq('#vpidWait').hide();
			},
			error: function(req, status) {
				$jq('#vpid').html( 'Service is temporarily unavailable.<br />Please try again later.' );
				$jq('#vpidWait').hide();
			}
		});
		return false;
		
	}).delegate('#vpid .arrivals a', 'click', function () {
		$jq('#vpidWait').show();
		
		/* Hack and a half */
		var query = $jq(this).attr('href').split('?')[1];
		var q2;
		
		q2 = query.split('maxresults=0');
		if (q2.length = 2) {
			query = q2[0] + 'maxresults=5' + q2[1];
		}
		q2 = query.split('readOnly=true');
		if (q2.length = 2) {
			query = q2[0] + 'readOnly=false' + q2[1];
		}
		q2 = query.split('fmsEnabled=false');
		if (q2.length = 2) {
			query = q2[0] + 'fmsEnabled=true' + q2[1];
		}
		
		$jq.ajax({
			url: '/_vpid.cfm?' + query,
			timeout: 25000,
			dataType: "html",
			success: function(data) {
				$jq('#vpid').html(data);
				initVpid();
				$jq('#vpidWait').hide();
			},
			error: function(req, status) {
				$jq('#vpid').html( 'Service is temporarily unavailable.<br />Please try again later.' );
				$jq('#vpidWait').hide();
			}
		});
		return false;
		
	}).delegate('#vpidForm', 'submit', function() {
		$jq('#vpidWait').show();
		$jq('#stopNumber').autocomplete( "destroy" );
		
		// Save the VPID stop number to a cookie 
		var stopNumber = $jq('#stopNumber').val()
		if(stopNumber) {
			$jq.cookie('vpidStopNumber', stopNumber, {expires: 365});
		} else {
			$jq.cookie('vpidStopNumber', null);
		}
		
		// Fire Google Analytics event
		if(stopNumber && stopNumber !== "") {
			pageTracker._trackEvent('VPID', 'Load', stopNumber);
		} else {
			pageTracker._trackEvent('VPID', 'Load', 'DEFAULT');
		}
		
		$jq.ajax({
			url: '/_vpid.cfm?' + $jq(this).serialize(),
			timeout: 25000,
			dataType: "html",
			success: function(data) {
				$jq('#vpid').html(data);
				initVpid();
				$jq('#vpidWait').hide();
			},
			error: function(req, status) {
				$jq('#vpid').html( 'Service is temporarily unavailable.<br />Please try again later.' );
				$jq('#vpidWait').hide();
			}
		});
		return false;
	}).delegate('#vpidForm .more a', 'click', function() {
		// Fire Google Analytics event
		var stopNumber = $jq.cookie('vpidStopNumber');
		if(stopNumber && stopNumber !== "") {
			pageTracker._trackEvent('VPID', 'Show More', stopNumber);
		} else {
			pageTracker._trackEvent('VPID', 'Show More', 'DEFAULT');
		}
		
	}).delegate('.promoPanelVpid .help', 'click', function () {
		pageTracker._trackEvent('VEB', 'Help', 'VPID');
		show_veb('flashcontent', 0);
		
	}).delegate('.findMyStopButton', 'click', function () {
		$jq('#flashcontent').hide();
		fms_dialog.dialog('open');
		return false;
		
	}).delegate('.help2', 'click', function () {
		pageTracker._trackEvent('VEB', 'Help', '1');
		show_veb('flashcontent2', 1);
		
	});
	
	$jq('#vpidWait').show();
	$jq.ajax({
		url: '/_vpid.cfm' + getVpidQueryString(),
		timeout: 25000,
		dataType: "html",
		success: function(data) {
			$jq('#vpid').html(data);
			initVpid();
			$jq('#vpidWait').hide();
		},
		error: function(req, status) {
			$jq('#vpid').html( 'Service is temporarily unavailable.<br />Please try again later.' );
			$jq('#vpidWait').hide();
		}
	});
	
	
	$jq('#fromStreet').autocomplete({
		source: function(request, response) {
			$jq('#fromLoc').val('');
			$jq.ajax({
				url: '/iptis/ajax/locations-json.asp',
				dataType: "json",
				data: request,
				success: function(data) {
					response(data);
				}
			});
		},
		select: function(event, ui) {
				$jq('#fromLoc').val(ui.item.id);
		}
	});
	
	$jq('#toStreet').autocomplete({
		source: function(request, response) {
			$jq('#toLoc').val('');
			$jq.ajax({
				url: '/iptis/ajax/locations-json.asp',
				dataType: "json",
				data: request,
				success: function(data) {
					response(data);
				}
			});
		},
		select: function(event, ui) {
			$jq('#toLoc').val(ui.item.id);
		}
	});

	$jq('.home .inputRightArrow input').isUsed();
	
	$jq('.preferences .mover').ppdrag();
	$jq('.preferences').css({'left': '380px', 'top': '200px'});
	
	$jq(".preferencesButton").toggle (
		function () {
			$jq('.preferencesHolder').show();
			return false;
		}, function () {
			$jq('.preferencesHolder').hide();
			return false;
		}
	);
	
	$jq('.timetable .mover').ppdrag();
	
	$jq('.input input').hasText();
	
	
});
