function popupRadio()
{
	var scrollbars = "no";
	var width = 320;
	var height = 260;
	var left = ((screen.width - 10)/2) - width/2;
	var top = ((screen.height - 56)/2) - height/2; 
	var ventana = window.open("", "", "scrollbars=" + scrollbars + ",  left=" + left + ", top=" + top + ", width=" + width + ", height=" + height);
	ventana.document.write('<html><head><title>Radio en vivo</title></head><body style="margin:0;"><embed flashvars="autoplay=false" width="320" height="260" allowfullscreen="false" allowscriptaccess="always" src="http://www.ustream.tv/flash/live/250524" type="application/x-shockwave-flash" /></body></html>');
}

function changeOption(option)
{
	if(option.id == 'op_sel'){
		return;
	}
	document.getElementById('op_sel').id = '';
	option.id = 'op_sel';
}

function getTag(id)
{
	return document.getElementById(id);
}

function switchTag(id)
{
	var old_display = getTag(id).style.display;
	getTag(id).style.display = (old_display == 'block') ? 'none' : 'block';
	return (old_display == 'block') ? false : true;
}

// seudo clase Indicador de Carga
var LI = function()
{
	this.indicator = document.createElement('div');
	this.indicator.id				= 'divLI';
	this.indicator.style.position	= 'absolute';
	this.indicator.style.width		= '125px';
	this.indicator.style.height		= '14px';
	this.indicator.style.border		= '1px solid #F9F7ED';
	this.indicator.style.borderTop	= 'none';
	this.indicator.style.backgroundColor = '#FF7400';
	this.indicator.style.color		= '#F9F7ED';
	this.indicator.style.fontFamily	= 'Verdana, Arial, Helvetica, sans-serif';
	this.indicator.style.fontSize 	= '10px';
	this.indicator.style.padding	= '2px';
	this.indicator.innerHTML		= 'Espere por favor...';
	
	this.showed = false; // indicador mostrado

	this.moreShow = '';
	this.moreHide = '';

	this.show = function()
	{
		//if(!this.showed){
		if(document.getElementById(this.indicator.id) == null){
			this.indicator.style.left	= (document.documentElement.clientWidth - 131)/2 + 'px';
			this.indicator.style.top	= document.documentElement.scrollTop + 'px';
			document.body.appendChild(this.indicator);
			this.showed = true;
		}
		eval(this.moreShow);
		this.moreShow = '';
	}
	
	this.move = function()
	{
		if(this.showed){
			this.indicator.style.left	= (document.documentElement.clientWidth - 131)/2 + 'px';
			this.indicator.style.top	= document.documentElement.scrollTop + 'px';
		}
	}

	this.hide = function()
	{
		if(document.getElementById(this.indicator.id) != null/*this.showed*/){
			document.body.removeChild(this.indicator);
			this.showed = false;
		}
		eval(this.moreHide);
		this.moreHide = '';
	}

	this.add = function(showcode, hidecode)
	{
		this.moreShow += (showcode + '\n');
		this.moreHide += (hidecode + '\n');
	}
}

/// seudo clase FORM
var FORM = function(form)
{
	this.form = form;
	this.disablings = new Array();
	
	this.getArgs = function()
	{
		var form = this.form;
		var vars = new Array();
		var values = new Array();
		var k = 0; // indice de vars y values, se incrementa solo cuando el elemento es válido
			
		for(var i = 0; i < form.elements.length; i++){		
			if(form.elements[i].tagName == "INPUT"){
				if(form.elements[i].type == "text" || form.elements[i].type == "hidden" || form.elements[i].type == "password"){
					vars[k] = form.elements[i].name;
					values[k] = form.elements[i].value;
					k++;
				}
				if(form.elements[i].type == "checkbox"){
					if(form.elements[i].checked){
						vars[k] = form.elements[i].name;
						values[k] = form.elements[i].value;
					}
					else{
						vars[k] = form.elements[i].name;
						values[k] = "";
					}
					k++;
				}
				if(form.elements[i].type == "radio"){
					if(form.elements[i].checked){
						vars[k] = form.elements[i].name;
						values[k] = form.elements[i].value;
						k++;
					}
				}
			}
			if(form.elements[i].tagName == "SELECT"){
				var sel = form.elements[i];
				if(sel.type != "select-one"){
					for(j = 0; j < sel.options.length; j++){
						if(sel.options[j].selected){
							vars[k] = sel.name + "[]";
							values[k] = sel.options[j].value;
							k++;
						}
					}
				}
				else{
					vars[k] = sel.name;
					values[k] = sel.options[sel.selectedIndex].value;
					k++;
				}		
			}
			if(form.elements[i].tagName == "TEXTAREA"){
				vars[k] = form.elements[i].name;
				values[k] = form.elements[i].value;
				k++;
			}
		} // end for
		
		var args = new Array();
		for(i = 0; i < k; i++){
			values[i] = escape(values[i]);
			args[i] = vars[i] + "=" + values[i];
		}
		
		return args.join('&');
	} // en getArgs
	
	this.disable = function()
	{
		var form = this.form;
		for(i = 0; i < form.elements.length; i++){
			this.disablings[i] = form.elements[i].disabled;
			form.elements[i].disabled = true;
		}
	} // end disable
	
	this.enable = function()
	{
		var form = this.form;
		for(i = 0; i < form.elements.length; i++){
			form.elements[i].disabled = this.disablings[i];
		}
	} // end enable
	
	this.clean = function()
	{
		var form = this.form;
		form.reset();
	}
} // end seudo clase form

/// seudo clase ajax
var ajaxForm = null; // variable global
var ajaxInd = new LI();

function moveAjaxInd()
{
	ajaxInd.move();	
}

window.onscroll = moveAjaxInd;
window.onresize = moveAjaxInd;

var AJAX = function()
{
	// atributos
	var params		= arguments[0] || {};
	this.url		= params.url || 'index.php';
	this.args		= params.args || '';
	this.container 	= params.container || 'contenido';
	this.type		= params.type || 'content';
	
	// manejador
	this.req = false;
	try{
		this.req = new ActiveXObject('Msxml2.XMLHTTP');
	}
	catch(e){
		try{
			this.req = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch(e){
			this.req = false;
		}
	}
	
	if(!this.req && typeof XMLHttpRequest != 'undefined'){
		this.req = new XMLHttpRequest();
	}
	
	//////////////////////// funciones
	this.postForm = function(form)
	{
		ajaxForm = new FORM(form);
		var args = ajaxForm.getArgs();
		ajaxInd.add('ajaxForm.disable();', 'ajaxForm.enable();');
		this.getResponse({args:args, type:'script'});
	}

	this.getResponse = function()
	{
		var params	= arguments[0] || {};
		var url		= params.url || this.url;
		var args	= params.args || this.args;
		var container = params.container || this.container;
		var type	= params.type || 'content';
		
		this.post(url, args, container, type);
	}
	
	this.post = function(url, args, container, type)
	{
		var request = this.req;
		
		request.open('POST', url, true);
		request.onreadystatechange = function(){
			if(request.readyState == 1){ // conexión abierta
				ajaxInd.show(); // mostrar indicador
			}
			if(request.readyState == 4){ // data cargada
				ajaxInd.hide(); // ocultar indicador
				if(request.status == 200){
					try{ // exito
									
						if(type == 'content'){// insertar codigo
							var element = document.getElementById(container);
							element.innerHTML = request.responseText;
							
							var scripts = element.getElementsByTagName('script');
							var head	= document.getElementsByTagName('head')[0];
							
							for(var i = 0; i < scripts.length; i++){
								if (scripts[i].src){
									var scriptObj = document.createElement("script");            
									scriptObj.setAttribute("type", "text/javascript");
									scriptObj.setAttribute("src", scripts[i].src);
									head.appendChild(scriptObj);
								}
								else{
									eval(scripts[i].innerHTML);
								}
							}
							
						}
						
						if(type == 'script'){
							eval(request.responseText);
						}
					}
					catch(e){ // error de resultado
						alert('error de resultado');
						alert(request.responseText);
					}
				}
				else{ // error de conexión
					alert('Error (' + request.status + "): " + request.statusText);
				}
			}	
		} // end onreadystatechange
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(args);
	} // end post

} // end AJAX
