/*---------------------------------------------------------------------------------
    CORE HASH MANAGER
---------------------------------------------------------------------------------*/

var hash = function(){
    
    this.hash = location.hash;
    this.hashParams = false;
    
    
    this.startMonitoring = function(){
        if(this.hash.length){
            this.runHash({ wait : false });
        }
        setInterval("core.hash.checkChangeHash()",50);        
    }   
    
        
    this.setHash = function(hash){ // usare sempre questa funzione per settare l'hash del sistema
        location.hash = hash;
        this.hash = location.hash;
        this.hash = hash;
        this.setHashParams();
    } 
    
    
    this.checkChangeHash = function(){  // questa funzione intercetta se l'hash è cambiato
        if (this.hash != location.hash){
            
            if(location.hash.length){
                this.setHash(location.hash);
                
                // -------------- cosa fare quando cambia l'hash
                this.runHash();
                // -------------- fine
                 
            }
            else{
                this.hash = false;
                this.hashParams = false;
            }
            
            return true;

        }
        
        return false;
    }
    
    this.setHashParams = function(){
        this.hashParams = this.getHashParams();
    }
    
    this.getHashParams = function(){
        
        var params = { };
        
        var hashArray = location.hash.split('#');
        if(hashArray.length > 1){
            var string = hashArray[1];
            var vars = string.split('&');
            
            for(var i = 0; i < vars.length; i++){
                var varSplitted = vars[i].split('=');
                var varname = varSplitted[0];
                var varvalue = varSplitted[1];
                params[varname] = varvalue;
            }
        }
        
        return params;
        
    }
        
    this.runHash = function(settings){
        
        var settings = jQuery.extend({
        
            wait : true           
            
        },settings);
        
                
        $.ajax({
          url : PH_R+'system/j-system-hash.php',
          type : 'POST',
          dataType: 'text',
          beforeSend : function(){
              
              if (settings.wait){
                 $('body').hide();
              }
               
          },
          success: function(html,status,request){
             
             
             if (settings.wait){ 
                 $('body').fadeIn(1000);
             }
             
             //alert(core);
             
             /*var callObj = new call();
             var responseSplitted = callObj.splitResponse(html);
             $('.body-content').html(responseSplitted.source+"<javascript style=\"display:none\">"+responseSplitted.javascript+"</javascript>");
             callObj.evalScript(responseSplitted.javascript);*/
             
             
             $('.body-content').html(html);
             
             
             core.css = new css();
             
             
          },
          data: { hash : this.hash }
        });
        
        
    }
    
    this.startMonitoring();
    
        
}
