﻿// FUNCIONES AJAX

var http_request = false;
var xmlhttp= true;
   
function ejecutarASP(url, parametros, funcion) {
  bloquearPantalla(true); //realizamos el bloqueo modal de pantalla
  http_request = false;
  
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  
  if (!http_request) {
	 alert('No se puede crear una instancia XMLHttpRequest');
	 return false;
  }

  http_request.onreadystatechange = function() {
	if(http_request.readyState == 4 && http_request.status == 200){
		desbloquearPantalla();
		funcion(true);
	}
  }
		
  if(parametros!=''){
	  http_request.open('POST', url, true);

	  //Creamos las cabeceras de envio post
	  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http_request.setRequestHeader("Content-length", parametros.length);
	  http_request.setRequestHeader("Connection", "close");

	  http_request.send(parametros);
  }else{
	  http_request.open('GET', url, true);
	  http_request.send('null');
  }
}

function bloquearPantalla(){
	cb = MM_findObj("capaBloqueo");
	if(document.all) fo = MM_findObj("iframe_oculto");
	
	if(cb==null){
		var nodo = document.createElement("div");
		nodo.id = "capaBloqueo";
		bdy = document.getElementsByTagName("body")[0];
		bdy.appendChild(nodo);
		
		cb = MM_findObj("capaBloqueo");
		cb.style.width=screen.width+"px";
		cb.style.height=screen.height+"px";
		cb.style.zIndex="15";
		cb.style.float="left";
		cb.style.margin="0px";
		cb.style.left="0px";
		cb.style.position="absolute";
		cb.style.top="0px";
		cb.style.cursor="wait";
		cb.style.elevation="higher";
		cb.style.filter="alpha(opacity=0);"
		cb.style.opacity="0.0";
		cb.style.backgroundColor="#FFFFFF";
		
		if(document.all){
			var nodo = document.createElement("iframe");
			nodo.id = "iframe_oculto";
			nodo.scrolling = "no";
			nodo.frameborder = "0";
			bdy.appendChild(nodo);
			
			fo = MM_findObj("iframe_oculto");
			fo.style.filter="alpha(opacity=0)"; // Opacidad para IE
			fo.style.opacity="0.00"; // Ocapacidad para Netscape
			fo.style.width = cb.offsetWidth;
			fo.style.height = cb.offsetHeight;
			fo.style.top = cb.style.top;
			fo.style.left = cb.style.left;
			fo.style.position = "absolute";
			fo.style.zIndex = "36";
		}
	}
	
	cb.style.display="block";
	if(document.all) fo.style.display = "block";
	
}

function desbloquearPantalla(){
	cb = MM_findObj("capaBloqueo");
	cb.style.display = "none";
	if(document.all){
		fo = MM_findObj("iframe_oculto");
		fo.style.display = "none";
	}
}

// FUNCIONES VOTACION

function votar(idVideo,puntos,votos,puntuacionMedia)
{
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	  {
	  alert ("¡Tu navegador no soporta AJAX!");
	  return;
	  }
	var url="votacionVideo.asp";
	url=url+"?id_video="+idVideo;
	url=url+"&puntos="+puntos;
	url=url+"&votos="+votos;
	url=url+"&puntuacion_media="+puntuacionMedia;	
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
  {
  arrResultado=xmlhttp.responseText.split("|");
  var resultadoOp=arrResultado[0];
  puntuacionMedia=arrResultado[1];
  
  if (resultadoOp){
       if (resultadoOp=="ko" && puntuacionMedia=="ko")
	   {
		   // Ya ha votado
		    document.getElementById("statusVoto").innerHTML="Ya has votado por este vídeo." 
	   }
	   else
	   {
		  //Añade la puntuación media para el vídeo
		   for (i=1;i<=5;i++)
		   {
			 if (i <= puntuacionMedia) tipoEstrella="estrellaPuntosAzul.gif";
			 else tipoEstrella="estrellaPuntosGris.gif";
			 document.getElementById("estrella"+i).src="img/" + tipoEstrella;
		   }
		   document.getElementById("statusVoto").innerHTML="Muchas gracias por tu voto." 
	   }
  } // fin del if
  else {document.getElementById("statusVoto").innerHTML="Ha ocurrido un error en la votación. Por favor, inténtalo más tarde."};
  }
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}