/*srch js by pix*/
jQuery.fn.geosrchToolbar = function(options)
{
    var settings = jQuery.extend
    (
        {
              tbbuttons:new Array ({id:'Poibtn',label:'label_poi',value:'data5',title:'poititle'},{id:'Hnbtn',label:'label_hn',value:'test1',title:'hntitle'},{id:'Citybtn',label:'label_city',value:'test1',title:'citytitle'}),
              lang:null,
              defbuton:2
        }, options
    );
    
    var lang          = settings.lang;
    var selectedval   = null;
    var tbcontainer   = this;
    
    
    jQuery.getSelectedTbVal = function(){return selectedval;}
    
  
    for (a=0;a<settings.tbbuttons.length;a++)
    {
        var btn = settings.tbbuttons[a];
        var divbtn        = document.createElement('div');
        jQuery(divbtn).attr('id',btn.id);
        jQuery(divbtn).addClass('srchBtn'+btn.id);
        lbl = eval("lang."+btn.label);
        titl = eval("lang."+btn.title);
        jQuery(divbtn).attr('title',titl);

        jQuery(divbtn).html(lbl);
        tbcontainer.append(divbtn);

        //def val
        if (a == settings.defbuton)
        {
             jQuery(divbtn).addClass('srchBtnSelected'+btn.id);
             jQuery(divbtn).removeClass('srchBtn'+btn.id);
             selectedval = getVal(btn.id);
        }

        jQuery(divbtn).click(function()
        {


          for (a=0;a<settings.tbbuttons.length;a++)
          {
              if (settings.tbbuttons[a].id == this.id)
              {
                      //alert("clicked " + this.id);
                      jQuery(this).addClass('srchBtnSelected'+this.id);
                      jQuery(this).removeClass('srchBtn'+this.id);
                      selectedval =  getVal(this.id);
                      if (jQuery('#autocomplete').attr('checked'))
                      {

                          loadAutocomplete(false);
                          loadAutocomplete(true);
                      }
               }else{
                      //alert("none " + settings.tbbuttons[a].id);
                      jQuery("#"+settings.tbbuttons[a].id).addClass('srchBtn'+settings.tbbuttons[a].id);
                      jQuery("#"+settings.tbbuttons[a].id).removeClass('srchBtnSelected'+settings.tbbuttons[a].id);
              }
          }

        });
    }

    function getVal(id)
    {
         for (a=0;a<settings.tbbuttons.length;a++)
         {
            var btn = settings.tbbuttons[a];
            if (btn.id == id) return btn.value;
         }
         return null;
    }
    
}


jQuery.fn.geosrch = function(options)
{
      var settings = jQuery.extend(
      {
        map:null,
        wsurl:null,
        framedivcss:'geoSrchContainer',
        framedivcssSelected:'geoSrchContainerSelected',
        framedivdescriptioncss:'geoSrchContainerDescription',
        framedivdcountcss:'geoSrchContainerCount',
        paginationcss:'paginateGeoSrch',
        paginationcssSelected:'paginateGeoSrchSelected',
        optcsscontainer : 'geoSrchOptContainer',
        optcssstart : 'geoSrchOptStart',
        optcssstop : 'geoSrchOptEnd',
        optcssvia : 'geoSrchOptVia',
        optcsstext : 'geoSrchOptTxt',
        togglecssOpen : 'geoSrchToggleDetailOpen',
        togglecssClose : 'geoSrchToggleDetailClose',
        togglecssText  : 'geoSrchTogglecssText',
        detailcss : 'geoSrchDetail',
        detailtextcss : 'geoSrchDetailText',
        pagenum : 8,
        paginatediv:'srch_paginate',
        paginatedivmessages:'srch_paginate_msg',
        lang:null,
        imgcontroller:null,
        showoptimstartbuttonsrch:true,
        showoptimviabuttonsrch:true,
        showoptimstopbuttonsrch:true,
        showoptimmenusrch:true,
        showoptimmenupopup:true
        
        
        
      }
      , options);
      
      var lang = settings.lang;
      var loccontainer     = this;
      var glocation;
      var gmatchmode;
      var goffset;
      var glimit;
      var gmaxresults;
      var gindex;

      var gcountdata;
      var paginlist = [];
      var startp = 1 ;
      var stopp  = settings.pagenum;
      var curp =  null;
      var map  = settings.map.getMapInstance();
      var srchmarkers = new OpenLayers.Layer.Markers( "srch_result" );
      var srchextents  = new OpenLayers.Layer.Boxes( "srch_extent" );
      var paginatecall = false;
      var popuplist = [];
       
      deleteMarkers();
      map.addLayer(srchmarkers);
      map.addLayer(srchextents);	
	
     jQuery.drawLocationXY = function(x,y,minx,maxx,miny,maxy)
     {
            la = new OpenLayers.LonLat(parseFloat(x),parseFloat(y)).transform
            (
                   new OpenLayers.Projection("EPSG:4326"),
                   new OpenLayers.Projection("EPSG:900913")
            );

            if (minx == 0 || miny == 0 || maxx == 0 || maxy == 0)
            {
                   minx=x;miny=y;maxx=x;maxy=y
            }

            bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy).transform(
                   new OpenLayers.Projection("EPSG:4326"),
                   new OpenLayers.Projection("EPSG:900913")
                  );
            box = new OpenLayers.Marker.Box(bounds);

            srchextents.addMarker(box);
            renderOnMap(la,'xy');
            d = x+" : "+y;
            jQuery('#xy_location_innerImage').click(function()
            {
                addPopup("234567sdsdsdf",la,d,d,"1",null);
            } );
            
      };
     
      jQuery.findLocation = function (location,matchmode,offset,limit,maxresults,index)
      {
          if (! paginatecall) {curp = null; startp = 1; stopp = settings.pagenum};
          
          deleteMarkers(); 
          
          glocation = location;gmatchmode = matchmode;goffset = offset;glimit = limit;gmaxresults = maxresults;gindex = index;
          var srchterm = encodeURI(location)+'/'+matchmode+'/'+offset+'/'+limit+'/'+maxresults+'/'+index;
          
          //alert (settings.wsurl+'/'+srchterm);
          //jQuery('#geosrch').val(lang.srch_wait);
          jQuery('#geosrch').css('background-color','red');
          
          jQuery.get(settings.wsurl+'/'+srchterm,{},function (data)
          {
               
              var xmldata = jQuery.text2xml(data);
              
              gcountdata = jQuery(xmldata).find('count').text();
              cs = limit + offset;
              if (gcountdata <= cs) cs = gcountdata;

              jQuery('#'+settings.paginatedivmessages).html(lang.srch_paginate_label1+ cs+lang.srch_paginate_label2+gcountdata);
              
              if (gcountdata > 0)
              {    
                loccontainer.html('');
                removeAllPopups();
                paginate();
              }  
              else
              {    
                loccontainer.html(lang.srch_no_hits+location);
                jQuery('#geosrch').val(glocation);
                jQuery('#geosrch').css('background-color','white');
                clearpaginate();
                return;
              }
             
              var cz = 0;
              var bounds;
              jQuery(xmldata).find('locationlist').each(function(){
                  var description = jQuery(this).find('description').text();
                  var x1           = jQuery(this).find('x1').text();
                  var y1           = jQuery(this).find('y1').text();
                  var x2           = jQuery(this).find('x2').text();
                  var y2           = jQuery(this).find('y2').text();
                  var xc           = jQuery(this).find('xc').text();
                  var yc           = jQuery(this).find('yc').text();
                  var zoom         = jQuery(this).find('zoom').text();
                  var type         = jQuery(this).find('type').text();
                  
                  if (x1 == 0 || y1 == 0 || x2 == 0 || y2 == 0)
                  {
                      x1=xc;y1=yc;x2=xc;y2=yc
                  }
                  
                  var la = new OpenLayers.LonLat(parseFloat(xc),parseFloat(yc)).transform(
                   new OpenLayers.Projection("EPSG:4326"),
                   new OpenLayers.Projection("EPSG:900913")
                  );
                  bounds = new OpenLayers.Bounds(x1,y1,x2,y2).transform(
                   new OpenLayers.Projection("EPSG:4326"),
                   new OpenLayers.Projection("EPSG:900913")
                  );
                       
                  var divc        = document.createElement('div');
                  var divdescr    = document.createElement('div');
                  var divcount    = document.createElement('div');
                  var optcontainer = document.createElement('div');
                  var divstartopt = document.createElement('div');
                  var divviaopt   = document.createElement('div');
                  var divendopt   = document.createElement('div');
                  
                  var divstartoptTxt = document.createElement('div');
                  var divviaoptTxt   = document.createElement('div');
                  var divendoptTxt   = document.createElement('div');
                  
                  var divtoggledetail   = document.createElement('div');
                  var divtoggledetailtext   = document.createElement('div');
                  var divdetail   = document.createElement('div');
                  var divdetailtext   = document.createElement('div');
                  
                  cz ++;
                  
                  renderOnMap(la,cz);
                  var listpd = parseDescriptionXml(type,description);

                  jQuery(divdescr).attr('title',lang.hint1);
                  jQuery(divc).addClass(settings.framedivcss);
                  jQuery(divc).attr('id',cz+'gsdivc');
                  jQuery(divdescr).attr('id',cz+'gsdivcdescr');
                  jQuery(divdescr).addClass(settings.framedivdescriptioncss);
                  
                  jQuery(divdescr).html(listpd.meniheader);
                  
                  jQuery(divdetailtext).html('');
                  jQuery(divtoggledetailtext).html(lang.srch_route_plan_label);
                  
                  jQuery(divcount).addClass(settings.framedivdcountcss);
                  jQuery(divcount).html(cz);

                  jQuery(optcontainer).attr('title',lang.hint3);
                  jQuery(optcontainer).addClass(settings.optcsscontainer);
                  jQuery(divstartopt).addClass(settings.optcssstart);
                  jQuery(divendopt).addClass(settings.optcssstop);
                  jQuery(divviaopt).addClass(settings.optcssvia);
                  jQuery(divstartoptTxt).addClass(settings.optcsstext);
                  jQuery(divviaoptTxt).addClass(settings.optcsstext);
                  jQuery(divendoptTxt).addClass(settings.optcsstext);
                  
                  jQuery(divtoggledetailtext).addClass(settings.togglecssText);
                  jQuery(divtoggledetail).addClass(settings.togglecssClose);
                  jQuery(divdetail).addClass(settings.detailcss);
                  jQuery(divdetailtext).addClass(settings.detailtextcss);
                  jQuery(divdetail).css('display','none');
                    
                  jQuery(divc).append(divtoggledetail);
                  jQuery(divc).append(divtoggledetailtext);
                  jQuery(divc).append(divcount);
                  jQuery(divc).append(divdescr);
                 
                  jQuery(divtoggledetail).toggle(
                  function(){ jQuery(divtoggledetail).removeClass(settings.togglecssClose);jQuery(divtoggledetail).addClass(settings.togglecssOpen);jQuery(divdetail).show()},
                  function(){ jQuery(divtoggledetail).removeClass(settings.togglecssOpen);jQuery(divtoggledetail).addClass(settings.togglecssClose);jQuery(divdetail).hide()}
                  );

                  jQuery(divtoggledetailtext).toggle(
                  function(){ jQuery(divtoggledetail).removeClass(settings.togglecssClose);jQuery(divtoggledetail).addClass(settings.togglecssOpen);jQuery(divdetail).show()},
                  function(){ jQuery(divtoggledetail).removeClass(settings.togglecssOpen);jQuery(divtoggledetail).addClass(settings.togglecssClose);jQuery(divdetail).hide()}
                  );
     
                  if (settings.showoptimmenusrch)
                  {    
                      if (settings.showoptimstartbuttonsrch)
                      {
                        jQuery(divstartoptTxt).html(lang.srch_route_plan_start_label);
                        
                        jQuery(optcontainer).append(divstartopt);
                        jQuery(optcontainer).append(divstartoptTxt);
                        jQuery(divstartopt).click(function(){jQuery.addOptimPoint(jQuery.routens.typestart,xc,yc,listpd.optimdescr )});
                        jQuery(divstartoptTxt).click(function(){jQuery.addOptimPoint(jQuery.routens.typestart,xc,yc,listpd.optimdescr )});
                      }
                      if (settings.showoptimviabuttonsrch)
                      {
                        jQuery(divviaoptTxt).html(lang.srch_route_plan_via_label);
                        
                        jQuery(optcontainer).append(divviaopt);
                        jQuery(optcontainer).append(divviaoptTxt);
                        jQuery(divviaopt).click(function(){jQuery.addOptimPoint(jQuery.routens.typevia,xc,yc,listpd.optimdescr )});
                        jQuery(divviaoptTxt).click(function(){jQuery.addOptimPoint(jQuery.routens.typevia,xc,yc,listpd.optimdescr )});
                      }

                      if (settings.showoptimstopbuttonsrch)
                      {
                        jQuery(divendoptTxt).html(lang.srch_route_plan_end_label);
                        
                        jQuery(optcontainer).append(divendopt);
                        jQuery(optcontainer).append(divendoptTxt);
                        jQuery(divendopt).click(function(){jQuery.addOptimPoint(jQuery.routens.typeend,xc,yc,listpd.optimdescr )});
                        jQuery(divendoptTxt).click(function(){jQuery.addOptimPoint(jQuery.routens.typeend,xc,yc,listpd.optimdescr )});
                      }
                  }
                  jQuery(divdetail).append(optcontainer); 
                  jQuery(divdetail).append(divdetailtext);
                  
                  jQuery(divc).append(divdetail);
                  
                  loccontainer.append(divc);
                  var popup = null;
                  setEvents(cz,listpd.popupheader,listpd.popupdata,listpd.optimdescr,la,popup,bounds);
                   
              });
              //jQuery('#geosrch').val(glocation);
              jQuery('#geosrch').css('background-color','white');
              
              map.zoomToExtent(getBounds(bounds,srchmarkers.getDataExtent())  );
              
          });
      }

      function parseDescriptionXml(type,description,la,cz)
      {
          var parseddata = {optimdescr:null,meniheader:null,menidata:null,menibndytitle:null,popupheader:null,popupdata:null};
          var xmldata = jQuery.text2xml(description);
          var rootxml = jQuery(xmldata).find('term');
          
          //alert(type);
          
          var b1 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab1'));
          var b2 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab2'));
          var b3 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab3'));
          var b4 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab4'));
          var b5 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab5'));
          var b6 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab6'));
          var b7 = parseDescriptionXmlBindy(jQuery(rootxml).find('ab7'));
          
          if ((type == 1) || (type == 2) || (type == 3) || (type == 4)) 
          {
               rootxml.each(function()
               {
                  var description = jQuery(this).find('dscr').text(); 
                  parseddata.meniheader =  description+"<br>"+"("+b1.header+ ","+b3.header+")";
                  parseddata.menibndytitle = b1.title+ "<br>"+b2.title+"<br>"+b3.title;
                  parseddata.popupheader = description;
                  parseddata.popupdata = description + " ("+b1.header+","+b2.header+","+b3.header+")";
                  parseddata.optimdescr = description;
                  
               });
          }
          else
          {
              rootxml.each(function()
              {
                  var fac_type = jQuery(this).find('fac_type').text();
                  var poi_name = jQuery(this).find('poi_name').text();
                  var ph_number       = jQuery(this).find('ph_number').text();
                  var e_posta       = jQuery(this).find('e_posta').text();
                  var internet       = jQuery(this).find('internet').text();
                  var cas       = jQuery(this).find('cas').text();
                  var mobitel       = jQuery(this).find('mobitel').text();
                  var st_name       = jQuery(this).find('st_name').text();
                  var poi_st_num       = jQuery(this).find('poi_st_num').text();
                  var opombe          = jQuery(this).find('opombe').text();
                  
             
                  popupc="<table class='popupTable'>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_tel_lbl+":</b></td><td>&nbsp;"+ph_number+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_gsm_lbl+":</b></td><td>&nbsp;"+mobitel+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_mail_lbl+":</b></td><td>&nbsp;"+e_posta+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_www_lbl+":</b></td><td>&nbsp;"+internet+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_open_lbl+":</b></td><td>&nbsp;"+cas+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_address_lbl+":</b></td><td>&nbsp;"+st_name+ " " + poi_st_num+"</td>";
                    popupc+="</tr>";
                    popupc+="<tr>";
                      popupc+="<td><b>"+lang.adds_popup_field_op_lbl+":</b></td><td>&nbsp;"+opombe+"</td>";
                    popupc+="</tr>";
                  popupc+="</table>";
                  popupc+="<table>";
                  
                  parseddata.meniheader = poi_name;
                  parseddata.menibndytitle = b1.title+ "<br>"+b2.title+"<br>"+b3.title;
                  parseddata.popupheader = poi_name;
                  parseddata.popupdata = popupc
                  parseddata.optimdescr = poi_name;
                  
              });
          }
          return parseddata;
      }
      
      function parseDescriptionXmlBindy(bindy)
      {
           var xmldata = bindy //jQuery.text2xml(bindy);
           var parseddata = {header:null,title:null}
           var bndval = "";
           var bndalt = "";
           c=0;
           jQuery(bindy).each(function()
           {
                  c++;
                  var domb = jQuery(this).find('dom').text();
                  var altb = jQuery(this).find('alt').text();
                  if (c == 1) bndval = domb;
                  bndalt+=domb+" , "+altb+" , ";
           });
           parseddata.header = bndval;
           parseddata.title  = bndalt;
           return parseddata;
      }
      
      function removeAllPopups()
      {
          for (a=0; a< popuplist.length ;a++)
          {
              map.removePopup(popuplist[a]);
          }    
      }
      
      
      function renderOnMap(la,z)
      {
         var size = new OpenLayers.Size(20,26);
         var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
         icon = new OpenLayers.Icon(settings.imgcontroller+'/'+z+'/geosrch',size,offset,null,z+'_location');
         marker = new OpenLayers.Marker(la,icon);
         srchmarkers.addMarker(marker);
         jQuery('#'+z+'_location_innerImage').css('cursor','pointer');        
      }

      function paginate()
      {
          paginatecall = false;
          clearpaginate();
          for (p=startp; p<=stopp; p++)
          {    
              paginlist.push(p);
              var pagina  = document.createElement('div');
              jQuery(pagina).attr('title',lang.hint2);
              var pid     = 'geopage'+p;
              jQuery(pagina).html(p);
              jQuery(pagina).attr('id',pid);
              
              if ( gcountdata > 0 && ((Math.floor(gcountdata/glimit)+1)* glimit) >= p*glimit)
              {
                  jQuery('#'+settings.paginatediv).append(pagina);
                  if (curp  == null && p==1) {curp = pagina;};
                  jQuery(pagina).addClass(settings.paginationcss);
                  jQuery("#"+curp.id).removeClass(settings.paginationcss);
                  jQuery("#"+curp.id).addClass(settings.paginationcssSelected);
              }
             
              jQuery(pagina).click(function()
              {
                  curp         = this; 
                  paginatecall = true;
                  
                  page = parseInt(this.id.substring('geopage'.length,this.id.length));
                  noffset = (page - 1) * glimit ;
                  middle = parseInt (settings.pagenum / 2);                   
                 
                  startp = page -  middle ;
                  stopp  = startp +  settings.pagenum ;
                  if (startp <= 0) {startp = 1; stopp = settings.pagenum;}
                  if (stopp > gcountdata) stopp = stopp;
                 
                  jQuery.findLocation(glocation,gmatchmode,noffset,glimit,gmaxresults,gindex);
                    
              });   
          }   
      }
      
      function getBounds(b1,b2)
      {
           var zoom_bounds = null;
           if ((b1.getWidth() * b1.getHeight() ) > (b2.getWidth() * b2.getHeight()  ) )
           {
                zoom_bounds = b1;
           }
           else
           {
                zoom_bounds = b2;
           }
           return zoom_bounds;
      }
      
      function setEvents(id,description,detaildescription,optimlabel,la,popup,bounds)
      { 
          
           jQuery('#'+id+'gsdivcdescr').click(function()
           {
              
               selid = parseInt(this.id.substring(0,this.id.length - 'gsdivc'.length));
               if ( document.getElementById("popup_"+id)== null)
               {
                  jQuery('#'+selid+'gsdivc').removeClass(settings.framedivcss);
                  jQuery('#'+selid+'gsdivc').addClass(settings.framedivcssSelected);
                  popup = addPopup(id,la,description,detaildescription,optimlabel,bounds);
                  map.zoomToExtent( bounds );
                  
               }
               else
               {
                  jQuery('#'+selid+'gsdivc').removeClass(settings.framedivcssSelected);
                  jQuery('#'+selid+'gsdivc').addClass(settings.framedivcss);
                  map.removePopup(popup);
               }        
                                         
           });

           jQuery('#'+id+'_location_innerImage').click(function()
           {
               
               selid = parseInt(this.id.substring(0,this.id.length - '_location_innerImage'.length));
               jQuery(this).css('cursor','pointer');
               if ( document.getElementById("popup_"+id)== null)
               {
                  jQuery('#'+selid+'gsdivc').removeClass(settings.framedivcss);
                  jQuery('#'+selid+'gsdivc').addClass(settings.framedivcssSelected);
                  popup = addPopup(id,la,description,detaildescription,optimlabel,bounds);
                  map.zoomToExtent( bounds );
                
               }
               else
               {
                  jQuery('#'+selid+'gsdivc').removeClass(settings.framedivcssSelected);
                  jQuery('#'+selid+'gsdivc').addClass(settings.framedivcss);
                  map.removePopup( popup);
               }        
           });
          
      }

      function deleteMarkers() 
      {            
         srchmarkers.clearMarkers();
      }
      
      function clearpaginate()
      {
          for (c=0; c<=gmaxresults; c++)
          {
            jQuery("#geopage"+c).remove();
          }    
          paginlist = [];  
      }

     
      function addPopup(id,la,description,detail,optimlabel,bounds)
      {
          
          popupc= "<div>";
          popupc+="<div class='popupTitle'><div class='popupDetailToggle' id='popupDetailToggle"+id+"'></div>"+description+"</div>";
            popupc+="<div class='popupDetail' style='display:none;' id=popup_detail_"+id+">";
            popupc+="<table>";
              popupc+="<tr>";
                popupc+= "<td><b>"+detail+"</b></td>";
              popupc+="</tr>";
              if (settings.showoptimmenupopup)
              { 
              popupc+="<tr>";
                popupc+="<td>";
                  popupc+=lang.srch_popup_routeplan_label+"<br>";
                popupc+="</td>";
              popupc+="</tr>"; 
              popupc+="<tr>";
                popupc+="<td>";
                  popupc+=lang.srch_route_plan_start_label+" : <img id='optims_"+id+"' style='cursor:pointer' src='"+lang.image_start_optim_menu+"' />";
                  popupc+=" | "+lang.srch_route_plan_via_label+" : <img id='optimv_"+id+"' style='cursor:pointer' src='"+lang.image_via_optim_menu+"' /> | ";
                  popupc+=lang.srch_route_plan_end_label+" : <img id='optime_"+id+"' style='cursor:pointer' src='"+lang.image_stop_optim_menu+"' />";
                popupc+="</td>";
             popupc+="</td>";
            popupc+="</tr>";
              }
            popupc+="<tr>";
              popupc+="<td id='zoomtoloc_"+id+"' style='cursor:pointer' >";
                popupc+=lang.srch_popup_zoom_label+"&nbsp;<img src='"+lang.image_blue_zoom+"' /><br>";
              popupc+="</td>";
            popupc+="</tr>";
            popupc+="</table>";
            popupc+="</div>";
          popupc+="</div>";

          var popup = new OpenLayers.Popup.Anchored("popup_"+id,
                                     la,
                                     null,
                                     popupc,
                                     null, true, function afterclose(){
                                          jQuery('#'+id+'gsdivc').addClass(settings.framedivcss);
                                          jQuery('#'+id+'gsdivc').removeClass(settings.framedivcssSelected);
                                          map.removePopup(popup);
                                     } );
                                           
          popup.autoSize = true;
          popup.isAlphaImage = true;
          popup.setOpacity(1);
          map.addPopup(popup);
          
          popup.updateSize();
          
          jQuery("#popupDetailToggle"+id).toggle(
          function (){jQuery("#popup_detail_"+id).show();popup.updateSize();},function (){jQuery("#popup_detail_"+id).hide();popup.updateSize();}
          );
          
          lawgs = new OpenLayers.LonLat(la.lon,la.lat).transform(
                   new OpenLayers.Projection("EPSG:900913"),
                   new OpenLayers.Projection("EPSG:4326")
          );
              
          jQuery('#optime_'+id).click(function(){jQuery.addOptimPoint(jQuery.routens.typeend,lawgs.lon,lawgs.lat,optimlabel )}); 
          jQuery('#optimv_'+id).click(function(){jQuery.addOptimPoint(jQuery.routens.typevia,lawgs.lon,lawgs.lat,optimlabel )});
          jQuery('#optims_'+id).click(function(){jQuery.addOptimPoint(jQuery.routens.typestart,lawgs.lon,lawgs.lat,optimlabel )});
          jQuery('#zoomtoloc_'+id).click(function(){map.setCenter(la,9)});
          
          popuplist.push(popup);
          return popup;
          
      }

}