
smartAgent = function(){
    this.init();
    this.divArray = new Array();
    
};

smartAgent.prototype = {
    type : "guest",
    autoLoad : null,
    agaentList : null,
    loginScreen : null,
    agentsScreen : null,
    newAgentScren : null,
    showAgentScreen : null,
    smartAgentLines : null,
    init : function()
    {
        this.agentList = new Array();
        this.loginScreen = Ext.get('smart_agent_login_display');
        this.agentsScreen = Ext.get('smart_agent_view');
        Ext.get('add_new_agent_from_list').on('click',this.createNewAgent,this);
        Ext.get('card_list_view').on('click',this.card_list_change,this);
        
        this.listViewPageSelectorBox = Ext.get('agents_list_page_selector');
        this.listViewPageSelector = Ext.get('smlvps');
        this.listViewPageSelector.on('change',this.drawAgents,this);
        
        this.createGuestScreen();
        
        this.changeView('login');
        //this.loginScreen.dom.style.display = "block";
        //this.agentsScreen.dom.style.display = "none";
    },
    changeView : function(screen)
    {
        this.loginScreen = Ext.get('smart_agent_login_display');
        this.agentsScreen = Ext.get('smart_agent_view');
        this.listview = Ext.get('smart_agent_assets_display');
        
        
        
        if(screen == "login")
        {
            this.currentDisplay = screen;
            this.loginScreen.dom.style.display="block";
            this.agentsScreen.dom.style.display="none";
            this.listview.dom.style.display="none";
            if(this.editForm)
                if(this.editForm.target)
                    this.editForm.target.dom.style.display="none";
        }
        else if(screen == "agents")
        {
            this.currentDisplay = screen;
            this.loginScreen.dom.style.display="none";
            this.agentsScreen.dom.style.display="block";
            this.listview.dom.style.display="none";
            if(this.editForm)
                this.editForm.target.dom.style.display="none";
        }
        else if(screen == "list")
        {
            this.currentDisplay = screen;
            this.loginScreen.dom.style.display="none";
            this.agentsScreen.dom.style.display="none";
            this.listview.dom.style.display="block";
            if(this.editForm)
                this.editForm.target.dom.style.display="none";
        }
        else if(screen == "edit")
        {
            this.currentDisplay = screen;
            this.loginScreen.dom.style.display="none";
            this.agentsScreen.dom.style.display="none";
            this.listview.dom.style.display="none";
            if(this.editForm)
                this.editForm.target.dom.style.display="block";
        }
        
    },
    changeType : function(_type)
    {
        if(_type == 'guest')
        {
            map.clearDrawingPolygon();
            this.type = _type;
            this.agentList = null;
            this.changeView('login');
            /*
            //this.loginScreen.dom.style.display = "block";
            //this.agentsScreen.dom.style.display = "none";
            if(this.editForm)
            {
                this.editForm.target.dom.style.display = "none";
            }*/
                
            
        }
        else if(_type == "user")
        {
            this.type = _type;
            this.changeView('agents');
            //this.loginScreen.dom.style.display = "none";
            //this.agentsScreen.dom.style.display = "block";
            this.agentList = new Array();
            if(!this.editForm)
            {
                this.editForm = new editSmartAgentScreen();
                this.editForm.srcobj = this;
            }
            this.getAgentList();
            
            
        }
        
    },
    getAgentList : function()
    {

        if(this.type == 'user')
        {
            //this.agaentList = [{title:'a1',addnum:0},{title:'a2',addnum:3},{title:'a3',addnum:0},{title:'a4',addnum:7},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0},{title:'a5',addnum:0}];
            Ext.Ajax.request({
                url :hosturl + 'smartAgent/myAgentList.aspx',
                success : function(ans){
                    var arr = eval(ans.responseText);
                    
                    if(arr[0] == true)
                    {
                        this.agaentList = arr[1];
                        this.drawAgents();
                        return;
                    }
                    else
                    {
                        alert(arr[1]);
                        this.agaentList = [];
                        this.drawAgents();
                        return;
                    }
                },
                failure :function(){this.typeArray = null;alert('שגיאה בחיבור לשרת אנא בדוק את תקינות החיבור האינטרנט');},
                params :null,
                scope : this
            });
            
            
        }
        else
        {
        }   
        return ""
        
    },
    createDiv : function(style,target,text)
    {   
        var div = Ext.get(document.createElement('div'));
        if(style)
            div.dom.className = style ;
        if(target)
            div.appendTo(target);
        if(text)
            div.dom.innerHTML = text;
            
        this.divArray[this.divArray.length] = div;
        return div;
    },
    createTableLineData : function(data)
    {
        
        var txttofind = ",city,action,rooms_from,rooms_to,price_from,price_to,mapx,mapy"
        var ret ={name:data.name,id:data.id,num:data.num,sep:'-',style:'row',id:data.id,img:'img'};
        for(var i=0;i<data.data.length;i++)
        {
            if(txttofind.indexOf(data.data[i].name) != -1)
            {
                var estr = "ret." + data.data[i].name + "='" + data.data[i].value +"'";
                eval(estr);
            }
        }
        if(ret.city == "") ret.city="מסומן במפה";
        if(ret.rooms_from == "-1") ret.rooms_from="0";
        if(ret.price_from == "-1") ret.price_from = "0";
        if(ret.price_to == "-2") ret.price_to = "*";
        
        if(ret.action == "sale") ret.action = "מכירה";
        if(ret.action == "rent") ret.action = "השכרה";
        
        return ret;
        
    },
    changeAgentListView : function()
    {
        if(!this.defListDisplay) this.defListDisplay = "list";
        if (this.defListDisplay == "list")
        {
            //Ext.get('smart_agent_view').dom.style.height = "270px";
            Ext.get('smart_agent_table').dom.style.display = "block";
            Ext.get('smart_agent_view_top_sep').dom.style.display = "none";
            Ext.get('add_new_agent_from_list').dom.style.display = "block";
            Ext.get('smart_agent_card_view').dom.style.display = "none";
            
        }
        else
        {
            Ext.get('smart_agent_view_top_sep').dom.style.display = "block";
            Ext.get('add_new_agent_from_list').dom.style.display = "block";
            Ext.get('smart_agent_table').dom.style.display = "none";
            //Ext.get('smart_agent_view').dom.style.height = "418px";
            Ext.get('smart_agent_card_view').dom.style.display = "block";
            this.listViewPageSelector.dom.value="";
            this.listViewPageSelectorBox.dom.style.display="none";
            
        }
    },
    showAgentsTableList : function()
    {
        
        
        /* create line template */
        
        if(!this.linedTemplate)
        {
            this.linedTemplate = new Ext.Template(
                                    '<div class="row">',
                                        '<div class="{style}">',
                                            '<div class="name"> {name}</div>',
                                            '<div class="type"> {action}</div>',
                                            '<div class="area"> {city}</div>',
                                            '<div class="rooms"> {rooms_from} {sep} {rooms_to}</div>',
                                            '<div class="prices"> {price_from} {sep} {price_to}</div>',
                                            '<div class="adds" id="show_asset_list{id}" title="צפיה ברשימת נכסים"> {num}</div>',
                                            '<div class="edit{img}" id="editagent{id}" title="עריכת סוכן"> {aa} </div>',
                                            '<div class="cencel{img}" id="delagent{id}" title="מחיקת סוכן">{ab} </div>',
                                        '</div>',
                                    '</div>'
                                    );
               this.linedTemplate =this.linedTemplate.compile();
            }
        
        /* display the agents as a table list */
        //this.agaentList
      
        this.pageSize = 10;
        var currentPage = this.listViewPageSelector.getValue();
        
        
        if(this.agaentList.length >this.pageSize )
        {
            this.listViewPageSelector.dom.options.length = 0;
            for (var i = this.pageSize; i <  this.agaentList.length + this.pageSize; i += this.pageSize )
              {
                var el = document.createElement('option');
                el.value = i/this.pageSize -1;
                el.text = i/this.pageSize;
                this.listViewPageSelector.dom.options[ i/this.pageSize-1] = el;
              }
            this.listViewPageSelectorBox.dom.style.display="block";
            if(currentPage == "")
                currentPage=0;
            else if(currentPage >= this.listViewPageSelector.dom.options.length)
                currentPage = currentPage -1;
                
            this.listViewPageSelector.dom.value = currentPage;
        }
        else
        {
            this.listViewPageSelectorBox.dom.style.display="none";
            currentPage=-1;
        }
        
        
        var target = Ext.get('smart_agent_table');
        if(!this.agentBoxs) this.agentBoxs = [];
        
        var new1 = this.linedTemplate.append(target,{name:'שם הסוכן',action:'סוג',city:'איזור',rooms_from:'טווח חדרים',price_from:'טווח מחירים',aa:'עריכה',ab:'ביטול',num:'נכסים חדשים',style:'title'});
        new1 = Ext.get(new1);
        this.divArray[this.divArray.length] = new1;
        
        var loop;
        if(currentPage == -1)
        {
            loop = this.agaentList.length;
            currentPage =0;
        }
        else
        {
            loop= ((currentPage*1)+1)*10 -1;
        }
        //debugger;
        for(var i=(currentPage)*10; i<= loop && i<this.agaentList.length; i++)
        {   
            var ldata = this.createTableLineData(this.agaentList[i]);
            if(i%2 == 1)
                ldata.style="zeb";
            var new1 = this.linedTemplate.append(target,ldata);
            new1 = Ext.get(new1);
            
            new1.data = this.agaentList[i].data;
            new1.agentid = this.agaentList[i].id;
            new1.srcobj = this;
            new1.action =this.agaentList[i].action;
            
            new1.on('click',this.show_asset_list,new1);
            Ext.get('editagent'+this.agaentList[i].id).on('click',this.editAgent,new1);
            Ext.get('delagent'+this.agaentList[i].id).on('click',this.deleteImgPress,new1);
            //Ext.get('show_asset_list'+this.agaentList[i].id).on('click',this.show_asset_list,new1);
            
            
            
            //
            //new1.on('click',this.editAgent,new1);
            //this.agentBoxs[this.agentBoxs.length]=new1;
            this.divArray[this.divArray.length] = new1;
            
            
        }
        
        
        
    },
    show_asset_list : function()
    {   
        
        
        
        if(arguments.length != 0)
        {
            if(arguments[0].target.className =="editimg") return;
            if(arguments[0].target.className =="cencelimg") return;
        }
        if(!this.srcobj.editForm.target) return;
        
        tabs.disable();
        
        this.srcobj.editForm.target.dom.style.display = "block";
        this.srcobj.agentsScreen.dom.style.display = 'none';
        Ext.fly('edit-smart-agent-title').dom.innerHTML = "עריכת סוכן חכם";
        
        this.srcobj.editForm.activeBtn.fadeIn();
        this.srcobj.editForm.deleteBtn.fadeIn();
        this.srcobj.editForm.showListBtn.fadeIn();        
        this.srcobj.changeMainFilter(this.data);
        this.srcobj.editForm.resetForm(this.data,this.action);
        this.srcobj.editForm.target.fadeIn();
        this.srcobj.editForm.currentAgent = this.agentid;
        this.srcobj.editForm.showListBtnPress();
        pageTracker._trackPageview("/smart_agent_asset_list");
        
    },
    deleteImgPress : function(data)
    {
        
        if(confirm("? למחוק סוכן ") == false)
        {   
            return;
        }
        pageTracker._trackPageview("/smart_agent_delete");
        Ext.Ajax.request({
        url:hosturl + 'smartAgent/deleteSmartAgent.aspx?',
        success: function (conn, response, options) {
                    var ar = eval(conn.responseText);
                    if(ar[0] == false)
                    {
                        alert(ar[1]);
                    }
                    else
                    {
                        alert(ar[1]);
                        this.srcobj.getAgentList();
                        this.srcobj.backToAgentList();
                    }
                    
                },
        failure: function (conn, response, options) {alert('שגיאה בחיבור לשרת אנא בדוק את תקינות החיבור האינטרנט');},
        params: { id:this.agentid },
        scope : this
        }); 
    },
    hideAgentsTableList : function()
    {
        /* remove all table rows and hide the table*/
    },
    removeBoxDisplay : function()
    {
        if(this.agentBoxs != null)
        {
            for(var i=0; i<this.agentBoxs.length;i++)
            {
              //  this.agentBoxs[i].destroy();
            }
            
            for(var i=0; i<this.divArray.length; i++)
            {
                this.divArray[i].removeAllListeners();
                this.divArray[i].dom.innerHTML="";
                this.divArray[i].remove();
                this.divArray[i]=null;
            }
            this.divArray = new Array();
        }
        this.smartAgentLines = 0;
        this.agentBoxs = new Array();
    },
    card_list_change : function()
    {
        if(this.defListDisplay == "list")
            this.defListDisplay = "card";
        else
            this.defListDisplay = "list";
        
        this.drawAgents();
    },
    drawAgents : function()
    {
        //debugger;
        // url(smartAgent/pic/new-agent-pic.png)
        if(!this.agaentList) return;
        
        
        if(!this.cardTemplate)
        {
            this.cardTemplate = new Ext.Template(
                                 '<div class="sabox" >',
                                 ' <div class="satitle" >',
                                 '   <div class="saname">',
                                 '     {name}',
                                 '   </div>',
                                 '   <div class="saaddnumber" id="show_asset_list{id}" title="צפיה ברשימת נכסים">',
                                 '   {num}',
                                 '   </div>',
                                 ' </div>',
                                 ' <div class="saright">',
                                 '   <div class="txtline"> <b> {action} </b> </div>',
                                 '   <div class="txtline"> {city} </div>',
                                 '   <div class="txtline"> {rooms_from} {sep} {rooms_to} חדרים </div>',
                                 '   <div class="txtline"> {price_from} {sep} {price_to} ₪ </div>',
                                 ' </div>',
                                 ' <div class="saleft">',
                                 '   <img src="/Zazim/wms.wms?AssetX={mapx}&AssetY={mapy}&width=75&height=75&distance=350"/>',
                                 '<div class="edit{img}" id="editagent{id}" title="עריכת סוכן"> {aa} </div>',
                                 '<div class="cencel{img}" id="delagent{id}" title="מחיקת סוכן">{ab} </div>',
                                 ' </div>',
                                 '</div>'
                                );
           this.cardTemplate=this.cardTemplate.compile();
        }
        
        if(!this.defListDisplay) this.defListDisplay = "card";
        
        this.changeAgentListView();
        if (this.defListDisplay == "list")
        {
            
            this.removeBoxDisplay();
            this.showAgentsTableList();
            return;
        }
        
        /* dispaly agents in card view */
        
        this.removeBoxDisplay();
        var target = Ext.get('smart_agent_card_view');
        var line = this.createDiv('smart-agent-line',target);
        
        var myheight;
            if(!Ext.isIE)
            {
                myheight= 182;
            }
            else
            {
                myheight = 162;
            }
        
        for(var i=0; i<this.agaentList.length;i++)
        {   
            
            
            if(this.agentBoxs.length % 3 == 0 && this.agentBoxs.length >=3  )
            {
                
                line = this.createDiv('smart-agent-line',target);
                this.smartAgentLines++;
            }
            var sep =  this.createDiv('sep',line);
            
            var txtclass="";
            var _txt=""; /* haveadds  noadds */
            if(this.agaentList[i].num == 0 )
            {
                txtclass = "noadds";
                _txt = "אין נכסים חדשים";
            }
            else
            {
                txtclass = "haveadds";
                _txt =  this.agaentList[i].num +  " נכסים חדשים";
            }
            
            
            var ldata = this.createTableLineData(this.agaentList[i]);
            if(ldata.num != 0)
            {
                ldata.num =ldata.num + " נכסים חדשים"
            }
            else
            {
                ldata.num = "אין נכסים חדשים"
            }
            //debugger;
            //var new1 = this.cardTemplate.append(line,{aname:this.agaentList[i].name,x:this.agaentList[i].x,y:this.agaentList[i].y,txt:_txt,txtclass:txtclass,height:myheight});
            var new1 = this.cardTemplate.append(line,ldata);
            new1 = Ext.get(new1);
            new1.data = this.agaentList[i].data;
            new1.agentid = this.agaentList[i].id;
            new1.srcobj = this;
            new1.action =this.agaentList[i].action;
            
            
            new1.on('click',this.show_asset_list,new1);
            
            Ext.get('editagent'+this.agaentList[i].id).on('click',this.editAgent,new1);
            Ext.get('delagent'+this.agaentList[i].id).on('click',this.deleteImgPress,new1);
            //Ext.get('show_asset_list'+this.agaentList[i].id).on('click',this.show_asset_list,new1);
            this.agentBoxs[this.agentBoxs.length]=new1;
            this.divArray[this.divArray.length] = new1;
        }
        
        
        
        if(this.autoLoad != null)
        {
            for(var i=0; i<this.agentBoxs.length;i++)
            {
                if(this.agentBoxs[i].agentid == this.autoLoad)
                {
                    this.autoLoad = null;
                    tabs.tabClicked({target:{id:'tab_smart_agent'}});
                    var tmp = this.agentBoxs[i];
                    //this.agentBoxs[i].srcobj.editAgent.apply(tmp);
                    this.agentBoxs[i].srcobj.show_asset_list.apply(tmp);
                    i=this.agentBoxs.length;
                }
            }
            
        }
        
        
    },
    changeMainFilter : function(data)
    {
       // debugger;
        /* create object to set filter values  */
        var list = "|city:x-i-city|address:x-i-street|rooms_from:x-i-from_rooms|rooms_to:x-i-to_rooms|price_from:x-i-from_price|price_to:x-i-to_price|action:x-i-vAddType|arbitration:x-i-arbitration|asset_type:assettype|includes:options|";
        var list2 = "|1from:advance_search_line_1_type|1fromto:advance_search_line_1_from_to|1miter:advance_search_line_1_miter|2andor:advance_search_line_2_and_or|2from:advance_search_line_2_type|2fromto:advance_search_line_2_from_to|2miter:advance_search_line_2_miter|3andor:advance_search_line_3_and_or|3from:advance_search_line_3_type|3fromto:advance_search_line_3_from_to|3miter:advance_search_line_3_miter|";
        var obj = [];
        var newaddType;
        for(var i=0; i<data.length;i++)
        {
            if(data[i].name == "action")
            {
                newaddType = data[i].value;
            }
            if( list.indexOf("|"+data[i].name + ":") != -1)
            {
                var t =runRegEx("\\|"+data[i].name + "\\:" +"(.*?)\\|",  list);
                if(t != "")
                    obj[obj.length] = {name: t ,value:data[i].value};
            }
            if(list2.indexOf("|"+data[i].name + ":") != -1)
            {
                var t =runRegEx("\\|"+data[i].name + "\\:" +"(.*?)\\|",  list2);
                Ext.fly(t).dom.value = data[i].value;
            }
        }
        if(Ext.get('x-i-vAddType').dom.value != newaddType)
        {   
            getCombosData(
                        newaddType,
                        assetTypeMs.getStringValue(),function(){searchFormObject.setFormVals(obj); adsearch.filterChange();preformRedrawMarkers();});
            
        }
        else
        {
            searchFormObject.setFormVals(obj); 
            adsearch.filterChange();
        }
        
    },
    editAgent : function()
    {   
        if(!this.srcobj.editForm.target) return;
        this.srcobj.editForm.target.dom.style.display = "block";
        this.srcobj.agentsScreen.dom.style.display = 'none';
        Ext.fly('edit-smart-agent-title').dom.innerHTML = "עריכת סוכן חכם";
        
        this.srcobj.editForm.activeBtn.fadeIn();
        this.srcobj.editForm.deleteBtn.fadeIn();
        this.srcobj.editForm.showListBtn.fadeIn();        
        
        this.srcobj.changeMainFilter(this.data);
        this.srcobj.editForm.resetForm(this.data,this.action);
        this.srcobj.editForm.target.fadeIn();
        this.srcobj.editForm.currentAgent = this.agentid;
        pageTracker._trackPageview("/smart_agent_edit");
        //debugger;
    },
    createNewAgent : function()
    {
        if(!this.editForm.target) return;
        this.editForm.target.dom.style.display = "block";
        this.agentsScreen.dom.style.display = 'none';
        Ext.fly('edit-smart-agent-title').dom.innerHTML = "הקמת סוכן חדש";
        this.editForm.activeBtn.fadeOut({endOpacity: 0,easing: 'easeOut',duration: .1,remove: false,useDisplay: false});
        this.editForm.deleteBtn.fadeOut({endOpacity: 0,easing: 'easeOut',duration: .1,remove: false,useDisplay: false});
        this.editForm.showListBtn.fadeOut({endOpacity: 0,easing: 'easeOut',duration: .1,remove: false,useDisplay: false});
        this.editForm.currentAgent = null;
        this.editForm.resetForm(null,'rent');
        this.editForm.target.fadeIn();
        pageTracker._trackPageview("/smart_agent_create");
        
    },
    backToAgentList : function()
    {   
        this.changeView('agents');
        // redraw agents
        
        this.getAgentList();
        map.clearDrawingPolygon();
    },
    showDrawInterface : function()
    {
        
        if( map.getCenter()[2] < 7)
        {   
            alert('על מנת להתחיל לסמן יש להתקרב למפה');
            
        }
        
        /* scroll the page up */
        scrollWin(0,0,0.3); 
       
        tabs.disable();
        map.showDrawingInterface();
        
        /*
        if(this.fieldArray['the_geom'].value != "")
            map.drawDrawingPolygon(this.fieldArray['the_geom'].value);
        addsDataWindow.hide();
        */
    },
    hideDrawInterface : function()
    {
        map.hideDrawingInterface();
        //map.clearDrawingPolygon();
    },
    placePolyValue : function(poly)
    {
        
        var maxx=0;
        var maxy=0;
        var minx=0;
        var miny=0;
        var arr = poly.split(",");
        if( map.getCenter()[2] < 7)
        {
            this.clearPolyValue();
            alert('על מנת לסמן על המפה יש להתקרב/ להגדיל את המפה לא ניתן לסמן ממרחק זה');
            this.editForm.fieldArray['the_geom'].value = "";
            this.editForm.fieldArray['centerx'].value = "";
            this.editForm.fieldArray['centery'].value = "";
            this.editForm.fieldArray['mapx'].value = ""
            this.editForm.fieldArray['mapy'].value = ""
            this.editForm.fieldArray['mapzoom'].value = ""
            map.clearDrawingPolygon();
            map.showDrawingInterface();
            return;
        }
        if(arr.length <5)
        {
            this.clearPolyValue();
            alert('סימון לא תקין אנא סמן שוב');
            this.editForm.fieldArray['the_geom'].value = "";
            this.editForm.fieldArray['centerx'].value = "";
            this.editForm.fieldArray['centery'].value = "";
            this.editForm.fieldArray['mapx'].value = ""
            this.editForm.fieldArray['mapy'].value = ""
            this.editForm.fieldArray['mapzoom'].value = ""
            map.clearDrawingPolygon();
            map.showDrawingInterface();
            return;
            
        }
        for(var i=0; i<arr.length;i++)
        {
            if(i==0)
            {
                maxx = (arr[i].split(" ")[0] );
                minx = (arr[i].split(" ")[0] );
                maxy = (arr[i].split(" ")[1] );
                miny = (arr[i].split(" ")[1] );
            }
            else
            {
                if(maxx < (arr[i].split(" ")[0] *1)) maxx = (arr[i].split(" ")[0] );
                if(minx > (arr[i].split(" ")[0] *1)) minx = (arr[i].split(" ")[0] );
                if(maxy < (arr[i].split(" ")[1] *1)) maxy = (arr[i].split(" ")[1] );
                if(miny > (arr[i].split(" ")[1] *1)) miny = (arr[i].split(" ")[1] );
                
            }
        }
        var x = (maxx*1 + minx*1) /2;
        var y = (maxy*1 + miny*1) /2;
        
        this.editForm.fieldArray['the_geom'].value = poly;
        this.editForm.fieldArray['centerx'].value = x;
        this.editForm.fieldArray['centery'].value = y;
        this.editForm.fieldArray['mapx'].value = map.getCenter()[0];
        this.editForm.fieldArray['mapy'].value = map.getCenter()[1];
        this.editForm.fieldArray['mapzoom'].value = map.getCenter()[2];
        
        scrollWin(0,350,0.3); 
        
        tabs.enable();
                
        this.editForm.mapdiv.dom.style.backgroundImage="url(\""+this.editForm.picSrc.replace('XXXXX',x).replace('YYYYY',y)+"\")";
        
        //this.editForm.fieldArray.city.dom.value ='';
        //this.editForm.fieldArray.address.dom.value ='';
        this.hideDrawInterface();
        //map.drawDrawingPolygon(this.fieldArray['the_geom'].value);
        
    },
    clearPolyValue : function()
    {
        
        this.editForm.fieldArray['the_geom'].value = "";
        this.editForm.fieldArray['centerx'].value = "";
        this.editForm.fieldArray['centery'].value = "";
        this.editForm.fieldArray['mapx'].value = ""
        this.editForm.fieldArray['mapy'].value = ""
        this.editForm.fieldArray['mapzoom'].value = ""
        this.hideDrawInterface();
        
    },
    createGuestScreen : function()
    {
        this.loginForm = Ext.get(document.createElement('div'));
        this.loginForm.dom.className = "x-form";
        this.loginForm.dom.style.width =( 490) +   "px";
        this.loginForm.dom.style.height =( 205 ) +"px";
        
        // create top box
        var div;
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-right";
        div.appendTo(this.loginForm);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-middel";
        div.dom.style.width = (this.loginForm.dom.style.width.replace("px","")*1) -6 + "px";
        div.appendTo(this.loginForm);
        
        var div2 = Ext.get(document.createElement('div'));
        div2.dom.className = "title";
        div2.dom.innerHTML = "סוכן חכם";
        div2.appendTo(div);
        this.loginTitle = div;
        
        
        
        div2 = null;
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-login-title-left";
        div.appendTo(this.loginForm);
        
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-content";
        
        div.dom.style.width =(this.loginForm.dom.style.width.replace("px","")*1) -6 + "px";
        div.dom.style.height =(this.loginForm.dom.style.height.replace("px","")*1) -31 + "px";
        
        
        
        div.appendTo(this.loginForm);
        this.loginFormContent = div;
        
        
        //div = Ext.get(document.createElement('div'));
        //div.dom.className = "x-bottom-right";
        //div.appendTo(this.loginForm);
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-bottom-middel";
        div.dom.style.width =(this.loginForm.dom.style.width.replace("px","")*1) -4 + "px";
        div.appendTo(this.loginForm);
        
        //div = Ext.get(document.createElement('div'));
        //div.dom.className = "x-bottom-left";
        //div.appendTo(this.loginForm);
        
        this.loginForm.appendTo(Ext.get('smart_agent_login_form'));
        this.loginForm.dom.style.position="relative";
        
        //this.loginFormContent
        
        
        div = Ext.get(document.createElement('div'));
        div.dom.innerHTML="על מנת להשתמש בסוכן חכם יש להרשם לאתר:";
        div.dom.className = "x-smart-agt-login-msg";
        div.appendTo(this.loginFormContent);
        if(iever == 6 )
        {
            div.dom.style.width="290px";
        }
        
        var btnEnter = this.CreateBtn(200,"כניסה למשתמש קיים");
        var btnNew = this.CreateBtn(200,"רישום משתמש חדש");
        
        
        div = Ext.get(document.createElement('div'));
        div.dom.className = "x-smart-agt-login-btn";
        div.appendTo(this.loginFormContent);
        
        btnEnter.appendTo(div);
        
        var div2 = Ext.get(document.createElement('div'));
        div2.dom.className = "x-smart-agt-login-btn-sep";
        div2.appendTo(div);
        
        btnNew.appendTo(div);
        
        
        btnEnter.on('click',loginManager.showLoginForm,loginManager);
        btnNew.on('click',loginManager.showNewUserForm,loginManager);
        
    },
    CreateBtn : function(width,text)
    {
        var btn = Ext.get(document.createElement('div'));
        btn.dom.className = "x-form-btn";
        btn.dom.style.width = width + "px";
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "right";
        div.appendTo(btn);
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "middel";
        div.dom.style.width = width - 6 + "px";
        div.dom.innerHTML = text;
        div.appendTo(btn);
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "left";
        div.appendTo(btn);
        
        return btn;
    }
    // insert functions to display list for agents
    ,drawPage : function(pageNo,Cols)
    {
        
        this.pageSize = 11;
        if(!this.rowTemplate)
        {
            this.rowIndex = Cols;
            this.currentPage = 1;
            this.pageSize = 11;
            this.pageRows = [];
            // change to btn look
            Ext.get('saalprittext').on('click',this.printPage,this);
            Ext.get('BackToAgent').on('click',function(){this.changeView('edit');},this);
            Ext.get('BackToList').on('click',this.backToAgentList,this);
            
            this.rowTemplate = new Ext.Template(
                      '<div class="row">',
                      '<div class="{invert}">',
                            '<div class="c-PDate" >{PDate}</div>',
                            '<div class="c-vPicCount"><img src="images/x-asset_list-camera.png" class="{vPicCount}" /></div>',
                            '<div class="c-Floor">{Floor}</div>',
                            '<div class="c-EntryWhen">{EntryWhen}</div>',
                            '<div class="c-RoomNumber">{RoomNumber}</div>',
                            '<div class="c-ShekelRent">{ShekelRent}</div>',
                            '<div class="c-Street">{Street}</div>',
                            '<div class="c-city">{city}</div>',
                            '<div class="c-AssetType"><span style="display:inline;color:red;">{isNew}</span>&nbsp{AssetType}</div>',
                            '<div class="c-cBox"><input id="salistchk{id}" type="checkbox" style="border:none;" onclick="mam.addRemoveAsset(this,event);" {checked}  /></div>',
                       '</div>',
                       '</div>'

            );
            this.rowTemplate = this.rowTemplate.compile();
        }
        
        
        for (var i = 0; i < this.pageRows.length; i++)
        {
            this.pageRows[i].rowId = null;
            this.pageRows[i].marker = null;
            this.pageRows[i].removeAllListeners();
            this.pageRows[i].remove();
            this.pageRows[i] = null;
            
        }
        
        this.pageRows=[];
        //this.myAddsArray
        
        var combo = Ext.get('saaps');
        combo.dom.onchange = null;
        combo.dom.options.length = 0;
        for (var i = this.pageSize; i <  map.getAgentsCount() + this.pageSize; i += this.pageSize )
          {
            var el = document.createElement('option');
            el.value = i/this.pageSize;
            el.text = i/this.pageSize;
            combo.dom.options[ i/this.pageSize-1] = el;
          }
        /*              
        if ( combo.dom.options.length == 1 || combo.dom.options.length == 0)
                Ext.get('smart_agent_assets_page_selector').dom.style.display = 'none'
            else
                Ext.get('smart_agent_assets_page_selector').dom.style.display = 'block'; 
         */     
        this.target = Ext.get('smart_agent_assets_body');
        this.target.dom.innerHTML = '';
        
        if(pageNo == 0 && this.currentPage )
        {
          pageNo = this.currentPage;
          if(pageNo >  combo.dom.options.length)
          {
             pageNo = combo.dom.options.length-1;
          }   
        }
        
        if ( map.getAgentsCount() > 0)
        {
            if (pageNo)
            {
                if (pageNo - 1 <= combo.dom.options.length)
                {
                 this.currentPage = pageNo;
                }
                else
                {
                 this.currentPage = 1;
                }
            }
            else
            {
                this.currentPage = 1;
            }
            if (combo.dom.options.length > 1) 
            {
                combo.dom.options.selectedIndex = this.currentPage - 1;
                combo.dom.onchange = this.drawPageOnChange.createDelegate(this);
            }
        }
        
        
        var ids="";
        var trow = null;
        if(map.getAgentsCount() == 0)
        {   
            if(!this.emptyMsg)
            {
                this.emptyMsg = this.createDiv('row',this.target);
                this.emptyMsg.dom.innerHTML = "לא נמצאו נכסים להצגה";
                this.emptyMsg.dom.style.fontWeight= "bold";
            
            }
                this.emptyMsg.dom.style.display = "block";
            
        }
        else
        {
            if(this.emptyMsg)
            {
                this.emptyMsg.dom.style.display = "none";
            }
        }
        for (var i = (this.currentPage - 1) * this.pageSize; i < (this.currentPage) * this.pageSize && i <  map.getAgentsCount(); i++)
        {   
            trow = map.getAgentsRow(i);
            this.addRow(trow,i+1);
            
            if(trow[this.rowIndex['isNew']] == true)
            {
                if(ids != "") ids+=",";
                ids+=map.getAgentsRow(i)[this.rowIndex['id']];
            }
            
        }
        // add ajext to update list in database as not new
        
        if(ids != "")
        {
            Ext.Ajax.request({
                url :hosturl + 'smartAgent/updateNewList.aspx?',
                success : function(ans){
                    
                    var ret = eval(ans.responseText);
                    
                },
                failure :function(){alert('תקלה בחיבור לשרת אנא התחבר מחדש למערכת')},
                params :{list :ids , id: smarta.editForm.currentAgent },
                scope : this
            });
        }
        
        this.editForm.hideScreenBloker();
        
        tabs.enable();
        //showScreenBloker hideScreenBloker createScreenBloker screenBloker
    },
    addRow: function (dataCell,index)
    {
       var tbl = this.target.dom;
        var _checked = "";
          if(mam.getAssetList() != null)
            if(mam.getAssetList().indexOf(dataCell[this.rowIndex['id']] + "|") != -1)
                _checked = "checked";
          
          var el = this.rowTemplate.append(tbl,
              {
                invert : (index % 2 == 0) ? 'zeb' : 'row',
                AssetType: dataCell[this.rowIndex['AssetType']],
                city: dataCell[this.rowIndex['city']] ,
                Street: dataCell[this.rowIndex['Street']] ,
                "ShekelRent": dataCell[this.rowIndex['ShekelRent']] ,
                RoomNumber: dataCell[this.rowIndex['RoomNumber']] ,
                EntryWhen: dataCell[this.rowIndex['EntryWhen']] ,
                Floor: dataCell[this.rowIndex['Floor']] ,
                vPicCount: (dataCell[this.rowIndex['vPicCount']] == '0') ? 'hide' : '' ,
                PDate: dataCell[this.rowIndex['PDate']],
                id : dataCell[this.rowIndex['id']],
                checked : _checked,
                isNew : (dataCell[this.rowIndex['isNew']] ==true ? '*':'')
                
              });
           el.rowId = dataCell[this.rowIndex['id']];
           this.pageRows[this.pageRows.length] = Ext.get(el);
           
           Ext.get(el).addListener("mousedown", 
                        function(p1,p2,p3)
                        {
                            //debugger; //c-cBox"><input id="mylistchk
                            if(p2.tagName == "INPUT") return;
                            if(addsDataWindow)
                                if(addsDataWindow.rowIndex)
                                {
                                       addsDataWindow.enlist(null,this.rowId,smarta.getPageRows(),smarta.rowIndex);
                                }
                                else
                                {      
                                       addsDataWindow.enlist(null,this.rowId,smarta.getPageRows(),smarta.rowIndex);
                                }
                        },
                        el);
           
        
    },
    drawPageOnChange: function()
    {   
        var combo = Ext.get('saaps');
        var pageNo = combo.dom.options.selectedIndex + 1;
        this.drawPage(pageNo);
    },
    printPage : function()
    {
        var ret = new Array();
        for (var i = (this.currentPage - 1) * this.pageSize; i < (this.currentPage) * this.pageSize && i <  map.getAgentsCount(); i++)
        {   
            ret[ret.length] ={data: map.getAgentsRow(i),index: this.rowIndex};
        }
        print.add(ret);
    },
    getPageRows : function()
    {
        
        var ret = new Array();
        for (var i = (this.currentPage - 1) * this.pageSize; i < (this.currentPage) * this.pageSize && i <  map.getAgentsCount(); i++)
        {   
            ret[ret.length] = map.getAgentsRow(i);
        }
        return ret;
    }
};

editSmartAgentScreen = function(){
    
    this.divArray = new Array();
    this.fieldArray = new Array();
    this.fieldNameArray = new Array();
    this.listUrl = "smartAgent/getEditFormLists.aspx?";
    this.preinit();
};
editSmartAgentScreen.prototype = {

    preinit : function()
    {
        Ext.Ajax.request({
            url :hosturl + this.listUrl,
            success : function(ans){
                
                var ret = eval(ans.responseText);
                var arr = ret.distance;
                this.typeArray = new Array();
                this.typeArray[this.typeArray.length] = {text:'בחר', value: ''}
                for(var i=0; i<arr.length;i++)
                {
                    this.typeArray[this.typeArray.length] = {text: arr[i], value: arr[i]}
                }
                this.assetTypeArray = new Array();
                arr = ret.assetType;
                for(var i=0; i<arr.length;i++)
                {
                    this.assetTypeArray[this.assetTypeArray.length] = {text: arr[i].name, value: arr[i].value}
                }
                
                this.init();
            },
            failure :function(){this.typeArray = null;},
            params :null,
            scope : this
        });
    },
    resetForm : function(data,action)
    {
        var arr;
        if(!data)
        {
             arr = this.dvalList;
        }
        else
        {
            arr = data;
        }
        //debugger;
        //this.target.fadeOut({endOpacity: .7,easing: 'easeOut',duration: .1,remove: false,useDisplay: false});
        this.showScreenBloker();
        if(action)
        {
            this.fieldArray['action'].dom.value = action ;
            Ext.Ajax.request({
            url:hosturl + 'json/json.aspx',
            success: function (conn, response, options) {

                        var ar = eval(conn.responseText);
                        //this.reFilloptions(this.fieldArray.asset_type.dom,ar.AssetTypes,this.fieldArray.asset_type.dom.value || 'דירה' );
                        this.reFilloptions(this.fieldArray.rooms_from.dom,ar.Rooms,-1 );
                        this.reFilloptions(this.fieldArray.rooms_to.dom,ar.Rooms,14);
                        this.reFilloptions(this.fieldArray.price_to.dom,ar.PriceTable,-2);
                        this.reFilloptions(this.fieldArray.price_from.dom,ar.PriceTable,-1);
                        for(var i=0;i<arr.length;i++)
                        {
                            if(arr[i].name =='active')
                            {
                                //alert(this.activeBtn.content.dom.innerTEXT);
                                //debugger;
                                if(arr[i].value == 1 )
                                {
                                    this.activeBtn.Icon.dom.className = "smartAgentActive";
                                    this.activeBtn.content.dom.innerText = "השהה סוכן";
                                    this.activeBtn.value = 1;
                                }
                                else
                                {
                                    this.activeBtn.Icon.dom.className = "smartAgentDeActive";
                                    this.activeBtn.content.dom.innerText = "הפעל סוכן";
                                    this.activeBtn.value = 0;
                                 }
                            }
                            if(this.fieldArray[arr[i].name])
                                {
                                    if(this.fieldArray[arr[i].name].getType == "text")
                                    {
                                        this.fieldArray[arr[i].name].dom.value = arr[i].value;
                                    }
                                    else if(this.fieldArray[arr[i].name].getType == "obj")
                                    {
                                        this.fieldArray[arr[i].name].value = arr[i].value;
                                    }
                                    else if(this.fieldArray[arr[i].name].getType == "select")
                                    {
                                        this.fieldArray[arr[i].name].dom.value = arr[i].value;
                                    }
                                    else if(this.fieldArray[arr[i].name].getType == "chk")
                                    {
                                        if(arr[i].value == true || arr[i].value == 1)
                                            this.fieldArray[arr[i].name].dom.checked = true;
                                        else
                                            this.fieldArray[arr[i].name].dom.checked = false;
                                         
                                    }
                                    else if(this.fieldArray[arr[i].name].getType == "mul")
                                    {
                                        this.fieldArray[arr[i].name].setData(arr[i].value,'e-a-');
                                        
                                    }
                            }
                            
                        }
                        
                        if(this.fieldArray.mapx.value != "")
                        {
                            map.moveTo(this.fieldArray.mapx.value,this.fieldArray.mapy.value,this.fieldArray.mapzoom.value);
                        }
                        
                        if(this.fieldArray.centerx.value != "")
                        {
                          this.mapdiv.dom.style.backgroundImage="url(\""+this.picSrc.replace('XXXXX',this.fieldArray.centerx.value).replace('YYYYY',this.fieldArray.centery.value)+"\")";
                        }
                        else if(this.fieldArray.mapx.value != "")
                        {
                            this.mapdiv.dom.style.backgroundImage="url(\""+this.picSrc.replace('XXXXX',this.fieldArray.mapx.value).replace('YYYYY',this.fieldArray.mapy.value)+"\")";
                        }
                        else
                        {
                            this.mapdiv.dom.style.backgroundImage = "";
                        }
                        
                        if(this.fieldArray['the_geom'].value != "")
                            map.drawDrawingPolygon(this.fieldArray['the_geom'].value);
                        addsDataWindow.hide();
                        
                        
                        this.hideScreenBloker();
                        },
            failure: function (conn, response, options) {},
            headers: {
                   'zazim-req': 'zazim'
               },
               extraParams : {},
            params: { action: 'getCombosData',vAddType: this.fieldArray.action.dom.value || 'rent' ,AssetType: this.fieldArray.asset_type.getStringValue().replace(/e-a-/g,'') || 'דירה' },
            scope : this
            }); 
        }
    },
    init : function(){
        //this.picSrc = "http://192.118.97.206/Zazim/wms.wms?AssetX=XXXXX&AssetY=YYYYY&width=100&height=100"
        this.picSrc = hosturl+"Zazim/wms.wms?AssetX=XXXXX&AssetY=YYYYY&width=160&height=136&distance=350";
        this.target = Ext.get('edit-smart-agent');
        var div = this.createDiv('hsep',this.target);
        div.dom.style.height = "2px";
        
        this.dvalList = new Array();
        this.dvalList[this.dvalList.length] = {name:'city',value : ''};
        this.dvalList[this.dvalList.length] = {name:'address',value : ''};
        this.dvalList[this.dvalList.length] = {name:'agent_name',value : ''};
        this.dvalList[this.dvalList.length] = {name:'action',value : 'rent'};
        this.dvalList[this.dvalList.length] = {name:'rooms_from',value : 0};
        this.dvalList[this.dvalList.length] = {name:'asset_type',value : ''};
        this.dvalList[this.dvalList.length] = {name:'rooms_to',value : 14};
        this.dvalList[this.dvalList.length] = {name:'price_from',value : -1};
        this.dvalList[this.dvalList.length] = {name:'arbitration',value : true};
        this.dvalList[this.dvalList.length] = {name:'includes',value : ''};
        this.dvalList[this.dvalList.length] = {name:'1from',value : ''};
        this.dvalList[this.dvalList.length] = {name:'1fromto',value : ''};
        this.dvalList[this.dvalList.length] = {name:'1miter',value : ''};
        this.dvalList[this.dvalList.length] = {name:'2andor',value : ''};
        this.dvalList[this.dvalList.length] = {name:'2from',value : ''};
        this.dvalList[this.dvalList.length] = {name:'2fromto',value : ''};
        this.dvalList[this.dvalList.length] = {name:'2miter',value : ''};
        this.dvalList[this.dvalList.length] = {name:'3andor',value : ''};
        this.dvalList[this.dvalList.length] = {name:'3from',value : ''};
        this.dvalList[this.dvalList.length] = {name:'3fromto',value : ''};
        this.dvalList[this.dvalList.length] = {name:'3miter',value : ''};
        this.dvalList[this.dvalList.length] = {name:'low_price',value : false};
        this.dvalList[this.dvalList.length] = {name:'heigh_price',value : false};
        this.dvalList[this.dvalList.length] = {name:'email',value : true};
        this.dvalList[this.dvalList.length] = {name:'sms',value : false};
        this.dvalList[this.dvalList.length] = {name:'the_geom',value : ""};
        this.dvalList[this.dvalList.length] = {name:'centerx',value : ""};
        this.dvalList[this.dvalList.length] = {name:'centery',value : ""};
        this.dvalList[this.dvalList.length] = {name:'mapx',value : ""};
        this.dvalList[this.dvalList.length] = {name:'mapy',value : ""};
        this.dvalList[this.dvalList.length] = {name:'mapzoom',value : ""};
        
        
        this.details = this.createDiv('details',this.target);
        this.location = this.createDiv('location-div',this.details,null,null,null);
        
        /* adding map and address fields start */
        //createDiv(style,target,width,text,height)
        //createField(name,type,target,width,value,text)
        
        this.createDiv('orange',this.location,160,'האיזור של הסוכן החכם',15);
        
        
        //this.createDiv('hsep',this.location,170,null,6);
        this.createDiv('reg',this.location,170,'',10);
        this.createDiv('reg',this.location,60,'עיר');
        this.createField('city','text',this.location,100)
        this.createDiv('reg',this.location,60,'שכונה');
        this.createField('address','text',this.location,100)
        this.createDiv('reg',this.location,170,'',10);
        
        this.mapdiv = this.createDiv('reg',this.location,160,null,136);
        this.mapdiv.dom.style.border="solid 1px black";
        
        //showDrawInterface
        this.createDiv('reg',this.location,170,'',10);
        var showdraw = this.createDiv('show-draw-interface',this.location,null,'סימון במפה');
        showdraw.on('click',this.srcobj.showDrawInterface,this);
        
        /* link city field to city list */
        
        var cityoptions = {
		    script:"json/json.aspx?action=getCity&",
		    varname:"input",
		    json:true,
		    srcobj : this,
		    callback: function (obj) { 
		                                var lonlat = [obj.X,obj.Y];
		                                map.moveTo(lonlat[0],lonlat[1], 6);
		                                this.srcobj.fieldArray.city.dom.value = obj.id; 
		                                // claer marking
		                                this.srcobj.fieldArray.the_geom.value = "";
		                                map.hideDrawingInterface();
                                        map.clearDrawingPolygon();
                                        this.srcobj.fieldArray.address.dom.value ="";
                                        
		                                
		                             }
	    };
	    var city_as_json = new AutoSuggest(this.fieldArray.city.dom.id, cityoptions);
        
        
        var streetoptions = {
	    script:"json/json.aspx?action=getneighborhood&",
	    varname:"input",
	    varname1:"input1",
	    srcobj : this,
	    json:true,
	    callback: function (obj) {
                                    var lonlat = [obj.X,obj.Y];
                                    map.moveTo(lonlat[0],lonlat[1], 9);
                                    this.srcobj.fieldArray.mapx.value = lonlat[0];
                                    this.srcobj.fieldArray.mapy.value = lonlat[1];
                                    this.srcobj.fieldArray.mapzoom.value = 9;
                                    this.srcobj.fieldArray.the_geom.value = "";
                                    this.srcobj.fieldArray.centerx.value = lonlat[0];
                                    this.srcobj.fieldArray.centery.value = lonlat[1];
                                    this.srcobj.mapdiv.dom.style.backgroundImage="url(\""+this.srcobj.picSrc.replace('XXXXX',obj.X).replace('YYYYY',obj.Y)+"\")";                                    
	                                this.srcobj.fieldArray.address.dom.value = obj.id;
	                                
	                                map.hideDrawingInterface();
                                    map.clearDrawingPolygon();
	                                
	                              }
	    };
	    var street_as_json = new AutoSuggest(this.fieldArray.address.dom.id, streetoptions,this.fieldArray.city.dom.id);
        
        
        /* add advance search options */
        
        var twidth =0;
        if(iever == 6 )
        {
            twidth = -30;
        }
        
        this.advanceDetail = this.createDiv('advanced-detail-div',this.details,null,null,null);
        this.createDiv('orange',this.advanceDetail,250-twidth,'ברצוני לראות...');
        
        if(iever != 6)
        {
            this.createDiv('reg',this.advanceDetail,250-twidth,'רק נכסים שמרחקם מ');
        }
        else
        {
            this.createDiv('reg',this.advanceDetail,250-twidth,'רק נכסים שמרחקם מ').dom.style.marginTop="-9px";
        }
        
        
        this.createField('1from','select',this.advanceDetail,90);
        this.createField('1fromto','select',this.advanceDetail,80,':עד / יותר מ|from:יותר מ|to:עד');
        this.createField('1miter','select',this.advanceDetail,75,':בחר|100|200|300|400|500|600|700|800|900');
        this.createDiv('reg',this.advanceDetail,30,'מטר');
       
        
        this.createField('2andor','select',this.advanceDetail,245,':וגם / או|and:וגם|or:או');
        this.createField('2from','select',this.advanceDetail,90);
        this.createField('2fromto','select',this.advanceDetail,80,':עד / יותר מ|from:יותר מ|to:עד');
        this.createField('2miter','select',this.advanceDetail,75,':בחר|100|200|300|400|500|600|700|800|900');
        this.createDiv('reg',this.advanceDetail,30,'מטר');
        
       
        
        this.createField('3andor','select',this.advanceDetail,245,':וגם / או|and:וגם|or:או');
        this.createField('3from','select',this.advanceDetail,90);
        this.createField('3fromto','select',this.advanceDetail,80,':עד / יותר מ|from:יותר מ|to:עד');
        this.createField('3miter','select',this.advanceDetail,75,':בחר|100|200|300|400|500|600|700|800|900');
        this.createDiv('reg',this.advanceDetail,30,'מטר');
        
     
        
        
        this.createField('low_price','chk',this.advanceDetail,260,null,' רק נכסים שמחירם נמוך מהמחיר הממוצע באיזורם');
        this.createField('heigh_price','chk',this.advanceDetail,270,null,'רק נכסים שמחירם גבוה מהמחיר הממוצע באיזורם');
        
        if(iever != 6)
        {
            this.createDiv('orange',this.advanceDetail,240,'אופן קבלת התראות').dom.style.marginTop="8px";
        }
        else
        {
            this.createDiv('orange',this.advanceDetail,240,'אופן קבלת התראות').dom.style.marginTop="-4px";
        }
        
        this.createField('email','chk',this.advanceDetail,230,true,'שלח נכסים חדשים לכתובת המייל שלי');
        var smsfld = this.createField('sms','chk',this.advanceDetail,230,null,'שלח נכסים ב SMS (עלות הודעה 1 ש"ח)');
        
        smsfld.on('click',this.testMobailNumber,this);
        //this.actionChange();
        
        this.reFilloptions(this.fieldArray['1from'].dom,this.typeArray,'' );
        this.reFilloptions(this.fieldArray['2from'].dom,this.typeArray,'' );
        this.reFilloptions(this.fieldArray['3from'].dom,this.typeArray,'' );
        
        
        /* adding filter data and fields start */
        this.baseDetail = this.createDiv('base-detail-div',this.details,null,null,null);
        
        
        
        this.createDiv('orange',this.baseDetail,260,'הגדרות כלליות של סוכן');
        //this.createField('agent_name','text','this.details',175,value,text)
        
        
        this.createDiv('reg',this.baseDetail,73,'שם הסוכן');
        this.createField('agent_name','text',this.baseDetail,175);
        this.createDiv('reg',this.baseDetail,73,'בחר פעולה');
        //this.createField('action','select',this.baseDetail,180,'rent:השכרה|sale:מכירה|partners:שותפים|commercial:עיסקי|exchange:החלפה');
        this.createField('action','select',this.baseDetail,180,'rent:השכרה|sale:מכירה');
        this.fieldArray['action'].on('change',this.actionChange,this);
        this.createDiv('reg',this.baseDetail,73,'חדרים');
        this.createField('rooms_from','select',this.baseDetail,80);
        this.createDiv('reg',this.baseDetail,15,'עד');
        this.createField('rooms_to','select',this.baseDetail,85);
        this.createDiv('reg',this.baseDetail,73,'ממחיר');
        this.createField('price_from','select',this.baseDetail,80);
        this.createDiv('reg',this.baseDetail,15,'עד');
        this.createField('price_to','select',this.baseDetail,85);
        
        
        this.createDiv('reg',this.baseDetail,73,'תיווך/יזום/אחר');
        var chk1=this.createField('arbitration','chk',this.baseDetail,180,null,'');
        
        chk1.dom.style.marginTop="-2px";
        
        this.createDiv('reg',this.baseDetail,73,'סוג הנכס');
        
        var div =this.createDiv('reg',this.baseDetail,180);
        var tms = this.createDiv('multiSelect',div,173);
        tms.dom.id="edit-smart-agent-assets";
        div.dom.style.direction="rtl";
        
        this.fieldNameArray[this.fieldNameArray.length] ='asset_type';
        this.fieldArray['asset_type'] = new multiSelect('edit-smart-agent-assets');
        this.fieldArray['asset_type'].getType = "mul";
        
        
        this.createDiv('reg',this.baseDetail,73,'תוספות');
        var div =this.createDiv('reg',this.baseDetail,180);
        var tms = this.createDiv('multiSelect',div,173);
        tms.dom.id="edit-smart-agent-includes";
        
        
        
        
        
        
        // adding poly fields Start
        this.fieldNameArray[this.fieldNameArray.length] ='mapx';
        this.fieldNameArray[this.fieldNameArray.length] ='mapy';
        this.fieldNameArray[this.fieldNameArray.length] ='mapzoom';
        this.fieldNameArray[this.fieldNameArray.length] ='the_geom';
        this.fieldNameArray[this.fieldNameArray.length] ='centerx';
        this.fieldNameArray[this.fieldNameArray.length] ='centery';
        this.fieldArray['mapx'] = {value:'',getType:'obj'};
        this.fieldArray['mapy'] = {value:'',getType:'obj'};
        this.fieldArray['mapzoom'] = {value:'',getType:'obj'};
        this.fieldArray['the_geom'] = {value:'',getType:'obj'};
        this.fieldArray['centerx'] = {value:'',getType:'obj'};
        this.fieldArray['centery'] = {value:'',getType:'obj'};
        
        
        
        // adding poly fields End
        
      

//        debugger;
        for(var i=0;i<this.assetTypeArray.length;i++)
        {
            this.fieldArray['asset_type'].addBox('e-a-'+this.assetTypeArray[i].text,this.assetTypeArray[i].text,null,this.assetTypeArray[i].value);
        }
        
        
        
        
        this.fieldNameArray[this.fieldNameArray.length] ='includes';
        
        this.fieldArray['includes'] = new multiSelect('edit-smart-agent-includes');
        this.fieldArray['includes'].getType = "mul";
        
        this.fieldArray['includes'].addBox('e-a-VerandaNo','מרפסת',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-Elevator','מעלית',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-CenterAirCond','מיזוג מרכזי',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-OtherAirCond','מיזוג כלשהו',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-Parking','חנייה',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-Furnished','ריהוט',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-GoodForPartners','מתאים לשותפים',redrawMarkers);
	    this.fieldArray['includes'].addBox('e-a-HandicapAccess','גישה לנכים',redrawMarkers);
	    
	    
        
        // create butons
        
        
        
        //show-draw-interface
        
        
        this.btnLine = this.createDiv('smart-agaent-btn-right',this.target);
        
        this.createDiv('smart-agaent-btn-right',this.btnLine,5);
        this.activeBtn = this.createBtn(130,"<div id=\"activeBtnIcon\" class=\"smartAgentActive\" ></div>  סוכן פעיל",'smart-agaent-btn-right');
        this.activeBtn.appendTo(this.btnLine);
        this.activeBtn.Icon = Ext.get('activeBtnIcon');
        
        this.activeBtn.on('click',this.activeBtnPress,this);
        
        this.createDiv('smart-agaent-btn-right',this.btnLine,5);
        this.deleteBtn = this.createBtn(140,"מחק סוכן חכם",'smart-agaent-btn-right');
        this.deleteBtn.appendTo(this.btnLine);
        
        this.deleteBtn.on('click',this.deleteBtnPress,this);
        
        this.createDiv('smart-agaent-btn-right',this.btnLine,5);
        this.showListBtn = this.createBtn(140,"הצג רשימת נכסים",'smart-agaent-btn-right');
        this.showListBtn.appendTo(this.btnLine);
        
        this.showListBtn.on('click',this.showListBtnPress,this);
        
        this.createDiv('smart-agaent-btn-right',this.btnLine,5);
        this.saveAgebtBtn = this.createBtn(140,"שמור סוכן חכם",'smart-agaent-btn-right');
        this.saveAgebtBtn.appendTo(this.btnLine);
        
        this.saveAgebtBtn.on('click',this.saveAgebtBtnPress,this);
        
        this.createDiv('smart-agaent-btn-right',this.btnLine,5);
        this.backToListBtn = this.createBtn(140,"חזור לרשימת הסוכנים",'smart-agaent-btn-right');
        this.backToListBtn.appendTo(this.btnLine);
        
        this.backToListBtn.on('click',smarta.backToAgentList,smarta);
        //backToAgentList
        
        //this.activeBtn.on('click',this.getFormVals,this);
        this.createScreenBloker();
    },
    testMobailNumber : function(evt,src)
    {
        
        if(src.checked == true)
        {
            if(loginManager.updateUserDetail.sms ==0 )
            {
                // no number have been tested yet
                //var d = new Date();
                //if(!this.smsApproveForm) this.createSmsApproveForm();
                //Ext.fly('sms-cap').dom.style.backgroundImage = "url(\"security/JpegImage.aspx?cap="+d.getTime()+"\")";
                if(!smsm.smsApproveForm.blockShow)
                {
                    smsm.replaceCap();
                    smsm.smsApproveForm.setFormVals();
                    smsm.smsApproveForm.show();
                }
                
                
            }
            else if(loginManager.updateUserDetail.sms ==2 )
            {
                alert('שליחת SMS מהאתר מושהית , אנא כנס לעדכון פרטים על מנת לאפשר קבלת הודעות');
            }
        }
        
    },
    
    
    saveAgebtBtnPress : function()
    {
        
        var msg = "";
        if(this.fieldArray['the_geom'].value == "")
        {
            if(this.fieldArray['city'].dom.value == "")
            {
                if(msg != "") msg += "\n";
                msg+="חובה לבחור עיר";
            }
            if(this.fieldArray['address'].dom.value == "")
            {
                if(msg != "") msg += "\n";
                msg+="חובה לבחור שכונה";
            }
        }
        if(msg != "")
        msg+="\n" + "חובה לבחור עיר ושכונה או לסמן במפה על מנת להקים סוכן";
        
        
        if(this.fieldArray['agent_name'].dom.value == "")
        {
            if(msg != "") msg += "\n";
            msg+="חובה לבחור שם סוכן";
        }
        
        if(msg == "")
        {
        this.showScreenBloker();    
            var _url;
            var data;
            
            if(this.currentAgent == null)
            {   
                _url = 'smartAgent/newAgent.aspx';
                data = this.getFormVals();
            }
            else
            {
                
                _url = 'smartAgent/updateAgent.aspx';
                data = this.getFormVals().replace(/'/,"");
                data+="|id("+ this.currentAgent+")";
                data+="|active("+this.activeBtn.value +")";
                
            }
            
                Ext.Ajax.request({
                   url:hosturl + _url,
                   success: function (conn, response, options){
                                var ans = eval(conn.responseText);
                                this.hideScreenBloker();
                                if(ans[0] == false)
                                {
                                    alert(ans[1]);
                                }
                                else
                                {
                                    alert('סוכן חכם נשמר בהצלחה');
                                    this.srcobj.getAgentList();
                                    this.srcobj.backToAgentList();
                                    
                                }
                            },
                   failure: function (conn, response, options) {alert('כישלון בחיבור לשרת בדוק את תקינות חיבור האינטרנט'); this.hideScreenBloker();},
                   params: { data: data , id: this.currentAgent },
                   scope : this
                   
                });
        }
        else
            alert(msg);
        
                
    },
    deleteBtnPress : function()
    {
        if(confirm("? למחוק סוכן ") == false)
        {   
            return;
        }
        Ext.Ajax.request({
        url:hosturl + 'smartAgent/deleteSmartAgent.aspx?',
        success: function (conn, response, options) {
                    var ar = eval(conn.responseText);
                    if(ar[0] == false)
                    {
                        alert(ar[1]);
                    }
                    else
                    {
                        alert(ar[1]);
                        this.srcobj.getAgentList();
                        this.srcobj.backToAgentList();
                    }
                    
                },
        failure: function (conn, response, options) {alert('שגיאה בחיבור לשרת אנא בדוק את תקינות החיבור האינטרנט');},
        params: { id:this.currentAgent },
        scope : this
        }); 
    },
    
    showListBtnPress : function()
    {   
        this.showScreenBloker();
        
        map.reloadByAgentsAgent(this.currentAgent,loginManager.updateUserDetail.email);
        // show list of assets from agent
        
        this.srcobj.changeView('list');
        
        
    },
    
    activeBtnPress : function()
    {
        if(this.activeBtn.Icon.dom.className == 'smartAgentActive')
        {
            this.activeBtn.Icon.dom.className = 'smartAgentDeActive';
            this.activeBtn.content.dom.innerText = "הפעל סוכן";
            this.activeBtn.value = 0;
        }
        else
        {
            this.activeBtn.Icon.dom.className = 'smartAgentActive';
            this.activeBtn.content.dom.innerText = "השהה סוכן";
            this.activeBtn.value = 1;
        }
        //this.saveAgebtBtnPress(); 
        // update only active 4 smart agent
        
        Ext.Ajax.request({
        url:hosturl + 'smartAgent/smartAgentActiveChange.aspx?',
        success: function (conn, response, options) {
                    var ar = eval(conn.responseText);
                    if(ar[0] == false)
                    {
                        alert(ar[1]);
                        if(this.activeBtn.Icon.dom.className == 'smartAgentActive')
                        {
                            this.activeBtn.Icon.dom.className = 'smartAgentDeActive';
                            this.activeBtn.content.dom.innerText = "הפעל סוכן";
                            this.activeBtn.value = 0;
                        }
                        else
                        {
                            this.activeBtn.Icon.dom.className = 'smartAgentActive';
                            this.activeBtn.content.dom.innerText = "השהה סוכן";
                            this.activeBtn.value = 1;
                        }
                        
                    }
                    else
                    {
                        alert(ar[1]);
                        this.srcobj.getAgentList();
                    }
                    
                    },
        failure: function (conn, response, options) {alert('שגיאה בחיבור לשרת אנא בדוק את תקינות החיבור האינטרנט');},
        params: { active:this.activeBtn.value ,id:this.currentAgent },
        scope : this
        }); 
    },
    actionChange : function(evt,src,b)
    {

        // change lists for rooms and price
        Ext.Ajax.request({
        url:hosturl + 'json/json.aspx',
        success: function (conn, response, options) {
                    var ar = eval(conn.responseText);
                    //this.reFilloptions(this.fieldArray.asset_type.dom,ar.AssetTypes,this.fieldArray.asset_type.dom.value || 'דירה' );
                    this.reFilloptions(this.fieldArray.rooms_from.dom,ar.Rooms,-1 );
                    this.reFilloptions(this.fieldArray.rooms_to.dom,ar.Rooms,14);
                    this.reFilloptions(this.fieldArray.price_to.dom,ar.PriceTable,-2);
                    this.reFilloptions(this.fieldArray.price_from.dom,ar.PriceTable,-1);
                    
                    

                    },
        failure: function (conn, response, options) {alert('שגיאה בחיבור לשרת אנא בדוק את תקינות החיבור האינטרנט');},
        headers: {
               'zazim-req': 'zazim'
           },
           extraParams : {},
        params: { action: 'getCombosData',vAddType: this.fieldArray.action.dom.value || 'rent' ,AssetType: this.fieldArray.asset_type.getStringValue().replace(/e-a-/g,'') || 'דירה' },
        scope : this
        }); 
    },
    clearData : function(){},
    loadData : function(){},
    reFilloptions : function(target,ar,value)
    {
        target.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;
                if(ar[i].value == value || target.value == ar[i].value ) el.selected = true;
                target.options[i] = el;
        }
    },
    createDiv : function(style,target,width,text,height)
    {   
        var div = Ext.get(document.createElement('div'));
        if(style)
            div.dom.className = style ;
        if(target)
            div.appendTo(target);
        if(text)
            div.dom.innerHTML = text;
        if(width)
            div.dom.style.width = width + "px";
        if(height)
            div.dom.style.height = height + "px";
            
        this.divArray[this.divArray.length] = div;
        return div;
    },
    createField : function(name,type,target,width,value,text)
    {   
        var field;
        var dvalue;
        var div = this.createDiv('ffield',target,width);
        if(type == 'text')
        {
            field = Ext.get(document.createElement('input'));
            if(width)
                field.dom.style.width = (width -5) +"px";
            if(value)
            {
                field.dom.value = value;
                dvalue = value;
            }
            field.dom.style.fontSize = "11px";
            field.appendTo(div);
        }
        else if(type == 'select')
        {
            field = Ext.get(document.createElement('select'));
            if(width)
                field.dom.style.width = (width -5 ) +"px";
            if(value)
            {
                var valarr = value.split("|");
                for(var i=0; i<valarr.length;i++)
                {
                    var opt = document.createElement('option');
                    if(valarr[i].indexOf(':') != -1)
                    {
                        opt.value = valarr[i].split(':')[0];
                        opt.text = valarr[i].split(':')[1];
                    }
                    else
                    {
                        opt.value = valarr[i];
                        opt.text = valarr[i];
                    }
                    if(i==0) {opt.selected = true; dvalue = opt.value; }
                    field.dom.options[i] = opt;
                }
            }
            field.appendTo(div);
            
        }
        else if(type == 'chk')
        {
            field = Ext.get(document.createElement('input'));
            field.dom.type="checkbox";
            field.dom.className = div.dom.className;
            field.appendTo(div);
            if(value == true)
            {
                dvalue = true;
                field.dom.checked = true;
            }
            else
            {
                dvalue == false;
            }
            this.createDiv('ftext',div,null,text)
        }
        this.fieldArray[name] = field;
        if(!this.fieldNameArray)
        {
            this.fieldNameArray = new Array();
        }
        this.fieldNameArray[this.fieldNameArray.length] = name;
        //this.fieldArray[name].getVal = this.getFieldValue();
        this.fieldArray[name].getType = type;
        return this.fieldArray[name];
    },
    getFormVals : 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]].getStringValue().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;
    },
    createBtn : function(width,text,style)
    {
        
        var ret = this.createDiv(style,null,width,null,null);
        ret.dom.className = style;
        
        var btn = Ext.get(document.createElement('div'));
        btn.dom.className = "x-form-btn";
        btn.dom.style.width = width + "px";
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "right";
        div.appendTo(btn);
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "middel";
        div.dom.style.width = width - 6 + "px";
        if(text)
            div.dom.innerHTML = text;
        div.appendTo(btn);
        ret.content = div;
        
        var div = Ext.get(document.createElement('div'));
        div.dom.className = "left";
        div.appendTo(btn);
        //btn.appendTo(div);
        //return btn;
        btn.appendTo(ret);
        return ret;
    },
    createScreenBloker : function()
    {
        this.screenBloker = this.createDiv('edit-screen-bloker',Ext.getBody());
        
    }, 
    showScreenBloker : function()
    {
        this.target.getBox().y
        if(Ext.isIE)
        {
            this.screenBloker.dom.style.top =this.target.getBox().y -2;
            this.screenBloker.dom.style.left =this.target.getBox().x -1;
        }
        else
        {
            this.screenBloker.dom.style.top =this.target.getBox().y;
            this.screenBloker.dom.style.left =this.target.getBox().x;
        }
        this.screenBloker.fadeIn();
    },
    hideScreenBloker : function()
    {
        this.screenBloker.fadeOut({endOpacity: 0,easing: 'easeOut',duration: .1,remove: false,useDisplay: true});
    }
};