jQuery.noConflict();

jQuery(function() {
	var e = jQuery("#export");
	if (e.length) {
		e.dialog({
			bgiframe: true,
			autoOpen: false,
			modal: true,
			width: "600px",
			position: ["center", "top"],
			resizable: false,
			draggable: false,
			minHeight: 0
		});
	}
	jQuery("#export-menu").click(
		function() {
			jQuery("#export").dialog('open');
		}
	);
	jQuery("#export div").addClass("export-item");
	jQuery("#export a").addClass("tipsy-hint-e");

});



function toggleInlineLayer(whichLayer) {
	jQuery("#"+whichLayer).toggle();
}


function initList() {
	jQuery(".faded").css("opacity","0.3").removeAttr("checked");

	jQuery("#tagging_help_button").click(function(event) {
		event.preventDefault();
		jQuery("#tagging_help_text").toggle();
	});
	jQuery("#select_all").click(function(event) {
		event.preventDefault();
		cb_select(true);
	});
	jQuery("#select_none").click(function(event) {
		event.preventDefault();
		cb_select(false);
	});

	jQuery(".etal").bind("click", function() {
		var t = jQuery(this);
		t.next().show();
		t.hide();
	});

	_toggle_article_details(getUIOption("show_article_details", true));
}


// select "all"/"none" on list header
function cb_select(state) {
	var cb = jQuery(".faded");
	cb.each(function() {
		var b = jQuery(this);
		if (b.attr('checked') != state) {
			b.click();
		}
	});
}

// toggle (on click) a single checkbox
// cb_xxxxxx is id of the actual checkbox
// li_xxxxxx is the id of the <td> with the details ("li" is an historical
// artifact as it used to be a <li>)
function toggle_cb(article_id) {
	var b =jQuery("#cb_"+article_id); // checkbox
	var li =jQuery("#li_"+article_id); // table cell
	var state = b.attr('checked');

	// unchecked boxes are "dimmed"
	b.css("opacity", state ? "1.0" : "0.3");

	// once any box is checked, show the "menu"
	jQuery("#tagging").show();

	// private articles are already "grey", so need to maintain that
	// Here, we make them a greyer shade compared to other articles.
	var is_private = li.hasClass("private") || li.hasClass("private_selected");

	if (is_private) {
		li.removeClass("private");
		li.removeClass("private_selected");
		li.addClass(state ? "private_selected": "private");
	} else {
		li.removeClass("li_deselected");
		li.removeClass("li_selected");
	 	li.addClass(state ? "li_selected" : "li_deselected");
	}
}


function toggle_article_details(state) {
	_toggle_article_details(state);
	setUIOption("show_article_details", state);
}


function _toggle_article_details(state) {
	jQuery(".article_details").toggle(state);
	jQuery(".amazon_images").toggle(state);
	jQuery("#hide_article_details").toggle(state);
	jQuery("#show_article_details").toggle(!state);
	if (state) {
		jQuery(".show_details_on").toggle(false);
		jQuery(".show_details_off").toggle(false);
	} else {
		jQuery(".show_details_on").toggle(true);
		jQuery(".show_details_off").toggle(false);
	}
}


function show_article_details(id, state) {
	jQuery('#ad_'+id).toggle(state);
	jQuery('#adon_'+id).toggle(!state);
	jQuery('#adoff_'+id).toggle(state);
}


function show_my_copy(article_id, username, have_pdf) {
		var item = jQuery("#mycopy_"+article_id);
		item.show();
		item.attr("href","/user/"+username+"/article/"+article_id);

		// if we've already shown a PDF, using other logic, exit
		if (jQuery("#otherpdf_"+article_id).size() > 0) {
			return;
		}

		if (have_pdf) {
			var item = jQuery("#mypdf_"+article_id);
			item.show();
			var href = item.attr("href");
			jQuery("#mypdf_preview_"+article_id).show();
			item.attr("href", href.replace("##USERNAME##", username));
		}

}


function _pdfpreview(username, article_id, filename) {
	jQuery("#pdfpreview_img").attr("src","/pdfpreview/user/"+username+"/article/"+article_id);
	var download = jQuery("#pdfpreview_link");
	var url = "/pdf/user/"+username+"/article/"+article_id+"/"+filename;
	download.attr("href",url);
	jQuery("#pdfdownload_form").attr("action",url);
	show_pdfpreview(true);

//	jQuery("#pdfpreview_img").load( function() {
//		jQuery("#pdfdownload_button").click();
//	});
}


function show_pdfpreview(state) {
	var e = jQuery("#pdfoverlay");
	e.toggleClass('pdfoverlay-visible', state);
	e.toggleClass('pdfoverlay-hidden', !state);
}


function searchExperts(lastname, initials, hash, icon) {
	var url = "http://www.biomedexperts.com/citeulike/experts.aspx?"+
		"lastname="+lastname+"&initials="+initials+"&callback=?&hash="+hash;

	var author_link="http://www.biomedexperts.com/AuthorDetailsGateway.aspx?auid=";
	var article_link="http://www.biomedexperts.com/Abstract.bme/";
	var img = "<img src='"+icon+"' />";
	var results = jQuery("#bme_results");
	results.show();
	jQuery.getJSON(url, function(data, status) {
		// alert(data["Experts"] + " "+data["Status"]);
		var bmeStatus = data["Status"];

		results.empty();

		// jQuery("#status").html(data["Status"]);

		if (bmeStatus && (bmeStatus == "to-many-results" || bmeStatus == "too-many-results")) {
			results.addClass("bmeError");
			results.append("<p>That search matched too many authors on BiomedExperts to display here.</p>");
			results.append("<p>Click <a href='http://www.biomedexperts.com/Experts/SearchPerson.aspx?strategy=2&name="+
				lastname+"&initials="+initials+"'>here</a> to go to BiomedExperts to refine your search</p>");
			return;
		}

		if (!bmeStatus || bmeStatus != "ok") {
			results.addClass("bmeError");
			results.append("<p>Unable to get results from BiomedExperts</p>");
			return;
		}

		var experts = data["Experts"];
		if (!experts || experts.length == 0) {
			results.addClass("bmeError");
			results.append("<p>No matches found</p>");
			return;
		}
		if (experts) {
			results.addClass("bmeSuccess");
			for (var i=0; i<experts.length; i++) {
				var h ="<div class='bmeAuthor'><a class='nohilight' href='"+
					author_link+experts[i]["BMEID"]+"'>"+img+"</a> "+
					experts[i]["Name"] +
					" (" + experts[i]["Publications"] +" publications) </div>";
				results.append(h);
				recent = experts[i]["RecentPublications"];
				if (recent && recent.length > 0) {
					if (recent.length==1) {
						results.append("<div>A recent paper by this author:</div>");
					} else {
						results.append("<div>Recent papers by this author:</div>");
					}
					for (var j=0; j<recent.length; j++) {
						results.append("<div class='bmeArticle'>"+recent[j]["Title"]+"</div>");
					}

				}
			}
		}
		jQuery(".bmeAuthor:eq(0)").css("margin-top","0px");
	});
}
