	var xmlHttp;
	// requestURL has to be a variable
	// set in the config or somewhere ..
    var requestURL = getRootPath() + '/DesktopModules/JourneyPlannerResults/PrepareRouteService.aspx?';
    var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
    var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;
    var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;
    //netscape, safari, mozilla behave the same???
    var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;    
    
    function prepare_RouteService(strttname, strttkey, strquickid, strtabid, strDate){
		test = new Date();
		var sYear = test.getFullYear();
		var sMonth = test.getMonth() + 1;
		if(sMonth < 10)
		{
			sMonth = "0" + sMonth;
		}
		//alert(sMonth);
		var sDay = test.getDate();
		var sHours = test.getHours();
		var sMinutes = test.getMinutes();
		var sMilliseconds = test.getMilliseconds();
		var requestTimestamp = Date.UTC(sYear,sMonth,sDay,sHours,sMinutes,sMilliseconds);//get the date string		
		var ttDate = sDay + "/" + sMonth + "/" + sYear;
		//Has the strDate Parameter been supplied - if not default to today
		strDate = (typeof(strDate) == "undefined") ? ttDate : strDate;
		//alert(strDate);
    	if (strttkey > 0)
		{
			//Ok here
			var url = requestURL + 'strttname=' + strttname + '&strttkey=' + strttkey + '&strquickid=' + strquickid + '&strtabid=' + strtabid + '&requestTimestamp=' + requestTimestamp + '&strDate=' + strDate;
            //alert(url);
            //Create the xmlHttp object to use in the request
            //stateChangeHandler will fire when the state has changed, i.e. data is received back
            // This is non-blocking (asynchronous)
            xmlHttp = GetXmlHttpObject(stateChangeHandler);
            
            //Send the xmlHttp get to the specified url
            xmlHttp_Get(xmlHttp, url);
        }
        else 
		{
            alert('No Connection available.\n Please try again later.');
        }
    }

    //stateChangeHandler will fire when the state has changed, i.e. data is received back
    // This is non-blocking (asynchronous)
    function stateChangeHandler()
    {
        //readyState of 4 or 'complete' represents that data has been returned
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){
        //Re-Enable Button (Disabled in tpTimetableIndex)
		//var theform = document.forms[0];
		//for (i=0; i<theform.elements.length; i++){
			//if (theform.elements[i].type=="button"){
				//if (theform.elements[i].disabled==true){ //check if disabled
				//theform.elements[i].disabled=false; //enable button
				//break //end loop. No need to continue.
				//}
			//}
		//}
			if (xmlHttp.status == 200){
				var result=xmlHttp.responseText;
				if (result == 'prepare successed'){
					resizeMAPWindow();
				}
				else
				{
					//alert('No map available for this timetable.\n Please try again later.');
					alert(result);
					closeMapWindow();
				}
			}
        }
    }

    // XMLHttp send GET request
    function xmlHttp_Get(xmlhttp, url) {
		try
		{
			xmlhttp.open('GET', url, true);
			xmlhttp.send(null);
		}
	catch(e) {
              strErrorMsg = 'Error:\t' + e.name;
              strErrorMsg += '\n\t' + e.message;
              strErrorMsg += '\n\t' + e.number;
              strErrorMsg += '\n\t' + e.description;

              alert(strErrorMsg);
       }
    }

    function GetXmlHttpObject(handler) {
        var objXmlHttp = null;    //Holds the local xmlHTTP object instance

        //Depending on the browser, try to create the xmlHttp object
        if (is_ie){
            //The object to create depends on version of IE
            //If it isn't ie5, then default to the Msxml2.XMLHTTP object
            var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
            
            //Attempt to create the object
            try{
                objXmlHttp = new ActiveXObject(strObjName);
                objXmlHttp.onreadystatechange = handler;
            }
            catch(e){
            //Object creation errored
                //alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
                return;
            }
        }
        //else if (is_opera){
			
            //Opera has some issues with xmlHttp object functionality
            //alert('Opera detected. The page may not behave as expected.');
            //return;
        //}
        else{
            // Mozilla | Netscape | Safari | Opera
            objXmlHttp = new XMLHttpRequest();
            objXmlHttp.onload = handler;
            objXmlHttp.onerror = handler;
        }
        
        //Return the instantiated object
        return objXmlHttp;
    }
