
function testAdvancedSubmit() {
    var hasvalue = false;
    var qvalue = "";
    for (i=1; i<=3; i++) {
        if($("#possible"+i) && $("#possible"+i).val() != null &&  $("#possible"+i).val() != "")
        {
            if (qvalue == "")
                qvalue = $("#possible"+i).val();
            hasvalue = true;
        }
    }
    if(qvalue == "") qvalue = " ";
    $("#qfield").val(qvalue);
    $("#fromdate").val(formatToMLSearchDate("s"));
    $("#todate").val(formatToMLSearchDate("e"));
	/* checks to see if all the journals in a society have been checked */
    if($(".alljournalscheck:checked").size() > 0)
    	$(".journalkey").remove();    	
    return true; 
}

function testFacetSubmit() {
    var hasvalue = false;
    var qvalue = "";
    for (i=1; i<=3; i++) {
        if($("#possible"+i) && $("#possible"+i).val() != null &&  $("#possible"+i).val() != "")
        {
            if (qvalue != "")
                qvalue = $("#possible"+i).val();
            
            hasvalue = true;
        }
    }
    $("#fromdate").val(formatToMLSearchDate("s"));
    $("#todate").val(formatToMLSearchDate("e"));
	/* checks to see if all the journals in a society have been checked */
    if($(".alljournalscheck:checked").size() > 0)
	{
    	$(".journalkey").remove();    	
	}
    return true;
}

function formatToMLSearchDate(prefix)
{
	return $("#"+prefix+"_year").val() + "-" + (parseInt($("#"+prefix+"_month").val())+1) + "-" + $("#"+prefix+"_day").val();
}

function clickingSearchSubmit()
{
	if (testFacetSubmit())
		document.forms['refineform'].submit();
	else
		return false;
}

function removefacet() {
    var fieldids = removefacet.arguments;
    for (i = 0; i < fieldids.length; i++)
    {
        if($("#"+fieldids[i])) 
            $("#"+fieldids[i]).val("");
        if (fieldids[i] == "qfield")
        {
            if ($("#possible2").val() != "")
                $("#qfield").val($("#possible2").val());
            else  
                $("#qfield").val($("#possible3").val());
        }
    }
    document.forms['refineform'].submit();
    return false;
}


function addSearchTerm(paramnum, isadv) {
	$("#condition_"+paramnum).show();
    searchtermnum = paramnum + 1;
    if (searchtermnum > 3)
        $("#moresearchtermslink").hide();
        
    return false;
}

function addSearchTermHidden(paramnum, isadv) {
    searchtermnum = paramnum + 1;
    $("#moresearchterms"+paramnum).show()
    if (searchtermnum > 3)
        $("#moresearchtermslink").hide();
    return false;
}

/* **********************************************************************************
    Function that calculates how many articles are selected.
    now updated with JQuery functionality
*********************************************************************************** */
function countSelected() {
    var countChecked = 0;
    var allcheckboxes = $(".searchResultsTable input:checked");
    allcheckboxes.each(function() {
        countChecked++; 
    });
    return countChecked;
}

/* When the page first loads, it fires this function to highlight pre-selected articles */
function starthighlightSelections() { 
        $(".searchResultsTable input:checked").each(function() {
            hightlightrowaction($(this).val());
        });
}

/* **********************************************************************************
    Function that manages forwarding the request to send an email out
    updated with jQuery functionality based on how many articles were clicked.
*********************************************************************************** */
function emailAbstracts() {
    
    var allDialogs = [];
    options = $.extend({title: "Email Articles"},{modal:true}, {});

    if (countSelected() == 0)
        domBody = "<p>Please Select at least one article</p>";
    else if (countSelected() > 20)
        domBody = "<p>You cannot select more then 20 articles.</p>";
    else 
    {
        domBody = "<form name=\"emailform\" onSubmit=\"return colleague_formcheck(this);\">" +
       		"<table width=\"500\">" +
            "<tr><td width=\"40%\" align=right>Colleague's Email: </td><td width=\"60%\"><input name=\"colleagueemail\" type=\"text\" size=\"35\" /></td></tr>"+
            "<tr><td width=\"40%\" align=right>Colleague's Name: </td><td width=\"60%\"><input name=\"colleaguename\" type=\"text\" size=\"35\" /></td></tr>"+
            "<tr><td width=\"40%\" align=right>Your Name: </td><td width=\"60%\"><input name=\"sendername\" type=\"text\" size=\"35\" /></td></tr>"+
            "<tr><td width=\"40%\" align=right>Your Email: </td><td width=\"60%\"><input name=\"senderemail\" type=\"text\" size=\"35\" /></td></tr>"+
            "<tr><td width=\"40%\" align=right>Message:<br><i>Max: 200 characters</i>&nbsp;</td><td width=\"60%\"><textarea name=\"sendermessage\" cols=\"27\" rows=\"2\" maxlength=\"200\"></textarea></td></tr>"+
            "<tr><td></td><td><input type=\"submit\" name=\"Submit\" value=\"Send Abstract\" /></td></tr>"+
            "</table>"+
            "</form>";
    }
    /* creates the boxy     */
    var dialog = new Boxy(domBody, options);
    allDialogs.push(dialog);
    return false;
}

/* **********************************************************************************
    Function that adds a collection of articles to the cart
    Executes the post to cart through an AJAX call.
*********************************************************************************** */
function addSearchAbsToCart(cartserver) {
    var allDialogs = [];
    options = $.extend({title: "Add Selected Articles to Your Cart"},{modal:true}, {});
    var domBody = "";
    var artcount = countSelected();
    if (artcount == 0)
    {
        domBody = "<p>Please Select at least one article</p>";
        var dialog = new Boxy(domBody, options);
        allDialogs.push(dialog);
    }
    else if (artcount > 20)
    {
        domBody = "<p>You cannot select more then 20 articles.</p>";
        var dialog = new Boxy(domBody, options);
        allDialogs.push(dialog);
    }
    else 
    {
        var ticktock = 0;
        var appendform = "<input name=\"productVariationCount\" value=\""+artcount+"\" type=\"hidden\" />";
        $(".selectedrow input:checked").each(function() {
            appendform+="<input name=\"cartItem["+ticktock+"].remoteSite\" value=\"QAB\" type=\"hidden\" />";
            appendform+="<input name=\"cartItem["+ticktock+"].quantity\" value=\"1\" size=\"2\" maxlength=\"3\" type=\"hidden\" />";
            appendform+="<input name=\"cartItem["+ticktock+"].skuID\" value=\""+$(this).val()+"\" type=\"hidden\" />";
            ticktock++;
        }); 
                    
        appendform+="<input name=\"refURL\" value=\""+document.location.href+"\" type=\"hidden\" />";
        $("#addToCartFormelement").append(appendform);
        $("#addToCartFormelement").submit();
        //document.addToCartFormelement.submit();
    }
    return false;
}

function presetDates(type, clickeddom, jstartdate)
{
    $(".presetlink").css("background-color", "transparent");
    $(clickeddom).css("background-color", "#fffa93");
    var startdate=new Date();
    
    if (type == "all")
    {
    	jdate = jstartdate.split('-');
    	startdate.setFullYear(jdate[0]);
    	startdate.setDate(parseInt(jdate[2]));
    	startdate.setMonth(parseInt(jdate[1]-1));
    	$("#ignoredates").val("true");
    } else if(type == "reset") {
    	jdate = jstartdate.split('-');
    	startdate.setFullYear(jdate[0]);
    	startdate.setDate(parseInt(jdate[2]));
    	startdate.setMonth(parseInt(jdate[1]-1));
    	$("#ignoredates").val("");
    } else if(type == "today") {
    	$("#ignoredates").val("");
    }else if(type == "lastweek")
    {
    	var startdate = new Date(Date.UTC(y2k(startdate.getYear()),startdate.getMonth(),startdate.getDate(),startdate.getHours(),startdate.getMinutes(),startdate.getSeconds()) - 7*24*60*60*1000);
    	$("#ignoredates").val("");
    } else if(type == "lastmonth")
    {
    	var startdate = new Date(Date.UTC(y2k(startdate.getYear()),startdate.getMonth(),startdate.getDate(),startdate.getHours(),startdate.getMinutes(),startdate.getSeconds()) - 30*24*60*60*1000);
    	$("#ignoredates").val("");
    } else if(type == "lastyear")
    {
    	startdate.setFullYear(startdate.getFullYear() - 1);
    	$("#ignoredates").val("");
    }
    	
    $("#s_month option[value=" + startdate.getMonth() +"]").attr("selected", "true");
    $("#s_day option[value=" + startdate.getDate() +"]").attr("selected", "true");
    $("#s_year option[value=" + startdate.getFullYear() +"]").attr("selected", "true");    
    
    var currentDate=new Date(); 
    $("#e_month option[value=" + currentDate.getMonth() +"]").attr("selected", "true");
    $("#e_day option[value=" + currentDate.getDate() +"]").attr("selected", "true");
    $("#e_year option[value=" + currentDate.getFullYear() +"]").attr("selected", "true");
    submitRealTimeSearch();
    return false;
}  


function clearRealtimeSearch() { $("#advancedsubmit").val("Search");$("#realtimefacets").html("");$("#realtimefacet_wrapper").hide();$("#moresearchtermslink").show();searchtermnum = 2; return true; }
function submitRealTimeSearch() {
	if(suggestions == false)
		return false;
	var constructfrom = "";
	var constructto = "";
	if ($("#ignoredates").val() == "")
	{
		constructfrom = $("#s_year").val() + "-" + (parseInt($("#s_month").val())+1) + "-" + $("#s_day").val();
		constructto = $("#e_year").val() + "-" + (parseInt($("#e_month").val())+1) + "-" + $("#e_day").val();
	}
	var searchurl = "?q="+$("#possible1").val()+"&possible1="+$("#possible1").val()+"&possible1zone="+$("#possible1zone").val()+"&facettype=exactauthor&facettype=metakey&facetorder=count&facetcount=10&fromdate="+constructfrom+"&todate="+constructto;
	if($(".journalkey:checked").size() > 0)
	{
	    $(".journalkey:checked").each(function() {
	    	searchurl += "&key="+$(this).val();
	    });
	}
    else {
    	searchurl += "&key="+ $("#searchkey").val();
    }
	searchurl += "&fromvolume="+$('#fromvolume').val()+"&fromissue="+$('#fromissue').val()+"&tovolume="+$('#tovolume').val()+"&toissue="+$('#toissue').val();
	if($("#possible2").val() != "") searchurl += "&possible2=" + $("#possible2").val() + "&possible2zone=" + $("#possible2zone").val() + "&bool1=" + $("#bool1").val();
	if($("#possible3").val() != "") searchurl += "&possible2=" + $("#possible3").val() + "&possible3zone=" + $("#possible3zone").val() + "&bool2=" + $("#bool2").val();
    if($("#freearticles:checked").val() && ($("#freearticles:checked").val() == "true")) searchurl += "&free=true";
    if($("#aselect:checked").val() && ($("#aselect:checked").val() == "true")) searchurl += "&aselect=true";
    if($("#figtabcap").val() && ($("#figtabcap").val() != "")) searchurl += "&figtabcap=" + $("#figtabcap").val();
    
	//alert("/FEWebservices/FacetsWebservice" + searchurl+"&submit=facet");
	var buttomdomBuild = "";
    var mainprevBuild  = "";
    $("#realtimefacets").html("<p style=\"text-align:center; padding:10px;\"><img src=\"/img/dbt/ajax-loader.gif\" alt=\"Loading...\" /></p>");
    $.getJSON("/FEWebservices/FacetsWebservice"+searchurl+"&submit=facet", function(data) 
    {
    	if (data != null)
          {  
        	  var articlecount = parseInt(data.facetCollection.journalcount);
        	 
        	  if(articlecount && articlecount > 0)
        	  {
        		  buttomdomBuild = buttomdomBuild + "Display all "+articlecount+" Result(s)";
        		  mainprevBuild += "<p class=\"realtimerelatedhead\">Other Keyword Suggestions:</p>";
        		  var tick = 0;
        		  $.each(data.facetCollection.metakey, function(i,facet){
                	  var kwlink = searchurl + "&faceted=faceted&searchzone=2&metakey="+facet.term;
                	  if (tick > 0) mainprevBuild += ", ";
                	  mainprevBuild += "<a href=\""+kwlink.replace(" ","+")+"\">"+facet.term+" ("+facet.count+")</a>";
                	  tick++;
                  });
                  tick = 0;
                  mainprevBuild += "<p class=\"realtimerelatedhead\">Most Prolific Authors (based on your criteria):</p>";
            	  $.each(data.facetCollection.exactauthor, function(i,facet){
                	  var kwlink = searchurl + "&faceted=faceted&searchzone=2&exactauthor="+facet.term;
                	  if (tick > 0) mainprevBuild += ", ";
                	  mainprevBuild += "<a href=\""+kwlink.replace(" ","+")+"\">"+facet.term+" ("+facet.count+")</a>";
                	  tick++;
                  });
            	  $("#realtimefacets").html(mainprevBuild);
            	  
        	  }
        	  else {
        		  buttomdomBuild = buttomdomBuild + "No Results for this Query";
        		  $("#realtimefacets").html("<p style=\"color:red;\">There are no suggestions for the supplied criteria. Please review the entered keyword, date, and volume constraints.</p>");
        	  }
              $("#advancedsubmit").val(buttomdomBuild);
        } else { $("#realtimefacets").html(""); }
   });
}
function toggleSuggestionFunction(clickeddom)
{
	if($(".searchSuggestcheck:checked").size() > 0)
	{
		suggestions = true;
		submitRealTimeSearch();
		$("#realtimefacet_wrapper").show("fast");
	} else {
		$("#realtimefacets").html("");
		$("#advancedsubmit").val("Search");
		$("#realtimefacet_wrapper").hide("fast");
		suggestions = false;
	}
}
function showhideRefineOptions()
{
	if($("#morerefineoptions").is(':hidden'))
		$("#optionstext").html("<img src=\"/img/aqs/more-up.png\" style=\"border:none;\" alt=\"add term\" /> Hide Refine Options");
	else
		$("#optionstext").html("<img src=\"/img/aqs/more-down.png\" style=\"border:none;\" alt=\"add term\" /> Show More Refine Options");
	$("#morerefineoptions").slideToggle('fast');
		
}

function facetSubmit(termval,facettype) { 
    $("#facetsubmitting").val(termval);
    $("#facetsubmitting").attr('name',facettype);
    $("#refineform").submit();
    return false;
}

function showMorefacets(thisobj, type) {
	var facetname = $(thisobj).attr("name");
	var fullsearchurl = window.location.href;
	displaycnt = 5;
	var iconsymbol = "+";
	//alert(displaycnt);
	var showtype = "more"
	if(type == "more") {
		showtype = "less";
		displaycnt = 15;
		iconsymbol = "-";
	}
	
	var facetcriteria = $("#refineform [id^="+facetname+"]");

	fullsearchurl = fullsearchurl.substring(fullsearchurl.indexOf("?")+1) + "&facettype="+facetname+"&facetcount="+displaycnt+"&submit=facet";
	//alert("/FEWebservices/FacetsWebservice?"+fullsearchurl);
    $.getJSON("/FEWebservices/FacetsWebservice?"+fullsearchurl, function(data) 
    {
    	var mainprevBuild = "";
    	if (data != null)
        {  
        	  var articlecount = parseInt(data.facetCollection.journalcount);
        	  if(articlecount && articlecount > 0 && data.facetCollection[facetname])
        	  {
        		  $.each(data.facetCollection[facetname], function(i,facet){
       				  mainprevBuild += "<dd><a href=\"javascript:void(0)\" onclick=\"return facetSubmit('"+facet.term+"','"+facetname+"')\">"+facet.term+" ("+facet.count+")</a></dd>";
                  });
        		  mainprevBuild += "<dd><a href=\"javascript:void(0)\" name=\""+facetname+"\" onclick=\"return showMorefacets(this,'"+showtype+"');\" class=\"lessfacets\">"+iconsymbol+" show "+showtype+"...</a></dd>";
        		  $("#list_facet_"+facetname).html(mainprevBuild);
        	  }
        }
    });
	return false;
}


function updateAdvCriteria()
{
	var summarytextA = "";
	var summarytextB = "";
	var summarytextC = "";
	var summarytextD = "";

	/* pubdate --------- */
	var constructfrom = $("#s_year").val() + "-" + (parseInt($("#s_month").val())+1) + "-" + $("#s_day").val();
    var constructto = $("#e_year").val() + "-" + (parseInt($("#e_month").val())+1) + "-" + $("#e_day").val();
    if(constructfrom == constructto)
    	summarytextA = "On <strong>" + constructfrom;
    else if(constructfrom == theStartDate.replace(/-0/g,"-") && constructto == theCurrentDate.replace(/-0/g,"-"))
    	summarytextA = "All available dates";
    else
    	summarytextA = "Between <strong>" + constructfrom + "</strong> and <strong>" + constructto + "</strong>"; 
	$("#pubdate_summary").html(summarytextA);

	/* voliss ---------- */
	var fromvolume = $('#fromvolume').val();
	var fromissue = $('#fromissue').val();
	var tovolume = $('#tovolume').val();
	var toissue = $('#toissue').val();
	
	if ((tovolume != "" || toissue != "") && fromvolume == "" && fromissue == "")
	{
		// only TO
		summarytextB += "Up to "; 
		if(tovolume != "")
			summarytextB += "volume <strong>"+tovolume+"</strong> ";
		if(toissue != "")
			summarytextB += "issue <strong>"+toissue+"</strong>";
	}
	else if (fromvolume == "" && fromissue == "" && tovolume == "" && toissue == "")
		summarytextB += "All volumes and issues";
	else 
	{
		summarytextB += "Between ";
		if (fromvolume!="")
			summarytextB += "volume(s) <strong>" +fromvolume+ "</strong>";
		if (fromissue!="")
			summarytextB += " issue <strong>" +fromissue+ "</strong>";
		if (tovolume!="" || toissue!="")
		{
			summarytextB += " to ";
			if (tovolume!="")
				summarytextB += "volume(s) <strong>" +tovolume+ "</strong>";
			if (toissue!="")
				summarytextB += " issue <strong>" +toissue+ "</strong>";
		}
	}
	
	$("#voliss_summary").html(summarytextB);

	/* sorting ---------- */
	var sortby = "relevance";
	var recordspage = $("#recordspage").val();
	if($("#radio_newestdate").is(':checked')) sortby = "most recent by date";
	if($("#radio_oldestdate").is(':checked')) sortby = "oldest by date";
	summarytextC = "Ordered by <strong>" + sortby + "</strong>, <strong>"+recordspage+"</strong> results per page.";
	$("#sorting_summary").html(summarytextC);

	/* publication --------- */
	if($(".alljournalscheck:checked").size() > 0)
	{
		var thissociety = $(".alljournalscheck:checked").val();
		summarytextD += "All "+thissociety.replace("_ALL","")+" Journals";
	} else {
		$(".journalkey:checked, .addkey:checked").each(function() {
	    	if(summarytextD != "") summarytextD += ", ";
	    	summarytextD += $(this).attr("alt");
	    });
	}
	$("#pubs_summary").html(summarytextD.replace(/ , /g,", "));
	
	$('.advanced_popout').hide();
	return false;
}
