var aSlides	= new Array();
var aCounts	= new Array();
var aSlopes	= new Array();

var oTemp1	= new Image();
var oTemp2	= new Image();
var oTemp3	= new Image();

var scalar	= 1;

if (window.addEventListener) { window.addEventListener("load", setupFlags, false); }
else if (window.attachEvent) { window.attachEvent("onload", setupFlags, false); }

function setupFlags() {	
	oFlag1 = document.getElementById('flag1');
	oFlag2 = document.getElementById('flag2');
	oFlag3 = document.getElementById('flag3');
	
	result = getScreenData();
	scalar = result[0]/1024;
	if (scalar > 1) { scalar = 1; }
	
	startSlide(oFlag1, 'left');
	if (window.attachEvent) {
		setTimeout(function() { startSlide(oFlag2, 'right'); }, 1000);
		setTimeout(function() { startSlide(oFlag3, 'left'); }, 2800);
	} else {
		setTimeout(startSlide, 1000, oFlag2, 'right');
		setTimeout(startSlide, 2800, oFlag3, 'left');
	}
}

function startSlide(thisObj, dir) {

	if (typeof(thisObj) != 'undefined') {
		index = thisObj.id.match(/[0-9]{1}/);
		eval("thisTemp = oTemp" + index + ";"); 
		thisTemp.src = thisObj.src

		thisObj.style.width		= Math.round(thisTemp.width*scalar) + 'px';
		thisObj.style.height	= Math.round(thisTemp.height*scalar) + 'px';
		thisObj.style.top		= Math.round(thisObj.offsetTop*scalar) + 'px';
		switch(dir) {
		case 'left':
			thisObj.style.right = (-1 * Math.round(thisTemp.width*scalar)) + 'px'; break;
		case 'right':
			thisObj.style.left = (-1 * Math.round(thisTemp.width*scalar)) + 'px'; break;
		}
		
		aCounts[thisObj.id] = thisObj.width/5;
		aSlopes[thisObj.id] = (20 - 5)/Math.pow(aCounts[thisObj.id], 2)
		if (window.attachEvent) {
			aSlides[thisObj.id] = setInterval(function() { slideFlag(thisObj, thisTemp, dir); }, 33);
		} else {
			aSlides[thisObj.id] = setInterval(slideFlag, 33, thisObj, thisTemp, dir);
		}
		
	}

}

function slideFlag(thisObj, thisTemp, dir) {

	if (typeof(thisObj) != 'undefined') {
		
		switch(dir) {
		case 'left': thisPos = parseInt(thisObj.style.right); break;
		case 'right': thisPos = parseInt(thisObj.style.left); break;
		}
		
		if (thisPos >= 0) {
			clearInterval(aSlides[thisObj.id]);
			
			setTimeout( function() {
							switch(dir) {
							case 'left': thisObj.style.right = '0px'; break;
							case 'right': thisObj.style.left = '0px'; break;
							}
								 }, 10);
		}
		
		var x = aCounts[thisObj.id];
		if (dir == 'left') {
			thisObj.style.right = thisPos + (aSlopes[thisObj.id]*Math.pow(x, 2) + 5) + 'px';
		} else {
			thisObj.style.left = thisPos + 10 + 'px';
		}
		
		aCounts[thisObj.id] -= 1;
	}

}
