jQuery(function(){
	// add class to first-item
	$("ul.children li:first").addClass('first');
	$('ul').addClass('bullets');
	$('li').wrapInner('<span />');

	
	// add classes to email / filetypes / external
	var filetypes = /\.(zip|exe|pdf|doc*|xls*|ppt*|mp3)$/i;
	$('a').each(function(){
		$(this).parents('ul').removeClass('bullets').addClass('list');
		var href = $(this).attr('href');
		if ((href.match(/^https?\:/i)) && (!href.match(document.domain))){
			$(this).addClass('external icon');
		}
		else if (href.match(/^mailto\:/i)){
			$(this).addClass('email icon');
		}
		else if (href.match(filetypes)){
			var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined;
			$(this).addClass(extension + ' icon');
			var thisLink = $(this);
			var request;
			var fileSize;
			request = $.ajax({
				type: "HEAD",
				url: href,
				success: function () {
					fileSize = request.getResponseHeader("Content-Length");
					thisLink.append(readablizeBytes(fileSize));
				}
			});
		}
	});

	$()

});

function readablizeBytes(fileSize) {
	if ( fileSize == null || fileSize == "" )
	{
		return '';
	} else {
		var s = ['bytes', 'kb', 'MB', 'GB', 'TB', 'PB'];
		var e = Math.floor(Math.log(fileSize)/Math.log(1024));
		return ' <small>(' + (fileSize/Math.pow(1024, Math.floor(e))).toFixed(2)+" "+s[e] + ')</small>';
	}
}

