	var curvyCornersVerbose = false;

	var tick = 0;
	var time = 200;//millisec
	var adt = 10;//millisec
	
	var promoDelay = 6;
	var logoDelay = 4;
	
	var moveList = new Array();
	var isMoving = false;
	
	var currentpromoItem = 1;
	var numPromoItems = 1;
	
	var currentlogoItem = 1;
	var numLogoSets = 1;
	
	var flashvars = {
					dataurl: window.location.href,
					delay: promoDelay
	};
	var params = {wmode: "transparent"}; 
	var attributes = {}; 
	
	var animTimerID = window.setInterval("setLayerPosition()", adt);
	
	var logoLoopTimerID = window.setInterval("showLogoSet(false, true)", logoDelay * 1000);
	var promoLoopTimerID;

	function setPromoArea() {
		if ((swfobject.getFlashPlayerVersion().major < 9) || (location.search.indexOf("noflash") >= 0)){
			var ccsettings = {
				tl: { radius: 6 },
				tr: { radius: 6 },
				bl: { radius: 6 },
				br: { radius: 6 },
				antiAlias: true,
				autoPad: true,
				validTags: ["div"]
			}
		
			var obj, num = 1;
			
			do  {
				num++
			} while (document.getElementById("promo" + num) != null)
			
			numPromoItems = num - 1;
			
			writePromoNav();
			
			promoLoopTimerID = window.setInterval("showNextPromo(null, undefined, true)", promoDelay * 1000);
		} else {
			swfobject.embedSWF(
						"carousel.swf", 
						"promo_area", 
						"950px", "333px", 
						"9.0.0", 
						"expressInstall.swf",
						flashvars,
						params,
						attributes
						);
		}

	}
		
		
	function writePromoNav() {		
		var str = "<a href=\"#\" onclick=\"showNextPromo(true); return false;\">&lt;</a>";
		
		for (var i=1; i <= numPromoItems; i++) {
			str += "<a href=\"#\"" + ((i == currentpromoItem)? " class=\"on\"" : "") + " onclick=\"showNextPromo(false, " + i + "); return false;\">" + i + "</a>";
		}
		
		str += "<a href=\"#\" onclick=\"showNextPromo(); return false;\">&gt;</a>";
		
		document.getElementById("promo_callout_btns").innerHTML = str;
	}

	function showNextPromo(fromLeft, index, doLoop){
		if (!doLoop) {
			clearInterval(promoLoopTimerID);	
		}
		
		if (!isMoving) {
			var fromObj = document.getElementById("promo" + currentpromoItem);
			
			numPromoItems = (typeof(numPromoItems) != "undefined")? numPromoItems : 4;
			
			if (typeof(index) != "undefined") {
				currentpromoItem = index;
			} else {
				currentpromoItem += (fromLeft)? -1 : 1;
			}
			
			currentpromoItem = (currentpromoItem > numPromoItems)? 1 : ((currentpromoItem < 1)? numPromoItems : currentpromoItem);
			
			var toObj = document.getElementById("promo" + currentpromoItem);

			toObj.style.display = "block";
			toObj.style.left = fromObj.offsetWidth + "px";
			
			moveList.push({layer: fromObj, start: 0, end: (fromLeft)? fromObj.offsetWidth : -fromObj.offsetWidth, offset: tick, time: time*2});
			moveList.push({layer: toObj, start: (fromLeft)? -fromObj.offsetWidth : fromObj.offsetWidth, end: 0, offset: tick, time:time*2});
			
			isMoving = true;
			
			writePromoNav();
		}
	}
	
	function setLogoArea() {
		var obj, num = 1;
		
		do  {
			num++
		} while (document.getElementById("logo" + num) != null)
		
		numLogoSets = num - 1;
	}

	function showLogoSet(fromLeft, doLoop){
		if (!doLoop) {
			clearInterval(logoLoopTimerID);	
		}
		
		if (!isMoving) {
			var fromObj = document.getElementById("logo" + currentlogoItem);
			
			numLogoSets = (typeof(numLogoSets) != "undefined")? numLogoSets : 4;
			currentlogoItem += (fromLeft)? -1 : 1;
			currentlogoItem = (currentlogoItem > numLogoSets)? 1 : ((currentlogoItem < 1)? numLogoSets : currentlogoItem);
			
			var toObj = document.getElementById("logo" + currentlogoItem);

			toObj.style.display = "block";
			toObj.style.left = fromObj.offsetWidth + "px";
			
			moveList.push({layer: fromObj, start: 0, end: (fromLeft)? fromObj.offsetWidth : -fromObj.offsetWidth, offset: tick, time:time});
			moveList.push({layer: toObj, start: (fromLeft)? -fromObj.offsetWidth : fromObj.offsetWidth, end: 0, offset: tick, time:time});
			
			isMoving = true;
		}
	}
	
	function easeInOutStep (t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	}
	
	function setLayerPosition() {
		if (isMoving) {
			if (moveList.length > 0) {
				for (var i = 0; i < moveList.length; i++) {
					var dt = tick - moveList[i].offset
					var dy = easeInOutStep(dt, 0, 1, moveList[i].time);
					
					if (dt <= moveList[i].time) {
						moveList[i].layer.style.left = moveList[i].start + Math.round((moveList[i].end - moveList[i].start)*dy) + "px";
					} else {
						moveList.splice(i, 1);

					}
				}
			} else {
				isMoving = false;
			}
			
			tick += adt;
		}
	}

