/*
///AJAXobj.js by Josware
///Credits always appreciated, vato.
*/



function cnx(uri)
	{
	try
	{
		var XMLHttp = false;

		if(window.XMLHttpRequest)
		{
			XMLHttp = new XMLHttpRequest()
			return XMLHttp;
		}
		else if (window.ActiveXObject)
		{
		var versiones = ["Msxml2.XMLHTTP.7.0","Msxml2.XMLHTTP.6.0",
						  "Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0",
						  "Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP",
						  "Microsoft.XMLHTTP"];
			for (var i=0; i<versiones.length; i++)
			{
				try
				{	//BUG explorer 6 (que raro)
					//Una suerte que antes de ser AJAX era 1.0, so la pagina soporta cargar el video
					var leVid = uri.substring(24);
					if(i>0){window.location =  leVid;}
					XMLHttp = new ActiveXObject(versiones[i]);
					if (XMLHttp)
					{
						//En debug te dice que XMLHTTP esta devolviendo: alert(versiones[i]);
						return XMLHttp
						break;
					}
				}
			catch (e) {};
			}
				if(!XMLHttp)
				{
					alert('No se pudo iniciar la instancia');
					return null
				}
		}

	}
	catch(e){ 
			var custom = '';
			sender = "funcion cnx"; errhnd(e, sender, custom); 
		}
	}

//----------------------------------------------------------------------------------------------------

	function testload ()
	{
	try
	{
		if (this.div != null) 
		{
			var refDiv = document.getElementById(this.div);
			refDiv ? refDiv.innerHTML = 'Cargando' : alert('NO EXISTE un elemento con el id especificado en: ' + this.name)
		}
		else
		{
			alert('NO se ha ESPECIFICADO div para: ' + this.name);
		}
		
		this.xcnx.onreadystatechange=maneja
		this.xcnx.open('GET', this.url, true)
		this.xcnx.send(null);
		
	}
	catch(e){ 
			var custom = 'Revisa que el ID del div esta ANTES de que lo mandas llamar';
			sender = "funcion testload"; errhnd(e, sender, custom); 
		}
	}
//----------------------------------------------------------------------------------------------------

	function AJAXobj(name, div, uri)
	{
	try
	{
		this.xcnx = new cnx(uri);
		this.load = testload;
		this.name = name;
		this.rpl = null;
		this.stat = null;
		this.show = muestra;
		this.div = div;
		this.url = uri;

	}
	catch(e){ 
			var custom = '';
			sender = "funcion AJAXobj"; errhnd(e, sender, custom); 
		}
	}



//----------------------------------------------------------------------------------------------------

	function maneja()
	{
	try
	{
		if(this.readyState == 4) 
		{

			return this.responseText
			
		}
		else
		{
			return this.readyState
		}
	}
	catch(e){ 
			var custom = '';
			sender = "funcion maneja"; errhnd(e, sender, custom); 
		}
	}

//----------------------------------------------------------------------------------------------------

function muestra (refOBJ) 
	{
	try
	{

		if(refOBJ.xcnx.readyState == 4) 
		{
			var refDiv = document.getElementById(refOBJ.div);
			//Con prototype: var refDiv = $(refOBJ.div);
			refDiv.innerHTML = refOBJ.xcnx.responseText;
		}
		else
		{
			var refDiv = document.getElementById(refOBJ.div);
			//Con prototype: var refDiv = $(refOBJ.div);
			refDiv.innerHTML += '.';
			var delay = 100;
			setTimeout( function() {muestra(refOBJ)}, delay)
		}
	}
	catch(e){ 
			var custom = '';
			sender = "funcion muestra"; errhnd(e, sender, custom); 
		}
	}

//----------------------------------------------------------------------------------------------------



function errhnd(e, sener, custom)
	{
	
		alert(sender + '\n' + custom + '\n' + e.name + '; msg: ' + e.message + '; desc: '  + e.description + '; # ' + e.number);
	
	}

//----------------------------------------------------------------------------------------------------	