﻿// JScript File
var xminFullRoute;
var xmaxFullRoute;
var yminFullRoute;
var ymaxFullRoute;
function centerOnPoint(pX,pY,label)
{
    var message = "CenterOnPoint";
    message += "::" + pX + "::" + pY + ((label==null) ? "" : ("::" + label));
    var context = "";
    __theFormPostData = ''; 
    WebForm_InitCallback(); 
    eval(callBackInvocationString);
//    return false;
}
function SendGeocodeRequest(add,city,clearcity,street,clearstreet,num)
  {
        num = num || "";
        street = street || "";
        city = city || "";
        clearstreet = clearstreet || "";
        clearcity = clearcity || "";
        if (city == "")
            return; // nothing to do
        if (city!="" && clearcity=="")
        {
            showMessage('emapMessage',1,2);
            return;
        }            
        if (street!="" && clearstreet=="")
        {
            showMessage('emapMessage',2,2);
            return;
        }            
        var isNew = false;
        if (currentPoint==null)
        {
            isNew = true;
        }    
        else
        {        
            if ((clearcity!=currentPoint.par2) || (clearstreet!=currentPoint.par4) || (num!=currentPoint.par5))
                isNew = true;
        }   
        if (isNew)
        {
            currentPoint = new pointObject();
            if (!currentPoint.setType(1))
            {
                alert('Wrong point type');
                return;
            }
            
            if (!currentPoint.setMode(1))
            {
                alert('Wrong point mode');
                return;
            }
            currentPoint.par1=city;
            currentPoint.par2=clearcity;
            currentPoint.par3=street;
            currentPoint.par4=clearstreet;
            currentPoint.par5=num;
            currentPoint.setDisplay();
        }    
        if (add==1){
            addToList(currentPoint,'emapStationList');
            try {
                 cleanPointInput('RoutePoint');
                 }
            catch(e){  
                    }     
            return;
        }
        var message="Geocode";
        message += "::";
        message += currentPoint.toString('^');
//        message += clearstreet + " " + num + " " + clearcity;
//        message += currentPoint.par1 + "^" + currentPoint.par2 + "^" + currentPoint.par3 + "^" + currentPoint.par4 + "^" + currentPoint.par5;
//        message += '::';
//        message += currentPoint.display;
        message += '::-1'; // Index of point in array. -1 - currentPoint
        var context=""; 
        __theFormPostData = ''; 
        WebForm_InitCallback(); 
        eval(callBackInvocationString);
        return false;
    }   
  function SendSiteRequest(add,city,clearcity,category,categoryCode,site,coords)
  {
        if (coords==null || coords=="")
            return false;
        var x = coords.split(",")[0];
        var y = coords.split(",")[1];   
//        centerOnPoint(x,y);
//        return; 
        if (isNaN(x) || isNaN(y))
            return false;

        var isNew = false;
        if (currentPoint==null)
        {
            isNew = true;
        }    
        else
        {        
            if ((clearcity!=currentPoint.par2) || (categoryCode!=currentPoint.par4) || (site!=currentPoint.par5))
                isNew = true;
        }   
        if (isNew)
        {
            currentPoint = new pointObject();
            if (!currentPoint.setType(2))
            {
                alert('Wrong point type');
                return;
            }
            currentPoint.setData(city,clearcity,category,categoryCode,site)
            currentPoint.setDisplay();
            currentPoint.X = x;
            currentPoint.Y = y;
            currentPoint.resolved = true;
        }
        if (add==1){
            addToList(currentPoint,'emapStationList');
            cleanPointInput('RoutePoint');
            return;
        }
        var message="CenterOnSite";
        message += "::";
        message += currentPoint.toString('^');
        message += '::-1'; // Index of point in array. -1 - currentPoint
        var context=""; 
        __theFormPostData = ''; 
        WebForm_InitCallback(); 
        eval(callBackInvocationString);
        return false;
  }
  
  function SendExtentRequest(xmin,xmax,ymin,ymax)
   {    
        var message="Extent";
        message += "::";
        message += xmin + "^" + xmax + "^" + ymin + "^" + ymax;
        var context="Extent";
        __theFormPostData = ''; 
        WebForm_InitCallback(); 
        eval(callBackInvocationString);
   } 
  function SendRouteRequest(circular,reverse)
   {
      var i;
      var p1;
      var p2; 
        if (prevTabID != TAB_ROUTE2_ID)
        {
            if (pointsArray.length<=1)
            {
                alert('For route calculation enter at least 2 points');
                return false;
            }
        }
            
        var message="Route::";
        // Set route parameters
        // Q/S(quick/short)  : 1/0 (toll road) : 1/0 (territory) :  D/R (direct/invert) : L/C (linear/circular) : O/N (optimized/not)
        // -------------
        var ch = document.getElementById("routeType_Q").checked;
        if (ch)
            message+="Q^";
        else
            message+="S^";
        // ------------------    
        ch = document.getElementById("restrict_Toll").checked;
        if (ch)
            message+="1^";
        else
            message+="0^";
        // ------------------    
        ch = document.getElementById("restrict_Terr").checked;
        if (ch)
            message+="1^";
        else
            message+="0^";
        // ------------------    
        if (reverse==1)
            message+="R^";
        else
            message+="D^";
        // ------------------    
        if (circular==1)
            message+="C^";
        else
            message+="L^";
        // ------------------    
        ch = document.getElementById("routeType_Opt").checked;
        if (ch)
            message+="O";
        else
            message+="N";
            
        if (prevTabID != TAB_ROUTE2_ID)
        {
            for (var i=0;i<pointsArray.length;i++)
            {
                message += '::' + pointsArray[i].toString('^');
            }
         }
         else
         {
            p1 = new pointObject();
            setPointFromControl(p1,"RoutePoint");
            p2 = new pointObject();
            setPointFromControl(p2,"RoutePoint2");
            message += '::' + p1.toString('^');
            message += '::' + p2.toString('^');
         }   
       var context="RouteAddresses";
       __theFormPostData = ''; 
       WebForm_InitCallback(); 
       eval(callBackInvocationString);
       return false;
   }  
		
// Functions called from ClientCallBackResult object
function setPointXY(idx,X,Y)
{
    var p;
    if (idx<0)
    {
        if (currentPoint==null)
            return;
        else
            p=currentPoint;
    }    
    else
    {
      if (pointsArray.length  <  idx + 1)
      {
        pointsArray[idx] = new pointObject();
        pointsArray[idx].setType(4);
       }
       p=pointsArray[idx];
    }
        p.X = X;
        p.Y = Y;
        p.resolved = true;
        if (idx>=0)
            restoreList('emapStopList');
}

function setFullRouteExtent(xmin,xmax,ymin,ymax)
{
    xminFullRoute=xmin;
    xmaxFullRoute=xmax;
    yminFullRoute=ymin;
    ymaxFullRoute=ymax;
}
    

 function intercept( sender, e ){
    var url = e.get_webRequest().get_url();
    url=url.replace("index.aspx",((clientLang=="eng") ? "Default_eng.aspx" : "Default.aspx"));
    e.get_webRequest().set_url(url);
}
