var ACtimer;
var ACspeed = 5;
var ACdz=document;
var ACadW = 0;
var ACadH = 0;
var ACoLeft = -730;
var ACoTop = -400;
var ACframesToHide = [];
/*public*/
var ACadLeft = '50%';
var ACadTop = '50%';
var ACmoveHorizontal = true;
/*//////*/
var ACcurrentTarget = 0;
var ACcurrentDir = true;
var ACisHidden = true;
var ACpos = (ACmoveHorizontal) ? ACoLeft : ACoTop;
var ACplayer = null;
var AConDemand = false;
var AC_BaseURL = "http://www.cuedelivery.com/audio/TrackClick.aspx";
ACdz.writeln('<div id="pa" style="background: #FFF;	text-align: left; padding: 0px;	border-top: 2px solid #454545; border-bottom: 8px solid #454545; border-left: 8px solid #454545;	border-right: 8px solid #454545; background-color:#454545; position: absolute;	z-index: 100000; top: -450px; left: -750px;"></div>');
function testAdcorAd()
{
	//ACchangeAd('http://psa.americanheart.org/web/Ad%20Council_ASA%20SWF%20banner%20ads/Golf/adc_stroke_golf_300x250.swf', 300, 250, 'http://www.streamable.com', 0);
	ACchangeAd('http://www.streamable.com/uploads/Esurance_300x250_FreshLook.gif', 300, 250, 'http://www.streamable.com', 0);
	showAdcorAd();
}
function AdcorListen(_acPlayerID)
{
	if (document.layers) 
	{
		ACplayer = document.layers[_acPlayerID];
	}
	else if (document.all) 
	{
		ACplayer = document.all[_acPlayerID];
	}
	else if (document.getElementById) 
	{
		ACplayer = document.getElementById(_acPlayerID);
	}
	
	if(ACplayer != null)
	{
		adcor_addEvent(ACplayer, 'playStateChange', ACplayStateHandle, false);
		adcor_addEvent(ACplayer, 'scriptcommand', ACscriptHandle, false);
	}
}

function ACplayStateHandle(newState)
{
	if(newState == 3)
	{
		if ((ACplayer.currentMedia) && (ACplayer.currentPlaylist))
		{
			var author = ACplayer.currentMedia.getItemInfo("AUTHOR");
			
			if(author.toLowerCase().indexOf('') > -1)
			{
				var bannerPath = ACplayer.currentMedia.getItemInfo("AdcorBannerPath");
				var bannerClick = ACplayer.currentMedia.getItemInfo("AdcorBannerClick");
				var bannerWidth = ACplayer.currentMedia.getItemInfo("AdcorBannerWidth");
				var bannerHeight = ACplayer.currentMedia.getItemInfo("AdcorBannerHeight");
				var bannerSpotID = ACplayer.currentMedia.getItemInfo("AdcorBannerSpotID");
				/*bannerPath = "http://banners.cuedelivery.com/";*/
				
				if(bannerPath != '')
				{
					ACchangeAd(bannerPath, bannerWidth, bannerHeight, bannerClick, bannerSpotID);
					showAdcorAd();
				} else { hideAdcorAd(); }
			} else { hideAdcorAd(); }
		} else { hideAdcorAd(); }
	} else {
		hideAdcorAd();
	}
}

function ACscriptHandle(strType, strParam)
{
	var artist='';
	var title='';
	var albumInfo='';
	if(strType=='data')
	{
		var Data = strParam.split('&');
		for(var i=0; i < Data.length; i++)
		{
			var dataStr = Data[i];
			if(dataStr.indexOf('=') > -1)
			{
				var param = dataStr.split('=');
				var key = param[0].toLowerCase();
				var value = param[1];
				switch (key) {
					case 'title': title = value; break;
					case 'artist': artist = value; break;
					case 'album': albumInfo = value; break;
				}
			}
		}
		
		if(artist.toLowerCase().indexOf('adcor') > -1)
		{
			if(albumInfo.indexOf('%5E%5E') > -1)
			{
				var synchInfo = albumInfo.split('%5E%5E');				
				if(synchInfo.length > 6)
				{
					var bannerFile = synchInfo[1];
					var bannerPath = synchInfo[5];
					var bannerClick = synchInfo[2];
					var bannerWidth = synchInfo[3];
					var bannerHeight = synchInfo[4];
					var bannerSpotID = synchInfo[6];
					
					var filePath = ACformatFilePath(acURLDecode(bannerPath), acURLDecode(bannerFile));
					filePath = "http://banners.cuedelivery.com/" + acURLDecode(bannerFile);
					
					ACchangeAd(filePath, bannerWidth, bannerHeight, bannerClick, bannerSpotID);
					showAdcorAd();
					
				} else { hideAdcorAd();}
				/*(<adcorDuration>-<fileDuration>)^^<BANNER FILE>^^<CLICK URL>^^<WIDTH>^^<HEIGHT>^^<CLIENT BANNER PATH>^^<SPOTID>*/		
			}
			else
			{ 
				hideAdcorAd();
			}
		} else { 
			hideAdcorAd(); 
		}
	}
}

function ACformatFilePath(path, file)
{
	var len = path.length;
	var targChar = path.charAt(len-1);
	if((targChar == '/') || (targChar == '\\'))
	{
		return path + file;
	} else {
		return path + '/' + file;
	}
}

function adcor_addEvent(elm, evType, fn, useCapture) 
{  
	if (elm.addEventListener) {  
		var r = elm.addEventListener("on"+evType, fn, useCapture); 
		var e = elm.addEventListener(evType, fn, useCapture); 
		return r + ' / ' + e;  
	}  
	else if (elm.attachEvent) 
	{  
		var r = elm.attachEvent("on"+evType, fn); 
		var e = elm.attachEvent(evType, fn); 
		return e;  
	}  
} 


function ACchangeAd(newACsrc, newACw, newACh, newAChref, acSpotID)
{
	var newImg = '<div style="position: relative; padding-bottom: 2px; width:' + newACw + 'px;"><a href="#" onclick="hideAdcorAd();"><img src="http://banners.cuedelivery.com/close.gif" width="13" height="13" align="right" border="0" /></a><span style="font-family: tahoma, arial, Helvetica, Sans-Serif;	font-size: 10px;	color: #FFF;	padding-bottom: 1px;">Audio Advertisement</span></div><div style="position: relative; width:' + newACw + 'px;">';
	
	ACadW = newACw;
	ACadH = newACh;
	
	var goURL = AC_BaseURL + "?spotID=" + acSpotID + "&href=" + newAChref;

	if(newACsrc.toLowerCase().indexOf('.swf') > -1)
	{
		newImg += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="ACsynchedFlash" width="' + newACw + '" height="' + newACh + '" 	codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="' + newACsrc + '" /><param name="quality" value="high" /><embed src="' + newACsrc + '" quality="high" width="' + newACw + '" height="' + newACh + '" name="ACsynchedFlash" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>';
	} else {
		newImg += '<a href="' + goURL + '" target="_blank"><img src="' + newACsrc +'" border="0" width="' + newACw + '" height="' + newACh + '"/></a>';
	}
	
	newImg += '</div>';
	
	if (document.layers) 
	{
		document.layers.pa.innerHTML = newImg;
	}
	else if (document.all) 
	{
		document.all.pa.innerHTML = newImg;
	}
	else if (document.getElementById) 
	{
		document.getElementById("pa").innerHTML = newImg;
	}
}

function hideAdcorAd() 
{ 
	for(var i=0; i<ACframesToHide.length; i++)
	{
		if(document.getElementById)
		{
			var hideMe = document.getElementById(ACframesToHide[i]);
			if(hideMe)
			{
				hideMe.style.display = 'block';
			}
		}
	}
	if(ACmoveHorizontal == false)
	{
		ACcurrentTarget = ACgetTargetTop(ACoTop);
	} else {
		ACcurrentTarget = ACgetTargetLeft(ACoLeft);
	}
	
	currentDir = false;
	if(ACtimer != null)
	{
		clearInterval(ACtimer);
		ACtimer = null;
	}
	
	ACtimer = setInterval( 'ACmoveAd()', 10 );
}

function showAdcorAd()
{
	for(var i=0; i<ACframesToHide.length; i++)
	{
		if(document.getElementById)
		{
			var hideMe = document.getElementById(ACframesToHide[i]);
			if(hideMe)
			{
				hideMe.style.display = 'none';
			}
		}
	}
	
	if(ACmoveHorizontal == false)
	{
		ACsetLeft(ACadLeft);
		ACcurrentTarget = ACgetTargetTop(ACadTop);
	} else {
		ACsetTop(ACadTop);
		ACcurrentTarget = ACgetTargetLeft(ACadLeft);
	}
	
	currentDir = true;
	if(ACtimer != null)
	{
		clearInterval(ACtimer);
		ACtimer = null;
	}
	
	ACtimer = setInterval( 'ACmoveAd()', 10 );
}

function ACmoveAd() 
{ 
	var ACmovement = false
	if(currentDir)
	{
		if(ACpos < ACcurrentTarget)
		{
			ACmovement = true;
			ACpos += ACspeed;
		}
	} else {
		if(ACpos > ACcurrentTarget)
		{
			ACmovement = true;
			ACpos -= ACspeed;
		}
	}
	
	if(ACmoveHorizontal == false)
	{
		if (document.layers) { document.layers.pa.top = ACpos+"px"; }
		else if (document.all) { document.all.pa.style.top = ACpos+"px"; }
		else if (document.getElementById) {	document.getElementById("pa").style.top = ACpos+"px"; }
	} else {
		if (document.layers) { document.layers.pa.left = ACpos+"px"; }
		else if (document.all) { document.all.pa.style.left = ACpos+"px"; }
		else if (document.getElementById) {	document.getElementById("pa").style.left = ACpos+"px"; }
	}
	
	if(!ACmovement)
	{
		clearInterval ( ACtimer );
		if(currentDir == false)
		{
			ACisHidden = true;
		}
		else
		{
			ACisHidden = true;
		}
	}
}

function ACsetLeft(targ) 
{
	var tempState = typeof ACposLeft;
		
	if((typeof targ).toLowerCase() == "string")
	{
		if(targ.indexOf('%') > -1)
		{
			var i = targ.replace('%', '');
			var ACpercW = 100/i;
			var winW = ACGetWindowWidth();
			var newTarg = (winW / ACpercW) - (ACadW/2);
			if (document.layers) document.layers.pa.left = newTarg+"px";
			else if (document.all) document.all.pa.style.left = newTarg+"px";
			else if (document.getElementById) document.getElementById("pa").style.left = newTarg+"px";
		} else {
			if (document.layers) document.layers.pa.left = targ+"px";
			else if (document.all) document.all.pa.style.left = targ+"px";
			else if (document.getElementById) document.getElementById("pa").style.left = targ+"px";
		}
	} else if ((typeof targ).toLowerCase() == "number") {
		if (document.layers) document.layers.pa.left = targ+"px";
		else if (document.all) document.all.pa.style.left = targ+"px";
		else if (document.getElementById) document.getElementById("pa").style.left = targ+"px";
	} else {
		targ = 100;
		if (document.layers) document.layers.pa.left = targ+"px";
		else if (document.all) document.all.pa.style.left = targ+"px";
		else if (document.getElementById) document.getElementById("pa").style.left = targ+"px";
	}
		
}

function ACsetTop(targ)
{
	var tempState = typeof ACposTop;
		
	if((typeof targ).toLowerCase() == "string")
	{
		if(targ.indexOf('%') > -1)
		{
			var i = targ.replace('%', '');
			var ACpercH = 100/i;
			var winH = ACGetWindowHeight();
			var newTarg = (winH / ACpercH) - (ACadH/2);
			if (document.layers) { document.layers.pa.top = newTarg+"px"; }
			else if (document.all) { document.all.pa.style.top  = newTarg+"px"; }
			else if (document.getElementById) { document.getElementById("pa").style.top = newTarg+"px"; }
		} else {
			if (document.layers) document.layers.pa.top = targ+"px";
			else if (document.all) document.all.pa.style.top = targ+"px";
			else if (document.getElementById) document.getElementById("pa").style.top = targ+"px";
		}
	} else if ((typeof targ).toLowerCase() == "number"){
		if (document.layers) document.layers.pa.top = targ+"px";
		else if (document.all) document.all.pa.style.top = targ+"px";
		else if (document.getElementById) document.getElementById("pa").style.top = targ+"px";
	} else {
		targ = 100;
		if (document.layers) document.layers.pa.top = targ+"px";
		else if (document.all) document.all.pa.style.top = targ+"px";
		else if (document.getElementById) document.getElementById("pa").style.top = targ+"px";
	}
}

function ACgetTargetTop(targ)
{
	var target = targ;
	
	if(typeof ACadW == 'undefined') { ACadH == 250; }
		
	if((typeof targ).toLowerCase() == "string")
	{
		if(targ.indexOf('%') > -1)
		{
			var i = targ.replace('%', '');
			var ACpercH = 100/i;
			var winH = ACGetWindowHeight();
			target = (winH / ACpercH) - (ACadH/2);
		}
	} else if ((typeof targ).toLowerCase() == "undefined")
	{
		target = 100;
	}
	
	return target;
}

function ACgetTargetLeft(targ)
{
	var target = targ;
	
	if(typeof ACadW == 'undefined') { ACadW == 300; }
	
	if((typeof targ).toLowerCase() == "string")
	{
		if(targ.indexOf('%') > -1)
		{
			var i = targ.replace('%', '');
			var ACpercW = 100/i;
			var winW = ACGetWindowWidth();
			target = (winW / ACpercW) - (ACadW/2);
		}
	} else if ((typeof targ).toLowerCase() == "undefined")
	{
		target = 100;
	}
	
	return target;
}

function ACGetWindowWidth()
{
	if( typeof( window.innerWidth ) == 'number' ) {
		/*Non-IE*/
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		/*IE 6+ in 'standards compliant mode'*/
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		/*IE 4 compatible*/
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	
	return myWidth;
}

function ACGetWindowHeight()
{
	if( typeof( window.innerWidth ) == 'number' ) {
		/*Non-IE*/
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		/*IE 6+ in 'standards compliant mode'*/
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		/*IE 4 compatible*/
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	
	return myHeight;
}

function acURLDecode (encodedString) 
{
	var output = encodedString;
	var binVal, thisString;
	var myregexp = /(%[^%]{2})/;
	while ((match = myregexp.exec(output)) != null
			 && match.length > 1
			 && match[1] != '') {
		binVal = parseInt(match[1].substr(1),16);
		thisString = String.fromCharCode(binVal);
		output = output.replace(match[1], thisString);
	}
	return output;
}
