var req, cssImageObjects = [];

function inject(where, what) {
	if(window.ActiveXObject) {
		where.innerHTML = what;
	} else {
		where.removeChild(where.firstChild);
		where.appendChild(document.createTextNode(what));
	}
}

function cleanWhitespace(containerNode) { 
	var kids = containerNode.childNodes, node;
	if(kids) node = kids.length;
	while(node--) if(kids[node].nodeType==3 && !/\S/.test(kids[node].nodeValue) || kids[node].nodeType==8) containerNode.removeChild(kids[node]);
}

function loadCSSDoc(url) {
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	} else if(window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}

function processReqChange() {
	if(req.readyState == 4) {
		if(req.status == 200) {
			var css  = req.responseText;
			var cssImageStrings = css.match(/url\(.*\)/g);
			var cssImages = [];
			for(var n=0; n < cssImageStrings.length; n++) cssImages[cssImages.length] = cssImageStrings[n].substring(4,cssImageStrings[n].length-1);
			for(var i=0; i < cssImages.length; i++) {
				cssImageObjects[i] = new Image();
				cssImageObjects[i].src = '/'+cssImages[i];
			};
			hourglass();
		} 
	}
}

function hourglass() {
	document.getElementById('hourglass').style.visibility = 'visible';
	var imgCnt = 0;
	for(var i=0; i < cssImageObjects.length; i++) {
		if(!cssImageObjects[i].complete) imgCnt++;
	}
	cleanWhitespace(document.getElementById('hourglass'));
	inject(document.getElementById('hourglass').firstChild, 'Loading scaled images: '+imgCnt+' remaining');
	if(imgCnt > 0) setTimeout("hourglass();",250);
	else document.getElementById('hourglass').style.visibility = 'hidden';
}
