// Copyright Amstelnet 2006
// Tracking Economist Payment Barrier
// version 1.2



oldpage='unknown';
oldextra='';

eventParam= new Array();
chained=new Array();


function xmaxPayBarrier()
{
  xmax("paybarrier","view","");
  formtype = new Array();
  formtype["email_address"]='keyd';
  formtype["pword"]='keyd';
  xmaxprepare2("keyd", "paybarrier", "keyd", "");
  _xmaxAddFormField(formtype);
  _xmaxAddOnsubmit("loginForm","xmaxEvent('submit')");

  links=new Array();
  //links['http://www.economist.com']='l_home';
  links['#login'] = 'jump_login';
  links['#activate']='jump_activate';
  links['#subscribe']='jump_subscribe';
  links['#web']='l_web';
  links['update_crn']='l_activate';
  links['doubleclick']='l_doubleclick';
  links['copy_general']='l_copyright';
  _xmaxAddLinks(links);
}


function xmaxLoginError()
{
  xmax("paybarriererror","view","");
  formtype = new Array();
  formtype["EMAIL_ADDRESS"]='keyd';
  formtype["PWORD"]='keyd';
  xmaxprepare2("keyd", "paybarriererror", "keyd", "");
  _xmaxAddFormField(formtype);
  _xmaxAddOnsubmit("","xmaxEvent('submit')");
}




function xmaxWebconfirm()
{
  xmax("websubsconfirm","view","");
}


function _xmaxAddOnsubmit(formname, fname)
{
  for (f=0; f< document.forms.length; f++) {
       el      = document.forms[f];
        eventf='onsubmit';
        if (el.name.indexOf(formname)!=-1) {
                                eval("chained[chained.length] = (el."+eventf+") ? el."+eventf+": function () {} ;");

                                eval("el."+eventf+"= function ()  {  r=chained["+(chained.length-1)+"](); "+fname+"; return r; }");
        }
  }
}

 


function _xmaxAddFormField(formtype)
{

  for (f=0; f< document.forms.length; f++) {
       cf      = document.forms[f];
        for (e=0; e<document.forms[f].length; e++) {
                el     = cf.elements[e];
		if (el.name) {
		   if ((t=formtype[el.name]))  {
			eventf='';
			if (el.type=='radio') { eventf='onclick'; }
			else
			if ((el.type=='text') || (el.type=='password'))  { eventf='onkeydown'; }
			else
			if (el.type=='select-one') { eventf='onchange'; }
			if (eventf!='') {
				eval("chained[chained.length] = (el."+eventf+") ? el."+eventf+": function () {} ;");
				eval("el."+eventf+"= function ()  {  r=chained["+(chained.length-1)+"](); xmaxOnce('"+t+"'); return r; }");
			}
		   } 
		}
        }
  }
}


function _xmaxAddLinks(links)
{
  for (l=0; l<document.links.length; l++) {
             link = document.links[l];
	     eventf='onclick';
	     for (var url in links) {
		     if ((link.href.indexOf(url)!=-1) ) {
         	        eval("chained[chained.length] = (link."+eventf+") ? link."+eventf+": function () {} ;");
                	eval("link."+eventf+"= function ()  {  r=chained["+(chained.length-1)+"](); xmaxEvent('" + links[url] + "'); return r; }");
	     	     }
	     }
	     if (link.href=='http://www.economist.com/') {
		       eval("chained[chained.length] = (link."+eventf+") ? link."+eventf+": function () {} ;");
		       eval("link."+eventf+"= function ()  {  r=chained["+(chained.length-1)+"](); xmaxEvent('" + "l_home" + "'); return r; }");
	     }
   }
}


function xmaxLink()
{
  xmax(oldpage,'link',oldextra);
}

function xmaxView(page)
{
   xmax(page, "view","");
}


function xmaxEvent(ev)
{
  xmax(oldpage,ev,oldextra);
}


function xmaxMakeUrl(p,eventtype,extra)
{
   var protocol=document.location.protocol;
   Ref = escape(document.referrer);
   url=protocol+"//xmax.amstelnet.com/economistcom/pixel.php?r="+Ref;


   url+=("&p="+p);
   if (eventtype!=undefined) url+="&e="+eventtype;
   if (extra!=undefined)     url+="&"+extra;

   return url;
}


preparedurl='';

function xmaxprepare(p, eventtype, extra)
{
   preparedurl=xmaxMakeUrl(p, eventtype, extra);
}


function xmaxonce()
{
  if (preparedurl!='') {
        url=preparedurl;
        preparedurl='';
        if(document.images)
        {
               var sid = Math.round(Math.random()*10000000000);
               i=new Image();
               i.src = url+'&rnd='+sid;
        }else {
                document.write("<img src="+url+" width=1 height=1>");
        }
  }
}




preparedurl2 = new Array();

function xmaxprepare2(nr, p, eventtype, extra)
{
   preparedurl2[nr]=xmaxMakeUrl(p, eventtype, extra);
}


function xmaxOnce(nr)
{
  if (preparedurl2[nr]!='')
  {
       url=preparedurl2[nr];
       preparedurl2[nr]='';
       if(document.images)
       {
                var sid = Math.round(Math.random()*10000000000);
                var i = new Image();
                i.src = url+'&rnd='+sid;
       } else {
                document.write("<img src="+url+" width=1 height=1>");
       }
  }
}

function xmax(p,eventtype,extra)
{
   url = xmaxMakeUrl(p, eventtype,extra);
   oldpage = p;
   oldextra = extra;
   if (document.images)
   {
        var sid = Math.round(Math.random()*10000000000);
        img = new Image();
        img.src = url+'&rnd='+sid;
        return img;
   }else {
        document.write("<img src="+url+" width=1 height=1>");
   }
}


