                // def env vars!                    
                var navSchema='frame';//='global';
                var realSearchSchema=1;               
                var doDefaultSearch = true;     
                if(realSearchSchema==2)doDefaultSearch=false;                
                var loaderImg       = "/img/ajax-loader.gif"; 
                var realtyCardQuery = "realty/card?cid=";
                // 
                function initPage(l,c,aUri,sDomain,dSearchTitle){
                    dojo.declare("com.doyen.ViewContext",null,{
                                 curLang     :       l,
                                 cPath       :       c,   
                                 appPrefixUri:       aUri,
                                 searchDomain:       sDomain, 
                                 defaultSearchTitle: dSearchTitle});                
                    vContext = new com.doyen.ViewContext();                              
                    dojo.addOnLoad(mainPageOnLoad);                         
                }
                //  
                function getCurLang(){//return "ru";                     
                    return vContext.curLang;  
                }
                function getContextPath(){
                    return vContext.cPath;
                }                
                function getAppPrefixUri(){//"/residencia/customer/ru";
                    return vContext.appPrefixUri;
                }
                function getSearchDomain(){
                    return vContext.searchDomain;
                }
                function getDefaultSearchTitle(){
                    return vContext.defaultSearchTitle;
                }
                function getLoadImg(){return getContextPath() + loaderImg;}
                // end get env vars
                function getMainPaneHref(){ 
                    return dijit.byId('maincontent').attr('href');                                        
                }
                function setMainPaneHref(href1){
                    dijit.byId('maincontent').attr('href',href1);   
                }
                // 
                function getActionUri(aUri){
                    var actionUri = getAppPrefixUri() + "/" + aUri;                     
                    //alert('actionUri=' + actionUri);
                    return actionUri; 
                }              
                function activateMenuForPage(pUri,isAbs){                     
                    if(isAbs){
                       var ll = (getAppPrefixUri() + "/" + getCurLang()).length; 
                       pUri = pUri.substring(ll+1);    
                    }                    
                    var menuId = "menu_"; 
                    var ii = pUri.indexOf("/"); 
                    if(ii!=-1){
                        var topLevelPage = pUri.substring(0,ii);                        
                        menuId = menuId + topLevelPage;                        
                    }else{
                        menuId = menuId + pUri;
                    }
                    activateMenu(menuId);                    
                }
                //change maincontent pane                
                function backPage(){                                                                                
                    if(navSchema=='global'){                   
                       history.go(-1);                    
                    }else{
                       var bUri = dojo.cookie("mContentPaneUri");                        
                       //alert('backPage=' + bUri);
                       if(bUri)setMainPaneHref(bUri);                                                                                      
                    }
                    //activateMenuForPage(bUri,true);                      
                }
                function navPage(pageUri){                                                         
                    if(navSchema=='global'){
                       globalNavPage(pageUri); 
                    }else{
                       frameNavPage(pageUri); 
                    }//activateMenuForPage(pageUri,false);
                    return false;
                }
                // new 
                function frameNavPage(pageUri){
                    var bUri = getMainPaneHref();                    
                    //alert('frameNavPage=' + bUri);
                    dojo.cookie("mContentPaneUri",bUri);                                                             
                    setMainPaneHref(getActionUri(pageUri));                       
                }
                function globalNavPage(pageUri){
                    var aUri=getActionUri("_"+pageUri);//alert(aUri);  
                    document.location.href=aUri; //'/residencia/customer/ru/_contact';    
                }                 
                //                 
                function doGlobalSiteSearch(pageUri,sVal){
                    //                                         
                    if(sVal && trim(sVal)!=''){
                       showLoadIndicator('siteSearchResultPane',getLoadImg());                                           
                       executeGlobalSiteSearch(sVal);                         
                    }                                        
                }                
                // new 
                function globalSiteSearch1(){     
                    google.load("search","1",{"nocss":true,"nooldnames":true,"callback" : globalSiteSearch});
                }
                function globalSiteSearch(){                                             
                    setMainPaneHref(getActionUri("sitesearch?q="+encodeURIComponent(dijit.byId('searchbox').getValue()))); 
                }
                function globalSearchCallback(data,ioArgs){
                    dijit.byId('siteSearchResultPane').setContent(data);                                                                   
                }
                function globalSearchCallbackError(){                    
                    //alert('globalSearchCallbackError');
                }
                // 
                function zoomFoto(){                                       
                    var cardSlideShow = dijit.byId('cardSlideShow');                 
                    //alert(cardSlideShow.images[cardSlideShow.imageIndex].firstChild);490,370                                                                                
                    wopen(dojo.attr(cardSlideShow.images[cardSlideShow.imageIndex]._img,"src"),'',600,480); 
                    //wopen('img/getimage_card_large1.jpg','', 400, 300); 
                }
                // 
                function showListForm(aUri,doDefSearch){
                    //activateMenu("menu_realty");                         
                     // old1!
                    //doDefaultSearch = doDefSearch;                                         
                    if(realSearchSchema==2){
                       doDefaultSearch = doDefSearch;                                         
                    }
                    setMainPaneHref(getActionUri(aUri)); 
                }     
                // 
                function listFormNextPage(pNum){                
                    listFormGoToPage(pNum,1);
                }
                function listFormPrevPage(pNum){                
                    listFormGoToPage(pNum,-1);
                }
                function listFormGoToPage(pNum,inc){
                    //alert('listFormGoToPage');                     
                    makeRealtySearchByPage(pNum+inc); 
                }               
                function makeRealtySearchByPage(pNum){                         
                    // indicate search                                
                    //showLoadIndicator('searchResultPane',getLoadImg()); 
                    // set page num
                    dojo.byId('pageNum').value=pNum;                     
                    makeRealtySearchByFilter(); 
                }
                function makeRealtySearchByFilter(){        
                    // indicate search - new                                
                    showLoadIndicator('searchResultPane',getLoadImg()); 
                    dojo.xhrPost({url:  getActionUri('realtysearch'),
                                 load:  searchCallback,
                                 error: searchCallbackError,
                                 form:  'realtySearchForm'                                
                    });                                                                                                  
                }
                function clearRealtySearchForm(){                                       
                    dijit.byId("citySelect").setValue("-1"); 
                    dijit.byId("regionSelect").setValue("-1"); 
                    dijit.byId("resedentialTypeMaskSelect").setValue("-1"); 
                    //dijit.byId("sizeSelect").setValue("-1");                     
                    dijit.byId("keyWord").setValue(""); 
                    dijit.byId("priceFrom").setValue(""); 
                    dijit.byId("priceTo").setValue(""); 
                    dijit.byId("sFrom").setValue(""); 
                    dijit.byId("sTo").setValue("");                      
                    dojo.byId('sort').value=""; 
                }
                // table interface 
                function sortTab(fName,dir){
                    sortRealtyResult(fName,dir);
                }                
                function selRow(cId){
                    cardView(cId);
                }
                // end table interface 
                function sortRealtyResult(fName,dir){
                    // sort supp
                    var sortQ = "sortField=" + fName + "&sortDir=" + dir;                     
                    if(sortQ){dojo.byId('sort').value=sortQ;}
                    makeRealtySearchByPage(1);
                }
                function makeRealtySearch(){                                        
                    makeRealtySearchByPage(1);
                }
                function searchCallback(data,ioArgs){                  
                    dijit.byId('searchResultPane').setContent(data);                          
                }                              
                function searchCallbackError(){}
                // 
                function clearSearchResult(){                    
                    dijit.byId('searchResultPane').setContent(''); 
                }                 
                function cardView(cId){                     
                    setMainPaneHref(getActionUri(realtyCardQuery+cId)); 
                }                
                //
                function mainCPaneOnLoad(){                    
                    //alert('mainCPaneOnLoad');    
                    if(doDefaultSearch){
                       makeRealtySearchByFilter();
                       // old1!
                       //doDefaultSearch=false;                                              
                       if(realSearchSchema==2){
                          doDefaultSearch=false;                                              
                       }
                    }                  
                }
                // 
                function mainPageOnLoad(){  
                    // init section !!!
                    initWPage();                    
                    initSiteSearchEngine(getSearchDomain(),'siteSearchResultPane','cursorSiteSearchResultPane');              
                    //
                    searchBox = dojo.byId('searchbox'); 
                    searchBoxInput = dijit.byId('searchbox'); 
                    dojo.connect(searchBox,'onfocus',function(){if(searchBoxInput.getValue()==getDefaultSearchTitle())searchBoxInput.setValue('');});
                    dojo.connect(searchBox,'onblur',function(){if(searchBoxInput.getValue()=='')searchBoxInput.setValue(getDefaultSearchTitle());});                                          
                    dojo.connect(searchBox,'onkeypress',function(evt){key = evt.keyCode;if(key==dojo.keys.ENTER) globalSiteSearch();});                                          
                    dojo.subscribe("rTree", null, function(message){
                                        //alert(message.event); 
                                        if(message.event=="execute"){
                                            //alert(message.node);
                                            var typeNode = message.node;                                                                                        
                                            /*                                            
                                            var cityNode = typeNode.getParent();                                             
                                            var citySelectControl = dijit.byId('citySelect'); 
                                            if(citySelectControl){
                                                var resedentialTypeControl = dijit.byId('resedentialTypeMaskSelect'); 
                                                citySelectControl.setValue(cityNode.item.i); 
                                                resedentialTypeControl.setValue(typeNode.item.t);                                              
                                                clearSearchResult(); 
                                            }*/                                            
                                            var resedentialTypeControl = dijit.byId('resedentialTypeMaskSelect'); 
                                            if(resedentialTypeControl){                                                                                                
                                                resedentialTypeControl.setValue(typeNode.item.t); 
                                                // clear results or do default search    
                                                clearSearchResult(); 
                                                if(realSearchSchema==1){                                                   
                                                   makeRealtySearch(); 
                                                }
                                            }else{                                                                                                                                               
                                                //var actionUri = "realty" + "?typeid=" + typeNode.item.t + "&cityid=" + cityNode.item.i;  
                                                var actionUri = "realty" + "?typeid=" + typeNode.item.t;  
                                                showListForm(actionUri,false);                                                                                                                                                
                                            }
                                        }
                                 });                     
                }
                //all menu items
                function getMenuItems(){                    
                    //return ["main","realty","mortgage","action","support","contact"];                                         
                    return ["main","realty","services","action","support","contact"];                     
                }                
                function activateMenu(mId){                     
                     var vid = dijit.byId(mId);    
                     if(vid){
                        dojo.forEach(getMenuItems(), function(toolbarId){                                
                                     var mName = "menu_" + toolbarId;                                 
                                     var menuIt = dijit.byId(mName);
                                     if(vid!=menuIt)menuIt.setAttribute("checked",false);  
                        });
                        vid.setAttribute("checked",true);
                     } 
                } 
                //
                function getActionForMenu(mId){
                    //alert(mId);                                                                               
                    return mId.substring(mId.indexOf('_')+1);                     
                }
                // new menu 
                function navMenu(mId){                              
                    var vAct = getActionForMenu(mId);
                    navPage(vAct);            
                }     
                // old menu
                /*function mClick(event){
                    this.setAttribute("checked", true);                    
                    var vid = this;                                                                                             
                    dojo.forEach(getMenuItems(),function(toolbarId){
                                 //alert(toolbarId);     
                                 var mName = "menu_" + toolbarId;                                 
                                 var menuIt = dijit.byId(mName);
                                 if(vid!=menuIt) menuIt.setAttribute("checked",false);  
                    });                                                                                                 
                    navPage(getActionForMenu(vid.id));
                }*/
                function menuChanged(arg){}              
                function changeLang(lang){                     
                    //clearRealtySearchForm();
                    document.location.href=getAppPrefixUri()+"?lang="+lang;                        
                }       
                function setLangBorder(elId){                   
                   document.getElementById(elId).style.border='1px solid Yellow';               
                }
                function unsetLangBorder(elId){
                   document.getElementById(elId).style.border='';               
                }
                
                // card handlers               
                function onEmailCard(cId){
                    alert('emailCard'); 
                }
                function onPrintCard(cId){
                    alert('printCard'); 
                }
                var reqDlg;
                function showUserOrderDlg(dlgTitle,cId){
                   if(!reqDlg){	
		      var pane = dojo.byId('userOrderDlg');
		      pane.style.width = "400px"; 	                                
                      //execute:'alert("submitted w/args:\n" + dojo.toJson(arguments[0], true));'
		      //reqDlg = new dijit.Dialog({id:"reqDlg1",refocus:false,title:dlgTitle},pane);
                      reqDlg = new dijit.Dialog({id:"uODlg1",refocus:false},pane);
                   }                   
                   reqDlg.titleNode.innerHTML=dlgTitle;
                   dojo.byId("orderObjId").value=cId;  
                   dijit.byId("userName").setValue("");
                   dijit.byId("userEmail").setValue("");
                   dijit.byId("userPhone").setValue("");
                   dijit.byId("userRequest").setValue("");                              
                   reqDlg.show();                   
                   //setTimeout(function(){ thirdDlg.show(); },"3000");
		}               
                // user request processing
                function onSubmitReqForm(frm){                    
                    makeRealtyOrder(frm);                     
                    return false;
                }
                function makeRealtyOrder(frm){                    
                    var frmObj = frm.attr('value');                    
                    //alert("Object is: " + dojo.toJson(obj, true));
                    // validate
                    var contrl = dijit.byId("userName");                    
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return;
                    }                    
                    contrl = dijit.byId("userEmail");
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return;
                    }
                    //
                    dojo.xhrPost({url:  getActionUri('realtyorder?realestateid='+dojo.byId("orderObjId").value),
                                 load:  realtyOrderCallback,
                                 error: standardServerError,                                 
                                 content: frmObj                                 
                    });     
                }           
                //
                function realtyOrderCallback(data,ioArgs){
                    //alert('realtyRequestCallback'); 
                    if(reqDlg){
                       if(data) alert(data);
                       reqDlg.hide();
                    }
                }                
                // consultation form                
                function onSubmitConsReqForm(frmID,divResId,act){
                    //
                    // validate code 
                    var contrl = dijit.byId("consUserName");                    
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return false;
                    }                                 
                    contrl = dijit.byId("consUserEmail");
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return false;
                    }
                    contrl = dijit.byId("consComment");
                    if(contrl.getValue()==""){                                                
                        alert(contrl.name);
                        contrl.focus();                        
                        return false;
                    }
                    // 
                    standardServerPost(frmID,divResId,getActionUri(act));                     
                    return false;                    
                }
                // advise form
                function onSubmitAdviseReqForm(frmID,divResId,act){
                    //
                    // validate code                    
                    var contrl = dijit.byId("adviseUserName");                    
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return false;
                    }                                 
                    contrl = dijit.byId("adviseUserEmail");
                    if(!contrl.isValid() || contrl.getValue()==""){                                                
                        alert(contrl.invalidMessage);
                        contrl.focus();                        
                        return false;
                    }
                    contrl = dijit.byId("adviseComment");
                    if(contrl.getValue()==""){                                                
                        alert(contrl.name);
                        contrl.focus();                        
                        return false;
                    }                                        
                    // 
                    standardServerPost(frmID,divResId,getActionUri(act));                     
                    return false;                    
                }                
                // standard function - util 
                function standardServerPost(frmID,divResId,uri){
                    // 
                    dojo.xhrPost({divResultId: divResId,
                                  url:   uri,                                 
                                  load:  standardServerCallback,
                                  error: standardServerError,   
                                  form:  frmID                                 
                    });                                        
                }
                function standardServerCallback(data,ioArgs){
                    //alert(data);                    
                    dijit.byId(ioArgs.args.divResultId).setContent(data);                    
                }
                function standardServerError(){/*alert error*/}
                //                                          
