// JavaScript Document

/*
* Creado por Fernando Soto 
*/
function array_merge(arr) {	
	var merged = arr;	
	for (var i = 1; i < arguments.length; i++) {		
		merged = merged.concat(arguments[i]);		
	}
	return merged;	
}

var CMxmLineUp = Class.create(CSefMxm,{
			
	init : function( options ){
			
		this.setOptions( options );		
		//Init Information	
		this.iter    		= 0;
		this.Mode 	 	= this.options.Mode;
		this.AMode 		= this.options.AMode,
		this.Actionable     	= this.options.Actionable,
		this.Source  		= this.options.Source;
		this.Timer   		= this.options.Timer;
		this.Url 	 	= this.options.Url;
		this.Flagble 		= this.options.Flagble;
		this.EnableSub	= this.options.EnableSub;
		this.Ausenable  	= this.options.Ausenable;
		this.Fieldble   	= this.options.Fieldble;
		this.idData  		= 'headerjs' + this.iter;
		this.Headble    	= this.options.Headble;
		this.prevable		= this.options.prevable;
		this.useFullnames 	= this.options.useFullnames
		this.ILoader    	= $('MxMLoaderFieldGame');
		this.domStats		= "http://stats.televisadeportes.com";
		this.Symbols 		= Symbology;
		
		
		this.OutField = '';
		this.continuer = 11;
		
		this.GameType   = null;
		this.GameStatus = null;

		this.loadUILineUp();
		
		if( !this.Headble ) {
		
			$('MxMlLineupTeam1HeaderNav').hide();
			$('MxMlLineupTeam1Header').hide();
			$('MxMlLineupTeam2Header').hide();
			$('MxMlLineupTeam2HeaderNav').hide();
		
		}
		
	},
	
	setOptions : function( options ){							  
 		
		this.options = Object.extend({
									 
			Mode :  'Secure',
			Server : '',	
			Url : '',
			Timer  : 60,
			AMode : null,
			Source : null,			
			Flagble : null,
			EnableSub : null,
			Ausenable : true,
			Fieldble : null,
			Headble : true,
			prevable:true,
			useFullnames:false,
			Actionable : false,
			onComplete : Prototype.emptyFunction
			
		}, options || {});
		
		
	},
	
	loadUILineUp : function( ){
		
		
		if( this.Fieldble ) {
			
			if( this.ILoader ) {
				
				this.ILoader.show();
			
			}
		}
		
		this.loadJs();
		
	},
	

	/*
	*  function : initDataPageLoad 
	*  description: actualiza en el api los datos que se requieren 
	*/
	initDataPageLoad : function (){
		
		
		if( this.DefineLineUpTable() ) {
			
			this.DefineHistoryLineUps();		
			this.setButtonsEvents();
			
		}
		
		if( $('mxmSEFFieldGame') ){
			
			$('mxmSEFFieldGame').hide();			
			this.UIField = new CFieldUI(this);			
			
		}
		
	},
	
	
	/*
	*  function : executer 
	*  description: loadPeriodicamente el nuevo js cada 60 segundos+	
	*/
	executer : function( request ){
			
		this.removeLoader();	
			
		this.DataGameInfo = this.DefineData( request );		
		this.HandLoadJs   = this.loadUILineUp.bindAsEventListener(this);
		
		if( this.iter == 1 ) {
			
			this.initDataPageLoad();
			new PeriodicalExecuter( this.HandLoadJs, this.Timer );
			
		}
		
		
		//Cargamos el campo de juego
		this.loadField();
		
		//Muestra la tabla de Arbirtros
		this.updateReferees();
		
		//Muestra la tabla de goles
		this.updateGoals();
		
		//Muestra la tabla de penales
		this.updatePenalties();
		
		//Muestra la alineación
		this.updateLineUpTeams();
		
		//Muestra la tabla de ausentes
		this.updateAusents();	
				
		//Muestra la tabla de Amonestados
		this.updatePenalized();	
		
		// Muestra la tabla de expulsados
		this.updateExpelled();
		
		//Muestra la tabla de promedio en cancha
		this.updateAverege();		
		
		this.notify('onComplete',this);
		
	},
	
	
	DefineLineUpTable :function(){
		
		return $('MxMLineUpTable');
		
	},
	
	DefineGameType : function(){
		
	},
	
	DefineGameStatus : function(){
	
	},
	
	DefineLineUpContainer : function( container ){
		
		if( container == 1 || container == 'Local' ){
			
			this.container = $('MxMLineUpPrevious1');
			
			
		}else{
			
			this.container = $('MxMLineUpPrevious2');
			
		}
		
		this.container.update('');
		return this.container;

		
	},
	
	DefineSubsContainer : function( container ){
		
		this.MxMSubsTable = $('MxMSubsTable');
		
		
		if( this.MxMSubsTable ){
		
		if( container == 1 || container == 'Local'){
			
			this.Subscontainer = $('MxMSubsTableBodyTeam1');
			
			
		}else{
			
			this.Subscontainer = $('MxMSubsTableBodyTeam2');
			
		}
		
		this.Subscontainer.update('');
		return this.Subscontainer;
		
		}else{
		
			return this.MxMSubsTable;
			
		}
		
	},
	
	
	DefineUsentsContainer : function( container ){
		
		if( container == 1 || container == 'Local'){
			
			this.Acontainer = $('MxMLineUpAusentsTeam1');
			
		}else{
			
			this.Acontainer = $('MxMLineUpAusentsTeam2');
			
		}
		
		
		this.Acontainer.update('');
		return this.Acontainer;
		
	},
	 
	DefineGoalsContainer : function( container ){

		
		this.MxmLineUpGoals = $('MxmLineUpGoalsTeam1');
		
			if( this.MxmLineUpGoals ) {
			
			if( container == 1 || container == 'Local'){
				
				this.Gcontainer = $('MxmLineUpGoalsTeam1');
				
			}else{
				
				this.Gcontainer = $('MxmLineUpGoalsTeam2');
				
			}
			
			this.Gcontainer.update('');
			
			return this.Gcontainer;
		
		}else{
			
			return this.MxmLineUpGoals;
			
		}
	},
	
	DefinePenaltiesContainer : function ( container ){
			this.MxmLineUpPenalties = $('MxmLineUpPenaltiesTeam1');
			if(this.MxmLineUpPenalties){
				if( container == 1 || container == 'Local'){				
					this.Gcontainer = $('MxmLineUpPenaltiesTeam1');				
				}else{				
					this.Gcontainer = $('MxmLineUpPenaltiesTeam2');				
				}
				this.Gcontainer.update('');			
				return this.Gcontainer;
			}else{			
				return this.MxmLineUpPenalties;
			}
			
	},	
	
	
	DefinePenalizedContainer : function( container ){
		
		this.MxmLineUpPenalized = $('MxmLineUpPenalizedTeam1');
		
		if( this.MxmLineUpPenalized ){
		
		if( container == 1 || container == 'Local'){
			
			this.Pcontainer = $('MxmLineUpPenalizedTeam1');
			
		}else{
			
			this.Pcontainer = $('MxmLineUpPenalizedTeam2');
			
		}
		
		this.Pcontainer.update('');
		return this.Pcontainer;
		
		}else{
			
			return this.MxmLineUpPenalized;
			
		}
		
	},
	
	DefineExpelledContainer : function( container ){
		
		this.MxmLineUpExpelled = $('MxmLineUpExpelledTeam1');
		
			if( this.MxmLineUpExpelled ) {	
			
				if( container == 1 || container == 'Local'){
					
					this.Excontainer = $('MxmLineUpExpelledTeam1');
					
				}else{
					
					this.Excontainer = $('MxmLineUpExpelledTeam2');
					
				}
				
				this.Excontainer.update('');
				return this.Excontainer;
			
			
		}else{
			
			return this.MxmLineUpExpelled
			
		}
		
	},
	
//////////////////////////////////////// ARBITROS ///////////////////////////////////	
	
	refereeExist : function(){
		
		var arefer = new Array();
		
		var Referees = $H( this.DataGameInfo.referees );
		Referees.each(function(itm,idx){
							   		
			if( itm[1] != '' ) {
			
				arefer.push( itm[1] );				
				
			}
		
		}.bind(this));
		
		
		
		return arefer.length > 0 ? true : false;
		
	},
	
	updateReferees : function(){
		
	
			if( $('MxmLineUpRefer1') ){
				
				if( this.refereeExist() ){
				
					$('MxmLineUpRefer1').update( this.DataGameInfo.referees.central );
					$('MxmLineUpRefer2').update( this.DataGameInfo.referees.assistant1 );
					$('MxmLineUpRefer3').update( this.DataGameInfo.referees.assistant2 );
					$('MxmLineUpRefer4').update( this.DataGameInfo.referees.fourth );
					
					
				}else{
					
					$$('.refereeContainer').each(function(itm){ 
							
							itm.hide();
					
					});
				
					
				}
				
			}
		
	},
	
	//////////////////////////////  LINEUP ////////////////////////////////////////////
	
	updateLineUpTeams : function(){
		
		
		
		if( this.DefineLineUpTable() ) {
			
			this.updateLineUpTeam1();
			this.updateLineUpTeam2();
		
		}
		
			
	},
	
	updateLineUpTeam1 : function(){
		
		if( this.AMode ) {			
			$('MxMLineUpDescriptionTeam1').update( this.DataGameInfo.lineUpLocal.description.toUpperCase() );
			$('MxMLineUpTeam1LocalName').update( this.DataGameInfo.lineUpLocal.name );
			$('MxMLineUpTeam1VisitName').update( this.DataGameInfo.lineUpLocal.visit );		
			$('MxMLineUpTeam1GoalsFinal').update( this.DataGameInfo.lineUpLocal.goals.local +" - "+ this.DataGameInfo.lineUpLocal.goals.visit );		
			stt = this.DataGameInfo.status=="Previo" ? "Probable" : this.DataGameInfo.week;
			$('MxMLineUpTeam1BtActual').update( stt );
			$('MxMLineUpTeam2BtActual').update( stt );
		}		
		
		this.DefineLineUpContainer(1);		
		var lineUp = this.Actionable ? this.linupWithActions('local') : this.DataGameInfo.lineUpLocal.team;		
		this.updateLineUpRows( lineUp );

		var lineUpSub =  this.AMode ? this.createActionsPlayers(this.DataGameInfo.lineUpLocal.substitutes) : this.DataGameInfo.lineUpLocal.substitutes;				
		this.createRowCoach( this.DataGameInfo.lineUpLocal.coach );
		this.createRowsSubstitutes( lineUpSub , 1 );
	},
	
	updateLineUpTeam2 : function(){
		
		if( this.AMode ) {			
		$('MxMLineUpDescriptionTeam2').update( this.DataGameInfo.lineUpVisit.description.toUpperCase() );
		$('MxMLineUpTeam2LocalName').update( this.DataGameInfo.lineUpVisit.name );
		$('MxMLineUpTeam2VisitName').update( this.DataGameInfo.lineUpVisit.visit );		
		$('MxMLineUpTeam2GoalsFinal').update(  this.DataGameInfo.lineUpVisit.goals.local +" - "+ this.DataGameInfo.lineUpVisit.goals.visit );
		
		}
		
		this.DefineLineUpContainer( 2 );	
		var lineUp =  this.Actionable ? this.linupWithActions('visit') : this.DataGameInfo.lineUpVisit.team;
		this.updateLineUpRows( lineUp );
		var lineUpSub =  this.AMode ? this.createActionsPlayers(this.DataGameInfo.lineUpVisit.substitutes) : this.DataGameInfo.lineUpVisit.substitutes;						
		this.createRowCoach( this.DataGameInfo.lineUpVisit.coach );
		this.createRowsSubstitutes( lineUpSub, 2 );
	},

	 updateLineUpRows : function( DataTeam ){			
		
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset ,index ){ 		
			
			var px = String(x/2);	
		
			var vColor = ( px ).length == 1 ? '' : 'odd';
						
			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;
					
				liga.innerHTML = rowset.number + ". " +NameTxt;
				
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.innerHTML = rowset.number + ". " +NameTxt;
			}
		
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.container.appendChild(TableRow);			
			
			var TableCell = document.createElement('td');					
			Element.extend( TableCell );
			TableCell.colSpan   = '4';			
			TableRow.appendChild( TableCell );
			
			var SpanDesc= document.createElement('span');					
			Element.extend( SpanDesc);
			SpanDesc.className = 'iconsAlign';	
			this.createFlagRows( rowset.actions, SpanDesc );

			var DivDesc= document.createElement('div');
			Element.extend(DivDesc);
			DivDesc.className = 'iconsAlign2';
			this.createExtraFlagRows(rowset.actions,DivDesc);

			TableCell.appendChild(SpanDesc);
			TableCell.appendChild(SpanDesc0);	
			TableCell.appendChild(DivDesc);
			
		x++;
		
		}.bind(this));
		
			
	 },
	 
	 createRowsSubstitutes : function( DataTeam  , status){
	
		var Container =  this.AMode ?  this.container : this.DefineSubsContainer( status ) ;
		var NameTxt='';
		
		if( Container && typeof(DataTeam) != 'undefined' && this.EnableSub) {
			var x = 0;
			DataTeam.each(function(rowset ,index ){	
			
				var px = String(x/2);
			
				var vColor = ( px ).length == 1 ? ' alternates ' : 'alternates altOdd';
		
				if(isNoEmpty(rowset.url)){
					liga = document.createElement('a');	
					liga.href=this.domStats+rowset.url;
					liga.target="_blank";
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;
					liga.innerHTML = rowset.number + ". " +NameTxt;
					SpanDesc0 = document.createElement('span');
					SpanDesc0.appendChild(liga);
				}
				else
				{
					SpanDesc0 = document.createElement('span');
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;
					SpanDesc0.innerHTML = rowset.number + ". " +NameTxt;
				}
				
				var TableRow = document.createElement('tr');					
				Element.extend(TableRow);
				TableRow.className = vColor;
				TableRow.id 	   = '';		
				Container.appendChild(TableRow);
				
				var TableCell = document.createElement('td');					
				Element.extend( TableCell );
				TableCell.colSpan   = '4';	
				TableRow.appendChild( TableCell );
				
				var SpanDesc= document.createElement('span');					
				Element.extend( SpanDesc );
				SpanDesc.className = 'iconsAlign';						
				this.createFlagRows( rowset.actions, SpanDesc );

				var DivDesc= document.createElement('div');
				Element.extend(DivDesc);
				DivDesc.className = 'iconsAlign2';
				this.createExtraFlagRows(rowset.actions,DivDesc);
				
				TableCell.appendChild(SpanDesc);
				TableCell.appendChild(SpanDesc0);
				TableCell.appendChild(DivDesc);
				x++;
		
			}.bind(this));
		}		 
	 },
	 
	 createRowCoach : function( rowset ){
			
			if( typeof( rowset ) != 'undefined' ) {
			
				if(isNoEmpty(rowset.url)){
					liga = document.createElement('a');	
					liga.href=this.domStats+rowset.url;
					liga.target="_blank";
					liga.innerHTML = 'DT. '+rowset.name;
					SpanDesc0 = document.createElement('span');
					SpanDesc0.appendChild(liga);
				}
				else
				{
					SpanDesc0 = document.createElement('span');
					SpanDesc0.innerHTML = 'DT. '+rowset.name;
				}
				
				var TableRow = document.createElement('tr');					
				Element.extend(TableRow);
				TableRow.className = 'highlighted';
				TableRow.id 	   = '';		
				this.container.appendChild(TableRow);
				
				var TableCell = document.createElement('td');					
				Element.extend( TableCell );
				TableCell.colSpan   = '4';				
				TableRow.appendChild( TableCell );
				
				var SpanDesc= document.createElement('span');		
				Element.extend(SpanDesc);
				SpanDesc.className = 'iconsAlign';
				this.createFlagRows( rowset.actions, SpanDesc );

				TableCell.appendChild(SpanDesc);
				TableCell.appendChild(SpanDesc0);
			
			}
			
		
	 },
	 
/////////////////////////////// ICOOOOOOONS ///////////////////////////////////
	 
	 createFlagRows : function( Actions, Span ){
		 
		 
		if( isNoEmpty( Actions ) ){
			
				if( this.Flagble ) {
				iter=1;
				Actions.each(function(itm,idx){
					
					if( isNoEmpty(this.Symbols[itm.type]) && itm.type!='lesion' && itm.type!='penalFalladoSerie' && iter<5 ){
					
						var SLabel = document.createElement('span');
						Element.extend( SLabel );
						var Icon = document.createElement('img');					
						Element.extend( Icon );
						Icon.src 		  = this.Symbols[itm.type].bigIcon;						
						SLabel.appendChild( Icon );
						SLabel.innerHTML += itm.minute + "'";
						Span.appendChild( SLabel);						
					}
					iter++;					  
				}.bind(this));
				
			}
		
		  }		
	},

	createExtraFlagRows : function( Actions, Div ){
		if( isNoEmpty( Actions ) ){
			
				if( this.Flagble ) {
				iter=1;
				Actions.each(function(itm,idx){					
					if( isNoEmpty(this.Symbols[itm.type]) && itm.type!='lesion' && iter>4 ){					
					var SLabel = document.createElement('span');
						Element.extend( SLabel );
						var Icon = document.createElement('img');
						Element.extend( Icon );
						Icon.src 		  = this.Symbols[itm.type].bigIcon;
						SLabel.appendChild( Icon );
						SLabel.innerHTML += itm.minute + "'";
						Div.appendChild( SLabel);
					}
					iter++;
				}.bind(this));				
			}
		
		}
	},

////////////////////////////////////////////////////////////////////////
	 
	 setButtonsEvents : function(){
		 
			 
	 },
	 ////////////////////////////////// GOALS /////////////////////////////////////
	 
	 updateGoals : function(){
		
		if( $('mxmLineUpGoals') ) {
		
			if( isNoEmpty(this.DataGameInfo.goalsLocal) || isNoEmpty( this.DataGameInfo.goalsVisit) ){
				
				
				
				$('mxmLineUpGoals').show();			
				this.updateGoalsTeam1();
				this.updateGoalsTeam2();
				return true;
				
			}else{
				
				$('mxmLineUpGoals').hide();	
				return false;
				
			}
				
		}else{
		
			return false;
		
		}
		
	 },
	 
	  updateGoalsTeam1 : function(){
		
		this.DefineGoalsContainer( 1 );
		
		if( this.MxmLineUpGoals ){
			
			if( isNoEmpty(this.DataGameInfo.goalsLocal) ){
			
			this. updateGoalsRows( this.DataGameInfo.goalsLocal );
			
			}
		
		}
		
	  },
	 
	  updateGoalsTeam2 : function(){
		
		this.Gcontainer = this.DefineGoalsContainer( 2 );		
	
		if( this.MxmLineUpGoals ){
			
			if( isNoEmpty( this.DataGameInfo.goalsVisit ) ){
			
			this.updateGoalsRows( this.DataGameInfo.goalsVisit );
			
			}
			
		}
		
	  },

	  updateGoalsRows : function( DataTeam ){
	   
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset,index){ 		
			
			var px = String(x/2);	
		
			var vColor = (x%2==1) ? 'odd' : '';				
			
			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				liga.innerHTML = rowset.number + ". " +NameTxt;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				SpanDesc0 = document.createElement('span');
				SpanDesc0.innerHTML = rowset.number + ". " +NameTxt;
			}
						 
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.Gcontainer.appendChild(TableRow);
			
			var TableCellA = document.createElement('td');					
			Element.extend( TableCellA );
			TableRow.appendChild( TableCellA );
			
			var SpanDesc = document.createElement('span');					
			Element.extend( SpanDesc );
			SpanDesc.className = 'iconsAlign';				
			
			if( isNoEmpty( this.Symbols[rowset.type] ) ) {			
				var Icon = document.createElement('img');					
				Element.extend( Icon );
				Icon.src = this.Symbols[rowset.type].bigIcon;		
				SpanDesc.appendChild( Icon );				
				SpanDesc.innerHTML += rowset.label == 'Gol de Penal' || rowset.label == 'Autogol' ? String(rowset.minute)  + "' "+ rowset.label : String(rowset.minute)  + "' ";
			}
			TableCellA.appendChild( SpanDesc );
			TableCellA.appendChild( SpanDesc0 );
		
		x++;
		
		}.bind(this));
		
	 },
	  ////////////////////////////////// PENALTIES /////////////////////////////////////
	 updatePenalties : function(){		 
		 if( $('MxmLineUpPenalties') ) {
		
			if( isNoEmpty(this.DataGameInfo.PenaltiesLocal) || isNoEmpty( this.DataGameInfo.PenaltiesVisit) ){
				$('MxmLineUpPenalties').show();			
				this.updatePenaltiesTeam1();
				this.updatePenaltiesTeam2();
				return true;
				
			}else{				
				$('MxmLineUpPenalties').hide();	
				return false;				
			}
				
		}else{		
			return false;		
		}		
	 },
	 
	updatePenaltiesTeam1 : function(){
		this.Gcontainer = this.DefinePenaltiesContainer( 1 );		
		if( this.MxmLineUpPenalties ){			
			if( isNoEmpty( this.DataGameInfo.PenaltiesLocal ) ){			
				this.updatePenaltiesRows( this.DataGameInfo.PenaltiesLocal );			
			}			
		}
	},
	
	updatePenaltiesTeam2 : function(){
		this.Gcontainer = this.DefinePenaltiesContainer( 2 );		
		if( this.MxmLineUpPenalties ){			
			if( isNoEmpty( this.DataGameInfo.PenaltiesVisit ) ){			
				this.updatePenaltiesRows( this.DataGameInfo.PenaltiesVisit );			
			}			
		}
	},
	
	updatePenaltiesRows : function( DataTeam ){
		
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset,index){ 		
			
			var px = String(x/2);	
		
			var vColor = (x%2==1) ? 'odd' : '';

			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				liga.innerHTML = rowset.number + ". " +NameTxt;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				SpanDesc0 = document.createElement('span');
				SpanDesc0.innerHTML = rowset.number + ". " +NameTxt;
			}
						 
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.Gcontainer.appendChild(TableRow);
			
			var TableCellA = document.createElement('td');					
			Element.extend( TableCellA );
			TableRow.appendChild( TableCellA );
			
			var SpanDesc = document.createElement('span');					
			Element.extend( SpanDesc );
			SpanDesc.className = 'iconsAlign';	
			
			if( isNoEmpty( this.Symbols[rowset.type] ) ) {
			
				var Icon = document.createElement('img');					
				Element.extend( Icon );
				Icon.src = this.Symbols[rowset.type].bigIcon;		
				SpanDesc.appendChild( Icon );			 
			}
			TableCellA.appendChild( SpanDesc );
			TableCellA.appendChild( SpanDesc0 );
		
		x++;
		
		}.bind(this));
		
	},
	  ////////////////////////////////// AMONESTADOS /////////////////////////////////////
	 
	 showPenalized : function(){
		
		if( $('PenalizedContainer') ){
			  
			if( isNoEmpty( this.DataGameInfo.lineUpLocal.penalization ) || isNoEmpty( this.DataGameInfo.lineUpVisit.penalization ) ){
				
				$('PenalizedContainer').show();
				return true;
				 
			}else{
				
				$('PenalizedContainer').hide();
				return false;		
				
			}
			
			
		}else{
			
		return false;
		
		}
		
	 },	 

	 
	 updatePenalized : function(){
			
			if( this.showPenalized() ){
			
				this.updatePenalizedTeam1();
				this.updatePenalizedTeam2();
			
			}
			
			
			
	 },
	 
	  updatePenalizedTeam1 : function(){
		
		this.DefinePenalizedContainer( 1 );	
		
		
			if( isNoEmpty( this.DataGameInfo.lineUpLocal.penalization ) ) {
			
				this.updatePenalizedRows( this.DataGameInfo.lineUpLocal.penalization );
		
			}
		
		
	  },
	 
	  updatePenalizedTeam2 : function(){
		
		this.DefinePenalizedContainer( 2 );	
		
	
		if( isNoEmpty( this.DataGameInfo.lineUpVisit.penalization ) ) {
		
			this.updatePenalizedRows( this.DataGameInfo.lineUpVisit.penalization
									 );
		
		}
		
	  },


	  updatePenalizedRows : function( DataTeam ){
	
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset,index){

			var vColor = (x%2==1) ? 'odd' : '';
						
			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				liga.innerHTML = rowset.number + ". " +NameTxt;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
					if(Object.isUndefined(rowset.nickName))
						NameTxt=rowset.longName;
					else
						NameTxt=rowset.nickName;

				SpanDesc0 = document.createElement('span');
				SpanDesc0.innerHTML = rowset.number + ". " +NameTxt;
			}
						 
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.Pcontainer.appendChild(TableRow);
			
			var TableCellA = document.createElement('td');					
			Element.extend( TableCellA );
			TableCellA.className = '';
			
			var SpanDesc= document.createElement('span');					
			Element.extend( SpanDesc );
			SpanDesc.className = 'iconsAlign';
			
			this.createPenalizedFlags(SpanDesc,rowset.actions);
			TableRow.appendChild( TableCellA );
			TableCellA.appendChild(SpanDesc);
			TableCellA.appendChild(SpanDesc0);
		
		x++;
		
		}.bind(this));
		
	 },
	 
	  createPenalizedFlags : function(Span,actions){
		 
		   if( isNoEmpty( actions ) ){
		 
		     actions.each(function(rowset) {
				var SpanDesc = document.createElement('span');					
				Element.extend( SpanDesc );				
				var Icon = document.createElement('img');					
				Element.extend( Icon );
				Icon.src = Symbology[rowset.type].bigIcon;		
				SpanDesc.appendChild( Icon );				
				SpanDesc.innerHTML += String(rowset.minute) + "'";

				Span.appendChild( SpanDesc );
				
			   });
		
		  }
	 },
	 
	  ////////////////////////////////// EXPULSADOS /////////////////////////////////////
	 
	 showExpelled : function(){		 
		
		if( $('ExpelledContainer')  ){
			
			
		
			if( isNoEmpty(this.DataGameInfo.lineUpLocal.expelled ) || isNoEmpty( this.DataGameInfo.lineUpVisit.expelled ) ){
				
				$('ExpelledContainer').show();
					return true;
					
			}else{
				
				
			$('ExpelledContainer').hide();				
			return false;
				
			}
		
		}else{
			
			return false;
			
		}
		
	 },	 
	 
	 updateExpelled : function(){
			
		   if( this.showExpelled() ) {
			  
				this.updateExpelledTeam1();
				this.updateExpelledTeam2();
			
		   }
			
	 },
	 
	 
	  updateExpelledTeam1 : function(){
		
		this.DefineExpelledContainer( 1 );	
		
		if( isNoEmpty(this.DataGameInfo.lineUpLocal.expelled) ){
			
			this.updateExpelleddRows( this.DataGameInfo.lineUpLocal.expelled );
			
		}
		
	  },
	 
	   updateExpelledTeam2 : function(){
		
		this.DefineExpelledContainer( 2 );		
		
		if( isNoEmpty( this.DataGameInfo.lineUpVisit.expelled  ) ){
		
			this.updateExpelleddRows( this.DataGameInfo.lineUpVisit.expelled );
			
		}
		
	  },


	  updateExpelleddRows : function( DataTeam ){
	   
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset,index){
			
			var vColor = (x%2==1) ? 'odd' : '';
						
			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;

				liga.innerHTML = typeof(rowset.number)!='undefined'? rowset.number + ". " +NameTxt : "D.T. " +rowset.longName;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
				SpanDesc0 = document.createElement('span');
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;
				
				SpanDesc0.innerHTML = typeof(rowset.number)!='undefined'? rowset.number + ". " +NameTxt : "D.T. " +rowset.longName;
			}
						 
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.Excontainer.appendChild(TableRow);
			
			var TableCellA = document.createElement('td');					
			Element.extend( TableCellA );
			TableCellA.className = '';			
			TableRow.appendChild( TableCellA );
			
			var SpanDesc = document.createElement('span');					
			Element.extend( SpanDesc );
			SpanDesc.className = 'iconsAlign';
			
			var Icon = document.createElement('img');					
			Element.extend( Icon );
			Icon.src = this.Symbols[rowset.type].bigIcon;		
			SpanDesc.appendChild( Icon );
			SpanDesc.innerHTML += String(rowset.minute)  + "' ";

			TableCellA.appendChild( SpanDesc );
			TableCellA.appendChild( SpanDesc0 );			
		
		x++;
		
		}.bind(this));
		
	 },
	 
	 
	 ////////////////////////////////// PROMEDIO EN CANCHA /////////////////////////////////////
	 
	AveregeExist : function( rowset ){
		
		var arAverge = new Array();
		
		var Averge = $H( rowset );
		Averge.each(function(itm,idx){
							   		
			if( itm[1] != '' && itm[1] != 0 ) {
			
				arAverge.push( itm[1] );				
				
			}
		
		}.bind(this));		
		
		return arAverge.length > 0 ? true : false;
		
	},
	 
	showAveregeTable : function(){
		
		if( $('mxmAvergerContainer') ){
			
			var ALocal = isNoEmpty(this.DataGameInfo.lineUpLocal.averege) && this.AveregeExist( this.DataGameInfo.lineUpLocal.averege );
			var AVisit = isNoEmpty(this.DataGameInfo.lineUpVisit.averege) && this.AveregeExist( this.DataGameInfo.lineUpVisit.averege );
			
			if( (ALocal || AVisit) ){
				
				return true;
				
			}else{
					
					$('mxmAvergerContainer').hide();
					return false;
			}
				
		}else{
			
			return false;
			
		}
		
	},
	
	updateAverege : function(){
		
		if( this.showAveregeTable() ) {
		
			$('mxmAverNameTeam1').update( this.DataGameInfo.lineUpLocal.name );
			$('mxmAverfeAgeTeam1').update( this.DataGameInfo.lineUpLocal.averege.Edad.toFixed(2) );
			$('mxmAverfeEheightTeam1').update( this.DataGameInfo.lineUpLocal.averege.Estatura.toFixed(2) );
			$('mxmAverfeWeightTeam1').update( this.DataGameInfo.lineUpLocal.averege.Peso.toFixed(2) );
			$('mxmAverDebugTeam1').update( this.DataGameInfo.lineUpLocal.averege.Edad.toFixed(2) );
		
			$('mxmAverNameTeam2').update( this.DataGameInfo.lineUpVisit.visit );
			$('mxmAverfeAgeTeam2').update( this.DataGameInfo.lineUpVisit.averege.Edad.toFixed(2) );
			$('mxmAverfeEheightTeam2').update( this.DataGameInfo.lineUpVisit.averege.Estatura.toFixed(2) );
			$('mxmAverfeWeightTeam2').update( this.DataGameInfo.lineUpVisit.averege.Peso.toFixed(2) );
			$('mxmAverDebugTeam2').update( this.DataGameInfo.lineUpVisit.averege.debut.toFixed(2) );
			
		}
		
	
	 },
	 
	
	 ////////////////////////////////// AUSENTES /////////////////////////////////////
	 
	  showAusentes : function(){
		
		if( $('AusentesContainer') || ( $('MxMLineUpAusentsTeam1') || $('MxMLineUpAusentsTeam2') ) ){
		
	
			
			if( !isNoEmpty(this.DataGameInfo.lineUpLocal.ausentes ) && !isNoEmpty(this.DataGameInfo.lineUpVisit.ausentes ) ){
				
				$('AusentesContainer').hide();
				$('MxMLineUpAusentsTeam1').hide();
				$('MxMLineUpAusentsTeam2').hide();
				
				return false;
			
			}else{
			
				$('AusentesContainer').show();
				$('MxMLineUpAusentsTeam1').show();
				$('MxMLineUpAusentsTeam2').show();
				
				return true;
				
			}
			
		}else{
	
			return false;	
		
		}
		
	 },	 
	 
	 updateAusents : function(){
			
		if( this.showAusentes() ){
			
			this.updateAusentsTeam1();
			this.updateAusentsTeam2();
		
		}
			
	 },
	 
	 updateAusentsTeam1 : function(){
		
		if( isNoEmpty( this.DataGameInfo.lineUpLocal.ausentes ) ) {
		
		
			this.DefineUsentsContainer( 1 );		
			this.updateAusentesRows( this.DataGameInfo.lineUpLocal.ausentes );
		
		}
		
		
		
	},
	
	updateAusentsTeam2 : function(){
		
		if( isNoEmpty( this.DataGameInfo.lineUpVisit.ausentes ) ) {
			
			this.DefineUsentsContainer( 2 );			
			this.updateAusentesRows( this.DataGameInfo.lineUpVisit.ausentes );
		
		}
		
	},
	
	
	updateAusentesRows : function( DataTeam ){
		
		var x = 0;
		var NameTxt='';
		DataTeam.each(function(rowset,index){ 		
			
			var px = String(x/2);	
	
			var vColor = ( px ).length == 1 ? '' : 'odd';
			
			if(isNoEmpty(rowset.url)){
				liga = document.createElement('a');	
				liga.href=this.domStats+rowset.url;
				liga.target="_blank";
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;

				liga.innerHTML = typeof(rowset.number)!='undefined'? rowset.number + ". " +NameTxt : "D.T. " +rowset.longName;
				SpanDesc0 = document.createElement('span');
				SpanDesc0.appendChild(liga);
			}
			else
			{
				SpanDesc0 = document.createElement('span');
				if(Object.isUndefined(rowset.nickName))
					NameTxt=rowset.longName;
				else
					NameTxt=rowset.nickName;

				SpanDesc0.innerHTML = typeof(rowset.number)!='undefined'? rowset.number + ". " +NameTxt : "D.T. " +rowset.longName;
			}		
						 
			var TableRow = document.createElement('tr');					
			Element.extend(TableRow);
			TableRow.className = vColor;
			TableRow.id 	   = '';		
			this.Acontainer.appendChild(TableRow);
			
			var TableCellA = document.createElement('td');					
			Element.extend( TableCellA );			
			TableRow.appendChild( TableCellA );

			var TableCellB = document.createElement('td');
			TableCellB.className = 'center';
			Element.extend( TableCellB );			
			TableRow.appendChild( TableCellB );
						
			this.createAustentsFlags( TableCellB , rowset.actions);
			TableCellA.appendChild( SpanDesc0 );

		x++;

		}.bind(this));
		
	 },
	 
	 createAustentsFlags : function(TableCellB,actions){
		 
		  if( isNoEmpty( actions ) ){
		 
		 actions.each(function(rowset) { 				
				
				var rlabelB   = isNoEmpty(rowset.type) ? Symbology[rowset.type].smallIcon : null;
				var Card = document.createElement('img');					
				Element.extend( Card );
				Card.src = rlabelB;	
				TableCellB.appendChild( Card );
			
		   });
		
		  }
	 },
	 
	 
	 /////////////////////////////////////////////////////////////////////
	 
	 createActionsPlayers : function( subs ){
		 
		var extras  = new Array();
			subs.each(function( itm, idx ){ 
				
					if( isNoEmpty(itm.actions) ) {
						
						extras.push(itm);
						
					}
					
			}); 
			
			return extras;
		 
	 },
	 
	 linupWithActions : function( mode ){
		 
		 switch( mode ){
			
			case 'local':
			
				var base  = this.DataGameInfo.lineUpLocal.team;
				var subs = this.DataGameInfo.lineUpLocal.substitutes;					
				var extras = this.createActionsPlayers( subs );
					
			 return array_merge(base,extras);
			 
			 
			break;
			
			case 'visit':
			
				var base  = this.DataGameInfo.lineUpVisit.team;
				var subs =  this.DataGameInfo.lineUpVisit.substitutes;
				
				var extras = this.createActionsPlayers( subs );
				
				return array_merge(base,extras);
				
			break;
			 
			 
		 }
		 
		 
		 
		 
	 },
	 
	 

	///////////////////REFRESH HISTORY LINEUPS//////////////////////////
	
	/*
	* DefineHistoryLineUps 
	* Define los manejadores de ventos de los botons
	* de next back
	*/
	DefineHistoryLineUps : function(){
			
			if( this.prevable ){				
	
			this.Team1History = -1;
			this.Team2History = -1;
	
			this.AlocalTeam 	= this.DataGameInfo.PrevLineUps.localTeam;
			
			this.ALHistoryCount =  this.AlocalTeam.length - 1;
			
			this.AvisitTeam     = this.DataGameInfo.PrevLineUps.visitTeam;
			
			this.AVHistoryCount =  this.AvisitTeam.length - 1;
			
			this.HandOnGetPrevHistoryLine = this.getPrevHistoryLine.bindAsEventListener(this,this.AlocalTeam,'Team1History',1);
			this.HandOnGetNextHistoryLine = this.getNextHistoryLine.bindAsEventListener(this,this.AlocalTeam,'Team1History',1);
			this.HandOnGetActual      	  = this.getActualLineUp.bindAsEventListener(this,'local','Team1History','MxMLineUpTeam1',1);
			
			this.HandOnGetPrevHistoryLine2 = this.getPrevHistoryLine.bindAsEventListener(this,this.AvisitTeam,'Team2History',2);
			this.HandOnGetNextHistoryLine2 = this.getNextHistoryLine.bindAsEventListener(this,this.AvisitTeam ,'Team2History',2);
			this.HandOnGetActual2      	   = this.getActualLineUp.bindAsEventListener(this,'visit','Team2History','MxMLineUpTeam2',2);
			
			stt = this.DataGameInfo.status=="Previo" ? "Probale" : this.DataGameInfo.week;
			$('MxMLineUpTeam1BtActual').update( stt );
			$('MxMLineUpTeam2BtActual').update( stt );
			
			if( this.DataGameInfo.PrevLineUps.localTeam.length != 0   ) {
				
				//Team 1
				
				$('MxMLineUpTeam1BtActual').href = "javascript:;";
				Event.observe('MxMLineUpTeam1BtBack','click',this.HandOnGetPrevHistoryLine);				
				Event.observe('MxMLineUpTeam1BtNext','click',this.HandOnGetNextHistoryLine);
				Event.observe('MxMLineUpTeam1BtActual','click',this.HandOnGetActual);
			
			}else{
				
				$('MxMLineUpTeam1BtBack').setStyle({ opacity: 0 });
				$('MxMLineUpTeam1BtNext').setStyle({ opacity: 0 });
			}
				
				
				
				if( this.DataGameInfo.PrevLineUps.visitTeam.length !=  0  ) {
					//Team 2
					
					$('MxMLineUpTeam2BtActual').href = "javascript:;";
					Event.observe('MxMLineUpTeam2BtBack','click',this.HandOnGetPrevHistoryLine2);				
					Event.observe('MxMLineUpTeam2BtNext','click',this.HandOnGetNextHistoryLine2);					
					Event.observe('MxMLineUpTeam2BtActual','click',this.HandOnGetActual2);
									
				}else{
					
					$('MxMLineUpTeam2BtBack').setStyle({ opacity: 0 });					
					$('MxMLineUpTeam2BtNext').setStyle({ opacity: 0 });
					
				}
			
			}
				
			
	},
	
	
		/*
		* Lee la data array de las rows anteriores
		*
		*
		*/
		getActualLineUp : function(event,mode,TeamHistory,Bt,status){
			
			this[TeamHistory] = 0;
			
			['BtBack','BtNext'].each(function(itm,idx){
				
				$(Bt+itm).setStyle({textDecoration :'underline', color:'#000', cursor:'pointer'});
																														
			});
			
			this.History = this.DataGameInfo;	
			this.setActualData (mode,status);
			
			
		},
		
		setActualData : function( mode, status ){
				
				this.loadNewLineUp( mode, status);

		},


		/*
		* Lee la data array de las rows anteriores
		*
		*
		*/
		getNextHistoryLine : function( event, Source , TeamHistory, status){
			if(this[TeamHistory]-1 >= -1)
			{				
				this[TeamHistory]--;
				if( typeof(BBtHideNav) != 'undefined' )					
					BBtHideNav.setStyle({textDecoration :'underline', color:'#000', cursor:'pointer'});
				NBtHideNav = event.element();
				if(this[TeamHistory]==-1)
				{	
					this.History = this.DataGameInfo;
					mode = status==1 ? 'local' : 'visit';
					this.loadNewLineUp(mode,status);
					NBtHideNav.setStyle({textDecoration :'none', color:'#ccc', cursor:'default',border:0});
				}
				else
				{					
					this.refreshLineUp( Source[ this[TeamHistory] ] , status);
				}
			}			
		},
		
		getPrevHistoryLine : function( event , Source , TeamHistory , status ){				
				var HistoryCount = Source.length;				
				if(HistoryCount > this[TeamHistory]+1)
				{
					this[TeamHistory]++;									
					if( HistoryCount  >  this[TeamHistory]  ){
						this.refreshLineUp( Source[ this[TeamHistory] ] , status);					
						NBtHideNav=$('MxMLineUpTeam'+status+'BtNext');
						if( typeof(NBtHideNav) != 'undefined'  )
							NBtHideNav.setStyle({textDecoration :'underline', color:'#000', cursor:'pointer'});
					 }				
					BBtHideNav = event.element();
					if( HistoryCount == this[TeamHistory]+1)
						BBtHideNav.setStyle({textDecoration :'none', color:'#ccc', cursor:'default',border:0});
				}
						
		},
		
		
		refreshLineUp : function( Row , status ){
			
			
			this.HandLoadNewLineUp = this.setHistoryData.bindAsEventListener(this,Row.mode,status);			
			new Ajax.Request(Row.url +'?'+ this.noCacheJs(),{
					method:'get',
					onComplete :this.HandLoadNewLineUp
			});			
			
		},
		
		setHistoryData : function( request, mode, status ){
				
				this.History = this.DefineData( request );				
				this.loadNewLineUp( mode, status);
		},
		
		loadNewLineUp : function( mode, status){
				
				this.DefineLineUpContainer( status );						
				this.container.update('');
				
				mode = mode.capitalize();
				
				this.MStatus = status;
				this.MMode   = mode;
				
				this.HistoryTeam = this.History['lineUp'+mode];
				this.HistoryWeek = this.History['week'];
				this.DataTeam    = this.HistoryTeam.team;	
				this.DataTeamAu  = this.HistoryTeam.ausentes;
				
				
				this.refreshHistory( this.HistoryTeam, this.HistoryWeek);			
			 	this.updateLineUpRows( this.DataTeam );	
				this.createRowCoach( this.HistoryTeam.coach );
				this.createRowsSubstitutes( this.createActionsPlayers(this.HistoryTeam.substitutes) , status);
		},
		
		refreshHistory : function( Data, HistoryWeek ){
				
				if( this.AMode ) {
				
					$('MxMLineUpDescriptionTeam'+this.MStatus).update( Data.description.toUpperCase() );
					$('MxMLineUpTeam'+this.MStatus+'LocalName').update( Data.name );
					$('MxMLineUpTeam'+this.MStatus+'VisitName').update( Data.visit );
					$('MxMLineUpTeam'+this.MStatus+'GoalsFinal').update( Data.goals.local +" - "+ Data.goals.visit );					
					$('MxMLineUpTeam'+this.MStatus+'BtActual').update( HistoryWeek );
				
				}
				
		},
		
///////////////////////////////////////////////////////////////////////////////////////////////

	
	loadField : function(){
		
		if( this.Fieldble ) {
			
			this.ILoader.fade();
			
			$('mxmFieldFormationLocal').update( this.DataGameInfo.lineUpLocal.formacion);
			$('mxmFieldFormationVisit').update( this.DataGameInfo.lineUpVisit.formacion);				
			
			var LocalSub = isNoEmpty(this.DataGameInfo.lineUpLocal.substitutes) ?  this.DataGameInfo.lineUpLocal.substitutes : new Array() ;
			var VisitSub = isNoEmpty(this.DataGameInfo.lineUpVisit.substitutes) ? this.DataGameInfo.lineUpVisit.substitutes : new Array();
			
			this.DH = array_merge(
								  this.DataGameInfo.lineUpLocal.team,
								  LocalSub,
								  this.DataGameInfo.lineUpVisit.team,
								  VisitSub);
			try{InstoolExt.hide();}catch(e){}
			this.UIField.BuildLineUp();		 
		}
		
	}
 })
