var xmlHttp;
var formName=0;
var ov=0;
var layerName="";

function report_song(location, form) {	
  loading(410,280,-1,-1,"report");
  if (form!=null) {  
  	getLayerHTML("/report_problems3.php",form,location, "POST", "report");
  }
  else {
  	getLayerHTML("/report_problems3.php",form,location, "GET", "report");
  }
}

function report_checked() {	
  loading(410,280,-1,-1,"report");  
  getLayerHTML("/revisado2.html",null,null, "GET", "report");
}

function sms(_rid) {	
  loading(410,280,430,320);  
  getLayerHTML("/download_sms.php?rid="+_rid,null,null, "GET");
}

function sms_nrs(_rid, form, layName) {	
  loading(410,280,-1,-1,layName);
  if (form!=null) {
	getLayerHTML("/download_sms_nrs2.php",form,null, "POST", layName);
  }
  else {
	getLayerHTML("/download_sms_nrs2.php?rid="+_rid+"&ly="+layName,null,null, "GET", layName);  
  }
}

function sms_nrs_gift(layName) {
	document.forms['downsms'].type.value=2;
	sms_nrs('', 'downsms',layName);
}

function recfeedbackx(_rid, _uid, form) {	
  loading(410,280,-1,-1, 'popupBox');
  if (ov == 0 && _rid > 0) {
	document.getElementById("popupBox").style.display = 'inline';
	var content="<div style='width:410px; height:280px; position:absolute; z-index:6; overflow:auto; border: 1px solid #911B1B; background-color:#FFFFFF'><p style='height: 24px; background-image:url(/img2/ajHed.gif); background-repeat:no-repeat;margin:3px;padding-left: 15px; padding-top:5px; padding-bottom:0px; padding-right:0px; color: #FFFFFF; font-family:Verdana; font-weight: bold; font-size:11px; width: 380px;  border: none;'><a href=\"javascript:closeBox('popupBox')\" style='margin-top: 0px; '><img src='/img2/ajaxbttn.gif' width='17' height='16' border='0' style='float: right;margin-right: 8px;'></a>ADD A COMMENT ABOUT THIS SONG</p><p style='color: #333333;font-size: 11px; margin-left: 3px; margin-right: 3px; width: 400px; padding: 0px; border: none;'><br><br>You should listen to at least 30 seconds of the song to be able to cast a meaningful vote about it.</p></div>";
	document.getElementById("popupBox").innerHTML=content;
  }
  else {
	if (form!=null) {
		getLayerHTML("/sendfeedback2.php",form,null, "POST","popupBox");
	}
	else {
		getLayerHTML("/sendfeedback2.php?rid="+_rid+"&uid="+_uid,form,null, "GET","popupBox");  
	}
  }
}

function reccommentx(_rid, _uid) {	
  loading(410,280,-1,-1, 'popupBox');
  if (ov == 0 && _rid > 0) {
	document.getElementById("popupBox").style.display = 'inline';
	var content="<div style='width:410px; height:280px; position:absolute; z-index:6; overflow:auto; border: 1px solid #911B1B; background-color:#FFFFFF'><p style='height: 24px; background-image:url(/img2/ajHed.gif); background-repeat:no-repeat;margin:3px;padding-left: 15px; padding-top:5px; padding-bottom:0px; padding-right:0px; color: #FFFFFF; font-family:Verdana; font-weight: bold; font-size:11px; width: 380px;  border: none;'><a href=\"javascript:closeBox('popupBox')\" style='margin-top: 0px; '><img src='/img2/ajaxbttn.gif' width='17' height='16' border='0' style='float: right;margin-right: 8px;'></a>ADD A COMMENT ABOUT THIS SONG</p><p style='color: #333333;font-size: 11px; margin-left: 3px; margin-right: 3px; width: 400px; padding: 0px; border: none;'><br><br>You should listen to at least 30 seconds of the song to be able to cast a meaningful vote about it.</p></div>";
	document.getElementById("popupBox").innerHTML=content;
  }
  else {
	getLayerHTML("/sendfeedback2.php?nv=1&rid="+_rid+"&uid="+_uid,null,null, "GET","popupBox"); 
  }
}

function songfeedbackx(_sid,form) {
  loading(410,280,-1,-1, 'popupBox');
  if (ov == 0) {
	document.getElementById("popupBox").style.display = 'inline';
	var content="<div style='width:410px; height:280px; position:absolute; z-index:6; overflow:auto; border: 1px solid #911B1B; background-color:#FFFFFF'><p style='height: 24px; background-image:url(/img2/ajHed.gif); background-repeat:no-repeat;margin:3px;padding-left: 15px; padding-top:5px; padding-bottom:0px; padding-right:0px; color: #FFFFFF; font-family:Verdana; font-weight: bold; font-size:11px; width: 380px;  border: none;'><a href=\"javascript:closeBox('popupBox')\" style='margin-top: 0px; '><img src='/img2/ajaxbttn.gif' width='17' height='16' border='0' style='float: right;margin-right: 8px;'></a>A&Ntilde;ADIR COMENTARIO SOBRE LA CANCI&Oacute;N</p><p style='color: #333333;font-size: 11px; margin-left: 3px; margin-right: 3px; width: 400px; padding: 0px; border: none;'><br><br>Debes escuchar al menos 30 segundos de la canción para poder emitir un voto razonado sobre la canci&oacute;n.</p></div>";
	document.getElementById("popupBox").innerHTML=content;
  }
  else {
	if (form!=null) {
		getLayerHTML("/sendfeedback2.php",form,null, "POST","popupBox");
	}
	else {
		getLayerHTML("/sendfeedback2.php?sid="+_sid,form,null, "GET","popupBox");  
	}
  }
}

function videofeedbackx(_vid,form) {
  loading(410,280,-1,-1, 'popupBox');
  if (form!=null) {
  	getLayerHTML("/enviar-comentario-video",form,null, "POST");
  }
  else {
  	getLayerHTML("/enviar-comentario-video?vid="+_vid,form,null, "GET");  
  }
}

function formsendvideox(_vid,_title,_username) {
  loading(410,280,430,320);
  getLayerHTML("/form-enviar-video?vid="+_vid+"&title="+_title+"&username="+_username,null,null, "GET");
}

function sendvideox(_vid,form) {
  loading(410,280,430,320);
  getLayerHTML("/enviar-video",form,null, "POST");
}

function loading(width, height, left, top, layName) { 
  document.getElementById(layName).style.display = 'inline';
  var content= "";
  if (left == -1 && top == -1) {
  	var content="<div style='width:"+width+"px; height:"+height+"px; position:absolute; z-index:6;border: 1px solid #000; overflow:auto; background-color:#FFFFFF;'>&nbsp;</div>";
  }
  else {
  	var content="<div style='width:"+width+"px; height:"+height+"px; position:absolute; left:"+left+"px; top:"+top+"px;z-index:6;border: 1px solid #000; overflow:auto; background-color:#FFFFFF;'>&nbsp;</div>";
  }
  document.getElementById(layName).setInnerHTML=content;
}

function opVoting() {
	ov = 1;
}

function getLayerHTML(url, formName, targetLocation, method, layName)
{	
  layerName = layName;
  createXMLHttpRequest();
  var queryString = url;
 
  if(targetLocation!=null)
  targetLocation=getLocationWithoutAmpersend(targetLocation);

  xmlHttp.onreadystatechange = handleLayerResponse;
  
  if (formName!=null)
  { 
    queryString = buildQueryString(formName);
    if(targetLocation!=null) {
  		queryString = queryString+"&url"+targetLocation;
  	}
    xmlHttp.open(method, url, true);
	var content="<div style='width:410px; height:280px; position:absolute; border: 1px solid #000; overflow:auto; background-color:#FFFFFF;'><table height='280' align='center' valing='middle' style='font-size: 24px; margin-left:15px; width: 380px; padding: 0px; border: none; text-align: center;'><tr><td align='center' style='padding: 0px;'><img src='/img/loading.gif' width='220' height='19'><br>Loading ...</td></tr></table></div>";
	document.getElementById(layerName).innerHTML = content;
	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	xmlHttp.send(queryString);
  }
  else
  {
	var content="<div style='width:410px; height:280px; position:absolute; border: 1px solid #000; overflow:auto; background-color:#FFFFFF;'><table height='280' align='center' valing='middle' style='font-size: 24px; margin-left:15px; width: 380px; padding: 0px; border: none; text-align: center;'><tr><td align='center' style='padding: 0px;'><img src='/img/loading.gif' width='220' height='19'><br>Loading ...</td></tr></table></div>";
  	document.getElementById(layerName).innerHTML = content;
	var i=queryString.indexOf("?");
	if (i>=0)
	{
	queryString=queryString+"&randomString="+randomString();
	queryString = queryString+"&url=" + targetLocation;
	}
	else
	{
	queryString = queryString+"?url=" + targetLocation;
	queryString=queryString+"&randomString="+randomString();
	}
	xmlHttp.open(method, queryString, true);
  	xmlHttp.send(null);
  }
  
}

function createXMLHttpRequest() 
{
  if (window.ActiveXObject) 
  {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else if (window.XMLHttpRequest) 
  {
    xmlHttp = new XMLHttpRequest();
  }
}

function getLocationWithoutAmpersend(target)
{
	var empty=target;
	for(;empty.indexOf("&")>0;)
	{
		empty=empty.replace("&","~");
	}
	return empty;
}

function buildQueryString(theFormName) 
{
  theForm = document.forms[theFormName];
  var qs = ''
  for (e=0;e<theForm.elements.length;e++) 
  {
    if (theForm.elements[e].name!='') 
    {
      qs+=(qs=='')?'':'&'
      if (encodeURIComponent) {
   		if (theForm.elements[e].type=="checkbox")
	      {
	        qs+=theForm.elements[e].name+'='
		      +encodeURIComponent(theForm.elements[e].checked)
	      }
	      else if (theForm.elements[e].type=="radio")
	      {
	        if (theForm.elements[e].checked==true)
	        {
	          qs+=theForm.elements[e].name+'='
		        +encodeURIComponent(theForm.elements[e].value)
	        }
	      }
	      else
	      {
	        qs+=theForm.elements[e].name+'='
		      +encodeURIComponent(theForm.elements[e].value)
	      }
	  } else {
    	if (theForm.elements[e].type=="checkbox")
	      {
	        qs+=theForm.elements[e].name+'='
		      +escape(theForm.elements[e].checked)
	      }
	      else if (theForm.elements[e].type=="radio")
	      {
	        if (theForm.elements[e].checked==true)
	        {
	          qs+=theForm.elements[e].name+'='
		        +escape(theForm.elements[e].value)
	        }
	      }
	      else
	      {
	        qs+=theForm.elements[e].name+'='
		      +escape(theForm.elements[e].value)
	      }
	  }
    }
  }
  return qs;
}

function handleLayerResponse() 
{
  if(xmlHttp.readyState == 4) 
  { 
    if(xmlHttp.status == 200) 
    { 
      document.getElementById(layerName).style.display = 'none';
      var response = xmlHttp.responseText;
      document.getElementById(layerName).style.display = 'inline';
      if (response.indexOf("<!-- reloadwithoutajax -->")!=-1) {
      	setTimeout("window.location.reload()",0);
      } else {
      	document.getElementById(layerName).innerHTML =response;
      }
      if (response.indexOf("<!-- reloadx -->")!=-1) {
      	setTimeout("window.location.reload()",3000);
      }
      if (response.indexOf("<!-- autoclosex -->")!=-1) {
      	setTimeout("closeBox('"+layerName+"')",4000);
      }
    }
  }
}

function randomString() 
{
  var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
  var string_length = 8;
  var rs = '';
  for (var i=0; i<string_length; i++)
  {
    var rnum = Math.floor(Math.random() * chars.length);
    rs += chars.substring(rnum,rnum+1);
  }
  return rs;
}

function closeBox(layerName) 
{
  	document.getElementById(layerName).style.display = 'none';
}

function orderbydate(user) {	
  	getLayerHTML2("/userrecordings2.php?username="+user+"&o=date&ajax=true",null,null, "GET");
}
function orderbyaverage(user) {	
  	getLayerHTML2("/userrecordings2.php?username="+user+"&ajax=true",null,null, "GET");
}

function getLayerHTML2(url, formName, targetLocation, method)
{	
	createXMLHttpRequest();
	var queryString = url;
	
	if(targetLocation!=null)
	targetLocation=getLocationWithoutAmpersend(targetLocation);
	
	xmlHttp.onreadystatechange = handleLayerResponse2;
	var content="<div style='width:410px; height:280px; position:relative; border: 1px solid #000; overflow:auto; background-color:#FFFFFF;'><table height='280' align='center' valing='middle' style='font-size: 24px; margin-left:15px; width: 380px; padding: 0px; border: none; text-align: center;'><tr><td align='center' style='padding: 0px;'><img src='/img/loading.gif' width='220' height='19'><br>Loading ...</td></tr></table></div>";
  	document.getElementById("changeBox").innerHTML = content;
	var i=queryString.indexOf("?");
	if (i>=0)
	{
	queryString=queryString+"&randomString="+randomString();
	queryString = queryString+"&url=" + targetLocation;
	}
	else
	{
	queryString = queryString+"?url=" + targetLocation;
	queryString=queryString+"&randomString="+randomString();
	}
	xmlHttp.open(method, queryString, true);
  	xmlHttp.send(null);
}

function handleLayerResponse2() 
{
  if(xmlHttp.readyState == 4) 
  { 
    if(xmlHttp.status == 200) 
    { 
      document.getElementById("changeBox").style.display = 'none';
      var response = xmlHttp.responseText;
      document.getElementById("changeBox").style.display = 'inline';
      document.getElementById("changeBox").innerHTML =response;
    }
  }
}

var starCount=0;
var alreadyVoted=0;

function showStars(starNum){
	if (alreadyVoted == 0) {
		greyStars();
		colorStars(starNum);
		estrella(starNum);
	}
}

function colorStars(starNum){
	for(var i=0;i<starNum;i++){
		removeClass(document.getElementById('star__'+(i+1)),'estrella2_off');
		addClass(document.getElementById('star__'+(i+1)),'estrella2_on');
	}
}
function greyStars(){
	for(var i=0;i<10;i++)
		if(i<=this.starCount){
			removeClass(document.getElementById('star__'+(i+1)),'estrella2_on');
			addClass(document.getElementById('star__'+(i+1)),'estrella2_off');
		}
		else {
			removeClass(document.getElementById('star__'+(i+1)),'estrella2_on');
			addClass(document.getElementById('star__'+(i+1)),'estrella2_off');
		}
}

function setStars(starNum) {
	document.forms['sendvote']['vote'].value=starNum;
	if (ov == 0) {
		document.getElementById('votacion').innerHTML= "You should listen to at least 30 seconds of the song to be able to cast a meaningful vote about it.";
	}
	else if (alreadyVoted == 1) {
		document.getElementById('votacion').innerHTML= "You already voted this recording";
	}
	else if (alreadyVoted == 2) {
		document.getElementById('votacion').innerHTML= "You cannot vote for yourself";
	}
	else if (alreadyVoted == 3) {
		document.getElementById('votacion').innerHTML= "To vote you must be logged in to Red Karaoke. <a href='/register'>Register</a>";
	}
	else if (alreadyVoted == 4) {
		document.getElementById('votacion').innerHTML= "To vote you must confirm your registration";
	}
	else if (alreadyVoted == 5) {
		document.getElementById('votacion').innerHTML= "<img src='/img/loading.gif' width='220' height='19'> Sending vote ...";
	}
	else {
		document.getElementById('votacion').innerHTML= "<img src='/img/loading.gif' width='220' height='19'> Sending vote ...";
		alreadyVoted = 5;
	  createXMLHttpRequest();
	  var queryString = buildQueryString('sendvote');
	  xmlHttp.onreadystatechange = handleVoteResponse;
	  xmlHttp.open("POST", "/sendvote.php", true);
		xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		xmlHttp.send(queryString);
	
		//starCount=starNum;
		drawStars(starNum);
	}
}

function handleVoteResponse() 
{
  if(xmlHttp.readyState == 4) 
  { 
    if(xmlHttp.status == 200) 
    { 
      var response = xmlHttp.responseText;
      if (response.indexOf("<!-- OK -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "Thank you for your vote";
      	alreadyVoted = 1;
      }
      else if (response.indexOf("<!-- ALREADY_VOTED_ERROR -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "You already voted this recording";
      	alreadyVoted = 1;
    	}
    	else if (response.indexOf("<!-- SELF_VOTE -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "You cannot vote for yourself";
      	alreadyVoted = 2;
    	}
    	else if (response.indexOf("<!-- ALREADY_VOTED_IP -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "You already voted this recording";
      	alreadyVoted = 1;
    	}
    	else if (response.indexOf("<!-- NOT_CONNECTED -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "To vote you must be logged in to Red Karaoke. <a href='/register'>Register</a>";
      	alreadyVoted = 3;
    	}
    	else if (response.indexOf("<!-- NOT_CONFIRMED -->")!=-1) {
      	document.getElementById('votacion').innerHTML= "To vote you must confirm your registration";
      	alreadyVoted = 4;
    	}
    	else {
    		document.getElementById('votacion').innerHTML= "The comment couldn't be added";	
    	}
    }
  }
}

function drawStars(starNum){
	starCount=starNum;
	showStars(starNum);
}

function resetStars(){
	if (alreadyVoted == 0) {
		if(starCount)
			drawStars(starCount);
		else
			greyStars();
		estrella(starCount);
	}
}

function estrella(id) {
	var txt;
	if(id == 0) txt = "No points awarded. Just comment";
	if(id == 1) txt = "Very poor. Very serious problems with this recording.";
	if(id == 2) txt = "Poor.  Serious problems with this recording.";
	if(id == 3) txt = "Inadequate.  It can be listened to, but it has problems.";
	if(id == 4) txt = "Fair.  You’re almost there.";
	if(id == 5) txt = "Over the threshold.  Not bad! ";
	if(id == 6) txt = "All right.  I like this quite a bit.";
	if(id == 7) txt = "Good. Highly recommended.";
	if(id == 8) txt = "Very good. Excellent version!";
	if(id == 9) txt = "Excellent.  It’s a hit!!";
	if(id == 10) txt = "Stairway to the Stars.  The ultimate version, perfect.";
	document.getElementById('votacion').innerHTML= txt;
}

function hasClass(element,_className){
	if(!element){
		return;
	}
	var upperClass=_className.toUpperCase();
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()==upperClass){
				return true;
			}
		}
	}
	return false;
}

function addClass(element,_class){
	if(!hasClass(element,_class)){
		element.className+=element.className?(" "+_class):_class;
	}
}

function removeClass(element,_class){
	var upperClass=_class.toUpperCase();
	var remainingClasses=[];
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()!=upperClass){
				remainingClasses[remainingClasses.length]=classes[i];
			}
		}
		element.className=remainingClasses.join(' ');
	}
}

function recfeedbacksongx(form) {	
  loading(410,280,-1,-1, 'popupBox');
	getLayerHTML("/sendfeedbacksong.php",form,null, "POST","popupBox");
}

function delete_user_feedback(_fid, _username, layName) {	
  loading(410,280,-1,-1,layName);
	getLayerHTML("/delete_user_feedback.php?fid="+_fid+"&username="+_username+"&ly="+layName,null,null, "GET", layName);  
}

function artistFan(id,name,layName) {	
  loading(410,280,-1,-1,layName);
	getLayerHTML("/artist_fan_add.php?id="+id+"&name="+name+"&ly="+layName,null,null, "GET", layName);
}