/* this file must be used in conjunction with /web/fw/j/utils.js and a local premium_[campaign].js */
var premium='loaded';
try{var temp=utils;}catch(error){alert('ERROR: /web/fw/j/utils.js is missing\n'+error.message)}

if(!window.premiumURL)
{
	var premiumURL='';
	addalert('ERROR: premiumURL not defined in local premium_[campaign].js');
}
if(!window.defaultKeyCode)
{
	var defaultKeyCode='TEST';
	addalert('Alert: defaultKeyCode not defined in local premium_[campaign].js');
}
if(window.showlock==undef)
{
	var showlock=false;
	addalert('Info: showlock not defined in local premium_[campaign].js, not showing padlock');
}
if(!window.lockMsg)
{
	var premiumMsg='Requires log in';
	if(showlock) addalert('Info: premiumMsg not defined, using "'+premiumMsg+'"');
}
if(!window.lockImg)
{
	var lockImg='http://www.cisco.com/web/fw/i/icons/padlock.gif';
	if(showlock) addalert('Info: lockImg not defined, using '+lockImg);
}
if(!window.lockW)
{
	var lockW='7';
	if(showlock) addalert('Info: lockW not defined, using '+lockW);
}
if(!window.lockH)
{
	var lockH='9';
	if(showlock) addalert('Info: lockH not defined, using '+lockH);
}

function locationObj(theObj)
{
	if(theObj)
	{
		for(var i in theObj)
		{
			this[i]=theObj[i];
		}
	}
	else
	{
		this.href='';
		this.search='';
		this.hash='';
		this.args=new Object();
		this.arguments=new Object();
	}
}

function rewriteLinks()//rewrite content links
{
	if(premiumURL!='')
	{
		var kc=readCookie('cdc_kc');
		var cc=loc.folders[1];
		if(kc==defaultKeyCode)
		{
			killCookie('cdc_kc');
			kc=null;
		}
		var gist=(premiumURL.indexOf('ema-ams')==-1);
		var premHref=splitHref(premiumURL);
		if(!gist)
		{
			premHref.href=exitURL+premHref.href;
		}
		var kcn=(gist)?'keyCode':'placement';
		premHref.args[kcn]=(kc!=null)?kc:((loc.args.keyCode)?loc.args.keyCode:defaultKeyCode);
		var rdc=(gist)?'retUrl':'boing';
		if(document.getElementsByTagName)//DOM browsers
		{
			var links=document.getElementsByTagName('a');
			for(var i=0;i<links.length;i++)
			{
				var newHref=copyObj(premHref);
				newHref.arguments=undef;
				if(links[i].attributes.target&&links[i].getAttribute('target').indexOf('_premium')==0)
				{
					var linkHref=formHref(links[i].getAttribute('href'));
					newHref.args.pcontent=countrycode+'_'+linkHref.encodeURL();
					/* extra ? added so that Gist will correctly handle exit tracking */
					newHref.args[rdc]=((gist)?exitHref(linkHref)+((linkHref.indexOf('?')==-1)?'?cc='+cc:''):linkHref).encodeURL();
					links[i].setAttribute('href',joinHref(newHref));
					links[i].setAttribute('target',((links[i].getAttribute('target')=='_premium')?'_self':links[i].getAttribute('target').replace(/_premium/,'')));
					if(loc.args.paintlinks) links[i].style.border='1px solid #990000';
					var imgs=links[i].getElementsByTagName('img');
					for(var ii=0;ii<imgs.length;ii++)
					{
						if(imgs[ii].src.indexOf('padlock.gif')!=-1)
						{
							showlock=false;
							break;
						}
					}
					if(showlock==true)
					{
						var lock=document.createElement('img');
						lock.setAttribute('src',lockImg);
						lock.setAttribute('width',lockW);
						lock.setAttribute('height',lockH);
						lock.setAttribute('border','0');
						lock.setAttribute('hspace','3');
						lock.setAttribute('alt',lockMsg);
						lock.setAttribute('title',lockMsg);
						links[i].appendChild(lock);
					}
				}
			}
		}
		else if(document.links)//Old browsers
		{
			var links=document.links;
			for(var i=0;i<links.length;i++)
			{
				var newHref=copyObj(premHref);
				newHref.arguments=undef;
				var newhref=premiumURL;
				if(links[i].target&&links[i].target.indexOf('_premium')==0)
				{
					var linkHref=formHref(links[i].href);
					newHref.args.pcontent=countrycode+'_'+linkHref.encodeURL();
					/* extra ? added so that Gist will correctly handle exit tracking */
					newHref.args[rdc]=((gist)?exitHref(linkHref)+((linkHref.indexOf('?')==-1)?'?':''):linkHref).encodeURL();
					links[i].href=joinHref(newHref);
					links[i].target=(links[i].target=='_premium')?'_self':links[i].target.replace(/_premium/,'');
					if(loc.args.paintlinks) links[i].style.border='1px solid #990000';
				}
			}
		}
	}
}