
if(typeof biVirgilio=="undefined"){
	

biVirgilio = function()
{
	this.config=null;
	this.pmkUrl = "http://kpi.virgilio.it/tracks/bi/images/kpi.gif";
	this.posidUrl = "http://adimg.virgilio.it/tracks/bi/images/bi_clk.gif";
	this.posidParamDefault = "TOPOLOGY=%CHANNEL%&PAGEFROM=%PAGEFROM%&FQDN=%WEBABACUSID%&TITOLO=%TITLEPAGE%&TRGURL=%PAGETO%"; 
	this.realTimeUrl = "http://kpi.plug.it/tracks/bi/images/RT_A.gif";
}

biVirgilio.prototype = {
	init: function  (){
		for (var eI=0;eI<this.config.biA.length;eI++){
			this.attachBIEvent(this.config.biA[eI].e, this.config.biA[eI].p, this.config.biA[eI].f);
		}
	},
	
	attachBIEvent: function(vSelector,vParameters, vFunction, vSamePmk){
			var _el = $(vSelector);
			
			if (_el.length>1){
				for (var elI=0;elI<_el.length;elI++){
				
				if (vSamePmk!=undefined)				
					$(_el[elI]).data('biParam', vParameters);
				else
					$(_el[elI]).data('biParam', vParameters + '_' + elI);
				 
					
					
				  if (vFunction!=undefined)
					$(_el[elI]).data('biPreFnc', vFunction);
					
				  this.biReturnUrl($(_el[elI]));
				  var ovBI= this;
				  $(_el[elI]).bind('click', function() {ovBI.biTrack($(this));return false;});
				}
			}
			else if (_el.length>0)
			{
				_el.data('biParam', vParameters);
				if (vFunction!=undefined)
					_el.data('biPreFnc', vFunction);
					
				this.biReturnUrl(_el);
				var ovBI= this;
				_el.bind('click', function() {ovBI.biTrack($(this));return false;});
			}
	},
	
	biReturnUrl: function(objEl){
		
		var _biReturnUrl = objEl.attr('href');
		var _biReturnUrlGo = _biReturnUrl;
		
		if(jQuery.isFunction(objEl.attr('onclick')))
		{
			objEl.data('biUrlClick', objEl.attr('onclick'));
			objEl.attr('onclick', null);
			_biReturnUrlGo="";
		}
		
		
		
		if(objEl.attr('href').indexOf("javascript:")!=-1)
			_biReturnUrl="";
		
		objEl.data('biUrl', _biReturnUrl);
		objEl.data('biUrlGo', _biReturnUrlGo);
		
		return _biReturnUrl;
	},
	
	biTrack:function (objBiToTrack){

		var _vFunction = objBiToTrack.data('biPreFnc');
		if (_vFunction){
			eval(_vFunction)(objBiToTrack);
		}
		
		this.loadBiImage(objBiToTrack);
	},
	
	
	
  loadBiImage : function(objBiToTrack){
  
	 
	var _url = this.returnUrlImage(this.config.biType, objBiToTrack.data('biParam'), objBiToTrack.data('biUrl'));
   
	this.loadImage(_url, objBiToTrack.data('biUrlGo'), objBiToTrack.data('biUrlClick'));
  },
  
  trackBiImage : function(biType, biParam, biUrlGo, biFncClick ){
	var _biUrlGo ="";
	var _biFncClick;
	
	if (biUrlGo)
		_biUrlGo = biUrlGo;
  
	if (biFncClick)
		_biFncClick = biFncClick;
  
	var _url = this.returnUrlImage(biType, biParam, _biUrlGo);
	this.loadImage(_url, _biUrlGo, _biFncClick);
  },
  
  
  loadImage :  function (urlImg, urlGo, urlClick){
   
   var img = new Image();
    var ovBI= this;
    $(img).load(function() {
      $(this).hide();
      ovBI.loadPage(urlGo, urlClick);
    }).error(function() { 
      ovBI.loadPage(urlGo, urlClick);
    }).attr('src', urlImg);
  },
  
  returnUrlImage:function(biType, paramTrack, urlPageToGo){
		var _strUrl = "";
		
		if (biType=="pmk"){
			_strUrl = this.pmkUrl + "?" + paramTrack  + "&rand=" + Math.floor(Math.random()*100000) + "&link=" + urlPageToGo;
		}
		
		if (biType=="rt"){
			var _addLinkGo = "";
			if (urlPageToGo){
				_addLinkGo = "&link=" + urlPageToGo;
			}
			_strUrl = this.realTimeUrl + "?" + paramTrack  + "&rand=" + Math.floor(Math.random()*100000) + _addLinkGo;
		}
	  
		if (biType=="posid"){

			if ((this.config==null)||(this.config.biParams==""))
			{
				this.config={
							biParams	: this.posidParamDefault
					}

			}
			
			
			var _channel = location.hostname.substring(0, location.hostname.indexOf("."));
			var _pageFrom = location.href;
			var _pageTitle = document.title;
			var _webabacusid = this.getCookie("webabacus_id");
			
			var _urlImgBi = this.config.biParams.replace('%CHANNEL%', _channel).replace('%PAGEFROM%',escape(_pageFrom)).replace('%WEBABACUSID%', _webabacusid).replace('%TITLEPAGE%',escape(_pageTitle)).replace('%PAGETO%',escape(urlPageToGo)) + "&rand=" + Math.floor(Math.random()*100000);
			
			_strUrl = this.posidUrl  + "?" + _urlImgBi + '&' + paramTrack;
		}
		
		return _strUrl;
  },
    
  loadPage : function(urlGo, urlClick){
		var url = urlGo;
		var fncGo = urlClick;
		
		if (fncGo)
		{
			fncGo();
			return false;
		}
		
		
		if(url){
			   var referLink = document.createElement('a');
			  if(navigator.userAgent.indexOf("MSIE")!=-1){ // IE
				referLink.href = url;
				document.body.appendChild(referLink);
				referLink.click();
			  } else { // FF, O, C, S
				document.location = url;
			  }
		}
		
  },
  trackView : function(biType, biParam){
	this.trackBiImage(biType, biParam);
	return true;
  },
  getCookie : function (c_name){if(document.cookie.length>0){c_start=document.cookie.indexOf(c_name+"=");if(c_start!=-1){c_start=c_start+c_name.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1)c_end=document.cookie.length;return unescape(document.cookie.substring(c_start,c_end));}}return"";}

   
}
var vBI = new biVirgilio();


}
