var originalOnLoad;

originalOnLoad = window.onload;

if(originalOnLoad)
{		
	window.onload = function(){originalOnLoad(); InitializeAutoTagging();}
}
else
{
	window.onload = InitializeAutoTagging;
}

function InitializeAutoTagging()
{
	var i;
	
	var oAnchors;
	var oInputs;
	var oSelects;
		
	try
	{
		//initialize all anchors
		oAnchors = document.getElementsByTagName("a");		
		for(i = 0; i < oAnchors.length; i++)
		{		
			AddOnClickEvent(oAnchors[i], "link");
		}	
		
		//initialize all inputs
		oInputs = document.getElementsByTagName("input");
		for(i = 0; i < oInputs.length; i++)
		{			
			if(oInputs[i].type)
			{
				switch(oInputs[i].type)
				{
					case "button":
					case "submit":
					case "image":					
						AddOnClickEvent(oInputs[i], "input");
						break;
					case "text":
					case "checkbox":
					case "radio":
						AddOnChangeEvent(oInputs[i], "input");			
						break;										
				}
			}			
		}
		
		//initalize all selects
		oSelects = document.getElementsByTagName("select");		
		for(i = 0; i < oSelects.length; i++)
		{			
			AddOnChangeEvent(oSelects[i], "select");
		}
	}
	catch(err)
	{
		//ignore
	}
}

function AddOnChangeEvent(object, vtype)
{
	var orgOnChange;	
	orgOnChange = object.onchange;
	
	if(orgOnChange)
	{
		object.onchange = function(){orgOnChange(); EventTracking(object, "onchange", vtype);}
	}
	else
	{
		object.onchange = function() { EventTracking(object, "onchange", vtype); };
	}
}

function AddOnClickEvent(object, vtype)
{
	var bReturn;
	var orgOnClick;	
	orgOnClick = object.onclick;
	
	bReturn = true;
	
	if(orgOnClick)
	{
		switch(vtype)
		{
		case "link":
			if(object.href)
			{
				bReturn = true;
			}
			else
			{
				bReturn = false;
			}	

			object.onclick = function (){ orgOnClick(); EventTracking(object, "click", vtype); return bReturn;};
			break;
			
		default:
			var sReturn;
			
			if(object.getAttribute)
			{
				if(object.getAttribute("vreturn"))
				{
					sReturn = object.getAttribute("vreturn");
				}
				else
				{
					sReturn = "";
				}
			}		

			switch(sReturn)
			{
				case "true":					
					object.onclick = function (){ orgOnClick(); EventTracking(object, "click", vtype); return true;};		
					break;
				case "false":
					object.onclick = function (){ orgOnClick(); EventTracking(object, "click", vtype); return false;};
					break;
				default:
					object.onclick = function (){ orgOnClick(); EventTracking(object, "click", vtype); return false;};
					break;
			}			
			break;
		}				
	}
	else
	{		
		object.onclick = function() { EventTracking(object, "click", vtype); return true;};
	}
}

function GetAttributes(object, attributeName)
{
	if(object.getAttribute)
	{
		if(object.getAttribute(attributeName))
		{
			return escape(object.getAttribute(attributeName));
		}
		else
		{
			return "";
		}
	}
	else
	{
		return "";
	}
}

function GetvExtras()
{
	var oInputs;
	var sExtras;
	
	var sExtras = "";
	
	oInputs = document.getElementsByTagName("input");
	for(i = 0; i < oInputs.length; i++)
	{			
		if(oInputs[i].type)
		{
			if(oInputs[i].type == "hidden")
			{
				if(oInputs[i].className.toLowerCase() == "vextra")
				{
					if(oInputs[i].value != "")
					{
						if(sExtras == "")
						{
							sExtras = "vextras:" + escape(oInputs[i].value);
						}
						else
						{
							sExtras += "|" + escape(oInputs[i].value);
						}
					}
				}
			}
		}			
	}
	
	return sExtras;
}

function EventTracking(object, vevent, vtype)
{	
	var vTag;	
	var vExtras;	
	var sEV;	
	
	var bReturn;
	
	vExtras = GetvExtras();
	
	switch(vtype)
	{
		case "link":
			sEV = GetAttributes(object, "ev");
			
			if(sEV != "")
			{				
				ntptAddPair ("companyname", GetAttributes(object, "companyname"));			
				ntptEventTag("ev=" + sEV);			
				
				//alert("ev=" + sEV + "&companyname=" + GetAttributes(object, "companyname"));
			}
			break;
		case "input":			
			sEV = GetAttributes(object, "ev");
			
			if(sEV != "")
			{				
				ntptAddPair ("companyname", GetAttributes(object, "companyname"));			
				ntptEventTag("ev=" + sEV);			
				
				//alert("ev=" + sEV + "&companyname=" + GetAttributes(object, "companyname"));
			}									
			break;		
		/*case "select":
			vTag = "type:" + escape(object.type);
			vTag += "||selectedvalue:" + escape(object.options[object.selectedIndex].text);
			break;*/
	}
	/*
	vTag += "||vtype:" + vtype;	
	vTag += GetAttributes(object, "vname");
	vTag += GetAttributes(object, "vform");			
	vTag += "||vevent:" + vevent; // + "&ev="
	
	if(vExtras != "")
	{
		vTag = vExtras + "||" + vTag;
	}
	*/
	//vTag = "&ev=" + vTag;
	
	//alert("Tracked: " + vTag);	
	//ntptEventTag(vTag);
		
	return false;
}