(function($) {  
    window.dhtmlHistory.create({  
        toJSON: function(o) {  
            return $.toJSON(o);  
        },  
        fromJSON: function(s) {  
            return $.evalJSON(s);  
        }  
    });  
  
    window.dhtmlHistory.initialize();  
    var currentHash;  
    window.dhtmlHistory.addListener(function(hash, data) {  
        currentHash = hash;  
    });  
  
    $.history = {  
        add : function(hash, data) {  
            window.dhtmlHistory.add(hash, data);
            
            //update breadcrumb
						var breadcrumb=$('#address').html();
						var url=$('#address > a').attr('href');
						var s=hash.split(':');
						$('a.urlh').remove();
						var a="";
						for(var i in s){
							a=a+s[i];
							$('#address').append('<a class="urlh" href="'+url+'#'+a+'"> &gt; '+clean(s[i])+'</a>');
							a=a+":";
						}
        },  
        addListener: function(fn) {  
            window.dhtmlHistory.addListener(fn);  
            fn(currentHash);  
        }  
    };
    
    //private functions
    function clean(str){
    	astr = str.split('-');
    	cleanstr = "";
    	for(var i in astr){
    		cleanstr = cleanstr + " " + astr[i].substr(0,1).toUpperCase() + astr[i].substr(1);
    	}
    	return cleanstr;
    }
})(jQuery);