var Crumbs = new Class({
	options: {
		id: 'crumbs', 
		delim: '>'
	},
	folders: [],
	currentURL: null,
	initialize: function(options) {
		currentURL = document.location.toString(); 
		folders = currentURL.split("/"); 
		Object.extend(this.options,options || {});
		this.build(); 
	},
	build: function() {
		var crumbs = this.trail(); 
		$(this.options.id).setHTML(crumbs); 
		try {
		} catch(e) {}
	},
	depth: function(iterations) {
	    var iterations=iterations-3;
	    var depthStr="";
	    for (i=0;i<iterations;i++) {
	        depthStr=depthStr + "../";
	    }
	    return depthStr;
	},
	trail: function() {
	    var str = "";
	    for (count=3; count<(folders.length-1); count++) {
			if(count>3) {
				str = str+" "+this.options.delim; 
			}
			var name = this.decode(folders[count]); 
			str = str+" <a href='"+this.depth((folders.length-count)+1)+"'>"+this.humanize(name)+"</a>";
	    }
	    return str; 
	},
	humanize: function(str) {
		var re = /[-_\.%]/g;
		return str.replace(re," ").capitalize(); 	
	},
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    },
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while ( i < utftext.length ) {
            c = utftext.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}); 

window.addEvent('domready',function(){
	var crumbs = new Crumbs({id:'breadcrumbs',delim:'>>'}); 
}); 
