Event.observe(window, 'load', function() {
	// Agrega listeners para los botones del header
	addListenersHeader();
	
	if(typeof(warnUser) != 'undefined') {
		new ctAlert(false, 
				'<div style="margin:0 auto;width:415px;text-align: center">' +
					'<p>ATENCIÓN!<br/><br />Por favor verifique su selección de horarios. Los mismos pueden haber sido modificados por el sistema.' +
					' Recuerde que tendrá habilitada esta funcionalidad sólo de Jueves a Domingo. <br /><br />Muchas Gracias.</p>' +
					'<span class="link_revise" onclick="yaRevise()">Ya revise mis horarios</span>' +
				'</div>'
				
				,{
				    overlay: true
				}
		);		
	}
	
	if(/ie/.test(window.location.hash)) {
		new ctAlert(false, 
				'<div style="margin:0 auto;width:415px;text-align: center">' +
					'<p> Inscripci&oacute;n exitosa! </p>'+
				'</div>'
				
				,{
				    overlay: true
				}
		);				
	}
});

function yaRevise() {
	new Ajax.Request('/jugador/ajax_revise', {
		onSuccess : function() {
			Utils.fire('ct_alert_aceptar', 'click');
		}
	});
} 
Ajax.Responders.register({
	onException: function(request, exception) {
		(function() { throw exception; }).defer();
	}
});

function cambiarNombreFile(file, pongoOver, extencion, overName){
	if(typeof(extencion) != 'string'){
		extencion = 'png';
	}
	if(typeof(overName) != 'string'){
		overName = '_over';
	}
	var actuaFileName = file;
	if(pongoOver == true){
		var str = "\\w+\\."+extencion+"$";
		actuaFileName = actuaFileName.match(str, 'i');
		if(actuaFileName != null && actuaFileName.length > 0){
			if(actuaFileName[0].search(overName) == -1){
				var newFileName = actuaFileName[0].replace(/\./, overName+'.');
				file = file.replace(actuaFileName, newFileName);
			}
		}
	}else{
		var str = "\\w+"+overName+"\\."+extencion+"$";
		actuaFileName = actuaFileName.match(str, 'i');
		if(actuaFileName != null && actuaFileName.length > 0){
			if(actuaFileName[0].search(overName) != -1){
				var newFileName = actuaFileName[0].replace(overName+'.', '.');
				file = file.replace(actuaFileName, newFileName);
			}
		}
	}
	return file;
}
function getInternetExplorerVersion() {
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}


/**
* Returns the value of the selected radio button in the radio group, null if
* none are selected, and false if the button group doesn't exist
*
* @param {radio Object} or {radio id} el
* OR
* @param {form Object} or {form id} el
* @param {radio group name} radioGroup
*/
function $RF(el, radioGroup) {
    if($(el).type && $(el).type.toLowerCase() == 'radio') {
        var radioGroup = $(el).name;
        var el = $(el).form;
    } else if ($(el).tagName.toLowerCase() != 'form') {
        return false;
    }

    var checked = $(el).getInputs('radio', radioGroup).find(
        function(re) {return re.checked;}
    );
    return (checked) ? $F(checked) : null;
}

/*
* HEADER
*/
var misTorneo;
var misEquipos;
var miCuenta;
var misHorarios;
var misTorneos;
var inscribiteTorneo;
//alert(getInternetExplorerVersion());
function addListenersHeader() {
	 var olvideClave = new Control.Modal($('olvideClave'),{  
	     className: 'simple_window',
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var divRegistro = new Control.Modal($('divRegistro'),{  
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var misDatos = new Control.Modal($('misDatos'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		 }
	 });
	 miCuenta = new Control.Modal($('miCuenta'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 misEquipos = new Control.Modal($('misEquipos'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 misHorarios = new Control.Modal($('misHorarios'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 misTorneo = new Control.Modal($('misTorneo'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
	 	 }
	 });
	 var empresa = new Control.Modal($('link_Empresa'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	});
	 var reglamento = new Control.Modal($('link_reglamentos'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var calendario = new Control.Modal($('link_calendario'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var contactenos = new Control.Modal($('link_Contactenos'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 // menu de la seccion torneo
	 var linkNiveles = new Control.Modal($('linkNiveles'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var linkTipo = new Control.Modal($('linkTipo'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var misDescargos = new Control.Modal($('misDescargos'),{  
	     className: 'simple_window',  
	     closeOnClick: 'overlay',  
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	});
	 // header
	 var comoMeInscribo = new Control.Modal($('comoMeInscribo'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 var categoriaDeJuego = new Control.Modal($('categoriaDeJuego'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 // index > box Noticias 
	 new Control.Modal($('link_Sedes'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 new Control.Modal($('link_Pensa'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 // inscribie al torneo
	 inscribiteTorneo = new Control.Modal($('inscribiteAlTorneo'),{
	     className: 'simple_window',
	     closeOnClick: 'overlay',
	     offsetLeft: 150,
	     overlayOpacity: 0.75,
	     afterClose : function() {
		 	//window.location.href = window.location.href;
		 	hideBtnHeader();
		}
	 });
	 
	 if($('ver_cartelera')) {
		 new Control.Modal($('ver_cartelera'),{
		     className: 'simple_window',
		     closeOnClick: 'overlay',
		     offsetLeft: 150,
		     overlayOpacity: 0.75,
		     afterClose : function() {
			 	//window.location.href = window.location.href;
			 	hideBtnHeader();
			}
		 });
	 }
}

var Registrate = {
	form : 'form_registro',
	validar : function() {
		params = $(Registrate.form).serialize(true);
		new Ajax.Request('/jugador/ajax_validarRegistro.html', {
			parameters: params,
			onSuccess: function(xhr) {
				var json = xhr.responseText.evalJSON();
				if(json.status == "OK") {
					$(Registrate.form).submit();
				} else {
					Registrate.alertError(json.errorList);
				}
			}
		});
	},
	alertError : function(data) {
		var html = '';
		var i = 0;
		for(field in data) {
			html += data[field]+'<br />';
		}
		new ctAlert(false, html);
	}
};

/**
 * Administra el submit del popup
 * de horarios y sedes del jugador
 */
var Horarios = {
	form : 'formHorarios',
	validar : function() {
		params = $(Horarios.form).serialize(true);
		new Ajax.Request('/jugador/ajax_validarHorarios' , {
			parameters : params,
			onSuccess  : function(xhr) {
				var json = xhr.responseText.evalJSON();
				if(json.status == 'OK') {
					$(Horarios.form).submit();
				} else {
					Horarios.alertError(json.errorList);
				}
			}
		});
	},
	alertError : function(data) {
		var html = '';
		var i = 0;
		for(field in data) {
			html += data[field]+'<br />';
		}
		new ctAlert(false, html);
	}
}

var Inscripcion = {
	form : 'form_inscripcion',
	validar : function(form) {
		form = $(form) || $(Inscripcion.form);
		params = form.serialize(true);
		new Ajax.Request('/jugador/ajax_validarInscripcion.html', {
			parameters: params,
			onSuccess: function(xhr) {
				var json = xhr.responseText.evalJSON();				
				if(json.status == "OK") {
					form.submit();
				} else {
					Inscripcion.alertError(json.errorList);
				}
			}
		});
	},
	alertError : function(data) {
		var html = '';
		var i = 0;
		for(field in data) {
			html += data[field]+'<br />';
		}
		new ctAlert(false, html);
	},
	accionPartido : function(idJugador, idPartido, estado, select) {
		if(estado == '' || !confirm((estado == 4) ? 'ATENCIÓN!!! Te estás dando de BAJA del torneo,  recordá que si es primera ronda y estas fuera del horario reglamentario (Hasta Miércoles 20 Hs.) te quedará la deuda de este evento en tu cuenta, no dejándote seguir participando en los torneos, hasta tanto no se regularice la misma.' :'Esta seguro de realizar la accion sobre el partido')) {
			return;
		}
		//public function estado($idJugador, $idPartido, $up, $idEstado) {		
		var url = '/jugador/estado/#{idJ}/#{idP}/#{estado}'.interpolate({
			idJ: idJugador,
			idP: idPartido,
			estado: estado
		});
		
		new Ajax.Request(url, {
			onSuccess : function(xhr) {
				var json = xhr.responseText.evalJSON();
				if(json.ok.toLowerCase() == 'ok') {
					select.disable();
				}else{
					new ctAlert(false, "No se pudo confirmar");
				}
			}
		});
	}
};

var ctAlert = Class.create({
	initialize : function(status, message, options) {
	
		this.options = Object.extend({
			afterClose : Prototype.emptyFunction,
			beforeOpen : Prototype.emptyFunction,
			overlayID : 'teh_overlay',
			overlay : false
		}, options || {});
		
		this.status 	= status;
		this.message 	= message;
		this.create();
		this.open();
	},
	open : function() {
		if(this.options.overlay) {
			this.setOverlay(true);
		}
		$('ct_alert_aceptar').observe('click', this.close.bindAsEventListener(this , 'btn'));
		$('control_overlay').observe('click', this.close.bindAsEventListener(this , 'overlay'));
		$('ct_alert').show();
	},
	close : function(ev , option) {
		if(option == 'btn')     { $('ct_alert_aceptar').stopObserving('click', this.close); }
		if(option == 'overlay') { $('control_overlay').stopObserving('click', this.close); }
		if($('ct_alert'))       { $('ct_alert').remove(); }
		try {
			this.options.afterClose();
		}catch(e) {}
		if(this.options.overlay) {
			this.setOverlay(false);
		}
	},
	setOverlay : function(show) {
		if(!$(this.options.overlayID)) {
			var ov = new Element('div', {
				id : this.options.overlayID,
				style : 'position: fixed; top: 0px; left: 0px; z-index: 999; display: none'
			});
			$$('body')[0].insert(ov);
			$(this.options.overlayID).setStyle({
				height: document.viewport.getHeight()+'px',
				width: document.viewport.getWidth()+'px'
			});
		}
		
		if(show) {
			$(this.options.overlayID).show();
		} else {
			$(this.options.overlayID).hide();
		}
	},
	create : function() {
		if($('ct_alert')) {
			$('ct_alert').remove();
		}
		
		var wrapper = new Element('div', { id: 'ct_alert' });
		wrapper.addClassName('ct_alert_body');
		var header = new Element('div' , { 'class' : 'ct_alert_header'});
		wrapper.insert(header);
		var content = new Element('div', { 'class' : 'ct_alert_content'}).update(this.message);
		wrapper.insert(content);
		var footer = new Element('div' , { 'class' : 'ct_alert_footer'});
		wrapper.insert(footer);
		
		var botonera = new Element('div', { 'class' : 'ct_alert_botonera' });		
		botonera.insert('<div id="ct_alert_aceptar"></div>');
		content.insert(botonera);
		
		wrapper.identify();
		var id = wrapper.id;
		$$('body')[0].insert(wrapper);
		
		this.element = $(id);
		this.elementDimensions = {
			height : this.element.getDimensions().height,
			width :	this.element.getDimensions().width
		};
		this.element.setStyle({
			'top' : 	(document.viewport.getDimensions().height - this.elementDimensions.height) / 2 + 'px',
			'left' : 	(document.viewport.getDimensions().width - this.elementDimensions.width) / 2 + 'px'
		});
	}
});

var Utils = {
	fire : function(element_id, evName) {
		if(Prototype.Browser.IE){
			$(element_id).fireEvent('on'+evName);
		} else {
			var evt = document.createEvent('HTMLEvents');
			evt.initEvent(evName, true, true);
			$(element_id).dispatchEvent(evt);
		}
	}
};

var Publicidad = {
	OpenLink: function(idPub, link){
		window.open(_base_url+'publicidad/go/'+idPub+'?'+link);
		return false;
	}
};

function goToPerfilJugador(idJugador){
	window.open(_base_url + 'jugador/ver/'+idJugador+'.html', '_blank');
	return false;
}

puntaje_show = function(type) {
	if(type == 'SE') {
		$('wrapper_SE').setStyle({
			'height': '520px'
		});

		$('wrapper_CC').setStyle({
			'height': '30px'
		});
		$('sub_wrapper_SE').show();
		$('sub_wrapper_CC').hide();				
	} else if(type == 'CC') {
		$('wrapper_SE').setStyle({
			'height': '30px'
		});

		$('wrapper_CC').setStyle({
			'height': '520px'
		});

		$('sub_wrapper_CC').show();
		$('sub_wrapper_SE').hide();			
	}
};

function display_ajax_modal(url, options) {
	options = options || {};
	
	options.afterClose = function(modal) {
		modal.container.remove();
	}
	
	var random 	= Math.floor(Math.random()*1001);
	var m_id 	= 'launchModal_'+random;
	
	if(url.lastIndexOf('&') != -1) {
		url += '?r='+random;
	} else {
		url += '&r='+random;		
	}
	var link = new Element('a', { href: url, style: 'display: none', id: m_id });
		
	$$('body div')[0].insert(link);
	var temp = new Control.Modal($(document.body).down('[href='+url+']'), options);
	
	if(Prototype.Browser.IE){
	   $(m_id).fireEvent('onClick');
	} else {
	   var evt = document.createEvent('HTMLEvents');
	   evt.initEvent('click', true, true);
	   $(m_id).dispatchEvent(evt);
	}
	$(m_id).remove();	
}
