var _playlist_category = "all";
var _playlist_button = "";
var _playlist_XML;
var _current_track = 0;
var _current_id = 0;

var _has_rated = 0; //should load value with loadRating
var _rating_html = "";
var _vote_count = 0;

var _arr_trackIDs;

var _craveplayer_state = 0; // Current player's state: 0 = stop, 1 = buffer, 2 = play
var _craveplayer_playurl; // URL for XML playlist
var _craveplayer_needsupdate = false; // true if JW needs a new playlist update
var _craveplayer_arr_trackIDs; // trackIDs that match JW's internal list
var _craveplayer_track_override = 0; // to override JW's choice when loading new playlists (always track #1)
var _craveplayer_start_on_stop = false;
var _craveplayer_no_callback = false;
var _craveplayer_loading = false;

var _first_load = true; // JW FLV Player's SWF Object takes a while to load, so do not communicate with it on initial load

var _band_page = false;
var _title_id = 0;
var _cravetv_page = false;

var _logged_in_for_rating = false;
var _logged_in_for_voting = false;

var _playlistUrl = "/playlist/";

var _link_to_this = "http://www.cravefest.com/";
var _video_embed = "http://www.cravefest.com/";
var _artist_key = "";

var addthis_url = "http://www.cravefest.com/";
var addthis_title = "CraveFest International Music Video Festival";

//emails friend with link to video and if checked, playlist
function shareWithFriend() {

	var filter = /[_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)/
	var friendEmail = $("#friend_email").val();
	var includePlaylist = $("#include_playlist").is(":checked");
	
	if (filter.test(friendEmail)) {
		$.post("/data/video_share.aspx", "email=" + friendEmail + "&cravetv=" + ((_cravetv_page||(!_band_page&&_playlist_button=="featured")) ? 1 : 0) + "&tid=" + _current_id);
		resetSharing();
		$("#message_share").html("(email sent to: " + friendEmail + ")");
	} else {
		alert("Please enter a valid email address.");
	}
	
}

//resets share with friend, ie removes email, unchecks include playlist
function resetSharing() {

		$("#message_share").html("");
		$("#friend_email").val("");
		$("#include_playlist").attr("checked", false);
		
}

function rate_video(id,rating) {
	if (!loggedIn) {
        $("#message_rate").html("(You must be logged in to rate)");
        showQuickLogin();
    } else if (_logged_in_for_rating == false) {
        loadRating(id);
        setTimeout('rate_video('+id+','+rating+');', 700);
    } else if (!_has_rated) {
		$("#message_rate").html("(Thanks for rating! - You rated " + rating + "/5)");
        $.ajax({
	        type: "POST",
	        url: "/data/video_rate.aspx",
	        dataType: "text",
	        data: {id: id, rating: rating},
	        success: function(text) {
        		_has_rated = 1;
        		loadRating(id);
	        }
        });			
	} else {
		$("#message_rate").html("You can only rate a video once.");
		$("#video_rating").html(_rating_html);
	}
}

function vote_video(id,rating) {
    if(rating == 0) {
        return;
    }
	if (!loggedIn) {
	    var loc = "/login/?task=vote&id=" + id;
	    if(_artist_key != "") {
	        loc += "&artist=" + _artist_key;
	    }
        window.location = loc;
        //showQuickLogin(); $("#username-field").focus();
    } else if (_logged_in_for_voting == false) {
        loadVoting(id);
        setTimeout('vote_video('+id+','+rating+');', 700);
    } else {
        var type;
        if(rating > 0) {
            type = "add";
        } else {
            type = "remove";
        }
        
	    if(type == "add")
		    $("#vote_info_text").html("Thanks for voting!");
		else
		    $("#vote_info_text").html("Removing vote...");
		    
        $.ajax({
	        type: "POST",
	        url: "/data/video_vote.aspx",
	        dataType: "text",
	        data: {id: id, type: type},
	        success: function(text) {
    		    loadVoting(id);
	        }
        });			
	}
}

//searches videos based on type (search or category) and value (string)
//returns XML which is then reformatted to HTML to replace current playlist
function searchPlaylist(type, value) {
	var playlistXHTML;
	var trackNumber = 1;
	var rowClass;
	var dataRequest = "";
	
	$("#playlist_items").html("");

    if (_band_page == true && type == "category" && value == "related") {
        var id = 0;
        if(_current_id > 0) {
            id = _current_id;
        } else if(_title_id > 0) {
            id = _title_id;
        }
        if(id > 0) {
            dataRequest = "id=" + id;
            dataRequest += "&related=all";
        } else {
            dataRequest = "random=20";
        }
        type = "search";        
    } else if (_band_page == true && type == "category" && value == "band") {
        if(_band_id > 0) {
            dataRequest = "bid=" + _band_id;
        }
        if(_title_id > 0) {
            if(dataRequest != "") {
                dataRequest += "&";
            }
            dataRequest += "id=" + _title_id;
        }
        if(_artist != "") {
            if(dataRequest != "") {
                dataRequest += "&";
            }
            dataRequest += "artist=" + _artist;
        }
    } else if (_cravetv_page == true && type == "category") {
        dataRequest = "cravetv=" + _cravetv_mode;
        if(_title_id > 0) {
            //$("#playlist_header").hide();
            $("#playlist_header").html("<ul><li><a class=\"selected\">Crave TV</a></li></ul>");
            dataRequest += "&id=" + _title_id;
        }
    } else if (type == "search" || type == "search_sp") {
		deselectCategory();
		_playlist_button = "all";
		dataRequest = "search=" + value;
	} else {
		dataRequest = "category=" + value;
		switch(_playlist_button) {
		    case "featured":
		        dataRequest += "&featured=1";
		        break;
		    case "hot":
		        dataRequest += "&sort=viewcount&subtype=vote08";
		        break;
		    case "random":
		        dataRequest += "&random=1&subtype=vote08";
		        break;
		    case "latest":
		        dataRequest += "&sort=latest";
		        break;
		}
	}

    // set the new playlist flag
    _craveplayer_playurl = _playlistUrl+"?"+dataRequest;
    if(!_first_load) {
        _craveplayer_needsupdate = true;
    }
    
	playlistXHTML = "<table id=\"playlist_items_table\" cellspacing=0>";
	playlistXHTML += "<tbody>\n";
	
	$.ajax({
		type: "GET",
		url: _playlistUrl,
		dataType: "xml",
		data: dataRequest,
		success: function(xml) {
		
			if($("status",xml).text() == "2") return; 
			_playlist_XML = xml;
			
        	_arr_trackIDs = new Array();
        	if(_first_load) {
        	    _craveplayer_arr_trackIDs = new Array();
        	}
        	
        	var bFirst = true;
        	var firstID = 0;
        	var strQueryType = "regular";
        	if(type == "search" || type == "search_sp") {
        	    strQueryType = "searchhit";
        	}

			playlistXHTML += "<tr class=\"even\">\n";
			playlistXHTML += "<td>#</td>";
			playlistXHTML += "<td>Video / Song Title</td>";
			playlistXHTML += "<td>Artist / Group Name</td>\n";
			playlistXHTML += "</tr>\n";
			
			//loop through all the tracks and create playlist table
			$(_playlist_XML).find('track').each(function(){
			    if(bFirst) {
			        bFirst = false;
			        firstID = $(this).attr("id");
			    }
			
				(trackNumber % 2) ? rowClass = "odd" : rowClass = "even";
				
				_arr_trackIDs.push($(this).attr("id"));
				if(_first_load) {
				    _craveplayer_arr_trackIDs.push($(this).attr("id"));
				}

				playlistXHTML += "<tr class=\"" + rowClass + "\" id=\"track" + $(this).attr("id") + "\">\n";
				playlistXHTML += "<td onclick=\"playTrack(" + trackNumber + "," + $(this).attr("id") + ",'" + strQueryType + "');\">" + trackNumber + "</td>";
				playlistXHTML += "<td onclick=\"playTrack(" + trackNumber + "," + $(this).attr("id") + ",'" + strQueryType + "');\">" + $(this).find('title').text() + "</td>";
				playlistXHTML += "<td onclick=\"playTrack(" + trackNumber + "," + $(this).attr("id") + ",'" + strQueryType + "');\">" + $(this).find('creator').text() + "</td>\n";
				playlistXHTML += "</tr>\n";
			
				trackNumber++;
			
			});
			
			if(firstID == 0) {
			    playlistXHTML += "<tr class=\"odd\">\n";
			    playlistXHTML += "<td></td>";
			    playlistXHTML += "<td>No results</td>";
			    playlistXHTML += "<td></td>\n";
			    playlistXHTML += "</tr>\n";
			}
			
			playlistXHTML += "</tbody></table>";
			
			//set html for playlist window
			$("#playlist_items").html(playlistXHTML);
			
			//play first track
			if(firstID != 0 && _craveplayer_state == 0 && type != "search_sp") {
			    playTrack(1,firstID,'search');
			}
			
			_isSearching = false;
            //_oldValue = value;
			
			//$("#debug").text(playlistXHTML);
		}
	});
}

var _isSearching = false;
var _oldValue = "";
var _oldLen = 0;
function searchPlaylistSpotlight(value) {
    while(value.substring(0,1) == ' ') {
        // left trim whitespace
        value = value.substring(1,value.length);
    }
    if(_oldValue == value) {
        return;
    }
    if(value.length < 3 && _oldLen < 3) {
        _oldLen = value.toString().length;
        return;
    }
    _oldLen = value.length;
    if(_isSearching == false) {
        _isSearching = true;
        _oldValue = value;
        searchPlaylist('search_sp', value);
    } else {
        setTimeout(function(){_isSearching=false; searchPlaylistSpotlight(value);},500);
    }
}

function playTrack(number,id,typ) {
    var typ = (typ == null) ? 'regular' : typ;
    
    if(_craveplayer_loading && typ == 'regular') {
        setTimeout("playTrack("+number+","+id+",'"+typ+"');", 200);
        return;
    }
    
    var subtyp = 'none';
    if(typ == 'searchhit') {
        subtyp = typ;
        typ = 'regular';
        // only update the player if the search hit is not currently loaded
        if(id != _current_id) {
            _craveplayer_needsupdate = true;
        }
        _craveplayer_no_callback = true;
    }
    
    if(typ == 'callback' && !_craveplayer_needsupdate) {
        _craveplayer_arr_trackIDs = _arr_trackIDs; // make sure our copy of JW's internal track list is up to date
    }
    
    if(typ == 'callback' && id == 0) {
        id = _craveplayer_arr_trackIDs[number-1];
    }
    
    if(typ == 'search' && id == 0) {
        return;
    }
    
    // classify the state of the event	
	var regularClick = (typ == 'regular' && !_craveplayer_needsupdate);
    var regularClickNewPlaylistUpdate = (typ == 'regular' && _craveplayer_needsupdate);
	var callbackWithOldPlaylist = (typ == 'callback' && _craveplayer_needsupdate);
	var duplicateClickOnPlayingVideo = (regularClick && id == _current_id && _craveplayer_state != 0);
	
	var rowClass;
	(_current_track % 2) ? rowClass = "odd" : rowClass = "even";
		
	//make sure its not already playing currently selected item
	if(!duplicateClickOnPlayingVideo) {
	    var old_number = number;
	    
	    if( regularClickNewPlaylistUpdate || (typ == 'search' && _craveplayer_state == 0 && _craveplayer_needsupdate) ) {
            _craveplayer_arr_trackIDs = _arr_trackIDs;
	        if(subtyp == 'searchhit' || _playlist_button == 'random' || _playlist_button == 'related') {
	            _craveplayer_playurl = _playlistUrl+"?id="+id;
	            number=1;
	        }
	        _craveplayer_loading = true;
	        setTimeout("_craveplayer_loading=false;", 1000); // safeguard
            _intStopCount = 0;
            if(_craveplayer_state != 0) {
                _craveplayer_track_override = number;
                _craveplayer_no_callback=true;
                setTimeout("_craveplayer_start_on_stop = true;", 200);
            }
            sendEvent('jscraveplayer','stop');
            setTimeout("loadFile('jscraveplayer',{file:'"+_craveplayer_playurl+"'})", 200);
        }
        number = old_number;
        
		if(id != _current_id || typ == 'regular') {
		    if (_band_page == true) {
		        loadBandInfo(id);
		    } else {
		        loadVideoInfo(id);
		    }
		    loadRating(id);
		}
		
		if(  !callbackWithOldPlaylist && ( typ != 'search' || (typ == 'search' && (_first_load || _craveplayer_state == 0)) )  )
		{
            $("#track" + _current_id).removeClass().addClass(rowClass);
            $("#track" + id).removeClass().addClass("selected");
		}
		
        var boolPlayPause = (typ=='regular' && _current_id == id && _craveplayer_state == 0);
        
		_current_track = number;
		_current_id = id;
		
	    if(boolPlayPause) {
	        //sendEvent('jscraveplayer','playpause');
	        setTimeout("sendEvent('jscraveplayer','playpause');", 100);
	    } else if(regularClick && subtyp != 'searchhit') {
   		    //sendEvent('jscraveplayer','playitem',number-1);
   		    num=number-1;
   		    setTimeout("sendEvent('jscraveplayer','playitem',"+num+")", 100);
        }
        if ( regularClickNewPlaylistUpdate || (typ == 'search' && _craveplayer_state == 0 && _craveplayer_needsupdate) ) {
            _craveplayer_needsupdate = false;
	    }
	    
	    if(_first_load && typ == 'search') {
	        _first_load = false;
	    }
	} else { // duplicate click
	    if(typ != 'search') {
		    loadVideoInfo(id);
		    loadRating(id);
		}
	    if(subtyp == 'searchhit') {
            $("#track" + _current_id).removeClass().addClass(rowClass);
            $("#track" + id).removeClass().addClass("selected");	    
	    }
	}
}

//deselects current playlist category, uses #playlist + _playlist_category
function deselectCategory() {
	$("#playlist_" + _playlist_button).css("background-color", "transparent");
	//_playlist_category = "";
}

//loads playlist based on category selected, uses #playlist + _playlist_category
function loadPlaylist(category) {
    _login_page = true;
    if(category == "related" && _playlist_button == "related") {
        return;
    }
    switch(category) { // these are non-categories
        case "latest":
        case "hot":
        case "random":
        case "featured":
            if(category == "featured") {
                $("#playlist_category_div").hide();
            } else {
                $("#playlist_category_div").show();
            }
		    deselectCategory();
            _playlist_button = category;
		    $("#playlist_" + _playlist_button).css("background-color", "#7f0e13");
            $("#playlist_search_params").val("");
            searchPlaylist("category", _playlist_category);
            $("#playlist_items").css("background", "transparent");
            return;
    }
	if (category != _playlist_category) {
		deselectCategory();
		$("#playlist_search_params").val("");
		$("#playlist_" + category).css("background-color", "#7f0e13");
		_playlist_button = category;
        searchPlaylist("category", _playlist_button);
		$("#playlist_items").css("background", "transparent");
	}
	if (_cravetv_page && _cravetv_mode == 1) {
	    $("#band_bio").html("<h1>Backstage</h1>");
		$("#playlist_smashup").css("background-color", "transparent");
	    $("#playlist_backstage").css("background-color", "#7f0e13");
	}
	else if (_cravetv_page && _cravetv_mode == 2) {
	    $("#band_bio").html("<h1>Guitar Smashups</h1>");
		$("#playlist_backstage").css("background-color", "transparent");
	    $("#playlist_smashup").css("background-color", "#7f0e13");
	}
}

function loadVideoInfo(id) {
	var geturl = "/data/getVideoInfo.aspx";
	
	if(_cravetv_page) {
	    loadCraveTVInfo(id);
	    return;
	}
	
	$("#video_info").html("");
	$("#video_info").css("background", "transparent url('/images/loading_videoinfo.gif') center no-repeat");
	$.ajax({
		type: "POST",
		url: geturl,
		dataType: "html",
		data: {id: id, mini: 1},
		success: function(html) {
    		$("#video_info").css("background", "transparent");
		    html_split = html.split("||javascript||");
		    $("#video_info").html(html_split[0]);
		    _link_to_this = addthis_url = html_split[2];
			_video_embed = getEmbedCode(id);
		    $("#link_to_this").val(_link_to_this);
		    $("#video_embed").val(_video_embed);
		    addthis_title = html_split[3];
		    _artist_key = "";
		    var query = _link_to_this.substring(_link_to_this.indexOf('?')+1);
		    var pairs = query.split('&');
		    for(var i = 0; i < pairs.length; i++) {
		        var pos = pairs[i].indexOf('=');
		        if(pos == -1) continue;
		        var argname = pairs[i].substring(0,pos);
		        var value = pairs[i].substring(pos+1);
		        if(argname == "artist") {
		            _artist_key = value;
		        }
		    }
		}
	});			
}

function loadBandInfo(id) {
	var geturl = "/data/getVideoInfo.aspx";
	
	var mini = 0;
	if(_playlist_button == "related") {
	    mini = 1;
	}
	
	$("#video_info").css("background", "transparent url('/images/loading_videoinfo.gif') center no-repeat");
	$.ajax({
		type: "POST",
		url: geturl,
		dataType: "html",
		data: {id: id, mini: mini},
		success: function(html) {
    		$("#video_info").css("background", "transparent");
		    html_split = html.split("||javascript||");
		    $("#video_info").html(html_split[0]);
		    $("#band_bio").html(html_split[1]);
		    $("#link_to_this").val(html_split[2]);
		    $("#video_embed").val(getEmbedCode(id));
		    _link_to_this = addthis_url = html_split[2];
		    addthis_title = html_split[3];
		    _artist_key = "";
		    var query = _link_to_this.substring(_link_to_this.indexOf('?')+1);
		    var pairs = query.split('&');
		    for(var i = 0; i < pairs.length; i++) {
		        var pos = pairs[i].indexOf('=');
		        if(pos == -1) continue;
		        var argname = pairs[i].substring(0,pos);
		        var value = pairs[i].substring(pos+1);
		        if(argname == "artist") {
		            _artist_key = value;
		        }
		    }
		}
	});		
}

function loadCraveTVInfo(id) {
	var geturl = "/data/getVideoInfo.aspx";
	
	$("#video_info").css("background", "transparent url('/images/loading_videoinfo.gif') center no-repeat");
	$.ajax({
		type: "POST",
		url: geturl,
		dataType: "html",
		data: {id: id, mini: (_cravetv_page ? 0 : 1)},
		success: function(html) {
    		$("#video_info").css("background", "transparent");
		    html_split = html.split("||javascript||");
		    $("#video_info").html(html_split[0]);
		    if(_cravetv_page || _band_page) {
		        $("#band_bio").html(html_split[1]);
		    }
		    $("#link_to_this").val(html_split[2]);
		    $("#video_embed").val(getEmbedCode(id));
		    _link_to_this = addthis_url = html_split[2];
		    addthis_title = html_split[3];
		    _artist_key = "";
		    var query = _link_to_this.substring(_link_to_this.indexOf('?')+1);
		    var pairs = query.split('&');
		    for(var i = 0; i < pairs.length; i++) {
		        var pos = pairs[i].indexOf('=');
		        if(pos == -1) continue;
		        var argname = pairs[i].substring(0,pos);
		        var value = pairs[i].substring(pos+1);
		        if(argname == "artist") {
		            _artist_key = value;
		        }
		    }
		}
	});		
}

function loadRating(id) {
	var geturl = "/data/getVideoRating.aspx";

	$("#video_rating").html("");
	$("#video_rating").css("background", "transparent url('/images/loading_videoinfo.gif') center no-repeat");
	$.ajax({
		type: "POST",
		url: geturl,
		dataType: "html",
		data: {id: id},
		success: function(html) {
		    _logged_in_for_rating = loggedIn;
    		$("#video_rating").css("background", "transparent");
		    html_split = html.split("||javascript||");
		    if(html_split[0]=="false") {
		        _has_rated = false;
		    } else {
		        _has_rated = true;
		    }
		    $("#video_rating").html(html_split[1]);
		    _rating_html = html_split[1];
		}
	});
	loadVoting(id);
}

function loadVoting(id) {
	var geturl = "/data/getVideoVoting.aspx";
	
	var voteEligible = "0", voteCount = -1, hasVoted = "na", hasVotesLeft = "na", voteCountLeftUser = "na", videoType = 1;
	var voteBtn, voteTxt, voteValue = 1;
	var voteBtnF, voteBtnFb;

	$.ajax({
		type: "POST",
		url: geturl,
		dataType: "text",
		data: {id: id},
		success: function(text) {
		    _logged_in_for_voting = loggedIn;
		    vs = text.split("|");
		    if(vs[0]=="success") {
		        voteEligible = vs[1];
		        _vote_count = voteCount = vs[2];
		        hasVoted = vs[3];
		        hasVotesLeft = vs[4];
		        voteCountLeftUser = vs[5];
		        videoType = vs[6];
		        voteLink = "";
		        if(voteEligible == "1") {
		            if(loggedIn == true && hasVoted == "na") {
		                quickLogout();
		                _logged_in_for_voting = false;
		                _logged_in_for_rating = false;
		            }
		            if(loggedIn != true) {
		                voteBtn = "login";
		                voteTxt = "Click to cast your vote";
		            } else {
	                    if(hasVoted == "true") {
	                        voteBtn = "remove";
	                        voteTxt = "You have voted for this video";
	                        voteValue = -1;
	                    } else {
		                    if(hasVotesLeft == "false") {
		                        voteBtn = "nocredits";
		                        voteTxt = "You have no credits";
		                        voteValue = 0;
		                    } else {
	                            voteBtn = "cast";
	                            voteTxt = voteCountLeftUser + " credits left";
		                    }
	                    }
		            }
		            voteBtnF = "/images/btn_vote_" + voteBtn + ".gif";
		            voteBtnFb = "/images/btn_vote_" + voteBtn + "_b.gif";
		        } else {
		            switch(videoType)
		            {
		                case "2":
		                    voteBtn = "cravetv";
		                    voteTxt = "Crave TV";
		                    voteLink = "http://www.vuze.com/channel/cravefest_tv";
		                    break;
		                case "3":
		                    voteBtn = "awardnominee";
		                    voteTxt = "2007 Award Nominee";
		                    break;
		                case "4":
		                    voteBtn = "awardwinner";
		                    voteTxt = "2007 Award Winner";
		                    break;
		                case "5":
		                    voteBtn = "awardfinalist";
		                    voteTxt = "2008 Award Nominee";
		                    break;
		                case "6":
		                    voteBtn = "award08winner";
		                    voteTxt = "2008 Award Winner";
		                    break;
		                case "1":
		                default:
		                    voteBtn = "ineligible";
		                    voteTxt = "Not eligible for voting";
		                    break;		                
		            }
		            voteValue = 0;
		            voteBtnF = "/images/btn_vote_" + voteBtn + ".gif";
		            if (videoType == "2")
		                voteBtnFb = "/images/btn_vote_" + voteBtn + "_b.gif";
		            else
		                voteBtnFb = voteBtnF;
		        }
		    } else { // if(vs[0]=="success")
		        voteBtnF = voteBtnFb = "/images/btn_vote_" + "ineligible" + ".gif";
		    }
		    var voteLink_a = "", voteLink_b = "";
		    if(voteLink != "")
		        voteLink_a = "<a href=\"" + voteLink + "\">";
		    else
		        voteLink_b = "</a>";
			$("#video_voting").html(
			    voteLink_a +
				"<img src=\"" + voteBtnF + "\" border=\"0\" alt=\"voting\" id=\"vote_btn\"/>\n"
				+ voteLink_b
				// +
				//"<div id=\"vote_info\">" + voteTxt + " | Need <a href=\"#\" id=\"helplink_voting\">help</a>?</div>"
			);
			$("#vote_info_text").html(voteTxt);
		    if(voteEligible == "1") {
		        if(voteValue == 0) {
		            $("#vote_btn").click(function() { window.location = "/mycrave"; });
		        } else {
       		        $("#vote_btn").click(function() { vote_video(id,voteValue); });
       		    }
		    }
		    $("#vote_btn").mouseover(function() { $("#vote_btn").attr("src", voteBtnFb); });
		    $("#vote_btn").mouseout(function() { $("#vote_btn").attr("src", voteBtnF); });
			
		}
	});		
}

function getEmbedCode(id) {
	var embedcode = 
	'<embed ' +
	'src="http://www.cravefest.com/mediaplayer/embedplayer.swf" ' +
	'width="640" ' +
	'height="360" ' +
	'allowscriptaccess="always" ' + 
	'allowfullscreen="true" ' + 
	'flashvars="width=640&height=360&displayheight=360&file=http://www.cravefest.com/video/emb/%3Fid%3D'+id+'&type=flv&image=http://www.cravefest.com/video/emb/thumb/%3Fid%3D'+id+'%26size=640j&id='+id+'&callback=http://www.cravefest.com/data/video_view_ex.aspx&recommendations=http://www.cravefest.com/playlist/%3Frelated%3Dall%26recommendfmt%3D1%26id%3D'+id+'&overstretch=true" ' + 
	'/>';
    return embedcode;
}

function loginPageCallback(success)
{
    if(success) {
        if(_current_id > 0) {
            loadVoting(_current_id);
        }
    }
}

function logoutPageCallback()
{
    if(_current_id > 0) {
        loadVoting(_current_id);
    }
}
