
var _pclick = function(){

	var _pc_use_title_as_name = 0;
	var _pc_install_tracker = 1;
	var _pc_tracker_pause = 700;
	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";
    var _pc_custom_vars = {};

	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_url, _pc_purl_id, _pc_channel_id, _pc_type, _pc_label, _pc_conversion_level )
	{
		var _pc_da = new Date();
		var _pc_src = _pc_url
			+'?url='+_pc_escape(document.location.href)
			+'&purlId='+_pc_purl_id
            +'&channelId='+_pc_channel_id
            +'&conv='+_pc_conversion_level
            +'&type='+_pc_type
            +'&label='+_pc_label;

            for(idx in _pc_custom_vars) {
                _pc_src += '&'+idx+'='+_pc_custom_vars[idx]
            }

		_pc_src +='&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);
		return _pc_src;
	}

	function pclick_log( _pc_url, _pc_purl_id, _pc_channel_id, _pc_type, _pc_action_name, _pc_conversion_level )
	{
		if(_pc_called && (!_pc_action_name || _pc_action_name=="")) return;
		var _pc_src = _pc_getUrlLog(_pc_url, _pc_purl_id, _pc_channel_id, _pc_type, _pc_action_name, _pc_conversion_level );


		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_url, _pc_purl_id, _pc_channel_id, type, label, _pc_conversion_level){
		  var imgSrc = _pc_getUrlLog(_pc_url, _pc_purl_id, _pc_channel_id, type, label, _pc_conversion_level);
		  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;
		}
	}


	function _pc_init_tracker()
	{
		if (window.addEventListener){
		      window.addEventListener("load", function(){_pc_init_tracker_when_ready();},false);
		}
		else if (window.attachEvent){
		      window.attachEvent("onload", function(){_pc_init_tracker_when_ready();});
		}
	}
	function _pc_init_tracker_when_ready(){
		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;

		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(){
 		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();
	}

	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(_pc_url,_pc_purl_id,_pc_channel_id,_pc_type,_pc_label,conversionLevel)
	{
		var _pc_image = new Image();
		_pc_image.onLoad = function() { _pc_dummy(); };
		var url = _pc_url
            +'?purlId='+_pc_purl_id
            +'&channelId='+_pc_channel_id
            +'&type='+_pc_type
            +'&label='+_pc_label;
        for(idx in _pc_custom_vars) {
            url += '&'+idx+'='+_pc_custom_vars[idx]
        }
        url += '&rand=' + Math.random() + '&redirect=0';
		if(conversionLevel > 0){
			url +='&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;
			 }
			actionName = source.getAttribute('pclick_label') || source.href;

			pclick_track(this.pclick_url,this.purlId,this.channelId,_pc_link_type,actionName,isConv);
		  /*pclick_track(this.pclick_url,this.purlId,this.channelId,'link',url,conversionLevel);
		        timer = setTimeout(function(){
				if(source.target && source.target == '_blank'){
					 window.open(source.href)
				}
				else window.location.href=source.href
			},700);
			if(e)
			{ if(e.preventDefault) e.preventDefault( );
			  else{
				e.returnValue = false;
				// ie7 bug fix
				if (window.event) event.returnValue = false;
			  }
			}
			return false;
			*/
			return true;
		}
		else{
			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,purlId,channelId){
			this.pclick_url = url;
			this.purlId = purlId;
			this.channelId = channelId;

			_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();
			return this;
		},
	 	trackPage: function(page,conversionLevel){
	 		if(typeof page == "undefined" || page == null) page = '';
	 		(conversionLevel === undefined) ? false : true;

	 		pclick_log(this.pclick_url,this.purlId,this.channelId,'visit',page,conversionLevel);
	 	},
	 	trackDownload: function(url,conversionLevel){
	 		pclick_track(this.pclick_url,this.purlId,this.channelId,'download',url,conversionLevel);
	 	},
	 	trackLink: function(url,conversionLevel){
	 		pclick_track(this.pclick_url,this.purlId,this.channelId,'link',url,conversionLevel);
	 	},
	 	trackEvent: function(event,type,conversionLevel,optPurlId,optProfileId){
	 		if(!type){ type="event"; }
	 		(conversionLevel === undefined) ? false : true;
            if(optPurlId) this.purlId = optPurlId;
            if(optProfileId) this.channelId = optProfileId;
	 		pclick_track_event(this.pclick_url,this.purlId,this.channelId,type,event,conversionLevel);
	 	}
	}
}();
