
var _pclick = function(){

	var _pc_use_title_as_name = 0;
	var _pc_install_tracker = 1;
	var _pc_tracker_pause = 400;
	var _pc_download_extensions = "7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip";
	
	function _read_cookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	function _read_qparam( name ){  
		var regex = new RegExp("[\\?&]"+name+"=([^&#]*)");  
		var results = regex.exec( window.location.href );  
		if(results == null){
			return null;
		}else{
			return results[1];
		}
	}
	
	function _pc_plug_normal(_pc_pl) {
		if (_pc_tm.indexOf(_pc_pl) != -1 && (navigator.mimeTypes[_pc_pl].enabledPlugin != null)) 
			return '1';
		return '0';
	}
	
	function _pc_plug_ie(_pc_pl)
	{
		pk_found = false;
		document.write('<SCR' + 'IPT LANGUAGE=VBScript>\n on error resume next \n pk_found = IsObject(CreateObject("' + _pc_pl + '")) </SCR' + 'IPT>\n');
		if (pk_found) return '1';
		return '0';
	}
	
	var _pc_jav = '0'; if(navigator.javaEnabled()) _pc_jav='1';
	var _pc_agent = navigator.userAgent.toLowerCase();
	var _pc_moz = (navigator.appName.indexOf("Netscape") != -1);
	var _pc_ie = (_pc_agent.indexOf("msie") != -1);
	var _pc_saf = (_pc_agent.indexOf("safari/") != -1);
	var _pc_win = ((_pc_agent.indexOf("win") != -1) || (_pc_agent.indexOf("32bit") != -1));
	var _pc_cookie = (navigator.cookieEnabled)? '1' : '0';
	if((typeof (navigator.cookieEnabled) == "undefined") && (_pc_cookie == '0')) {
		document.cookie="_pc_testcookie"
		_pc_cookie=(document.cookie.indexOf("_pc_testcookie")!=-1)? '1' : '0';
	}
	
	var _pc_dir='0',_pc_fla='0',_pc_pdf='0',_pc_qt = '0',_pc_rea = '0',_pc_wma='0'; 
	if (_pc_win && _pc_ie){
		_pc_dir = _pc_plug_ie("SWCtl.SWCtl.1");
		_pc_fla = _pc_plug_ie("ShockwaveFlash.ShockwaveFlash.1");
		if (_pc_plug_ie("PDF.PdfCtrl.1") == '1' || _pc_plug_ie('PDF.PdfCtrl.5') == '1' || _pc_plug_ie('PDF.PdfCtrl.6') == '1') _pc_pdf = '1';
		_pc_qt = _pc_plug_ie("Quicktime.Quicktime"); // Old : "QuickTimeCheckObject.QuickTimeCheck.1"
		_pc_rea = _pc_plug_ie("rmocx.RealPlayer G2 Control.1");
		_pc_wma = _pc_plug_ie("wmplayer.ocx"); // Old : "MediaPlayer.MediaPlayer.1"
	} else {
		var _pc_tm = '';
		for (var i=0; i < navigator.mimeTypes.length; i++)
			_pc_tm += navigator.mimeTypes[i].type.toLowerCase();
		_pc_dir = _pc_plug_normal("application/x-director");
		_pc_fla = _pc_plug_normal("application/x-shockwave-flash");
		_pc_pdf = _pc_plug_normal("application/pdf");
		_pc_qt  = _pc_plug_normal("video/quicktime");
		_pc_rea = _pc_plug_normal("audio/x-pn-realaudio-plugin");
		_pc_wma = _pc_plug_normal("application/x-mplayer2");
	}
		
	var _pc_rtu = '';
	try {
		_pc_rtu = top.document.referrer;
	} catch(e1) {
		if(parent){ 
			try{ _pc_rtu = parent.document.referrer; } catch(e2) { _pc_rtu=''; }
		}
	}
	if(_pc_rtu == '') {
		_pc_rtu = document.referrer;
	}
	
	function _pc_escape(_pc_str){
		if(typeof(encodeURIComponent) == 'function') {
			return encodeURIComponent(_pc_str);
		} else {
			return escape(_pc_str);
		}
	}
	var _pc_title = '';
	if (document.title && document.title!="") _pc_title = _pc_escape(document.title);
	
	var _pc_called;
	
	function _pc_getUrlLog( _pc_action_name, _pc_site, _pc_pcurl, _pc_custom_vars )
	{
		var _pc_custom_vars_str = '';
		if(typeof _pc_custom_vars == "undefined"){
			_pc_custom_vars = false;
		}
		if (_pc_custom_vars) {
			for (var i in _pc_custom_vars){
				if (!Array.prototype[i]){
					_pc_custom_vars_str = _pc_custom_vars_str + '&vars['+ escape(i) + ']' + "=" + escape(_pc_custom_vars[i]);
				}
			}
		}
		
		var _pc_da = new Date();
		var _pc_src = _pc_pcurl
			+'?url='+_pc_escape(document.location.href)
			+'&action_name='+_pc_escape(_pc_action_name)
			+'&idsite='+_pc_site
			+'&res='+screen.width+'x'+screen.height	+'&col='+screen.colorDepth
			+'&h='+_pc_da.getHours()+'&m='+_pc_da.getMinutes()+'&s='+_pc_da.getSeconds()
			+'&fla='+_pc_fla+'&dir='+_pc_dir+'&qt='+_pc_qt+'&realp='+_pc_rea+'&pdf='+_pc_pdf
			+'&wma='+_pc_wma+'&java='+_pc_jav+'&cookie='+_pc_cookie
			+'&title='+_pc_title
			+'&urlref='+_pc_escape(_pc_rtu)
			+_pc_custom_vars_str;
		return _pc_src;
	}
	
	function pclick_log( _pc_action_name, _pc_site, _pc_pcurl, _pc_custom_vars )
	{
		if(_pc_called && (!_pc_action_name || _pc_action_name=="")) return;
		var _pc_src = _pc_getUrlLog(_pc_action_name, _pc_site, _pc_pcurl, _pc_custom_vars );
		
		
		document.writeln('<img src="'+_pc_src+'" alt="PostClick" style="border:0" />');
		if(!_pc_action_name || _pc_action_name=="") _pc_called=1;
		
	}
	function pclick_track_event(_pc_site,action,type,_pc_url,_pc_custom_vars){
		  var theAction = type + ":" + action;
		  var imgSrc = _pc_getUrlLog(theAction,_pc_site,_pc_url,_pc_custom_vars);
		  var _pc_image = new Image();
		  _pc_image.onLoad = function() { _pc_dummy(); };
		  _pc_image.src = imgSrc + '&rand=' + Math.random();
		  _pc_pause(_pc_tracker_pause);
		  return false;
		}
	
	function _pc_add_event(elm, evType, fn, useCapture) 
	{
		if (elm.addEventListener) { 
			elm.addEventListener(evType, fn, useCapture); 
			return true; 
		} else if (elm.attachEvent) { 
			var r = elm.attachEvent('on' + evType, fn); 
			return r; 
		} else {
			elm['on' + evType] = fn;
		}
	}
	
	var _pc_tracker_site, _pc_tracker_url;
	
	function _pc_init_tracker(_pc_site, _pc_pcurl) 
	{
		if (window.addEventListener){
		      window.addEventListener("load", function(){_pc_init_tracker_when_ready(_pc_site, _pc_pcurl);},false);
		}
		else if (window.attachEvent){
		      window.attachEvent("onload", function(){_pc_init_tracker_when_ready(_pc_site, _pc_pcurl);});
		}
	}
	function _pc_init_tracker_when_ready(_pc_site, _pc_pcurl){
		if( typeof(pclick_install_tracker) != "undefined" )
			_pc_install_tracker = pclick_install_tracker;
		if( typeof(pclick_tracker_pause) != "undefined" )
			_pc_tracker_pause = pclick_tracker_pause;
		if( typeof(pclick_download_extensions) != "undefined" )
			_pc_download_extensions = pclick_download_extensions;
	
		_pc_hosts_alias = ( typeof(pclick_hosts_alias) != "undefined" ? pclick_hosts_alias : new Array())
		_pc_hosts_alias.push(window.location.hostname);
		
		if( !_pc_install_tracker )
			return;
	
		_pc_tracker_site = _pc_site;
		_pc_tracker_url = _pc_pcurl;
	
		if (document.getElementsByTagName) {
			linksElements = document.getElementsByTagName('a');
			for (var i = 0; i < linksElements.length; i++) {
				if( linksElements[i].className != 'pclick_ignore' ){
					_pc_add_event(linksElements[i], 'mousedown', _pc_click, false);
				}
				
			}

		}
	}
	function _pc_init(_pc_site, _pc_pcurl){
		if(_pc_custom_vars == null){
 			_pc_custom_vars = {};
 		}
 		var cmp = _read_qparam(_pc_param_cmp);
 		if(cmp !==null){
 			_pc_custom_vars.cmp = cmp;
 		}
 		var src = _read_qparam(_pc_param_src);
 		if(src !==null){
 			_pc_custom_vars.src = src;
 		}
		var med = _read_qparam(_pc_param_med);
 		if(med!==null){
 			_pc_custom_vars.med = med;
 		}
 		var purl = _read_qparam(_pc_param_purl);
 		if(purl == null)  purl = _read_cookie(_pc_param_purl);
 		if(purl !==null){
 			_pc_custom_vars.purlid = purl;
 		}
 		_pc_init_tracker(_pc_site,_pc_pcurl);
	}
	
	function _pc_dummy() { return true; }
	
	function _pc_pause(_pc_time_msec) {
		var _pc_now = new Date();
		var _pc_expire = _pc_now.getTime() + _pc_time_msec;
		while(_pc_now.getTime() < _pc_expire)
			_pc_now = new Date();
	}
	
	// _pc_type only 'download' and 'link' types supported
	function pclick_track(action, _pc_site, _pc_url, _pc_type,conversionLevel) 
	{
		var _pc_image = new Image();
		_pc_image.onLoad = function() { _pc_dummy(); };
		var url = _pc_url + '?idsite=' + _pc_site + '&' + _pc_type + '=' + escape(action) + '&rand=' + Math.random() + '&redirect=0';
		if(conversionLevel > 0){
			url +="&vars[conv]=" + conversionLevel;
		}
		_pc_image.src=url;
		_pc_pause(_pc_tracker_pause);
	}
	
	function _pc_is_site_hostname(_pc_hostname) {
		for(i = 0; i < _pc_hosts_alias.length; i++)
			if( _pc_hostname == _pc_hosts_alias[i] ) 
				return true;
		return false;
	}
	
	function _pc_click(e)
	{
		var source;
	
		if (typeof e == 'undefined')
			var e = window.event;
	
		if (typeof e.target != 'undefined') 
			source = e.target;
		else if (typeof e.srcElement != 'undefined')
			source = e.srcElement;
		else return true;
	
		while( source.tagName != "A" )
			source = source.parentNode;
	
		if( typeof source.href == 'undefined' )
			return true;
	
		var _pc_download = new RegExp('\\.(' + _pc_download_extensions + ')$', 'i');
		var _pc_link_type;
		var _pc_not_site_hostname = !_pc_is_site_hostname(source.hostname);
	
		if( source.className == "pclick_download" )
			_pc_link_type = 'download';
		else if( source.className == "pclick_link" ) {
			_pc_link_type = 'link';
			_pc_not_site_hostname = 1;
		}
		else _pc_link_type = (_pc_download.test(source.href) ? 'download' : 'link');
	
		if( _pc_not_site_hostname || _pc_link_type == 'download' ){
			var isConv = 0;
			 if(source.className != null && (source.className.indexOf('pclick_conv')>=0)){
			 	isConv=1;
			 }
			pclick_track(source.href, _pc_tracker_site, _pc_tracker_url, _pc_link_type,isConv);
		}
		return true;
	}
	function _pc_clone(obj){
		var newObj = {};
		for(var i in obj){ 
			newObj[i]=obj[i];
		}
		return newObj;
	}

	
	
	return {
		install_tracker: 1,
		tracker_pause: 300,
		download_extensions: "7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip",
		param_cmp: 'cmp',
		param_src: 'src',
		param_med: 'med',
		param_purl: 'pcpurlid',
		pclick_url: null,
		custom_vars: null,
		site_id:null,
		init:function(url,siteId,customVars){
			this.pclick_url = url;
			this.site_id = siteId;
			this.custom_vars = customVars;
			
			_pc_site_id = siteId;
			_pc_custom_vars = customVars;
			_pc_param_cmp = this.param_cmp;
			_pc_param_src = this.param_src;
			_pc_param_med = this.param_med;
			_pc_param_purl = this.param_purl;
			_pc_download_extensions = this.download_extensions;
			_pc_install_tracker = this.install_tracker;
			_pc_tracker_pause = this.tracker_pause;
			_pc_init(siteId,url);
			return this;
		},
	 	trackPage: function(page,conversionLevel){
	 		if(typeof page == "undefined" || page == null) page = '';
	 		var myvars = this.custom_vars;
	 		if(conversionLevel === true) conversionLevel = 1;
	 		if(conversionLevel > 0){
	 			if(typeof this.custom_vars == 'undefined'){
	 				myvars = {};
	 			}else{
	 				myvars = _pc_clone(this.custom_vars);
	 			}
	 			myvars['conv'] = conversionLevel;
	 		}
	 		pclick_log(page,this.site_id,this.pclick_url,myvars);
	 	},
	 	trackDownload: function(url,conversionLevel){
	 		pclick_track(url, this.site_id,this.pclick_url, 'download',conversionLevel);
	 	},
	 	trackLink: function(url,conversionLevel){
	 		pclick_track(url, this.site_id,this.pclick_url, 'link',conversionLevel);
	 	},
	 	trackEvent: function(event,type,conversionLevel){
	 		if(!type){ type="event"; }
	 		var myvars = this.custom_vars;
	 		if(conversionLevel === true) conversionLevel=1;
	 		if(conversionLevel > 0){
	 			if(typeof this.custom_vars == 'undefined'){
	 				myvars = {};
	 			}else{
	 				myvars = _pc_clone(this.custom_vars);
	 			}
	 			myvars['conv'] = conversionLevel;
	 		}
	 		pclick_track_event(this.site_id,event,type,this.pclick_url,myvars); 		
	 	}
	}
}();
