


/**
* JS full funnel tracking  
* @version 1.0
*/

/**
 * Retrieve variables from each page
 * 
 * @param _lng_s	language short name
 * @param _lng_l	language full name
 * @param _curr		currency name 
 * @param _domain	domain name, must be without www 
 * @param _path		page name
 * 
 */

/** 
 * Global variables
 */  
	var _advertiser 	= 'sourcecnt';	// PT member 
	var _profile 		= 'jsfail'; 		// PT profile
	var _cref;					// PT creferer

	/**
	 * Define language parameter for instant play lobby
	 * Each website has different languages
	 */	
	var lngs = new Array();
		lngs["en"] = "en";
		lngs["nl"] = "nl";
		lngs["fr"] = "fr";
		lngs["de"] = "de";
		lngs["it"] = "en";
		lngs["ja"] = "en";
		lngs["jp"] = "en"; // CMS patch
		lngs["no"] = "en";
		lngs["pl"] = "en";
		lngs["pt"] = "en";
		lngs["es"] = "en";
		lngs["sv"] = "sv";




/**
 * Init function - Should be run from document.ready
 */

function trf_src(){

	/**
	 * Launching page markup
	 */

	mrkp_cta();

	/**
	 * launching delayed trafic source recognition
	 */

	setTimeout('trf_src_rec()', 500);
}


/** 
 * Marking up all the CTA (Call To Action) elements on page and applying 'onclick' events
 */  
function mrkp_cta(){

	/**
	 * Applying all download elements on page
	 */ 	
	$('img[id|="download"],span[id|="download"],a[id|="download"],div[id|="download"]' ).click(function() {

		var tmp = $(this).attr("id");
		var prts = tmp.split("-");
		var elmnt = prts[1];

		dwn(elmnt);
	});

	/**
	 * Applying all instant play elements on page
	 */ 	
	$('img[id|="instant"],span[id|="instant"],a[id|="instant"],div[id|="instant"]').click(function() {

		var tmp = $(this).attr("id");
		var prts = tmp.split("-");
		var elmnt = prts[1];

		inst(elmnt);
	});
	
	
	/**
	 * Applying all instant play elements on page for flash casino games
	 */ 	
	$('img[id|="instgame"],span[id|="instgame"],a[id|="instgame"],div[id|="instgame"]').click(function() {

		var tmp = $(this).attr("id");
		var prts = tmp.split("-");
		
		inst_game(prts[2], prts[1]);
	});

	/**
	 * Modify the 'mouseover' cursor pointer on all download elements
	 */
	$('img[id|="download"],span[id|="download"],div[id|="download"]').bind( "mouseover", function() {
		$(this).css( "cursor", "pointer" );
	});

	/**
	 * Modify the 'mouseover' cursor pointer on all instant play elements
	 */
	$('img[id|="instant"],span[id|="instant"],div[id|="instant"]').bind( "mouseover", function() {
		$(this).css( "cursor", "pointer" );
	});

}

/**
 * CTA (Call To Action) - download 
 */
function dwn( elmnt ){
	
	/**
	 * GA goal tracking
	 */
	_gaq.push(['_trackPageview', _lng_l + "/" + _curr + "/" + _path + "/virtual/download/" + elmnt ]);
	
	/**
	 * Download tracker
	 */
	var cref_tmp;

	if (_cref != null){
		cref_tmp = "&creferer=" + _cref;
	}else{
		cref_tmp = '';
	}
		
	window.location = "http://banner." + _domain + "/cgi-bin/SetupCasino.exe?member=" + _advertiser + "&profile=" + _profile + cref_tmp;
}

/**
 * CTA (Call To Action) - instant play
 */
function inst( elmnt ){
	/**
	 * GA goal tracking 
	 */
	_gaq.push(['_trackPageview', _lng_l + '/' + _curr + '/' + _path + '/virtual/instantplay/' + elmnt ]);
	
	/**
	 * Instant play tracker
	 */
	var cref_tmp;

	if ( _cref != null ){
		cref_tmp = "&creferer=" + _cref;
	}else{
		cref_tmp = '';
	}

	//window.open('http://banner.' + _domain + '/flashcasino.php?language=' + lngs[_lng_s] + '&member=' + _advertiser + '&profile=' + _profile + cref_tmp, 'InstantPlay', 'resizable=yes,width=640,height=480');
	window.open('http://cache.download.' + _domain + '/casinoclient.html?language=' + lngs[_lng_s] + '&member=' + _advertiser + '&profile=' + _profile + cref_tmp, 'InstantPlay', 'resizable=yes,width=640,height=480');
}

/**
 * CTA (Call To Action) - instant play for flash casino games
 */
function inst_game( elmnt, game ){
	/**
	 * GA goal tracking 
	 */
	_gaq.push(['_trackPageview', _lng_l + '/' + _curr + '/' + _path + '/virtual/instantplay/' + elmnt ]);
	
	/**
	 * Instant play tracker
	 */
	var cref_tmp;

	if ( _cref != null ){
		cref_tmp = "&creferer=" + _cref;
	}else{
		cref_tmp = '';
	}

	window.open('http://cache.download.' + _domain + '/safclient.html?language=' + lngs[_lng_s] + '&game=' + game + '&member=' + _advertiser + '&profile=' + _profile + cref_tmp, 'InstantPlay', 'resizable=yes,width=640,height=480');
}

/**
 * CTA (Call To Action) - VSP (Virtual Sales Person)
 * Called directly from chat window   
 */
function vsp( elmnt ){
	/**
	 * Adding VSP (Virtual Sales Person) creferer   
	 */
	var cref_tmp;
	
	if ( _cref != null ){
		cref_tmp = "&creferer=" + _cref.replace( ":", ":vsp+");
	}else{
		cref_tmp = '';
	}

	window.location = "http://banner." + _domain + "/cgi-bin/SetupCasino.exe?member=" + _advertiser + "&profile=" + _profile + cref_tmp;
	//window.open('http://banner.' + _domain + '/flashcasino.php?language=' + lngs[_lng_s] + '&member=' + _advertiser + '&profile=' + _profile + cref_tmp, 'InstantPlay', 'resizable=yes,width=640,height=480');
}

/**
 * Checking traffic source type
 * Direct, Affiliate, Organic, Refferer
 */

function trf_src_rec(){

	/**
	 * Check if the cookie is exist
	 * if exist - returnig visitor
	 * if not exist - new visitor 
	 */
	var trckr = $.cookie('trckr');

	/**
	 * Returnig visitor 
	 */
	if ( trckr != null ){

		var tmp = trckr.split("|");
		
		/**
		 * Checking if cookie has correct structure - 3 elements
		 */		
		if ( tmp.length != 3 ) return;

		_advertiser	= tmp[0];
		_profile	= tmp[1];
		
		if ( tmp[2] != 'undefined') 
			_cref = tmp[2];
		
		_gaq.push(['_trackPageview']);
		
		return;
	}
	
	/**
	 * New visitor 
	 */
	var adv		= $.cookie('banner_domainclick');
	var utmz	= $.cookie('__utmz');

	/**
	 * Checking ADV cookie 
	 */
	if ( adv != null ){
		
		dsmtl_adv( adv, utmz );
		
	} else if ( utmz != null) {
		
		dsmtl_utmz(utmz);
	}

	_gaq.push(['_trackPageview']);

	

	/**
	 * Drop a cookie 
	 */
	$.cookie( 'trckr' , _advertiser + "|" + _profile + "|" + _cref , { expires: 3, path: '/', domain: _domain, secure: false });
}

/**
 * Retrive ADV cookie
 * Get advertiser, profile, creferer 
 */
function dsmtl_adv( str, utmz ){

	var prts = str.split(",");

	_advertiser = prts[0];
	_profile	= prts[2];
	
	/**
	 * Checking creferer 
	 */
	if ( prts[4] != "*" )
		_cref = prts[4];

	/**
	 * 	Modifing google __utmz cookie with _advertiser and _profile 
	 *  Replace GA __utmz source path with advertiser and profile insted of reffering URL
	 */
	var tmp_string = utmz.substring( utmz.indexOf("utmcsr") );
	var new_string = "utmcsr=" + _profile + "," + _advertiser + "|utmccn=affiliate|utmcmd=link";

	/**
	 * Setting new cookie 
	 */
	$.cookie('__utmz', utmz.replace( tmp_string , new_string ), { expires: 3, path: '/', domain: _domain, secure: false });
}

/**
 * Checking if Direct, Referral, Organic 
 */
function dsmtl_utmz( str ){

	str			= str.substring(str.indexOf("utmcsr"));
	var prts	= str.split("|");

	var utmccn	= prts[1].replace("utmccn=","");

	_advertiser = 'sourcecnt';

	switch( utmccn ){

		case "(direct)":		//	utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
			_profile	= 'cntdir';
		break;

		case "(referral)":		// utmcsr=newcrm|utmccn=(referral)|utmcmd=referral|utmcct=/tmp/site.html

			_profile	= 'cntref';

			_cref = prts[0].replace("utmcsr=","") + prts[3].replace("utmcct=","");
			_cref = "parameter:" + _cref.replace(/[\.\/\-]/g, "_");

		break;

		case "(organic)":		// utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=casino lasvegas play

			var utmcsr = prts[0].replace("utmcsr=","");

			switch( utmcsr ){
				case "google":
				  _profile = 'gcnt';
				break;

				case "yahoo":
				  _profile = 'ycnt';
				break;

				case "bing":
				  _profile = 'bcnt';
				break;

				default:
				  _profile = 'dcnt';
				}

			/**
			 * Adding KW as creferer 
			 */
			var kwrd	= prts[3].replace("utmctr=","");
			_cref		= "parameter:" + kwrd.replace(/[\.\/\-:]/g, "_");

		break;
		
		/**
		 * PT ADV system default profile
		 */
		default:
		  _profile		= 'cntsys';
		  _cref			= 'parameter:web';
	}

	return;
}

