﻿var useNewFavoritesButton=false;
var oldLoginCallBack = null;
var oldSignupCallBack = null;
var favoritesDebug = 0;
var OneClickLinksNotBold=false;

var UrlProcessFavorite = "processfavorite.aspx";
var UrlRemoveFromFavoritesImage = "/images/addtofavorites.gif";
var UrlAddToFavoritesImage = "/images/removefromfavorites.gif";
var ImAFanOff = "http://radio.batanga.com/images/favorites/Fan_off.gif";
var ImAFanOn = "http://radio.batanga.com/images/favorites/Fan_on.gif";
var ImAFanOver = "http://radio.batanga.com/images/favorites/Fan_over.gif";

var FanImages=new Array();
FanImages[0] = new Image();
FanImages[0].src=ImAFanOff;
FanImages[1] = new Image();
FanImages[1].src=ImAFanOn;
FanImages[2] = new Image();
FanImages[2].src=ImAFanOver;

var favoriteTagsList = null;
var oneClickTagsList = null;

var xmlObjCheckFavorites = null;
var xmlObjAddFavorite = null;
var xmlObjGetFavorites = null;
var xmlObjRemoveFavorite = null;

var favoritesSupported = new Array("station", "video", "artist", "song");

var language = getCookie("idioma");

var removeFavoriteText;
var addToFavoriteText;
var removeFanText;
var addFanText;
var addedFanText;

var removeFavoriteTip;
var addToFavoriteTip;
var removeFanTip;
var addFanTip;

var favoriteTextCss = "";

if(language == "EN")
{
    removeFavoriteText = "Remove";
    removeFavoriteTip = "Remove from Favorites";
    
    addToFavoriteText = "Save";
    addToFavoriteTip = "Save to Favorites";
    
    addFanText="I'm a Fan &gt;&nbsp;";
    addedFanText="I'm a Fan&nbsp;";
    addFanTip="";
    
    removeFanText="Remove&nbsp;";
    removeFanTip="";
}
else
{
    addToFavoriteTip = "Guardar como Favorito";
    addToFavoriteText = "Guardar";
    
    removeFavoriteTip = "Eliminar de Favoritos";    
    removeFavoriteText = "Eliminar";

    addFanText="Soy Fan &gt;&nbsp;";
    addedFanText="Soy Fan&nbsp;";
    addFanTip="";
    
    removeFanText="Eliminar&nbsp;";
    removeFanTip="";
    
}

if (document.getElementById("ImAFanActive")!=null)
{
    if (document.getElementById("ImAFanActive").value == "1")
    {
        useNewFavoritesButton=true;
    } 
}



function GetFavoriteType(tagName)
{
    for(var j = 0; j < favoritesSupported.length; j++)
        if(tagName.match(favoritesSupported[j]))
            return favoritesSupported[j];
            
    return null;            
}

function GetFavoriteId(tagName, favoriteType)
{
    var favTag = "fav-" + favoriteType + "-";
    var id  = tagName.substr(tagName.indexOf(favTag) + favTag.length);
    
    return id;
}

function GetOneClickId(tagName, favoriteType)
{
    var oneClickTag = "oneclick-";
    var id  = tagName.substr(tagName.indexOf(oneClickTag) + oneClickTag.length);
    
    return id;
}

function GetLoggedInUserID()
{
    //alert("GetLoggedInUserID:hard coded value");
    //return "65";

    var userID = getCookie("batangauserid");
        
    return userID;
}

function IsUserLoggedIn()
{
    //alert("IsUserLoggedIn:hard coded to return true");
    //return true;

    var batangacom = getCookie("batangacom");
    if(batangacom == null || batangacom.length == 0)
        return false;
        
    var batangakey = getCookie("batangakey");
    if(batangakey == null || batangakey.length == 0)
        return false;
        
    return true;            
}

function GetXmlDoc(text)
{
    if (typeof(text)!="undefined")
    {
        var xmlDoc;
       
        if(window.ActiveXObject)
        {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
            xmlDoc.loadXML(text);
        }
        else
        {
    	    if(favoritesDebug == 1) {alert("Dom Text: " + text);}
            var parser = new DOMParser();
            var xmlDoc = parser.parseFromString(text,"text/xml");
        }
    }

    return xmlDoc;
}

function ResetAllFavoriteTags()
{
    for (var i = 0; i < favoriteTagsList.length; i++)
    { 
        var favoriteTag = favoriteTagsList[i];
        var favoriteTagId = favoriteTag.getAttribute('id');
        
        var favoriteType = GetFavoriteType(favoriteTagId);
        var favoriteID  = GetFavoriteId(favoriteTagId, favoriteType);
        
        favoriteTag.innerHTML = GetAddToFavoriteCode(favoriteID, favoriteType);
        favoriteTag.style.display = "";
    }
}

function ProcessFavorites()
{
    if(favoritesDebug == 1)
        alert("ProcessFavorites()");
    
      ProcessCheckFavorites();  
}

function FavoriteElementAlreadyAdded(id, addedFavoriteTagsList)
{
    for(var i = 0; i < addedFavoriteTagsList.length; i++)
    {
        if(addedFavoriteTagsList[i] == id)
            return true;
    }
    
    return false;
}

function OneClickElementAlreadyAdded(id, addedOneClickTagsList)
{
    for(var i = 0; i < addedOneClickTagsList.length; i++)
    {
        if(addedOneClickTagsList[i] == id)
            return true;
    }
    
    return false;
}

function ProcessCheckFavorites()
{
    favoriteTagsList = new Array();
    oneClickTagsList = new Array();
    
    var alldivs = document.getElementsByTagName("div"); 
    
    //get all the favprite tags into favoriteTagsList
    for (var i = 0; i < alldivs.length; i++)
    { 
	    if (alldivs[i].getAttribute('id') != null && alldivs[i].getAttribute('id').match('fav-'))
	    { 
            favoriteTagsList[favoriteTagsList.length] = alldivs[i];	        
        }
        else if (alldivs[i].getAttribute('id') != null && alldivs[i].getAttribute('id').match('oneclick-'))
        {
            oneClickTagsList[oneClickTagsList.length] = alldivs[i];
        }
    }
    
    var loggedIn = IsUserLoggedIn();
    
//    if(!loggedIn)
//    {
//        ResetAllFavoriteTags();
//        
//        if(favoritesDebug == 1)
//            alert("ProcessFavorites():User not logged in, returning...");        
//            
//        return;
//    }
    

    var addedFavoriteTagsList = new Array();
    var addedOneClickTagsList = new Array();
    var userID = GetLoggedInUserID();
    if (!loggedIn) {userID=0;}
    var XML = new XMLWriter();
    
    XML.BeginNode("OneClickFavorites");
    XML.BeginNode("Favorites");
    
    if (loggedIn)
    {
        XML.BeginNode("checkfavorites");
        XML.Node("userid", userID);
        
        for (var i = 0; i < favoriteTagsList.length; i++)
        {
            var tagObj = favoriteTagsList[i];
            var tagName = tagObj.getAttribute('id');
            if(!FavoriteElementAlreadyAdded(tagName, addedFavoriteTagsList))
            {
                var idValue = -1;
                
                for(var j = 0; j < favoritesSupported.length; j++)
                {
                    if(tagName.match(favoritesSupported[j]))
                    {                
                        XML.BeginNode(favoritesSupported[j]);
                        
                        idValue = GetFavoriteId(tagName, favoritesSupported[j]);
                        XML.Node("id", idValue);
                        addedFavoriteTagsList[addedFavoriteTagsList.length] = tagName;
                        
                        XML.EndNode();
                        
                        break;
                    } 
                }
            }
            else
            {
                if(favoritesDebug == 1)
                    alert("ProcessCheckFavorites: id " + tagName + " already added. Not added again to the check favorites xml");
            }
        }
        
        XML.EndNode();  //checkfavorites
    }
    else
    {
        ResetAllFavoriteTags();
    }

    XML.EndNode();  //Favorites
    XML.BeginNode("OneClick");
    XML.BeginNode("artists");
    for (var i = 0; i < oneClickTagsList.length; i++)
    {
        var tagObj = oneClickTagsList[i];
        var tagName = tagObj.getAttribute('id');
        if(!OneClickElementAlreadyAdded(tagName, addedOneClickTagsList))
        {
            var idValue = -1;
            
            XML.BeginNode("artist");
            
            idValue = GetOneClickId(tagName, favoritesSupported[j]);
            XML.Node("id", idValue);
            addedOneClickTagsList[addedOneClickTagsList.length] = tagName;
            
            XML.EndNode();  //artist
            
        }
        else
        {
            if(favoritesDebug == 1)
                alert("ProcessCheckFavorites: artist one-click id " + tagName + " already added. Not added again to the check favorites xml");
        }
    }    
    XML.EndNode();  //artists
    XML.EndNode();  //OneClick
    XML.EndNode();  //OneClickFavorites
    
    
    var xmlQueryData = XML.ToString();
    
    xmlObjCheckFavorites = CreateFavoritesAJAXRequest();
                
    var parameters = xmlQueryData;
    if(favoritesDebug == 1)
	    alert("ProcessCheckFavorites:UrlProcessFavorite = " + UrlProcessFavorite + ", parameters = " + parameters);
    	    
	xmlObjCheckFavorites.open("POST", UrlProcessFavorite, true);  							
	xmlObjCheckFavorites.setRequestHeader("Content-Type", "text/xml");					
	xmlObjCheckFavorites.setRequestHeader("Content-length", parameters.length);		
	xmlObjCheckFavorites.onreadystatechange = RetrieveCheckFavoritesData;
	xmlObjCheckFavorites.send(parameters);		
}

function RetrieveCheckFavoritesData() 
{
    var outputText;
    
    if(favoritesDebug == 1)
    {
        alert("RetrieveCheckFavoritesData:responseText = " + xmlObjCheckFavorites.responseText);
    }

    if ((xmlObjCheckFavorites != null) && (xmlObjCheckFavorites.readyState == 4) && (xmlObjCheckFavorites.status == 200))
    { 
        try
        {
            var xmlDoc = GetXmlDoc(xmlObjCheckFavorites.responseText);
            var FavoritesXML = xmlDoc.childNodes[0].firstChild;
            var OneClickXML = xmlDoc.childNodes[0].lastChild;
            UpdateCheckFavoritesTags(FavoritesXML);
            UpdateCheckOneClickTags(OneClickXML);
        }
        catch (err)
        {
            return;
        }
        
        xmlObjCheckFavorites = null;                   
    } // if  
    var loggedIn = IsUserLoggedIn();    
    if(!loggedIn)
    {
        ResetAllFavoriteTags();
        
        if(favoritesDebug == 1)
            alert("ProcessFavorites():User not logged in, returning...");        
            
        return;
    }
} 

function UpdateCheckFavoritesTags(xmlDoc) 
{
    var favoriteText;
    var id;
    var isFavorite;
    var favTagName ;
    var favoriteTag;
    
    if(typeof(xmlDoc) == "undefined")
    {
        if(favoritesDebug == 1)
            alert("UpdateCheckFavoritesTags:xmlDoc is undefined");
            
        return;
    }
    for(var j = 0; j < favoritesSupported.length; j++)
    {   
        try
        {         
            myNodes = xmlDoc.getElementsByTagName(favoritesSupported[j]);
        }
        catch (err)
        {
            return;
        }                       
        
        //Extract the different values using a loop.
        for(var k=0; k < myNodes.length; k++) 
        {   
            id = myNodes[k].getElementsByTagName('id')[0].firstChild.data;
            isFavorite = myNodes[k].getElementsByTagName('isfavorite')[0].firstChild.data;           
            
            favTagName = "fav-" + favoritesSupported[j] + "-" + id;
            if(isFavorite == "1")
            {                    
                favoriteText  = GetRemoveFavoriteCode(id, favoritesSupported[j]);
            }
            else
            {                 
                favoriteText  = GetAddToFavoriteCode(id, favoritesSupported[j]);
            }
            
            UpdateFavoriteElemets(favTagName, favoriteText);
        }   

    }
}


function UpdateCheckOneClickTags(xmlDoc) 
{
    var OneClickText;
    var id;
    var PlaylistID;
    var OneClickTagName ;
    var OneClickTag;
    var RelatedArtists;
    
    myNodes = xmlDoc.getElementsByTagName("artist");
    
    //Extract the different values using a loop.
    for(var k=0; k < myNodes.length; k++) 
    {            
        id = myNodes[k].getElementsByTagName('id')[0].firstChild.data;
        PlaylistID = myNodes[k].getElementsByTagName("PlaylistID")[0].firstChild.data;                       
        FeaturedArtistNames = new Array();
        FeaturedArtistIds = new Array();
        
        if (PlaylistID>0)
        {
            OneClickTagName = "oneclick-" + id;
            var RelatedArtistsNodes = myNodes[k].getElementsByTagName("FeaturedArtists")[0].getElementsByTagName("FeaturedArtist");
            for (var i=0; i<RelatedArtistsNodes.length; i++)
            {
                var fa_id = RelatedArtistsNodes[i].getElementsByTagName("id")[0].firstChild.data;
                var fa_name = RelatedArtistsNodes[i].getElementsByTagName("name")[0].firstChild.data;
                FeaturedArtistNames[FeaturedArtistNames.length]=fa_name;
                FeaturedArtistIds[FeaturedArtistIds.length]=fa_id;
            }

            if (OneClickLinksNotBold)
                if (language=='EN')
                    {OneClickText='<a href="#" onclick="OpenArtistRadio(\'' + PlaylistID + '\',\'' + FeaturedArtistNames[0] + '\');">' + FeaturedArtistNames[0] + ' Radio</a> - Featuring Artists like: ';}
                else
                    {OneClickText='<a href="#" onclick="OpenArtistRadio(\'' + PlaylistID + '\',\'' + FeaturedArtistNames[0] + '\');"> Radio ' + FeaturedArtistNames[0] + '</a> - Destacando artistas como: ';}
            else
                if (language=='EN')
                    {OneClickText='<a href="#" onclick="OpenArtistRadio(\'' + PlaylistID + '\',\'' + FeaturedArtistNames[0] + '\');">' + FeaturedArtistNames[0] + ' Radio</a> - Featuring Artists like: ';}
                else
                    {OneClickText='<a href="#" onclick="OpenArtistRadio(\'' + PlaylistID + '\',\'' + FeaturedArtistNames[0] + '\');"> Radio ' + FeaturedArtistNames[0] + '</a> - Destacando artistas como: ';}

            for (var x=0; x<FeaturedArtistNames.length; x++)
            {
                if (x==FeaturedArtistNames.length-2)
                {
                    if (language=='EN')
                        {OneClickText += BuildArtistLink(FeaturedArtistIds[x],FeaturedArtistNames[x]) + ', and ';}
                    else
                        {OneClickText += BuildArtistLink(FeaturedArtistIds[x],FeaturedArtistNames[x]) + ', y ';}
                }
                else if (x==FeaturedArtistNames.length-1)
                {
                    OneClickText += BuildArtistLink(FeaturedArtistIds[x],FeaturedArtistNames[x]);
                }
                else
                {
                    OneClickText += BuildArtistLink(FeaturedArtistIds[x],FeaturedArtistNames[x]) + ', ';
                }
            } 
            
            UpdateOneClickElemets(OneClickTagName, OneClickText);
        }
    }   

}


function BuildArtistLink(ArtistID, ArtistName)
{
    return ArtistName;
}


function CreateFavoritesAJAXRequest()
{
    var http_request = null;
    
    if (window.XMLHttpRequest)
    { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) 
        {
            // set type accordingly to anticipated content type
            http_request.overrideMimeType('text/xml');            
        }
    } 
    else if (window.ActiveXObject) 
    { // IE
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    if (!http_request) 
    {
        alert("CreateFavoritesAJAXRequest:Cannot create XMLHTTP instance");
        //return false;
    }
    
    return http_request;

}

function GetRemoveFavoriteCode(id, favoriteType)
{
    if (document.getElementById("ImAFanActive")!=null)
    {
        if (document.getElementById("ImAFanActive").value == "1")
        {
            useNewFavoritesButton=true;
        } 
    }
    var removeFavoriteCode;
    if (useNewFavoritesButton==false)
    {
        removeFavoriteCode= "<img style=\"border:0px none;\" border=\"0\" src=\"" + UrlAddToFavoritesImage + "\" /> <a href=\"#\" title=\"" + removeFavoriteTip + "\" onclick=\"javascript:RemoveFromFavorites('" + id + "', '" + favoriteType + "'); return false;\"> <span class=" + favoriteTextCss + ">" + removeFavoriteText + "</span></a>";
    }
    else
    {
        //removeFavoriteCode = "<table cellpadding=0 cellspacing=0 border=0><tr><td width=6 style=\"background: url(" + ImAFanLeft + ")\"></td><td height=22 valign=middle style=\"background: url(" + ImAFanMid + ")\"><img src=\"" + ImAFanNo + "\">&nbsp;<a href=\"#\" title=\"" + removeFanTip + "\" onclick=\"javascript:RemoveFromFavorites('" + id + "', '" + favoriteType + "'); return false;\"> <span class=" + favoriteTextCss + ">" + removeFanText + "</span></a></td><td width=6 style=\"background: url(" + ImAFanRight + ")\"></td></tr></table>";
        removeFavoriteCode="<div onclick='javascript:RemoveFromFavorites(\"" + id + "\", \"" + favoriteType + "\");' style='padding-left:19px;color: #000000; overflow:hidden;height:20px; line-height:20px; cursor: pointer; cursor: hand; font-size: 10px; background-image: url(" + FanImages[1].src + ");background-repeat:no-repeat' onmouseover='this.style.color=\"#FFFFFF\"; this.style.background=\"url(" + FanImages[2].src + ")\";this.innerHTML=removeFanText;' onmouseout='this.style.color=\"#000000\"; this.style.background=\"url(" + FanImages[1].src + ")\";this.innerHTML=addedFanText'>" + addedFanText + "</div>";
    }
    
    return removeFavoriteCode;
}

function GetAddToFavoriteCode(id, favoriteType)
{
    if (document.getElementById("ImAFanActive")!=null)
    {
        if (document.getElementById("ImAFanActive").value == "1")
        {
            useNewFavoritesButton=true;
        } 
    }
    var addToFavoriteCode;
    if (useNewFavoritesButton==false)
    {
        addToFavoriteCode = "<img style=\"border:0px none;\" border=\"0\" src=\"" + UrlRemoveFromFavoritesImage + "\" /> <a href=\"#\" title=\"" + addToFavoriteTip + "\" onclick=\"javascript:AddToFavorites('" + id + "', '" + favoriteType + "'); return false;\"> <span class=" + favoriteTextCss + ">" + addToFavoriteText + "</span></a>";
    }
    else
    {
        //addToFavoriteCode = "<table cellpadding=0 cellspacing=0 border=0><tr><td width=6 style=\"background: url(" + ImAFanLeft + ")\"></td><td height=22 valign=middle style=\"background: url(" + ImAFanMid + ")\"><img src=\"" + ImAFanYes + "\">&nbsp;<a href=\"#\" title=\"" + addFanTip + "\" onclick=\"javascript:AddToFavorites('" + id + "', '" + favoriteType + "'); return false;\"> <span class=" + favoriteTextCss + ">" + addFanText + "</span></a></td><td width=6 style=\"background: url(" + ImAFanRight + ")\"></td></tr></table>";
        addToFavoriteCode="<div onclick='javascript:AddToFavorites(\"" + id + "\", \"" + favoriteType + "\");' style='padding-left:19px; color: #336698; overflow:hidden; height:20px;line-height:21px; font-size: 10px; cursor: pointer; cursor: hand;background-repeat:no-repeat; background-image: url(" + FanImages[0].src + ");'>" +  addFanText + "</div>";
    }
    
    return addToFavoriteCode;
}

function CheckAndAddToFavorites(id, favoriteType, loginType)
{
    var loggedIn = IsUserLoggedIn();
    if(!loggedIn)
        return;
        
    //check to see if that station is already a favorite one, if so then just ignore and do nothing...otherwise add that!
    var userID = GetLoggedInUserID();
        
    if(!IsFavorite(userID, id, favoriteType))
        AddToFavorites(id, favoriteType);    
        
    if(oldLoginCallBack && loginType == 1)          //login happened, make sure to call any handler defined earlier...
    {
        loginCallBack = oldLoginCallBack;
        oldLoginCallBack = null;
        loginCallBack();
    }
        
    if(oldSignupCallBack && loginType == 2)         //signup happened, make sure to call any handler defined earlier...
    {
        signupCallBack = oldSignupCallBack;
        oldSignupCallBack = null;
        signupCallBack();
    }
    
}

function IsFavorite(userID, id, favoriteType)
{
    xmlObjIsFavorite = CreateFavoritesAJAXRequest();
    if(xmlObjIsFavorite == null)
        return;
        
    var parameters = "userid=" + userID + "&id=" + id + "&op=isfavorite" + "&favoritetype=" + favoriteType;
    if(favoritesDebug == 1)
        alert("IsFavorite:UrlProcessFavorite = " + UrlProcessFavorite + ", parameters = " + parameters);	    	    
    
	xmlObjIsFavorite.open("POST", UrlProcessFavorite, false);  							
	//if(UrlProcessFavorite.indexOf(".php") == -1)
	    xmlObjIsFavorite.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");				
	xmlObjIsFavorite.setRequestHeader("Content-length", parameters.length);				
	xmlObjIsFavorite.send(parameters);	
	
	if(favoritesDebug == 1)	
	    alert("IsFavorite:responseText=" + xmlObjIsFavorite.responseText);
	
	var xmlDoc = GetXmlDoc(xmlObjIsFavorite.responseText);
    var isFavorite = xmlDoc.getElementsByTagName('isfavorite')[0].firstChild.data;
    //var isFavorite = GetTagValue(xmlObjIsFavorite.responseText, "isFavorite");
    
    xmlObjIsFavorite = null;
    return (isFavorite == "1");
}

function UpdateFavoriteElemets(id, htmlCode)
{
    for (var i = 0; i < favoriteTagsList.length; i++)
    {
        var tagObj = favoriteTagsList[i];
        var tagName = tagObj.getAttribute('id');
        if(tagName == id)
        {
            if(favoritesDebug == 1)	
                alert("UpdateFavoriteElemets:Updating code for id=" + id);
            tagObj.innerHTML = htmlCode;            
            tagObj.style.display = "";
        }
    }
}

function UpdateOneClickElemets(id, htmlCode)
{
    for (var i = 0; i < oneClickTagsList.length; i++)
    {
        var tagObj = oneClickTagsList[i];
        var tagName = tagObj.getAttribute('id');
        if(tagName == id)
        {
            if(favoritesDebug == 1)	
                alert("UpdateFavoriteElemets:Updating code for id=" + id);
            tagObj.innerHTML = htmlCode;            
            tagObj.style.display = "";
        }
    }
}

function RemoveFromFavorites(id, favoriteType)
{

    var loggedIn = IsUserLoggedIn();
    if(!loggedIn)
        return;
        
    var userID = GetLoggedInUserID();
    if(userID == null)
        return;

    xmlObjRemoveFavorite = CreateFavoritesAJAXRequest();
    
    var favoriteElementID = "fav-" + favoriteType + "-" + id;
    UpdateFavoriteElemets(favoriteElementID, GetRemoveFromFavoriteStatusCode());
    
    var parameters = "userid=" + userID + "&id=" + id + "&favoritetype=" + favoriteType + "&op=removefavorite";    
    if(favoritesDebug == 1)
	    alert("RemoveFromFavorites:UrlProcessFavorite = " + UrlProcessFavorite + ", parameters = " + parameters);	    
    	
	xmlObjRemoveFavorite.open("POST", UrlProcessFavorite, false);  								
	//if(UrlProcessFavorite.indexOf(".php") == -1)
	    xmlObjRemoveFavorite.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");				
	xmlObjRemoveFavorite.setRequestHeader("Content-length", parameters.length);					
	xmlObjRemoveFavorite.send(parameters);	
	
	if(favoritesDebug == 1)	
	    alert("RemoveFromFavorites:responseText=" + xmlObjRemoveFavorite.responseText);
	    
    var xmlDoc = GetXmlDoc(xmlObjRemoveFavorite.responseText);
	var status = xmlDoc.getElementsByTagName('status')[0].firstChild.data;	
	//var status = GetTagValue(xmlObjRemoveFavorite.responseText, "status");
	
	//check for status of removal...
	if(status == "0")
	{		    
        UpdateFavoriteElemets(favoriteElementID, GetAddToFavoriteCode(id, favoriteType));
    }
    else
    {
        var error = xmlDoc.getElementsByTagName('error')[0].firstChild.data;    
        alert(error);
        
        UpdateFavoriteElemets(favoriteElementID, GetRemoveFavoriteCode(id, favoriteType));
    }        
    
    xmlObjRemoveFavorite = null;
}

function AddToFavorites(id, favoriteType)
{
    var loggedIn = IsUserLoggedIn();
    if(!loggedIn)            
    {
        if(loginCallBack)
            oldLoginCallBack = loginCallBack;
            
        if(signupCallBack)
            oldSignupCallBack = signupCallBack;
            
        loginCallBack = function() { CheckAndAddToFavorites(id, favoriteType, 1); };     
        signupCallBack = function() { CheckAndAddToFavorites(id, favoriteType, 2); };            
        
        showLoginDialog();            
        return;            
    }
     
    var userID = GetLoggedInUserID();
    
    xmlObjAddFavorite = CreateFavoritesAJAXRequest();
        
    var favoriteElementID = "fav-" + favoriteType + "-" + id;
    UpdateFavoriteElemets(favoriteElementID, GetAddToFavoriteStatusCode());
    
    var parameters = "userid=" + userID + "&id=" + id + "&favoritetype=" + favoriteType + "&op=addfavorite";    
    if(favoritesDebug == 1)
        alert("AddToFavorites:UrlProcessFavorite = " + UrlProcessFavorite + ", parameters = " + parameters);	    	    
    
	xmlObjAddFavorite.open("POST", UrlProcessFavorite, false);  							
	//if(UrlProcessFavorite.indexOf(".php") == -1)
	    xmlObjAddFavorite.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");				
	xmlObjAddFavorite.setRequestHeader("Content-length", parameters.length);				
	xmlObjAddFavorite.send(parameters);	
	
	if(favoritesDebug == 1)
	    alert("AddToFavorites:responseText= "+ xmlObjAddFavorite.responseText);
	    
	var xmlDoc = GetXmlDoc(xmlObjAddFavorite.responseText);    
    var status = xmlDoc.getElementsByTagName('status')[0].firstChild.data;    
    //var status = GetTagValue(xmlObjAddFavorite.responseText, "status");   
			    
	//check for status of adding..
	if(status == "0")
	{		            
        UpdateFavoriteElemets(favoriteElementID, GetRemoveFavoriteCode(id, favoriteType));
    }
    else if(status == "2")
    {
        UpdateFavoriteElemets(favoriteElementID, GetAddToFavoriteCode(id, favoriteType));
        
        var errorText = "No puedes a&ntilde;adir tu propia estaci&otilde;n de radio como tu favorita.";
        if(language == "EN")
            errorText = "You cannot add your own radio station as your favorite.";
                        
        alert(errorText);        
    }
    else
    {
        var error = xmlDoc.getElementsByTagName('error')[0].firstChild.data;    
        alert(error);
        
        UpdateFavoriteElemets(favoriteElementID, GetAddToFavoriteCode(id, favoriteType));
    }
        
    xmlObjAddFavorite = null;
}

function GetAddToFavoriteStatusCode()
{
    if(language == "EN")
        return "Saving...";
    else
        return "Guardando...";
      
}

function GetRemoveFromFavoriteStatusCode()
{
    if(language == "EN")
        return "Removing...";
    else
        return "Eliminando...";
      
}

function OpenArtistRadio(PlaylistID,ArtistName)
{
    window.open('http://myradio.batanga.com/Player/player.aspx?PlaylistID='+PlaylistID+'&q='+ArtistName,'LaunchPlayerAndPlaylist','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,width=650,height=600');        
}
