var tabs;

function getCombosData(vAddType,AssetType,afterdon)
{
        
           Ext.Ajax.request({
           url:hosturl + 'json/json.aspx',
           success: function (conn, response, options) {
                     // vr to hold if Redraw Nedded
                     // if we change a value back to default, we need to reload map data
                     var reDraw = false;
                     
                     // clear events so they wont be triggered on update
                     //Ext.fly('x-i-AssetType').dom.onchange = null;
                     Ext.fly('x-i-from_rooms').dom.onchange = null;
                     Ext.fly('x-i-to_rooms').dom.onchange = null;
                     Ext.fly('x-i-from_price').dom.onchange = null;
                     Ext.fly('x-i-to_price').dom.buggeronchange = null;
                     Ext.fly('x-i-arbitration').dom.onclick = null;
                     //Ext.fly('x-i-arbitation-span').dom.onclick = null;
                     
           
                     var ar = eval(conn.responseText); // Parse JSON
                     // Save Old Values
                         //var AssetType = Ext.fly('x-i-AssetType').dom.options[Ext.fly('x-i-AssetType').dom.selectedIndex].value;
                         var FromRoomNumber = Ext.fly('x-i-from_rooms').dom.options[Ext.fly('x-i-from_rooms').dom.selectedIndex].value;
                         var ToRoomNumber = Ext.fly('x-i-to_rooms').dom.options[Ext.fly('x-i-to_rooms').dom.selectedIndex].value;
                         var ToPrice = Ext.fly('x-i-to_price').dom.options[Ext.fly('x-i-to_price').dom.selectedIndex].value;
                         var FromPrice = Ext.fly('x-i-from_price').dom.options[Ext.fly('x-i-from_price').dom.selectedIndex].value;
                     
                     // Fill Combos
                     var roomsArray=[{text:'0',value:'0'},
                                     {text:'1',value:'1'},
                                     {text:'2',value:'2'},
                                     {text:'2.5',value:'2.5'},
                                     {text:'3',value:'3'},
                                     {text:'3.5',value:'3.5'},
                                     {text:'4',value:'4'},
                                     {text:'4.5',value:'4.5'},
                                     {text:'5',value:'5'},
                                     {text:'5.5',value:'5.5'},
                                     {text:'6',value:'6'},
                                     {text:'7',value:'7'},
                                     {text:'8',value:'8'},
                                     {text:'9',value:'9'},
                                     {text:'10',value:'10'},
                                     {text:'11',value:'11'},
                                     {text:'12',value:'12'},
                                     {text:'13',value:'13'},
                                     {text:'14',value:'14'},
                                     {text:'14+',value:'1000'}
                                     ];
                     
                     //fillComboAR('x-i-AssetType',ar.AssetTypes);
                     fillComboAR('x-i-from_rooms',roomsArray);
                     fillComboAR('x-i-to_rooms',roomsArray);
                     fillComboAR('x-i-from_price',ar.PriceTable);
                     fillComboAR('x-i-to_price',ar.PriceTable);
                     
                     
                     
                     
                     // fill multiSelect
                     
                     if(filledassetList == false)
                     {
                        for(var i=0; i<ar.AssetTypes.length;i++)
                         {
                            assetTypeMs.addBox(ar.AssetTypes[i].text,ar.AssetTypes[i].text,redrawMarkers,ar.AssetTypes[i].value);
                         }
                         filledassetList = true;
                         
                         assetTypeMs.doSelectAllOnClick(null,assetTypeMs.elSelectAllText.dom);
                         //assetTypeMs.boxes['דירה'].el.dom.checked = true;
	                     //assetTypeMs.onchange(null,assetTypeMs.boxes['דירה'].el.dom);
	                     
	                     
	                     
	                     
	                     
	                     
	                     if(getParameter('center') != "")
                         {
                            if( getParameter('markerid') != "" )
                            {
                                markerToOpen =getParameter('markerid');
                            }   
                            if( getParameter('add_id') != "" )
                            {
                                markerToOpen_add =getParameter('add_id');
                            }
                            else
                            {
                                markerToOpen_add=null;
                            }   
                            
                            var move = getParameter('center').split(",");
                            map.moveTo(move[0],move[1],move[2]);
                            //markerToOpen =getParameter('markerid');
                         }
                         else if(cm.Read('zazim_pos') != null)
                         {
                            var point = cm.Read('zazim_pos');
                            map.moveTo(point.split("|")[0],point.split("|")[1],point.split("|")[2]);
                            
                         }
                         else
                         {
                            map.moveTo(179995,665923,8);
                         }
                         
                         if(getParameter('filter') != "")
                            {
                                var filter =unescape(getParameter('filter'));
                                filter = filter.replace(/_geresh/g,"'");
                                Ext.get('x-i-vAddType').dom.value = rmatch('actionType',filter);
                                Ext.get('x-i-city').dom.value = rmatch('selectArea',filter);
                                Ext.get('x-i-street').dom.value = rmatch('streetNeighbourhood',filter);
                                assetTypeMs.setData(rmatch('asset_type',filter),'');
                                if(getParameter('markerid') != "")
                                {
                                    markerToOpen =getParameter('markerid');
                                }
                                if( getParameter('add_id') != "" )
                                {
                                    markerToOpen_add =getParameter('add_id');
                                }
                                else
                                {
                                    markerToOpen_add=null;
                                }   
                            }
                            else
                            {
                                readFilterCookie();
                            }
	                     
	                     
                     }
                     
                     
                     
                     
                     // Set Values, Default if prev does not exist
                     /*
                     if (!selectInCombo('x-i-AssetType',AssetType))
                     {
                      selectInCombo('x-i-AssetType',"דירה");
                      reDraw = true;
                     
                     }
                     */
                     if (!selectInCombo('x-i-from_rooms',FromRoomNumber)) 
                     {
                         var combo = Ext.get('x-i-from_rooms').dom;
                         combo.selectedIndex = 0;
                         reDraw = true;
                     }
                     
                     if (!selectInCombo('x-i-to_rooms',ToRoomNumber)) 
                     {
                         var combo1 = Ext.get('x-i-to_rooms').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         reDraw = true;
                     }
                     
                     if (!selectInCombo('x-i-from_price',FromPrice)) 
                     {
                         var combo = Ext.get('x-i-from_price').dom;
                         combo.selectedIndex = 0;
                         reDraw = true;
                     }
                     
                     if (!selectInCombo('x-i-to_price',ToPrice)) 
                     {
                         var combo1 = Ext.get('x-i-to_price').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         reDraw = true;
                     }
                     
                     // set events so they will be triggerd on manual change                                             
                     //Ext.fly('x-i-AssetType').dom.onchange = redrawMarkers;
                     Ext.fly('x-i-from_rooms').dom.onchange = redrawMarkers;
                     Ext.fly('x-i-to_rooms').dom.onchange = redrawMarkers;
                     Ext.fly('x-i-from_price').dom.onchange = redrawMarkers;
                     Ext.fly('x-i-to_price').dom.onchange = redrawMarkers;                     
                     Ext.fly('x-i-arbitration').dom.onclick = redrawMarkers;                     
                     //Ext.fly('x-i-arbitation-span').dom.onclick = redrawMarkers;                     
                     
                     
                     
                     if (!selectInCombo('x-i-from_rooms',filterromsfrom)) 
                     {
                         var combo = Ext.get('x-i-from_rooms').dom;
                         combo.selectedIndex = 0;
                         reDraw = true;
                     }
                     
                     if (!selectInCombo('x-i-to_rooms',filterromsto)) 
                     {
                         var combo1 = Ext.get('x-i-to_rooms').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         reDraw = true;
                     }
                     
                     if(Ext.get('x-i-to_rooms').dom.value == Ext.get('x-i-from_rooms').dom.value)
                     {
                         var combo1 = Ext.get('x-i-to_rooms').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         var combo = Ext.get('x-i-from_rooms').dom;
                         combo.selectedIndex = 0;
                         
                     }
                     
                     if (!selectInCombo('x-i-from_price',filterpricefrom)) 
                     {
                         var combo = Ext.get('x-i-from_price').dom;
                         combo.selectedIndex = 0;
                         reDraw = true;
                     }
                     
                     if (!selectInCombo('x-i-to_price',filterpriceto)) 
                     {
                         var combo1 = Ext.get('x-i-to_price').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         reDraw = true;
                     }
                     
                     if(Ext.get('x-i-from_price').dom.value == Ext.get('x-i-to_price').dom.value)
                     {
                         var combo1 = Ext.get('x-i-to_price').dom;
                         combo1.selectedIndex = combo1.options.length -1;
                         var combo = Ext.get('x-i-from_price').dom;
                         combo.selectedIndex = 0;
                     }
                     
                     //debugger;
                      if(afterdon != null)
                      {
                        try
                        {
                            afterdon();
                        }
                        catch(e)
                        {
                        }
                      }
                      else
                      {
                        preformRedrawMarkers();                                                                                   
                      }
                     //if (reDraw) redrawMarkers();
                        
                    },
           failure: function (conn, response, options) {},
           headers: {
               'zazim-req': 'zazim'
           },
           extraParams : {},
           params: { action: 'getCombosData',vAddType: vAddType,AssetType: AssetType }
        }); 
}
function redrawMarkers()
{
    /* write a cookie cntainning filter */
    writeFilterCookie();
    
    // close detail div Gilad *********************************************************************
    //debugger;
    addsDataWindow.hide();
    // Lets Check For Cascading updates
    var UpdateAssets = (map.getHousesOption('vAddType') != Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value);
    //var UpdateRest = (tiled.AssetType != Ext.fly('x-i-AssetType').dom.options[Ext.fly('x-i-AssetType').dom.selectedIndex].value);
    if (UpdateAssets ) 
    {
                /*getCombosData(
                    Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value,
                    Ext.fly('x-i-AssetType').dom.options[Ext.fly('x-i-AssetType').dom.selectedIndex].value)*/
                    getCombosData(
                    Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value,
                    assetTypeMs.getStringValue());
    }
    else
    {
    // Update Data For Transfare
        preformRedrawMarkers();
    }
}
function preformRedrawMarkers()
{
    
    addsDataWindow.hide();
    
    // 3 new fields for free text filter
    map.setHousesOption('FreeText','');
    map.setHousesOption('Phone','');
    map.setHousesOption('Name','');
    
    
    //markers.clearMarkers(); *OLY
    if (Ext.fly('x-i-VerandaNo').dom      )  map.setHousesOption('VerandaNo',           Ext.fly('x-i-VerandaNo').dom.checked       ? 't' : 'f');
    if (Ext.fly('x-i-AirCond').dom        )  map.setHousesOption('AirCond',             Ext.fly('x-i-AirCond').dom.checked         ? 't' : 'f');
    if (Ext.fly('x-i-AirCond1').dom       )  map.setHousesOption('AirCond1',            Ext.fly('x-i-AirCond1').dom.checked        ? 't' : 'f');
    if (Ext.fly('x-i-Parking').dom        )  map.setHousesOption('Parking',             Ext.fly('x-i-Parking').dom.checked         ? 't' : 'f');
    if (Ext.fly('x-i-Furnished').dom      )  map.setHousesOption('Furnished',           Ext.fly('x-i-Furnished').dom.checked       ? 't' : 'f');
    if (Ext.fly('x-i-GoodForPartners').dom)  map.setHousesOption('GoodForPartners',     Ext.fly('x-i-GoodForPartners').dom.checked ? 't' : 'f');
    if (Ext.fly('x-i-HandicapAccess').dom )  map.setHousesOption('HandicapAccess',      Ext.fly('x-i-HandicapAccess').dom.checked  ? 't' : 'f');
    if (Ext.fly('x-i-Elevator').dom       )  map.setHousesOption('Elevator',            Ext.fly('x-i-Elevator').dom.checked        ? 't' : 'f');
    if (Ext.fly('x-i-arbitration').dom    )  map.setHousesOption('Tivuch',              Ext.fly('x-i-arbitration').dom.checked        ? 't' : 'f');
    


    // set advanceFilter values  Start
    
    var asearchArray = adsearch.filterText.split("|");
   // alert(adsearch.filterText);
    if(adsearch.filterText != "|||")
    {
        if(asearchArray[0] != "")
        {
            map.setHousesOption('distance_andor',asearchArray[0]);
            map.setHousesOption('distance_type',asearchArray[1]);
            map.setHousesOption('distance_fromto',asearchArray[2]);
            map.setHousesOption('distance_miter',asearchArray[3]);
        }
        else
        {
            map.setHousesOption('distance_andor','');
            map.setHousesOption('distance_type','');
            map.setHousesOption('distance_fromto','');
            map.setHousesOption('distance_miter','');
        }
    }
    else
        {
            map.setHousesOption('distance_andor','');
            map.setHousesOption('distance_type','');
            map.setHousesOption('distance_fromto','');
            map.setHousesOption('distance_miter','');
        }
    
    //showOnlyLowPrice  showOnlyHighPrice
    if (Ext.fly('showOnlyLowPrice').dom      )  map.setHousesOption('showOnlyLowPrice',           Ext.fly('showOnlyLowPrice').dom.checked       ? 't' : 'f');
    if (Ext.fly('showOnlyHighPrice').dom     )  map.setHousesOption('showOnlyHighPrice',           Ext.fly('showOnlyHighPrice').dom.checked       ? 't' : 'f');
    
    // set advanceFilter values  End
    
    
    //if (Ext.fly('x-i-AssetType').dom.options.length != 0 )
    if(assetTypeMs.boxIds.length != 0 && assetTypeMs.getStringValue() != "" )
    {

    map.setHousesOption('vAddType',          Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value);
    //map.setHousesOption('AssetType',         Ext.fly('x-i-AssetType').dom.options[Ext.fly('x-i-AssetType').dom.selectedIndex].value);
    
    map.setHousesOption('AssetType',assetTypeMs.getStringValue());
    
    map.setHousesOption('FromRoomNumber',    Ext.fly('x-i-from_rooms').dom.options[Ext.fly('x-i-from_rooms').dom.selectedIndex].value);
    map.setHousesOption('ToRoomNumber',      Ext.fly('x-i-to_rooms').dom.options[Ext.fly('x-i-to_rooms').dom.selectedIndex].value);
    map.setHousesOption('FromPrice',         Ext.fly('x-i-from_price').dom.options[Ext.fly('x-i-from_price').dom.selectedIndex].value);
    map.setHousesOption('ToPrice',           Ext.fly('x-i-to_price').dom.options[Ext.fly('x-i-to_price').dom.selectedIndex].value);
    }
    
    //*** YUVAL DESCRIPTION TEST ***//
    if(searchFormObject.fieldArray["x-i-description"].dom.value != "")
    {
        map.setHousesOption('description',searchFormObject.fieldArray["x-i-description"].dom.value);
    }
    else
    {
        map.setHousesOption('description','');
    }
    
    
    
    map.startRedrawHouses();
    
}
function selectInCombo(ComboID,value)
{
    var combo = Ext.get(ComboID).dom;
    for (var i = 0; i < combo.options.length ; i++)
    {
        if (combo.options[i].value == value) 
        {
            combo.selectedIndex = i;
            return true;
            break;
        }
    }
    return false;
}
function fillComboAR (comboID,ar) 
{
            
             var combo = Ext.get(comboID);
             combo.dom.options.length = 0;
              for (var i = 0; i < ar.length   ; i++)
              {
                var el = document.createElement('option');
                el.value = ar[i].value;
                el.text = ar[i].text;
                 combo.dom.options[i] = el;
              }
}

function fillMultiSelect(comboID,JSONAction,afterFill) 
{
   var combo = Ext.get(comboID);
             combo.dom.options.length = 0;
              for (var i = 0; i < ar.length   ; i++)
              {
                var el = document.createElement('option');
                el.value = ar[i].value;
                el.text = ar[i].text;
                 combo.dom.options[i] = el;
              }
}
function fillCombo (comboID,JSONAction,afterFill) 
{
// Test JSON

Ext.Ajax.request({
   url: hosturl +'json/json.aspx',
   success: function (conn, response, options) {
             var ar = eval(conn.responseText);
             var combo = Ext.get(response.extraParams.comboID);
             combo.dom.options.length = 0;
              for (var i = 0; i < ar.length   ; i++)
              {
                var el = document.createElement('option');
                el.value = ar[i].value;
                el.text = ar[i].text;
                 combo.dom.options[i] = el;
              }
             if (response.extraParams.afterFill) response.extraParams.afterFill();
            
            },
   failure: function (conn, response, options) {},
   headers: {
       'zazim-req': 'zazim'
   },
   extraParams : {comboID:comboID,afterFill:afterFill},
   params: { action: JSONAction }
});
}


var infobox;
var infoboxdiv;
var myadlist;
//Ext.onReady(    
function onReady()
{
        //Ext.useShims = false;
        //debugger;
        
	        
	        
	        //div.setStyle("overflow", "auto");
	        //var text = div.select(".ext-mb-textarea", true);
	        //if (!text.item(0))
		    //    text = div.select(".ext-mb-text", true);
	        //if (text.item(0))
		    //    text.item(0).dom.select();
        
        
        
        //debugger;
        Ext.get('x-i-city').setStyle('-moz-user-select', '');
	    Ext.get('x-i-city').setStyle('-khtml-user-select', '');
        Ext.get('x-header-bottom-bar-panel-location').dom.innerHTML='<ul><li>ראשי</li><li> << </li><li id="x-header-location-text">דף תוצאות מפה</li></ul>';
        selectTopHeader('search');
        Ext.get('showLogin').dom.style.display="none";  
        Ext.get('updateUser').dom.style.display="none";
        Ext.get('logoff').dom.style.display="none";
        
        myadlist = new myAddsList();

	    // Embed Map
	    
	    
	    print = new addsPrint();
	    var flashvars = {};
	    var params = {
	        menu: "false",
	        scale: "noScale",
	        wmode: "transparent"
	        
        };  
	swfobject.embedSWF("zazim-lib/zMap.swf", "map", "788px", "333px", "9.0.0", "zazim-lib/expressInstall.swf", flashvars, params);	
	initEvent = setInterval(checkIfMapAndExtReady,100);
    tabs = new tabManager();
    
    // create advanced search opj
    adsearch = new asearch();
    
    // hide info box and add event to show
    infobox = Ext.get('map-info');
    infoboxdiv = Ext.get('map-info-div');
    infobox.on('mouseover',ShowInfoDiv);
    infobox.on('mouseout',HideInfoDiv);
    if(!Ext.isIE)
    {
        Ext.get('mapHolder').dom.style.border = "solid 1px black";
        Ext.get('map-info').dom.style.marginTop = "-19px";
        Ext.get('map-info').dom.style.borderLeft = "";
    }
    
    createFreeTextRezDisplay();
    
}   
//);


function ShowInfoDiv()
{
    if(!Ext.isIE)
    {
        infoboxdiv.dom.style.top = infobox.getBox().y +16 +"px"; 
        infoboxdiv.dom.style.left = infobox.getBox().x -1 +"px"; 
        infoboxdiv.dom.style.display="block";
    }
    else
    {
        infoboxdiv.dom.style.top = infobox.getBox().y +18 +"px"; 
        infoboxdiv.dom.style.left = infobox.getBox().x -2 +"px"; 
        infoboxdiv.dom.style.display="block";
    }
    
    
}
function HideInfoDiv()
{
    infoboxdiv.dom.style.display="none";
}


var loginChangeWait;
var loginUserType;
var loginUserDetail;
var popupLogin = false;
var redirecetToSmartAgent = false;

function loginChange(type,user)
{
    map = Ext.get("map").dom;
   if (map.isReady && map.isReady() && smarta && mam  && mm )
    {
        if(type == 'user' && user != null )
        {   
            popupLogin = true;
            smarta.changeType('user');
            mam.changeType('user');
            myadlist.changetype('user');
           // get email and pass marker gilad disabled temp
            //map.reloadByAssetsCustomer(user.email,user.passwordsave);
            //map.reloadByAssetsCustomer(SessionId);
            mm.drawPage(1);
            
        }
        else if(type == 'guest' && user == null)
        {   
            smarta.changeType('guest');
            mam.changeType('guest');
            myadlist.changetype('guest');
            map.reloadByAssetsIds(SessionId,mam.getAssetList().substr(0,mam.getAssetList().length-1));
            mm.drawPage(1);
            if(popupLogin == false)
            {
                popupLogin = true;
                if(getParameter("agent") != "")
                {
                    loginManager.showLoginForm();
                }//052-8392265
            }
        }
    }
    else
    {
        loginUserDetail = user;
        loginUserType = type;
        loginChangeWait = setInterval(loginchangewait,100);
        
    }
}

function loginchangewait()
{
    map = Ext.get("map").dom;
    if (map.isReady && map.isReady() && smarta && mam  && mm )
    {
        clearInterval(loginChangeWait);
        loginChangeWait = null;
        loginChange(loginUserType , loginUserDetail );
    }
    else
    {
        //alert("wait form bject to create");
    }
    
}

function checkIfMapAndExtReady()
{
    map = Ext.get("map").dom;
    if (map.isReady && map.isReady())
    {
        clearInterval(initEvent);
        initEvent = null;
        smarta = new smartAgent();
        // add info to agent
        if(getParameter('agent') != "")
        {
            smarta.autoLoad = getParameter('agent');
        }
        mam = new myAssetsManager();
        mapAndExtReady();
    }

}
var markerToOpen = null;
var markerToOpen_add = null;
function mapAndExtReady()
{
         
         
    

    // Fix Events for checkbox
    Ext.fly('x-i-arbitation-span').dom.style.cursor = "pointer";
    Ext.fly('x-i-arbitation-span').dom.onmouseup = function () {Ext.fly('x-i-arbitration').dom.checked = ! Ext.fly('x-i-arbitration').dom.checked;redrawMarkers();};
    // Fix UnSelectable IE
   // document.body.onselectstart = function () {return false;}
    Ext.fly('x-i-vAddType').dom.onchange = redrawMarkers;
// test change according to filter

var getcombotype='rent';



if(getParameter('filter') != "")
{
    var isfilter =unescape(getParameter('filter'));
    getcombotype=rmatch('actionType',isfilter);
    if(getcombotype =="") getcombotype = "rent";
}

    getCombosData(getcombotype,'דירה');


    // Create Auto Suggest Fields

	    var cityoptions = {
		    script:"json/json.aspx?action=getCity&",
		    varname:"input",
		    json:true,
		    callback: function (obj) { 
		                                var lonlat = [obj.X,obj.Y];
		                                
		                                var mapc = map.getCenter();
		                                if(mapc[0] != obj.X || mapc[1] != obj.Y || mapc[2] != 6 )
		                                {
		                                    map.moveTo(lonlat[0],lonlat[1], 6);
		                                }
		                                
		                                
		                                document.getElementById('x-i-city').value = obj.id; 
		                                addsDataWindow.hide();
		                                writeFilterCookie();
		                             }
	    };
	    var city_as_json = new AutoSuggest('x-i-city', cityoptions);
    	
	    var streetoptions = {
	    script:"json/json.aspx?action=getStreet&",
	    varname:"input",
	    varname1:"input1",
	    json:true,
	    callback: function (obj) {
                                    var lonlat = [obj.X,obj.Y];
                                    map.moveTo(lonlat[0],lonlat[1], 9);
	                                document.getElementById('x-i-street').value = obj.id;
	                                addsDataWindow.hide();
	                                writeFilterCookie();
	                              }
	    };
	    var city_as_json = new AutoSuggest('x-i-street', streetoptions,'x-i-city');
	    ms = new multiSelect('MS_1');
	    
	    if(Ext.isIE6){ms.el.dom.style.marginRight = "5px";}
	    
	    ms.addBox('x-i-VerandaNo','מרפסת',redrawMarkers);
	    ms.addBox('x-i-Elevator','מעלית',redrawMarkers);
	    ms.addBox('x-i-AirCond','מיזוג מרכזי',redrawMarkers);
	    ms.addBox('x-i-AirCond1','מיזוג כלשהו',redrawMarkers);
	    ms.addBox('x-i-Parking','חנייה',redrawMarkers);
	    ms.addBox('x-i-Furnished','ריהוט',redrawMarkers);
	    ms.addBox('x-i-GoodForPartners','מתאים לשותפים',redrawMarkers);
	    ms.addBox('x-i-HandicapAccess','גישה לנכים',redrawMarkers);
	    //alert(map.isReady());
	   // window.onmousewheel = document.onmousewheel = function (delta) {return false;};
	   
	   
	   //debugger;
	   assetTypeMs = new multiSelect('x-i-AssetType_ms','',true,redrawMarkers);
	   if(Ext.isIE6){assetTypeMs.el.dom.style.marginRight = "5px";}
	   
	    mm = new markerManager(Ext.get("x-asset_list"));  
	    addsDataWindow = new addData('mapHolder');
	    Ext.get('mapHolder').on("mousewheel",mouseWheelOn);
	    
	    
    /* call to function to set filter data if cookie is ok */	    
	         
	  grabSearchForm(); 
}
var searchFormObject;
function resetFilter()
{
    searchFormObject.setFormVals();    
    searchFormObject.fieldArray['options'].setDataById("");
    searchFormObject.fieldArray['assettype'].cmdSelectAll();
    adsearch.clear();
    redrawMarkers();    
}
var desctimeout;
function redrawAfterDescChange()
{
  clearTimeout(desctimeout);
  desctimeout = setTimeout("redrawMarkers();",700);
 //redrawMarkers   
}


// function to show free search resolt
var freeTextRezDisplay;
function createFreeTextRezDisplay()
{
    
    freeTextRezDisplay = new createForm({width:330, height:300 ,  title:' : ישובים בהם נמצאו נכסים מתאימים',analyticsname:'free_text_search'});
    //freeTextRezDisplay.show();
    
    freeTextRezDisplay.addTemplate('base','<div class="citylistitem">',
                                           '<div style="width:120px; float:left;" class="clbtn">הצג את כל הנכסים</div>',
                                           '<div style="width:70px; float:left;" class="clbtn"> הצג </div>',
                                           '<div style="width:100px; float:left;" > {name} </div>',
                                           '</div>');
    
    freeTextRezDisplay.listcontent = freeTextRezDisplay.addDiv({style:"citylistdiv"});
    freeTextRezDisplay.templates['base'].postdata = function(obj,data,loop)
    {
        obj.on('click',function(evt){moveMapToTarget(data,evt);});
        if(loop %2 == 0)
        {
            obj.toggleClass('zebra');
        }
    }
    
}
function moveMapToTarget(data,evt,src)
{
    if(evt.target.innerHTML == "הצג את כל הנכסים")
    {
        searchFormObject.fieldArray["x-i-description"].dom.value ="";
        map.moveTo(data.x,data.y,data.zoom);
        redrawMarkers();
        
    }
    else
    {
        map.moveTo(data.x,data.y,data.zoom);
    }
    freeTextRezDisplay.hide();
}
function do_search()
{
//    alert(searchFormObject.getFormVals());
   
   if(searchFormObject.fieldArray["x-i-description"].dom.value =="")
   {
    alert('נא להזין טקסט חופשי');
    return;    
   }
   if(searchFormObject.fieldArray["x-i-description"].dom.value.length<4 )
   {
    alert('טקסט חופשי צריך להכיל לפחות 4 תוים');
    return;    
   }
   Ext.Ajax.request({
   url: hosturl +'json/freeTextSearch.aspx',
   success: function (conn, response, options) {
             var ar = eval(conn.responseText);
             if(ar.length == 0)
             {
                alert('לא נמצאו נכסים מתאימים');
             }
             else if(ar[0] == false)
             {
                alert('לא נמצאו נכסים מתאימים');
             }
             else
             {
                freeTextRezDisplay.claerByTemplate('base');
                freeTextRezDisplay.useTemplate('base',ar,freeTextRezDisplay.listcontent);
                freeTextRezDisplay.show();
             }         
            
            },
   failure: function (conn, response, options) {},   
   params: { data: searchFormObject.getFormVals(), ashearch :adsearch.filterText }
});

}

function grabSearchForm()
{
    
    searchFormObject =  new createForm({width:1, height:1 , target:Ext.getBody() , blockScreen:false , title:'',closebtn:false,noFrame:true});
    searchFormObject.grabField({ type:'text' ,  name : 'x-i-city' , dvalue:''});
    searchFormObject.grabField({ type:'text' ,  name : 'x-i-street', dvalue:''});
    searchFormObject.grabField({ type:'text' ,  name : 'x-i-description', dvalue:''}).on('keyup',redrawAfterDescChange);
    searchFormObject.grabField({ type:'select' ,  name : 'x-i-from_rooms' , dvalue:0});
    searchFormObject.grabField({ type:'select' ,  name : 'x-i-to_rooms' , dvalue:1000});
    searchFormObject.grabField({ type:'select' ,  name : 'x-i-from_price' , dvalue:-1});
    searchFormObject.grabField({ type:'select' ,  name : 'x-i-to_price' , dvalue:-2});
    searchFormObject.grabField({ type:'select' ,  name : 'x-i-vAddType', dvalue:'rent'});
    searchFormObject.grabField({ type:'chk' ,  name : 'x-i-arbitration' ,value:true, dvalue:true});
    
    
    searchFormObject.fieldArray['assettype'] = assetTypeMs;
    searchFormObject.fieldArray['assettype'].getType = "mul";
    searchFormObject.fieldNameArray[searchFormObject.fieldNameArray.length] = 'assettype';
    
    searchFormObject.fieldArray['options'] = ms;
    searchFormObject.fieldArray['options'].getType = "mul";
    searchFormObject.fieldArray['options'].dvalue = "";
    searchFormObject.fieldNameArray[searchFormObject.fieldNameArray.length] = 'options';
    searchFormObject.getvals = function()
    {
        var ret ="";
        
        var val="";
        
        for(var i=0; i<this.fieldNameArray.length;i++)
        {
            val = "";
            if(this.fieldArray[this.fieldNameArray[i]].getType == "text")
            {
                val = this.fieldArray[this.fieldNameArray[i]].dom.value;
            }
            else if(this.fieldArray[this.fieldNameArray[i]].getType == "select")
            {
                val = this.fieldArray[this.fieldNameArray[i]].dom.value;
            }
            else if(this.fieldArray[this.fieldNameArray[i]].getType == "chk")
            {
                val = this.fieldArray[this.fieldNameArray[i]].dom.checked;
            }
            else if(this.fieldArray[this.fieldNameArray[i]].getType == "mul")
            {
                val = this.fieldArray[this.fieldNameArray[i]].getStringValueByIds().replace(/e-a-/g,'');
            }
            else if(this.fieldArray[this.fieldNameArray[i]].getType == "obj")
            {
                val = this.fieldArray[this.fieldNameArray[i]].value;
            }
            if(ret != "") ret+="|";
            ret+=this.fieldNameArray[i] + "(" + val + ")";
        }
        
        return ret.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n');
    };
    
    searchFormObject.setFormVals = function(data)
    {
        if(!data)
        {
            data = this.dvalList;
        }
        for(var i=0; i<data.length;i++)
        {
            if(this.fieldArray[data[i].name])
            {
                if(this.fieldArray[data[i].name].getType == "text")
                {
                    this.fieldArray[data[i].name].dom.value = data[i].value.replace(/\\\\/g, '\\').replace(/\\\\n/g, '\n').replace(/_n/g,'\n');
                }
                else if(this.fieldArray[data[i].name].getType == "obj")
                {
                    this.fieldArray[data[i].name].value = data[i].value;
                }
                else if(this.fieldArray[data[i].name].getType == "select")
                {
                    this.fieldArray[data[i].name].dom.value = data[i].value;
                }
                else if(this.fieldArray[data[i].name].getType == "chk")
                {
                    if(data[i].value == true || data[i].value == 1 || data[i].value == "true")
                        this.fieldArray[data[i].name].dom.checked = true;
                    else
                    {
                        this.fieldArray[data[i].name].dom.checked = false;
                        
                    }
                     
                }
                else if(this.fieldArray[data[i].name].getType == "mul")
                {
                    this.fieldArray[data[i].name].setDataById(data[i].value);
                    
                }
            }
        }
    };
    
    
    
}
function writeFilterCookie()
{
    
    if("x-i-city()|x-i-street()|x-i-description()|x-i-from_rooms(0)|x-i-to_rooms(0)|x-i-from_price(-1)|x-i-to_price(-1)|x-i-vAddType(rent)|x-i-arbitration(true)|assettype(בית פרטי,בניין מגורים,דופלקס / טריפלקס,דירה,דירת גן,יחידת דיור,לופט,מגרשים,מחסן,משק חקלאי,נחלה,פנטהואז,פרטר,קבוצת רכישה,קראוון,תקופות קצרות)|options()" !=searchFormObject.getvals())
    {
        
        cm.Write("zazim_filter",escape(searchFormObject.getvals()),1);
    }
    
}
var filterromsfrom;
var filterromsto;
var filterpricefrom;
var filterpriceto;
function readFilterCookie()
{
    
    var vals = unescape(cm.Read("zazim_filter"));
    filterromsfrom = searchFormObject.getRegexValFromString('x-i-from_rooms',vals);
    filterromsto = searchFormObject.getRegexValFromString('x-i-to_rooms',vals);
    filterpricefrom =searchFormObject.getRegexValFromString('x-i-from_price',vals);
    filterpriceto =searchFormObject.getRegexValFromString('x-i-to_price',vals);
    
    //var filterCookieValuse =searchFormObject.setFormValsFromString(vals);
    
    if(vals)
        if(vals != "")
        {
            searchFormObject.setFormValsFromString(vals,true);
            if(Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value != 'rent')
            {
                getCombosData(
                        Ext.fly('x-i-vAddType').dom.options[Ext.fly('x-i-vAddType').dom.selectedIndex].value,
                        assetTypeMs.getStringValue());
            }
            //redrawMarkers();
        }
    
}
function mouseWheelOn (evt) 
{
  evt.preventDefault();
  map.mouseWheel(evt.getWheelDelta ());

  return false;
};
function test()
{
    map = Ext.get("map").dom;
    //alert(map.isReady());
    map.focus();
}

function DrawingPolygonDone(poly)
{
    
    smarta.placePolyValue(poly);
}
function DrawingPolygonCancel()
{
    
    smarta.clearPolyValue();
    scrollWin(0,350,0.3); 
    Ext.get('screen_tabs').dom.className="screen_tabs";
    tabs.disabled = false;
}
function mapMoveDone()
{
    // get the map position
    zChartsMapMove();
    var placearr = map.getCenter();
    var placeString = placearr[0] + "|" +placearr[1] + "|" +placearr[2];
    cm.Write('zazim_pos',placeString,3);
}
function DataLoadDone(Layer, Cols)
{   
    
    if(markerToOpen != null && Layer != "Assets")
    {
     
        addsDataWindow.enlist(markerToOpen,markerToOpen_add,null,Cols);
        markerToOpen = null;
        markerToOpen_add = null;
    }
    
    if(Layer == "Agents")
    {
        //mam.drawPage(0,Cols);
        smarta.drawPage(0,Cols);
        //debugger;
    }
    else if(Layer == "Assets")
    {
        mam.drawPage(0,Cols);
    }
    else
    {
        mm.drawPage(1,Cols);
    }
}
// Map Marker Mouse Down
function MarkerMouseDown(Layer, index)
{

    addsDataWindow.enlist(index);
}

// sort assets on map display Start
var CurrentSortName="";
var CurrentSort="";
var CurrentSortType=true;
var CurrentSortIsNum=false;

function sortAssetsOnMapDisplay(obj)
{
    //debugger;
    if(obj.className != CurrentSortName)
    {
     if(CurrentSortName!="")
     {
      //images
       Ext.get(CurrentSortName).dom.style.backgroundImage="none";
       
     }
     LastSortobj=obj;
     CurrentSortName = obj.className;
     CurrentSortType=true;
     switch(obj.className)
        {
        case "c-city":
          CurrentSortIsNum=false;
          CurrentSort="city";
          break;    
        case "c-AssetType":
          CurrentSortIsNum=false;
          CurrentSort="AssetType";
          break;
         
        case "c-Street":
          CurrentSortIsNum=false;
          CurrentSort="Street";
          break;
         
        case "c-ShekelRent":
          CurrentSortIsNum=true;
          CurrentSort="ShekelRent";
          break;
         
        case "c-RoomNumber":
          CurrentSortIsNum=true;
          CurrentSort="RoomNumber";
          break;
         
        case "c-EntryWhen":
          CurrentSortIsNum=false;
          CurrentSort="EntryWhen";
          break;
         
        case "c-Floor":
          CurrentSortIsNum=false;
          CurrentSort="Floor";
          break;
        
        case "c-vPicCount":
          CurrentSortIsNum=false;
          CurrentSort="vPicCount";
          break;
         
        case "c-PDate":
          CurrentSortIsNum=false;
          CurrentSort="PDate";
          break;
          default:
         CurrentSort="";
         CurrentSortName="";
        } 
        
    }
    else
    {
        if(CurrentSortType)
            CurrentSortType=false;
        else
        {
            Ext.get(CurrentSortName).dom.style.backgroundImage="none";
            CurrentSortType=true;
            CurrentSort="";
            CurrentSortName="";
            
        }
        
    }
    
    map.sortHousesData(CurrentSort,CurrentSortType,CurrentSortIsNum);
    mm.drawPage(mm.currentPage);
    
    //images
    if(CurrentSortName != "")
    {
        if(!CurrentSortType)
           Ext.get(CurrentSortName).dom.style.backgroundImage="url('images/arrowUp.gif')";
        else
        {
            Ext.get(CurrentSortName).dom.style.backgroundImage="url('images/arrowDown.gif')";
        }
    }
    
    
    
}

// sort assets on map display End


function fix_chart_position()
{
    if(!Ext.isIE6) return;
    var x = ( Ext.get('map_assets_display').getBox().x)*1 -7 + "px";
    tabpos = Ext.get('tab_additional_data');
    var y = (tabpos.getBox().y)*1 + 18 + "px";
    Ext.get('additional_data_display').dom.style.top = y;
    Ext.get('additional_data_display').dom.style.left = x;
    
}

// tab managment Start
tabManager = function()
{
    this.disabled = false;
    this.disable = function()
    {
        Ext.get('screen_tabs').dom.className="screen_tabs_blocked";
        this.disabled = true;
    };
    this.enable = function()
    {
        Ext.get('screen_tabs').dom.className="screen_tabs";
        this.disabled = false;
    };
    this.tabClicked = function(src)
    {
        //debugger;
        if (this.disabled == true) return;
        if(src.target.id != this.activeTabName)
        {
            // change div 
            Ext.get(this.activeTabName.replace("tab_","")+"_display").dom.style.display="none";
            Ext.get(src.target.id.replace("tab_","")+"_display").dom.style.display="block";
            // change tab title
            Ext.get(this.activeTabName).dom.className = this.unselectedClass;
            Ext.get(src.target.id).dom.className = this.selectedClass;
            if(this.activeTabName == "tab_additional_data")  zChartsLostFocus();
            pageTracker._trackPageview("/tab_" +this.activeTabName );
                
                
            
            if(src.target.id == "tab_additional_data")
            {
              zChartsOnFocus();
              fix_chart_position();
            }
            
            
            if(iever == 6)
            {
                
                if(src.target.id == "tab_my_adds")
                {
                   if(myadlist.type == "guest")
                   {
                        //myadlist.msgform.removeAll();
                        
                        //myadlist.createMsg();
                   }
                }
            }
            
            //
            
            if(this.activeTabName == "tab_smart_agent")
            {
                if(smarta.type == "user")
                {
                   smarta.backToAgentList();  
                }
                else
                {
                    smarta.changeView('login');
                } 
            }
            //currentDisplay  
            
            
            this.activeTabName = src.target.id;
            
        }
    }
    
    this.tabList = [{name:"tab_map_assets"},{name:"tab_my_assets"},{name:"tab_smart_agent"},{name:"tab_additional_data"},{name:"tab_my_adds"}  ];
    this.activeTabName = "tab_map_assets";
    this.selectedClass = "tab_selected";
    this.unselectedClass = "tab_unselected";
    for(var i=0; i<this.tabList.length;i++)
    {
        Ext.get(this.tabList[i].name).on("click",this.tabClicked,this);
    }
    
}

cookieManager = function()
{
 this.CookieName = "zazim";
 this.Exp = 3;
 this.Write=function(name,value,days)
 {	
	var date = new Date();
	    date.setTime(date.getTime()+( ( days || this.Exp  )*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
        document.cookie =  ( name || this.CookieName ) +"="+value+expires+"; path=/";
 }
 this.Read = function(name) 
 {
    var nameEQ = (name || this.CookieName) + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
	    var c = ca[i];
	    while (c.charAt(0)==' ') c = c.substring(1,c.length);
	    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
  }
}

var cm= new cookieManager();



form = function(title,close,width,height)
{
    this.title = title;
    this.close = close;
    this.width = width;
    this.height = height;
    this.init();
    
};
form.prototype = {
    divArr : new Array(),
    
    init : function()
    {
        this.div = Ext.get(document.createElement('div'));
        this.div.dom.className = "x-form";
        this.div.dom.style.width =(this.width) +   "px";
        this.div.dom.style.height =(this.height) +"px";
        
        var div;
        var div2;
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-right";
        div.appendTo(this.div);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-middel";
        div.dom.style.width = (this.div.dom.style.width.replace("px","")*1) -6 + "px";
        div.appendTo(this.div);
        
        if(this.close)
        {
            if(this.close == true)
            {
                var div2 = Ext.get(document.createElement('div'));
                div2.dom.className = "close";
                div2.dom.innerHTML = "X";
                div2.on('click',this.hide,this);
                div2.appendTo(div);
                this.closeBtn = div2;
            }
        }
        
        
        div2 = Ext.get(document.createElement('div'));
        div2.dom.className = "title";
        div2.dom.innerHTML = this.title;
        div2.appendTo(div);
        this.titleText = div2;
        
        div2 = null;
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-left";
        div.appendTo(this.div);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-content";
        div.dom.style.width =(this.div.dom.style.width.replace("px","")*1) -6 + "px";
        div.dom.style.height =(this.div.dom.style.height.replace("px","")*1) -31 + "px";
        
        div.appendTo(this.div);
        this.content = div;
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-bottom-right";
        div.appendTo(this.div);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-bottom-middel";
        div.dom.style.width =(this.div.dom.style.width.replace("px","")*1) -6 + "px";
        div.appendTo(this.div);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-bottom-left";
        div.appendTo(this.div);
        
        this.div.appendTo(Ext.getBody());
    },
    hide : function()
    {
        this.div.fadeOut({
            endOpacity: 0, //can be any value between 0 and 1 (e.g. .5)
            easing: 'easeOut',
            duration: .5,
            remove: false,
            useDisplay: true
        });
        this.div.dom.style.display = "none";
        this.afterHide();
    },
    show : function(x,y)
    {
        this.div.dom.style.left = x + "px";
        this.div.dom.style.top = y + "px";
        this.div.dom.style.display = "block";
        this.div.fadeIn();
    },
    add : function(div)
    {   
        div.appendTo(this.content);
        this.divArr[this.divArr.length] = div;
    },
    clear : function()
    {
        for(var i=0; i<this.divArr.length;i++)
        {
            var t = Ext.get(this.divArr[i]);
            t.removeAllListeners();
            t.dom.innerHTML="";
            t.remove();
            t=null;
            this.divArr[i]=null;
        }
    },
    afterHide : function()
    {
    }
};

function rmatch(val,data)
{
  var pat ="/" +  val +"\\((.*?)\\)/g";
  pat = eval(pat);
  
  try
  {
      var ret = data.match(pat)[0].replace(val+'(','');
      ret = ret.substr(0,ret.length-1);
      
      return ret;
  }
  catch(e)
  {
    return "";
  }
  
}

