<commit_before>/**
 * Script que envía los datos de la analítica web al proveedor de AT-Internet. 
 * 
 * @author <NAME>
 * @contact <EMAIL> - http://jonatanjumbert.com 
 * @version 0.9.2
 */

/*
 * Variables globales de la configuración AT-Internet
 * y de los datos de la propia página para poder utilizar desde el callback del player.
 */ 
var current_url = null;
var debugData = null;
var level2 = null;
var producer = "";

/**
 * Se define la funcion de Callback del reproductor de Kaltura para poder enviar a
 * AT-Internet los datos de consumo de cada uno de los videos.
 */
window.kalturaCallbackATInternet = function(playerId) {
	var tag = new ATInternet.Tracker.Tag({log: "logc407", logSSL: "logs1407", secure: false, site: ((typeof site_id !== "undefined") ? site_id : 573738), domain: "xiti.com"});
	var kdp = document.getElementById(playerId);
	var mediaLabel = ((typeof producer !== "undefined" && producer != "") ? producer + "::" : "") + ((typeof current_url.url_path[2] !== "undefined") ? current_url.url_path[2] + "::" : "") + ((typeof current_url.url_path[3] !== "undefined") ? current_url.url_path[3] : "");

	// Evento que se lanza cuando el video se reproduce por primera vez
	kdp.kBind("firstPlay", function(data, id) {
		var datosMedia = {
			mediaType: 'video', 
			playerId: playerId,
			mediaLevel2: level2, 
			refreshDuration: '5', 
			mediaLabel: mediaLabel, 
			isEmbedded: false, 
			duration : parseInt(kdp.evaluate('{mediaProxy.entry.duration}'), 10),
			broadcastMode: 'clip'
		};
		
		tag.richMedia.add(datosMedia);
		debugData({action : '[MEDIA] data', datosMedia : datosMedia});
	});
	
	// Evento que se lanza cuando el video hace play.
	kdp.kBind("doPlay", function(data, id) {
		var mediaData = { 
			action: 'play', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doPlay', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace pause.
	kdp.kBind("doPause", function(data, id) {
		var mediaData = { 
			action: 'pause', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doPause', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace stop.
	kdp.kBind("doStop", function(data, id) {
		var mediaData = { 
			action: 'stop', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doStop', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace stop.
	kdp.kBind("doSeek", function(data, id) {
		var mediaData = { 
			action: 'move', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doSeek', datosMedia : mediaData});
	});
};

$(function() {
	var url_segments = null;
	var siteID = null;
	var lang = "es";
	var debugEnabled = true;
	
	// Comprobamos si existe console, para debugar
	if(!window.console) console = { log: function(){} };
	
	/**
	 * Funcion para debugar variables por consola.
	 * Siempre que la variable debugEnabled sea true.
	 */
	debugData = function(obj) {
		if(debugEnabled) {
			if(typeof obj.action !== "undefined" && obj.action != "") {
				console.log('[INI]:::[AT-INTERNET]::: ' + obj.action + '::::');
			}
			
			for(var property in obj) {
			    if(obj.hasOwnProperty(property) && property != "action") {
			    	console.log(obj[property]);
			    }
			}
			
			if(typeof obj.action !== "undefined" && obj.action != "") {
				console.log('[FIN]:::[AT-INTERNET]::: ' + obj.action + '::::');
			}
		}
	};
	
	/**
	 * Devuelve el último segmento de la URL pasada por parámetro.
	 */
	var getLastSegmentFromURL = function(url) {
		var segments = url.split("/");
		return segments.pop();
	};
	
	/**
	 *  Recupera el idioma de la página actual.
	 */
	var getLanguage = (function() {
		lang = $('html').attr('lang');
		if(typeof lang !== "undefined" && lang != "")  {
			lang_split = lang.split("-");
			if(lang_split.length > 1) {
				lang = lang_split[0].toUpperCase();
			}
		} else {
			lang = "EN";
		}
	})();
	
	/**
	 * Guarda en url_segments un array con los segmentos de la URL actual.
	 * Incluye como primer segmento el Idioma aunque se trate del Inglés y por defecto no aparezca en la URL.
	 */
	var getURLSegments = (function() {
		var url_segments_cleaned = [];
		var segments = location.pathname.split("/");
		for(var i = 0; i < segments.length; i++) {
			if(segments[i] != "") {
				url_segments_cleaned.push(segments[i]);
			}
		}
		url_segments = url_segments_cleaned;
		if(lang == "EN" && url_segments[0] != "EN") {
			url_segments.unshift('EN');
		} 
		if(url_segments.length == 0) {
			url_segments.unshift('EN');
		}
		
		return url_segments;
	})();
	
	/**
	 * Recupera los parámetros del Query String. Por ejemplo: ?foo=lorem&bar=&baz
	 *	var foo = getParameterByName('foo'); // "lorem"
	 *	var bar = getParameterByName('bar'); // "" (present with empty value)
	 *	var baz = getParameterByName('baz'); // "" (present with no value)
	 *	var qux = getParameterByName('qux'); // null (absent)<commit_msg>Corrige un error al recuperar el idioma EN de la URL.<commit_after>/**
 * Script que envía los datos de la analítica web al proveedor de AT-Internet. 
 * 
 * @author <NAME>
 * @contact <EMAIL> - http://jonatanjumbert.com 
 * @version 1.0
 */

/*
 * Variables globales de la configuración AT-Internet
 * y de los datos de la propia página para poder utilizar desde el callback del player.
 */ 
var current_url = null;
var debugData = null;
var level2 = null;
var producer = "";

/**
 * Se define la funcion de Callback del reproductor de Kaltura para poder enviar a
 * AT-Internet los datos de consumo de cada uno de los videos.
 */
window.kalturaCallbackATInternet = function(playerId) {
	var tag = new ATInternet.Tracker.Tag({log: "logc407", logSSL: "logs1407", secure: false, site: ((typeof site_id !== "undefined") ? site_id : 573738), domain: "xiti.com"});
	var kdp = document.getElementById(playerId);
	var mediaLabel = ((typeof producer !== "undefined" && producer != "") ? producer + "::" : "") + ((typeof current_url.url_path[2] !== "undefined") ? current_url.url_path[2] + "::" : "") + ((typeof current_url.url_path[3] !== "undefined") ? current_url.url_path[3] : "");

	// Evento que se lanza cuando el video se reproduce por primera vez
	kdp.kBind("firstPlay", function(data, id) {
		var datosMedia = {
			mediaType: 'video', 
			playerId: playerId,
			mediaLevel2: level2, 
			refreshDuration: '5', 
			mediaLabel: mediaLabel, 
			isEmbedded: false, 
			duration : parseInt(kdp.evaluate('{mediaProxy.entry.duration}'), 10),
			broadcastMode: 'clip'
		};
		
		tag.richMedia.add(datosMedia);
		debugData({action : '[MEDIA] data', datosMedia : datosMedia});
	});
	
	// Evento que se lanza cuando el video hace play.
	kdp.kBind("doPlay", function(data, id) {
		var mediaData = { 
			action: 'play', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doPlay', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace pause.
	kdp.kBind("doPause", function(data, id) {
		var mediaData = { 
			action: 'pause', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doPause', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace stop.
	kdp.kBind("doStop", function(data, id) {
		var mediaData = { 
			action: 'stop', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doStop', datosMedia : mediaData});
	});
	
	// Evento que se lanza cuando el video hace stop.
	kdp.kBind("doSeek", function(data, id) {
		var mediaData = { 
			action: 'move', 
			playerId: playerId, 
			mediaLabel: mediaLabel
		};
		tag.richMedia.send(mediaData);
		debugData({action : '[MEDIA] doSeek', datosMedia : mediaData});
	});
};

$(function() {
	var url_segments = null;
	var siteID = null;
	var lang = "es";
	var debugEnabled = true;
	
	// Comprobamos si existe console, para debugar
	if(!window.console) console = { log: function(){} };
	
	/**
	 * Funcion para debugar variables por consola.
	 * Siempre que la variable debugEnabled sea true.
	 */
	debugData = function(obj) {
		if(debugEnabled) {
			if(typeof obj.action !== "undefined" && obj.action != "") {
				console.log('[INI]:::[AT-INTERNET]::: ' + obj.action + '::::');
			}
			
			for(var property in obj) {
			    if(obj.hasOwnProperty(property) && property != "action") {
			    	console.log(obj[property]);
			    }
			}
			
			if(typeof obj.action !== "undefined" && obj.action != "") {
				console.log('[FIN]:::[AT-INTERNET]::: ' + obj.action + '::::');
			}
		}
	};
	
	/**
	 * Devuelve el último segmento de la URL pasada por parámetro.
	 */
	var getLastSegmentFromURL = function(url) {
		var segments = url.split("/");
		return segments.pop();
	};
	
	/**
	 *  Recupera el idioma de la página actual.
	 */
	var getLanguage = (function() {
		lang = $('html').attr('lang');
		if(typeof lang !== "undefined" && lang != "")  {
			lang_split = lang.split("-");
			if(lang_split.length > 1) {
				lang = lang_split[0].toUpperCase();
			}
		} else {
			lang = "EN";
		}
	})();
	
	/**
	 * Guarda en url_segments un array con los segmentos de la URL actual.
	 * Incluye como primer segmento el Idioma aunque se trate del Inglés y por defecto no aparezca en la URL.
	 */
	var getURLSegments = (function() {
		var url_segments_cleaned = [];
		var segments = location.pathname.split("/");
		for(var i = 0; i < segments.length; i++) {
			if(segments[i] != "") {
				url_segments_cleaned.push(segments[i]);
			}
		}
		url_segments = url_segments_cleaned;
		if(lang == "EN" && url_segments[0].toUpperCase() != "EN") {
			url_segments.unshift('EN');
		} 
		if(url_segments.length == 0) {
			url_segments.unshift('EN');
		}
		
		return url_segments;
	})();
	
	/**
	 * Recupera los parámetros del Query String. Por ejemplo: ?foo=lorem&bar=&baz
	 *	var foo = getParameterByName('foo'); // "lorem"
	 *	var bar = getParameterByName('bar'); // "" (present with empty value)
	 *	var baz = getParameterByName('baz'); // "" (present with no value)
	 *	var qux = getParameterByName('qux'); // null (absent)
{'fraction_non_alphanumeric': 0.16042313664596272, 'fraction_numerical': 0.005920031055900621, 'mean_word_length': 3.539647577092511, 'pattern_counts': {'":': 4, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5409019', 'n_tokens_mistral': 3945, 'n_tokens_neox': 3542, 'n_words': 915}