function creaAjax() {
	var objetoAjax = false;
	try {
		objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			objetoAjax = false;
		}
	}

	if (!objetoAjax && typeof XMLHttpRequest != 'undefined') {
		objetoAjax = new XMLHttpRequest();
	}
	return objetoAjax;
}

function CallUrl(url, values) {
	var ajax = creaAjax();
	var capaContenedora = document.getElementById('content');
	
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 1) {
			startLoader();
			document.getElementById('loader').style.visibility = "visible";
		} else if (ajax.readyState == 4) {
			document.getElementById('loader').style.visibility = "hidden";
			stopLoader();
			if (ajax.status == 200) {
				SetContainerHTML(capaContenedora, ajax.responseText, true);
			} else if (ajax.status == 404) {
				capaContenedora.innerHTML = "La direccion no existe";
			} else {
				capaContenedora.innerHTML = "Error: ".ajax.status;
			}
		}
	};
	ajax.open("POST", "index.php?" + url, true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	ajax.send(values);
}

function LoadRanking(values, owner) {
	var ajax = creaAjax();
	var capaContenedora = document.getElementById('ranking-loader-' + owner );
	
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				SetContainerHTML(capaContenedora, ajax.responseText, true);
			}
		}
	};
	ajax.open("POST", "index.php?action=ranking&" + values, true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	ajax.send("owner=" + owner);
}

function Verification(url, values, element, tclass, fclass) {
	var ajax = creaAjax();
	var delement = document.getElementById(element);

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				if (ajax.responseText == 1)
					delement.className = tclass;
				else if (ajax.responseText == 0)
					delement.className = fclass;
				else
					delement.className = tclass.split(" ")[0];
				delement.disabled = false;
			}
		}
	};
	delement.disabled = true;
	ajax.open("POST", "index.php?" + url, true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	ajax.send(values);
}

function loadAjaxMenu() {
	var ajax = creaAjax();
	var menu = document.getElementById('menu');

	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				SetContainerHTML(menu, ajax.responseText, true);
			}
		}
	};
	ajax.open("POST", "index.php?action=menu", true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	ajax.send();
}

function SetContainerHTML(mydiv, html, processScripts) {
	mydiv.innerHTML = html;
	if (processScripts != false) {
		var elementos = mydiv.getElementsByTagName('script');
		for (i = 0; i < elementos.length; i++) {
			var elemento = elementos[i];
			nuevoScript = document.createElement('script');
			nuevoScript.text = elemento.innerHTML;
			nuevoScript.type = 'text/javascript';
			if (elemento.src != null && elemento.src.length > 0)
				nuevoScript.src = elemento.src;
			elemento.parentNode.replaceChild(nuevoScript, elemento);
		}
	}
}

function runLoader() {
	dloader.style.width = pct + "%";
	pct += 1;
	if (pct > 100)
		pct = 0;
}

function startLoader() {
	pct = 0;
	if (timer) {
		clearInterval(timer);
		timer = null;
	}
	timer = setInterval("runLoader();", 50);
}

function stopLoader() {
	pct = 0;
	dloader.style.width = "0%";
	clearInterval(timer);
}
