function animateImageFrames(placeholder,fps,numimages,firstnumber,padded,basesrc,fileext) {
	var imgouter, theimg, progout, progin; //elements
	var rotimages = [], numload = 0, currentshow = 0; //images
	var padlen = ((firstnumber+numimages-1)+'').length, indlen, padstr = ''; //src padding
	if( document.getElementById && document.createElement && document.childNodes ) {
		//elements
		imgouter = document.createElement('div');
		theimg = document.createElement('img');
		theimg.setAttribute('alt','');
		imgouter.appendChild(theimg);
		progout = document.createElement('div');
		progout.className = 'progressouter';
		progin = document.createElement('div');
		progin.style.width = '0';
		progin.className = 'progressinner';
		progout.appendChild(progin);
		placeholder = document.getElementById(placeholder);
		placeholder.parentNode.replaceChild(progout,placeholder);
		placeholder = null;
		//load images
		for( var i = 0; i < numimages; i++ ) {
			rotimages[i] = new Image();
			rotimages[i].onload = function () {
				numload++;
				progin.style.width = ( ( 100 * numload ) / numimages ) + '%'; //progress
				if( numload == numimages ) {
					progout.parentNode.replaceChild(imgouter,progout);
					progin = progout = null;
					setInterval(function () {
						//rotate to next image
						theimg.src = rotimages[currentshow].src;
						currentshow++;
						if( currentshow == numimages ) {
							currentshow = 0;
						}
					},Math.round(1000/fps));
				}
			};
			if( padded ) {
				//calculate padding
				padstr = '';
				indlen = padlen - (i+'').length;
				for( var j = 0; j < indlen; j++ ) {
					padstr += '0';
				}
			}
			rotimages[i].src = basesrc+padstr+(i+firstnumber)+fileext;
		}
		return true;
	}
	return false;
}
