// $Id: views_bookmark.js,v 1.1.2.13 2008/01/07 08:38:56 quicksketch Exp $
if (Drupal.jsEnabled) {
	$(document).ready(function () {
		$('.mlfan_music_favorite_msg').hide();
		$('a.mlfan_music_favorite_link').bind('click', function() {

			// scroll pane for news
//alert("typeof this="+(typeof this)+"\nthis.constructor="+this.constructor+"\nthis="+this+"\nthis.id="+this.id+"\nthis.className="+this.className);
			var matches = this.id.match(/mlfan_music_favorite_link-([0-9]+)/);
			var nid = matches[1];
			var msg_id = "mlfan_music_favorite_msg-"+nid;
//alert("msg_id="+msg_id+",nid="+nid);
			return mlfan_music_favorite_click(this, msg_id);
		});

		var mlfan_music_favorite_click = function (element, msg_id) {
			
			$('span.mlfan_music_favorite_msg:visible').fadeOut();
			$(element).empty().append(Drupal.settings.mlfan_music.processing_image);			
			

			// Remove the destination parameter.
			if (Drupal.settings.mlfan_music.clean_url == '1') {
				var request_url = element.href.slice(0, element.href.lastIndexOf('?')) + '/1';
			} else {
				var request_url = element.href.slice(0, element.href.indexOf('&')) + '/1';
			}
//alert("request_url="+request_url);

			// Send POST request
			$.ajax({
				type: 'POST',
				url: request_url,
				data: '',
				dataType: 'json',
				success: function (data) {
//alert("success nid="+nid);
					// Display errors
					if (!data.status) {
						// Change link back
						if(data.errmsg != null) {
							$('#errmsg').html(data.errmsg);
						}
						return;
					}
//alert('element.constructor='+element.constructor);
					var newlink = $(data.newlink);
				       // Reattach the behavior to the new link.
					if ($('a', newlink).size() > 0) {
//alert("a, newlink");
						$('a', newlink).bind('click', function() { return mlfan_music_favorite_click(this, msg_id) });
					} else {
//alert("newlink");			
						$(newlink).bind('click', function() { return mlfan_music_favorite_click(this, msg_id) });
					}
					$(element).parent().empty().append(newlink);
					$('#'+msg_id).html(data.trackmsg);
					//$('#'+msg_id).fadeIn();
					//setTimeout(fade_out, 5000, msg_id);
					
					$('#'+msg_id).fadeIn('fast',
						function () {
							$('#'+msg_id).fadeTo(4000, .99, function () {
									$('#'+msg_id).fadeOut('fast'); 
							}); 
						}
					);
	
					
					//$(element).html(data.newlink_text);
					//element.href = data['newlink_href'];
					//$('#mlfan_music_favorite_link').html(data.newlink);
					//$('.mlfan_music_favorite_msg').html(data.trackmsg).fadeIn();
					
				},
				error: function (xmlhttp) {
//alert("error");
					$('#errmsg').html('An HTTP error '+ xmlhttp.status +' occured.\n'+ element.href);
					alert('An HTTP error '+ xmlhttp.status +' occured.\n'+ element.href);
				}
			});
			
			return false;
     
		}		


	//$('span.mlfan_music_favorite_wrapper > a').html('test');
	});
}// function...

// ---------------------------------------------------------------------------------------------------------------------------
/*
// remve this function - no longer needed - DM 12-10-2008
function fade_out(my_msg_id){
	$('#'+my_msg_id).fadeOut();
}
*/
// ---------------------------------------------------------------------------------------------------------------------------
function print_r(theObj){
  if(theObj.constructor == Array || theObj.constructor == Object || theObj.constructor == HTMLAchorElement){
    var str = "";
    str += ("<ul>\n");
    for(var p in theObj){
      if(theObj[p].constructor == Array|| theObj[p].constructor == Object){
	str += ("<li>["+p+"] => "+typeof(theObj)+"</li>\n");
        str += ("<ul>\n")
        str += print_r(theObj[p]);
        str += ("</ul>\n")
      } else {
str += ("<li>["+p+"] => "+theObj[p]+"</li>\n");
      }
    }
    str += ("</ul>\n");
  }
  return str;
}
