﻿BabyHomeState ={
    HouseManage: "housemanage",
    StoreImage: "storeimage",
    StoreEntry: "storeentry",
    LivingRoom: "livingroom",
    Admin: "admin",
    All_Comments: "all_comments",
    All_Friends: "all_friends"
}
BabyHomeController = function(host, ns, tns)
{    
    host = getDOM(host);    
    inherit(new AbstractController(host, ns, tns), this);                       
    
	//System.Environment.HistoryKeeper.register(ns, tns, "onStateChange", this);    
	    
    var currentState = System.Environment.HistoryKeeper.getBookmarkedState(ns);    
        
	currentState = currentState || BabyHomeState.LivingRoom;
	if(currentState==null) currentState	=BabyHomeState.LivingRoom;				
	tns = currentState;
	System.Environment.HistoryKeeper.register(ns, tns, "onStateChange", this);    
    this.onStateChange(currentState,true);      
}
BabyHomeController.prototype.onStateChange = function(state, mustReload)
{       
    if(Globals.IsAuthorised || Globals.IsAdmin){        
        //getDOM('mnu_house_of_babay').className = "active";
        showControl('mnu_housemanager');
        
    }else{
        getDOM('mnu_house_of_babay').className = "";
        hideControl('mnu_housemanager');
    }              
    
    if(Globals.IsAuthorised && Globals.IsAdmin){
        showControl('mnu_administrator');
    }else{
        hideControl('mnu_administrator');
    }

    if(state == this.state)
    {
       if(mustReload == null) mustReload = false;
        if(!mustReload)
            return;
    }                    
    if(state == BabyHomeState.LivingRoom)
    {
       //showLivingRoom.
       this.renderEditTemplate(templateBabyHome.LivingRoom);
       GetLastestEntryByUser();
       photoController.getRecentPhotoL_Room();
       setActiveMenuHorizal('mnu_livingroom');
       return true;
    }    
    /*---------------------------------------------------------------*/ 
    if(state == BabyHomeState.StoreImage)
    {   
        //showStoreImage
        this.renderEditTemplate(templateBabyHome.StoreImage);                        
        photoController.GetTopOnePhotoByUserId(function(){
            photoController.GetAllCat('cbphoto_cat',null);
            photoController.showSlideShow(0);
        });        
        setActiveMenuHorizal('mnu_storeimage');
        return true;
    }    
    if(/storeimage_/i.test(state))
    {
        var index = BabyHomeState.StoreImage + "_";
        var cbo_value;
        index = index.length;
        var id = state.substr(index,state.length);
        if(!isNaN(id)){        
          if(getDOM('cbphoto_cat')!=null)
            cbo_value = getDOM('cbphoto_cat').value;
            this.renderEditTemplate(templateBabyHome.StoreImage);             
            photoController.GetPhotoById(id,function(){                        
                if(getDOM('cbphoto_cat').options.length <=1) {                
                    photoController.GetAllCat('cbphoto_cat',function()
                    {   
                        if(cbo_value!=null && cbo_value>0){
                            getDOM('cbphoto_cat').value = cbo_value;                                
                            photoController.showSlideShow(cbo_value);   
                        }else{
                            photoController.showSlideShow(0); 
                        }
                    });
                }else{
                   photoController.GetAllCat('cbphoto_cat',null);
                   photoController.showSlideShow(0); 
                }    
          });
        } 
        setActiveMenuHorizal('mnu_storeimage');
        return true;      
    }    
    
   /*----------------  Store entry ---------------------------------*/ 
    
    if(state == BabyHomeState.StoreEntry)
    {   
        this.renderEditTemplate(templateBabyHome.StoreEntry);        
        blogController.GetAllEntryByUser(); //Get latest entry
        setActiveMenuHorizal('mnu_storeentry');
        return true;
    }
    if(/storeentry_/i.test(state))
    {
        var index = BabyHomeState.StoreEntry + "_";
        index = index.length;
        var id = state.substr(index,state.length);
        if(!isNaN(id))
        {
            this.renderEditTemplate(templateBabyHome.StoreEntry);        
            blogController.GetById(id);
            //return true;
        }    
        setActiveMenuHorizal('mnu_storeentry');  
        return true;  
    } 
    
    //End Store Entry
     /*---------- Admin Manage ----------------*/        
    if(/admin_/i.test(state))
    {    
        if(Globals.IsAdmin){
            setActiveMenuHorizal('mnu_administrator');  
            this.renderEditTemplate(templateBabyHome.Administrator);
            initTabAdministrator();
            var index = BabyHomeState.Admin + "_";
            index = index.length;
            var sub = state.substr(index,state.length);
            switch(sub){
                case 'tabQ':
                    tabsAdministrator.active(tabsAdministrator.tab_administrator_manage_user);
                    InitListAdminUser();initPazingAdminUser();
                    break;
                case 'tabG':
                    tabsAdministrator.active(tabsAdministrator.tab_administrator_manage_sendmessage);
                    quickCommentController.ShowSendMessage();
                    break;
                default: break;
            }        
         }else{
                hideControl('mnu_administrator');            
                this.onStateChange(BabyHomeState.LivingRoom,true);
         }
         return true;
     } 
    /*---------- House Manage ----------------*/         
    if(/housemanage_/i.test(state))
    {    
        if(Globals.IsAuthorised || Globals.IsAdmin){
            setActiveMenuHorizal('mnu_housemanager');  
            this.renderEditTemplate(templateBabyHome.HouseManage);
            initTabBabyHouse();
            var index = BabyHomeState.StoreEntry + "_";
            index = index.length;
            var sub = state.substr(index + 1,state.length);
            switch(sub){
                case 'tabS':
                    tabsHouseManage.active(tabsHouseManage.tab_update_info_house);
                    manageBabys();
                    break;
                case 'tabV':
                    tabsHouseManage.active(tabsHouseManage.tab_add_blog);
                    blogController.onStateChange(BlogState.NewForm,true);
                    break;
                case 'tabG':
                    tabsHouseManage.active(tabsHouseManage.tab_add_photo);
                    photoController.LoadNewForm();
                    break;
                case 'tabT':
                    tabsHouseManage.active(tabsHouseManage.tab_create_sign);
                    avatarController.ShowAllBackgrounds(function(){
                        userController.GetSignature();
                    });                    
                    break;
                case 'tabB':
                    tabsHouseManage.active(tabsHouseManage.tab_add_friend);
                    showManageFriends();
                    break;
                default: break;
            }        
         }else{
                hideControl('mnu_housemanager');            
                this.onStateChange(BabyHomeState.LivingRoom,true);
         }   
         return true;
    }  
    /*---------- End House Manage ----------------*/  
    /*---------- manage keeper show all quick comments and all friends ----------------*/  
    if(state == BabyHomeState.All_Comments)
    {  
       setInActiveMenuHorizal();
       showAllQuickComments();
       getBody().scrollTop = 300;
       return true;
    }  
    if(state == BabyHomeState.All_Friends)
    {  
       setInActiveMenuHorizal();
       showAllFriendsCenterForm();
       getBody().scrollTop = 300;
       return true;
    }
}