﻿onReady = (function(ie){
 var d = document;
 return ie ? function(c){
   var n = d.firstChild,
    f = function(){
     try{
      c(n.doScroll('left'))
     }catch(e){
      setTimeout(f, 10)
     }
    }; f()
  } : 
  /webkit|safari|khtml/i.test(navigator.userAgent) ? function(c){
   var f = function(){
     /loaded|complete/.test(d.readyState) ? c() : setTimeout(f, 10)
    }; f()
  } : 
  function(c){
   d.addEventListener('DOMContentLoaded', c, false);
  }
})(/*@cc_on 1@*/);

addGAHandler = function( el, ev, handler ) {
	if( !el ) return;
	var arg = arguments[3];
	if( el.addEventListener ) {
		el.addEventListener( ev, function() { handler( el, arg ) }, false )
	} else {
		el.attachEvent( 'on' + ev, function() { handler( el, arg ) } );
	}
}

function addLinkerEvents() {
	//var extTrack = ['alpari-ar.com', 'alpari-id.com', 'alpari.ru'];
	var siteNames = { 
			ar : 'alpari-ar.com', 
			id : 'alpari-id.com', 
			ru : 'alpari.ru',
			cn : 'alpari-markets.cn',
			en : 'alpari-forex.com',
			es : 'alpari.com.mx',
			fr : 'alpari-fr.com',
			tr : 'alpari-tr.com'
		}, 
		eventDivClasses = { 
			'/show/block' : /img-block/i
		},
		eventLinkClasses = { 
			 '/show' : /show/i
		},
		eventLinkParentClasses = { 
			 '/tabs' : /tabs/i,
			 '/slider' : /\blavaLamp\b/i
		}; 

	var lang = ( window.PageStatus ? PageStatus.Lang() : ( window.lang ? window.lang : 'en' ) );
	_gaq = _gaq || [];
	var as = document.getElementsByTagName('a');
	var divs = document.getElementsByTagName('div');
	var extDoc = ['.doc','.docx', '.xls', '.xlsx','.exe','.zip','.pdf','.js','.chm','.cab','.se','.rar','.mp3'];

	for(var i = 0; i < divs.length; i++) {
		for( var c in eventDivClasses ) {
			if( eventDivClasses[c].test( divs[i].className ) ) {
				var tmp = divs[i].getAttribute( 'onclick' );
				if( tmp != null ) {
					tmp = String( tmp );
					if( tmp.indexOf( '_trackPageview' ) > -1 ) continue;
				}

				addGAHandler( divs[i], 'click', function( el ) {
					_gaq.push( ['_trackPageview', c +  document.location.href.split( siteNames[lang] )[1] + el.getAttribute( 'id' )] );
				});
			}
		}
	}

	for( var i = 0; i < as.length; i++ ) {
		var flag = 0,
			tmp = as[i].getAttribute('onclick'),
			target = as[i],
			flag_break = false;

		if( tmp != null ) {
		  tmp = String( tmp );
		  if( tmp.indexOf( '_trackPageview' ) > -1 ) continue;
    	}

		for( c in eventLinkClasses ) {
			if( eventLinkClasses[c].test( as[i].className ) ) {
				addGAHandler( as[i], 'click', function( el, link ) {
					var splitResult = el.href.split( siteNames[lang] );
					_gaq.push( ['_trackPageview', ( link ? link : '' ) + splitResult[1]] );
				}, c );
			}	
		}

		outer: while( target.nodeName != 'BODY' ) {
			for( c in eventLinkParentClasses ) {
				if( target.className && eventLinkParentClasses[c].test( target.className ) ) {
					addGAHandler( as[i], 'click', function( el, link ) {
						var splitResult = el.href.split( siteNames[lang] );
						_gaq.push( ['_trackPageview', ( link ? link : '' ) + splitResult[1]] );
					}, c );	
					flag_break = true;
				}
			}
			if( flag_break ) break outer;
			target = target.parentNode;
		}

		// Tracking outbound links off site - not the GATC
		//for( var j = 0; j < extTrack.length; j++ ) {				
		if( as[i].href.indexOf( siteNames[lang] ) == -1 && as[i].href.indexOf( 'google-analytics.com' ) == -1 ) {
			flag++;
		}
		//}
		
		if( flag == 1 && as[i].href.indexOf('mailto:') == -1 ){
			addGAHandler( as[i], 'click', function( el ) {
				_gaq.push( ['_trackPageview', '/ext/' + el.href ] );
			});
		}

		if( as[i].href.indexOf('mailto:') != -1 ) {
			addGAHandler( as[i], 'click', function( el ) {
				var splitResult = el.href.split(':');
				_gaq.push( ['_trackPageview',  '/mailto/' + result[1] + '/' + splitResult[1] ] );
			});
		}
		
		// Tracking electronic documents - doc, xls, pdf, exe, zip		
		for( var j = 0; j < extDoc.length; j++ ) {
			if( flag != 1 && as[i].href.indexOf( extDoc[j] ) != -1 )
				addGAHandler( as[i], 'click', function( el ) {
					var splitResult = el.href.split( siteNames[lang] );
					_gaq.push( ['_trackPageview',  '/downloads' + splitResult[1] ] );
				});
		}
		
	}
}

onReady(function(){
	addLinkerEvents();
});
