    /* custom function use for map in conjuction w/ gmap_functions and google maps api */
    var station_obj;
    var station_arr = [];
    var info_popup = [];
    var info_html= [];
    var openmarker;
    var stcds = [];
    var point;
    var station_arr = [];
    var nt_data =[];
    var station_lines = [];
    var alert_msgs = [];
    var ico;
    var ico2;
    var update_time;    
    var alert_info_html = [];
    var st_info_html = [];
    // var for ajax arrays
    var st_nt = [];
    var ntd = [];
    var st_ntlen = 0;
    var st_edata = [];
    var st_edatalend = 0;
    var st_dis = [];    
    var st_dislen = 0;
    var ldiv;
		   
	/*setLineImg  */
    function setLineImg(str_line, size)
    {
	var img_src;
	
	switch (str_line)
	{
		case "o":
			if (size =="b")
			{
				img_src = "<img src ='img/orange_b3.gif' alt='Orange Line' />  ";
			}
			else
			{
				img_src = "<img src ='img/orange_s3.gif' alt='Orange Line' />";
			}
			break;
		case "r":
			if (size =="b")
			{	
				img_src = "<img src ='img/red_b.gif' alt='Red Line' />  ";
			}
			else
			{
				img_src = "<img src ='img/red_s.gif' alt='Red Line' />";
			}
			
			break;
		case "g":
			if (size =="b")
			{
				img_src = "<img src ='img/green_b.gif' alt='Green Line' />  ";
			}
			else
			{
				img_src = "<img src ='img/green_s.gif' alt='Green Line' />  ";
			}
			break;
		case "y":
			if (size =="b")
			{
				img_src = "<img src ='img/yellow_b.gif' alt='Yellow Line' />  ";
			}
			else
			{
				img_src = "<img src ='img/yellow_s.gif' alt='Yellow Line' />";
			}
			break;
		case "b":
			if (size =="b")
			{
				img_src = "<img src ='img/blue_b.gif' alt='Blue Line' />  ";
			}
			else
			{
				img_src = "<img src ='img/blue_s.gif' alt='Blue Line' />";
			}
			break;
	}
	return img_src;	
    }

    /*  custom getTime function */
    function getTime()
	{
	    var td = new Date();
	    var mins;
	    var secs;

 	    //set time 
	    if (td.getHours() >= 12)
	    {
		ampm = "PM";
		if (td.getHours()==12)
		{
			_hour = td.getHours();
		}
		else
		{ 
			_hour = td.getHours() -12;
		}
	    }
	    else
	    {
		ampm = "AM";		
		_hour = td.getHours();
		if (_hour ==0)
		{
			_hour = 12;
		}
	    }

	    mins = td.getMinutes();
	    if (mins < 10)
	    {
		mins = "0"+td.getMinutes();
	    }

 	    secs = td.getSeconds();
	    if (secs < 10)
	    {
		secs = "0"+secs;
	    }

    	update_time = _hour+":"+mins+":"+secs+" "+ampm;

	return update_time;
	}

	/*updateTimeStamp*/
	function updateTimeStamp()
	{
		var tm = new Date();
		var uptm = getTime();
		var rtn = tm.getMonth()+1 +"/"+tm.getDate()+"/"+tm.getFullYear()+"  "+uptm+" EDT";
		document.getElementById('tmstmp').innerHTML = rtn;  		
	}

	/* formatTraiTime - make sure train time display no time duplicates */	
	function formatTraiTime2(tt_ar)
	{
		var str_html = "";	
		var tt = [];
		var tw = [];
		var ex;
		var y;

		for (var x = 0; x < tt_ar.length ; x++)
		{
			
			if (tt_ar[x].length > 0)
			{

				if (tt_ar[x] == "BRD")
				{
					
					//str_html += tt_ar[x];
					if (! existsInAr(tt,tt_ar[x]))
					{
						tw.push(tt_ar[x]);
					}
				}
				
				if (tt_ar[x] == "ARR")
				{
					//str_html += tt_ar[x];
					if (! existsInAr(tt,tt_ar[x]))
					{
						tw.push(tt_ar[x]);
					}
				}

				if (tt_ar[x] == "LEAVING")
				{
					//str_html += tt_ar[x];
					if (! existsInAr(tt,tt_ar[x]))
					{
						tw.push(tt_ar[x]);
					}
				}			
				// we got number
				if (tt_ar[x] != "BRD" ) 
				{
					if (tt_ar[x] != "ARR")
					{
						y = tt_ar[x];
						y = y.replace("MINUTES"," ");	
						y = y.replace(/^\s+|\s+$/g, "") ;
				
						//ex = false;
						if (! existsInAr(tt,y))
						{
							tt.push(y);							
						}
					}
				}
			}									
		}

		//sort time array (tt);
		if (tw.length >0)
		{
			tw.sort();
			tw.reverse();
		}
		tt.sort(function(a,b){return a - b});
		//loop through data to return;	
		for (var x = 0; x < tw.length ; x++)
		{
			if (x > 0)
			{
				str_html += " - ";
			}
			str_html += tw[x];
			
		}
	
		if (tt.length > 0 && tw.length > 0)
		{
			str_html += " - ";
		}
		
		for (var x = 0; x < tt.length ; x++)
		{
			if (x > 0)
			{
				str_html += " - ";
			}
			str_html += tt[x]+"m";
		}

		return str_html;
	}

	function ntdata_ar2(ntda)
	   {
	var rt = [];

	for (var x=0; x < ntda.length ; x++)
		{				
			var td = ntda[x].split(",");			
			rt.push(td);
 		}

	return rt;
   	}

	/* existsInAr - value exists in array */
	function existsInAr(ar, val)
	{
		var rtn;	
		rtn = false;

		for (var i = 0; i < ar.length ; i++)
		{
			if (ar[i] == val)
			{
				rtn = true;	
			}				
		}
			
		return rtn;
	}		

	/* timeReload */
	function timeReload(cntr)
	{				
		if (cntr == 0)
		{
			//if (confirm("Would you like to refresh map data"))
			//{
				//load('');
				reloadStDisAlerts();
			//}
			cntr = 1 ;    //same as 'timeReload(x)'
		}
		else
		{
			cntr --;
		}

		setTimeout("timeReload("+cntr+")", 300000); //1000 = 1 second
	}	
	
	function reloadStDisAlerts()
	{	
		if (mt == "rail")
		{
		$.getJSON("metro_map_ajax.cfm?dis=yes&tm="+getTime(), function(d)
		{
		
			if (d.dis.length > 0)
			{
				var mk;
				alertmarkers = [];
				alts = [];
				var al_counter = 0;
				for (var x=0; x < d.dis.length; x++)
				{
					alts[x] = d.dis[x].start_loc+"|"+d.dis[x].end_loc+"|"+d.dis[x].disruption;				
				}			
				
				for (var n=0; n < station_arr.length ; n++)
				{		
					alms = [];				
					for (var x=0; x < alts.length; x++)
					{
						var alt = [];					
						alt = alts[x].split("|");						
						if (alt[0]== station_arr[n].name || alt[1] == station_arr[n].name)
						{						
							alms.push(alt[2]);
						}					
					}
				
					if (alms.length >0)
					{				
						station_arr[n].alert_popup_html = alertPopup(station_arr[n].id,station_arr[n].name, alms);
						mk = createAlertMarker(station_arr[n]);
						map.addOverlay(mk);
						station_arr[n].al_mk_ar_pos = al_counter;
						// add marker to array for zooming
						alertmarkers.push(mk);
						al_counter ++;
					}

				}
			
			}
			else
			{
				for (var n=0; n < station_arr.length ; n++)
				{
					station_arr[n].alert_popup_html = ""
					station_arr[n].alert_status = "0"
					station_arr[n].al_mk_ar_pos = 0;
				}
				if (alertmarkers.length > 0)
				{
				load('');
				}
				alertmarkers = [];
			}		
			updateTimeStamp();
		});
		}
	}
	
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   
   function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

