var httpAudiosPath = "/audioFiles/";

// Regresa un objeto con el elemeto de la página solicitado en base a su ID
function GetObjectByID(objectID) {
	// Si el browser es NS 4 o menor
	if(document.layers)
		return document.layers[objectID];
	// Si el browser es IE 4 o +	
	else if(document.all)
		return eval('document.all.' + objectID);
	else
		return document.getElementById(objectID);
}

// Función que regresa el código HTML para imprimir el control de calificación de estrellas
function GetObjectRating(rate, votes, object_guid, type) {
	//alert(object_guid);
	var out = "";
	var canVote = "star";
	if( object_guid == "[NOVOTE]") {
		canVote = "";
	}

	var starSize = rate * 20;
	//alert(rateRefreshLayer);
	out = '' +
		'<ul class="star-rating">' +
	  	'	<li class="current-rating" id="my-rating" style="width:' + starSize + 'px;">Actualmente ' + rate + '/5 Estrellas.</li>' +
	  	'	<li>' +
	    '		<a class="one-' + canVote + '" href="javascript:void(null);" onclick="RateObject(\'' + object_guid + '\', 1, \'' + type + '\', \'' + rateRefreshLayer + '\')" title="Calificarlo con 1 de 5 estrellas">1</a>' +
	    '		<a class="two-' + canVote + '" href="javascript:void(null);" onclick="RateObject(\'' + object_guid + '\', 2, \'' + type + '\', \'' + rateRefreshLayer + '\')" title="Calificarlo con 2 de 5 estrellas">2</a>' +
	    '		<a class="three-' + canVote + '" href="javascript:void(null);" onclick="RateObject(\'' + object_guid + '\', 3, \'' + type + '\', \'' + rateRefreshLayer + '\')" title="Calificarlo con 3 de 5 estrellas">3</a>' +
	    '		<a class="four-' + canVote + '" href="javascript:void(null);" onclick="RateObject(\'' + object_guid + '\', 4, \'' + type + '\', \'' + rateRefreshLayer + '\')" title="Calificarlo con 4 de 5 estrellas">4</a>' +
	    '		<a class="five-' + canVote + '" href="javascript:void(null);" onclick="RateObject(\'' + object_guid + '\', 5, \'' + type + '\', \'' + rateRefreshLayer + '\')" title="Calificarlo con 5 de 5 estrellas">5</a>' +
	  	'	</li>' +
		'</ul>' +
		'<div class="text-rating" id="my-text-rating">' + rate + ' (' + votes + ' votos)</div>';
	return out;
}

//************************
// Funciones para vistas *
//************************
var viewRefreshLayer = "";
var viewRefreshGuid = "";
var viewRefreshType = "";
function SetView(object_guid, type, viewLayer) {
	var userGUID = "";
	viewRefreshLayer = viewLayer;
	viewRefreshType = type;
	viewRefreshGuid = object_guid;
	(getCookieValue('user_guid') ) ? userGUID = getCookieValue('user_guid') : userGUID = "-ANONYMOUS-";
	ReadXML('../views/set_view.php?user=' + userGUID + '&object_guid=' + object_guid + '&type=' + type, 'ViewResult' );
}
function ViewResult(oXmlDom) {
	var arrayXML = XMLToArray(oXmlDom, 'result');
	if( arrayXML[0][0] == "OK" ) {
		//alert("Vista guardada!");
		ViewRefresh(viewRefreshGuid, viewRefreshType, viewRefreshLayer);
	}
	else
		alert(arrayXML[0][1]);
}
function ViewRefresh(object_guid, type, rateLayer) {
	viewRefreshGuid = object_guid;
	viewRefreshType = type;
	viewRefreshLayer = rateLayer;
	ReadXML('../views/get_views.php?object_guid=' + object_guid + '&type=' + type, 'PrintViewsRefresh' );	
}
function PrintViewsRefresh(oXmlDom) {	
	//alert(rateRefreshGuid + rateRefreshType);
	var arrayXML = XMLToArray(oXmlDom, 'views');
	if(arrayXML.length > 0)
		GetObjectByID(viewRefreshLayer).innerHTML = arrayXML[0][0];
	else
		GetObjectByID(viewRefreshLayer).innerHTML = "0";
}

//************************
// Funciones para rating
//************************
function RateObject(object_guid, rate, type, rateLayer) {
	//alert(object_guid);
	(rateLayer) ? rateRefreshLayer = rateLayer : rateRefreshLayer = "star_rating";
	rateRefreshGuid = object_guid;
	rateRefreshType = type;
	if(getCookieValue('user_guid')) {
		ReadXML('../rating/rate_object.php?user=' + getCookieValue('user_guid') + '&object_guid=' + object_guid + '&type=' + type + '&rate=' + rate, 'RateResult' );
	}
	else {
		alert("Para poder calificar un contenido es necesario estar registrado");
	}
}

function RateResult(oXmlDom) {
	//alert(rateRefreshLayer);
	var arrayXML = XMLToArray(oXmlDom, 'result');
	if( arrayXML[0][0] == "OK" ) {
		alert("Gracias por tu calificación!");
		RateRefresh(rateRefreshGuid, rateRefreshType, rateRefreshLayer);
	}
	else
		alert(arrayXML[0][1]);
}

function RateRefresh(object_guid, type, rateLayer) {
	(rateLayer) ? rateRefreshLayer = rateLayer : rateRefreshLayer = "star_rating";
	rateRefreshGuid = object_guid;
	rateRefreshType = type;
	ReadXML('../rating/get_rating.php?object_guid=' + object_guid + '&type=' + type, 'PrintRateRefresh' );
}

var rateRefreshGuid = "";
var rateRefreshType = "";
var rateRefreshLayer = "star_rating";

function PrintRateRefresh(oXmlDom) {	
	//alert(rateRefreshGuid + rateRefreshType);
	var arrayXML = XMLToArray(oXmlDom, 'rating');
	//alert(arrayXML[0][0]+"__"+arrayXML[0][1]+"_"+arrayXML[0][2]+"__"+arrayXML[0][3]);
	//alert(arrayXML.length);
	if(arrayXML.length > 0)
	{
		if(arrayXML[0][1]=='None')
			arrayXML[0][1]='0';
		if(arrayXML[0][2]=='None')
			arrayXML[0][2]='0';
		//alert(arrayXML[0][0]+"__"+arrayXML[0][1]+"_"+arrayXML[0][2]+"__"+arrayXML[0][3]);
		GetObjectByID(rateRefreshLayer).innerHTML = GetObjectRating(parseFloat(arrayXML[0][2]).toFixed(2), arrayXML[0][1], arrayXML[0][0], arrayXML[0][3]);
	}
	else
		GetObjectByID(rateRefreshLayer).innerHTML = GetObjectRating(0, 0, rateRefreshGuid, rateRefreshType);
}

// Función que imprime el código HTML del control de calificación de estrellas
function PrintObjectRating(rate, votes, object_guid, type) {
	document.write(GetObjectRating(rate, votes, object_guid, type));
}

// Función que regresa el valor de una cookie por nombre de la cookie
function getCookieValue(varName) {
	if(!navigator.cookieEnabled)
		return null;
	if (document.cookie.length > 0) {
		if (document.cookie.indexOf(varName) != -1) { 
			(document.cookie.indexOf(";", document.cookie.indexOf(varName) + varName.length + 1) != -1) ? end = document.cookie.indexOf(";", document.cookie.indexOf(varName) + varName.length + 1) : end = document.cookie.length;
			return unescape(document.cookie.substring(document.cookie.indexOf(varName) + varName.length + 1, end));
		} 
	}
	return null;
}


// Cambiar las pestañas de las secciones
function SelectTab(selectedLayer) {
	switch(selectedLayer) {
		case 'da1' :
			GetObjectByID(selectedLayer).style.display = "block";
			GetObjectByID('da2').style.display = "none";
			GetObjectByID('da3').style.display = "none";
			GetObjectByID('aa1').className = "current";
			GetObjectByID('aa2').className = "";
			GetObjectByID('aa3').className = "";
			break;
		case 'da2' :
			GetObjectByID(selectedLayer).style.display = "block";
			GetObjectByID('da1').style.display = "none";
			GetObjectByID('da3').style.display = "none";
			GetObjectByID('aa2').className = "current";
			GetObjectByID('aa1').className = "";
			GetObjectByID('aa3').className = "";
			break;
		case 'da3' :
			GetObjectByID(selectedLayer).style.display = "block";
			GetObjectByID('da1').style.display = "none";
			GetObjectByID('da2').style.display = "none";
			GetObjectByID('aa3').className = "current";
			GetObjectByID('aa1').className = "";
			GetObjectByID('aa2').className = "";
			break;						
	}

}

// Funciones para imrimir el código de videos
function video_embed_html(swf, flv, thumb, width, height) {
	flashvars = 'file='+flv+'&image='+thumb+'&showdigits=true&overstretch=false&displayheight='+(height-20);
  	return '<embed ' +
    	'allowScriptAccess="always" ' +
    	'src="' + swf + '" ' +
    	'width="' + width + '" ' + 
    	'border="0" ' +
    	'height="' + height + '" ' + 
 	  	'wmode="opaque" ' +
    	'type="application/x-shockwave-flash" ' +
    	'pluginspage="http://www.macromedia.com/go/getflashplayer" '+
    	'flashvars="'+flashvars+'"/>';
}

function embed_video(swf, flv, thumb, width, height) {
	document.write(video_embed_html(swf, flv, thumb, width, height));
}

// Función para incluir código de audios
function embed(filename) {
	document.write('<embed src="' + httpAudiosPath + filename + '" ' +
    	'width="305" height="45" autoplay="true" ' +
    	'kioskmode="true" volume="40" />'); 
}

function switch_song(boxid, filename, songname) {
	//alert( httpAudiosPath + filename + " - " + songname);
	GetObjectByID(boxid).innerHTML = '<h5>' + songname + '</h5>' +
		'<embed src="' + httpAudiosPath + filename + '" width="305" height="45" autoplay="true" ' +
		'kioskmode="true" volume="40" />';
}

// Funciones para reportar un video como inapropiado
/* El elemento UL donde se encuentra la liga para reportar un video debe tener como ID="flag_links" */
function FlagObject(object_guid) {
	if(getCookieValue('user_guid')) {
		if(confirm("Estas seguro que deseas reportar este video?"))
			ReadXML('../flag/flag_object.php?user=' + getCookieValue('user_guid') + '&object_guid=' + object_guid + '&type=video', 'FlagResult');
	}
	else {
		alert("Para poder reportar un contenido es necesario estar registrado");
	}
}

// Funciones para reportar una imagencomo inapropiado
/* El elemento UL donde se encuentra la liga para reportar un video debe tener como ID="flag_links" */
function FlagImage(object_guid) {
	if(getCookieValue('user_guid')) {
		if(confirm("Estas seguro que deseas reportar esta imagen?"))
			ReadXML('../flag/flag_object.php?user=' + getCookieValue('user_guid') + '&object_guid=' + object_guid + '&type=image', 'FlagResult');
	}
	else {
		alert("Para poder reportar un contenido es necesario estar registrado");
	}
}

function FlagResult(oXmlDom) {
	var arrayXML = XMLToArray(oXmlDom, 'result');
	if( arrayXML[0][0] == "OK" ) {
		GetObjectByID('flag_links').style.visibility = 'hidden';
		alert("Tu solicitud ha sido enviada y será revisada...");
	}
	else
		alert("Ocurrió un error en el proceso...\n" + arrayXML[0][1]);
}

// Estadísticas
function PageView() {
	GetObjectByID('esmasStatsDiv').innerHTML = '<img src="' + doStats('return') + '" width="1" height"1">';	
}

// Función que convierte de segundos (integer) a hh:mm:ss (string)
function Seconds2hms(secs) {
	if (secs < 0) 
		return false;
	var strDuration = "";
	var m = parseInt(secs / 60); 
	var s = secs % 60;
	var h = parseInt(m / 60); 
	m = m % 60;
	if(h > 0)
		(h < 10) ? strDuration = "0" + h + ":" : strDuration = h + ":";
	(m < 10) ? strDuration += "0" + m : strDuration += m;
	(s < 10) ? strDuration += ":0" + s : strDuration += ":" + s;
	return strDuration;
}

// Clase creada para realizar el preload de un arreglo de imágenes para que funcione en explorer 6
// Creado por: IS

function ImagePreloader(images, callback) {
   	this.callback = callback;
	// inicializamos
	this.nLoaded = 0;
	this.nProcessed = 0;
	this.aImages = new Array;
	// Calculamos el númeor de imágenes
	this.nImages = images.length;
	for ( var i = 0; i < images.length; i++ )
		this.preload(images[i]);
}

ImagePreloader.prototype.preload = function(image) {
	// creamos una nueva imágen y la agregamos al arreglo
	var oImage = new Image;
	this.aImages.push(oImage);

	// definimos los eventos
	oImage.onload = ImagePreloader.prototype.onload;
	oImage.onerror = ImagePreloader.prototype.onerror;
	oImage.onabort = ImagePreloader.prototype.onabort;
	oImage.oImagePreloader = this;
	oImage.bLoaded = false;
	oImage.src = image;
}

ImagePreloader.prototype.onComplete = function() {
	this.nProcessed++;
	if ( this.nProcessed == this.nImages ) {
      this.callback(this.aImages, this.nLoaded);
   }
}

ImagePreloader.prototype.onload = function() {
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function() {
   this.bError = true;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function() {
   this.bAbort = true;
   this.oImagePreloader.onComplete();
}

// Valores para imrpimir Adsense de Google...
google_adtest = "on";
google_ad_client = "esmas";
google_ad_width = 250;
google_ad_height = 250;
google_ad_format = "250x250_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "ffffff";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";


function changeUrl(url,ref){
document.getElementById(ref).href=url;
}