var ajaxServiceUrl = "/wcpa/servlet/org.oclc.lac.ui.ajax.ServiceServlet";

var citeAPA = null;
var citeHARVARD = null;
var citeCHICAGO = null;
var citeMLA = null;
var citeTURABIAN = null;
var itemId = null;


jQuery(document).ready(makeUtilPageLoadComplete());	// located in util.jsp

initAccordion(itemId);	// not itemId is set in util.jsp: makeUtilPageLoadComplete, so this line must be after the above line.
						// the ddaaccordion init function also call jquery.ready which is a conflict with putting this in utilPageLoadComplete(). 

function utilPageLoadComplete(addListsExpanded, itemid) {
	if (addListsExpanded) {
		jQuery('#util-list').click();
	}
}

function initAccordion(itemid) {
	ddaccordion.init({
		headerclass: "showhide-cite-link",
		contentclass: "showhide-cite-cont",
		revealtype: "click",
		mouseoverdelay: 200,
		collapseprev: true,
		defaultexpanded: [],
		onemustopen: false,
		animatedefault: false,
		persiststate: true,
		toggleclass: ["hide-cite", "show-cite"],
		togglehtml: ["prefix", "<img alt='Agrandir/réduire la section Informations' src='/wcpa/images/btn_lite_expand.gif' /> ", "<img alt='Agrandir/réduire la section Informations' src='/wcpa/images/btn_lite_collapse.gif' /> "],
		animatespeed: "fast",
		oninit:function(expandedindices){
			//do nothing
		},
		onopenclose:function(header, index, state, isuseractivated){
	   onOpenCloseCitation(index, state, itemid);
		}
	})
}

function emailRecord(oclc)
{
   recipients = document.getElementById("util-em-recipaddr").value;
   name       = document.getElementById("util-em-myname").value;
   address    = document.getElementById("util-em-myaddr").value;
   subject    = document.getElementById("util-em-subj").value;
   message    = document.getElementById("util-em-note").value;


   availField = document.getElementById("util-em-note-avail");
   var availInfo = "";


   if (availField != null)
   {
      availInfo = availField.value;
   }

   var challenge = "";   
   var response = "";   

   if (document.getElementById("recaptcha_challenge_field") != null)
   {
      challenge = document.getElementById("recaptcha_challenge_field").value;
      response = document.getElementById("recaptcha_response_field").value; 
   }

   sender = "\"" + name + "\"  <" + address + ">";

    jQuery.post(ajaxServiceUrl, {serviceCommand: 'emailRecord', recip: recipients, from: sender, name: name, senderEmail:address, sub: subject, body: message, recaptcha_challenge_field: challenge, recaptcha_response_field: response, avail: availInfo, num: oclc}, function(data)
    {
        //clear all the error messages for last time first
        if (document.getElementById('recaptchaerror') != null)
        {
           document.getElementById('recaptchaerror').style.display = "none";
        }

        document.getElementById('emailmessageerror').style.display = "none";
        document.getElementById('emailsenderaddresserror').style.display = "none";
        document.getElementById("emailsubjecterror").style.display = "none";
        document.getElementById('sendernameerror').style.display = "none";
        document.getElementById('invalidemailaddress').style.display = "none";
        document.getElementById('toomanyrecipients').style.display = "none";
        document.getElementById('emptyemailaddress').style.display = "none";
        document.getElementById('emptyemailsenderaddresserror').style.display = "none";
        document.getElementById("util-em-note").style.background = "#ffffff";
        document.getElementById("util-em-subj").style.background = "#ffffff";
        document.getElementById("util-em-myaddr").style.background = "#ffffff";
        document.getElementById("util-em-myname").style.background = "#ffffff";
        document.getElementById("util-em-recipaddr").style.background = "#ffffff";

        var result = YAHOO.lang.JSON.parse(data);

        if (result.error != "none")
        {

            if (document.getElementById('recaptchaerror') != null)
            {
               javascript:Recaptcha.reload ();
               if(result.error.search("recaptcha") != -1){
                   document.getElementById("recaptchaerror").style.display = "block";
                   document.getElementById("recaptcha_response_field").highlight();
               }
            }

            if(result.error.search("message") != -1){
                document.getElementById("emailmessageerror").style.display = "block";
                document.getElementById("util-em-note").style.background = "#ffc";
            }

            if(result.error.search("subject") != -1){
                document.getElementById("emailsubjecterror").style.display = "block";
                document.getElementById("util-em-subj").style.background = "#ffc";
            }

            if(result.error.search("emptysenderemail") != -1){
                document.getElementById("emailsenderaddresserror").style.display = "block";
                document.getElementById("util-em-myaddr").style.background = "#ffc";
            }

            if(result.error.search("invalidsenderemail") != -1){
                document.getElementById("emptyemailsenderaddresserror").style.display = "block";
                document.getElementById("util-em-myaddr").highlight();
            }

            if(result.error.search("name") != -1){
                document.getElementById("sendernameerror").style.display = "block";
                document.getElementById("util-em-myname").style.background = "#ffc";
            }

            if(result.error.search("invalidrecipient") != -1){
                document.getElementById("invalidemailaddress").style.display = "block";
                document.getElementById("util-em-recipaddr").highlight();
            }

            if(result.error.search("emptyrecipient") != -1){
                document.getElementById("emptyemailaddress").style.display = "block";
                document.getElementById("util-em-recipaddr").style.background = "#ffc";
            }

            if(result.error.search("toomanyrecipients") != -1){
                document.getElementById("toomanyrecipients").style.display = "block";
                document.getElementById("util-em-recipaddr").highlight();
            }


        }
        else
        {
            dropdowncontent.hidediv('util-em-sub');

            if (document.getElementById('recaptchaerror') != null)
            {
               document.getElementById("recaptchaerror").style.display = "none";
               javascript:Recaptcha.reload ();
            }

            document.getElementById("emailDone").style.display = "block";            
       //     window.location.hash="emailDone";
        }
    });   
}

function DoRefWorksClick(oclcNum)
{
     MM_openBrWindow('/oclc/' + oclcNum + '?page=refworks&client=worldcat.org-detailed_record','CitationWindow','toolbar=yes,titlebar=yes,menubar=yes,location=yes,status=yes,scrollbars=yes,resizable=yes,width=650,height=550');
     LibServices(this,'wctlink_exportdr_refworks',';wctlink_exportdr_refworks');
}

function DoEndNoteClick()
{
     LibServices(this,'wctlink_exportdr_endnote',';wctlink_exportdr_endnote');
}

var EmailAvailability = new function (){
  this.isAvailable = false;
  this.isLoadingComplete = false;

  this.processAvailability = function (availabilityInfo){
    EmailAvailability.isLoadingComplete = true;
    if (trimAll (availabilityInfo) == "") {
      return;
    }

    var avail ="<textarea name='avail' id='util-em-note-avail'>";

    var availArray = availabilityInfo.split("<br />");
    for (var i=0;i<availArray.length;i++){
      avail += trimAll(availArray[i]);
      if (i!=availArray.length-1) avail += "\n\n";
    }

    avail +="</textarea>";
    document.getElementById("util-em-note-div").innerHTML = avail;
  }
}

function cancelEmailDiv(){
    dropdowncontent.hidediv('util-em-sub');
    document.getElementById('recaptchaerror').style.display = "none";
    document.getElementById('emailmessageerror').style.display = "none";
    document.getElementById('emailsenderaddresserror').style.display = "none";
    document.getElementById("emailsubjecterror").style.display = "none";
    document.getElementById('sendernameerror').style.display = "none";
    document.getElementById('invalidemailaddress').style.display = "none";
    document.getElementById('emptyemailaddress').style.display = "none";
    document.getElementById('toomanyrecipients').style.display = "none";
    document.getElementById('emptyemailsenderaddresserror').style.display = "none";
    document.getElementById("util-em-note").style.background = "#ffffff";
    document.getElementById("util-em-subj").style.background = "#ffffff";
    document.getElementById("util-em-myaddr").style.background = "#ffffff";
    document.getElementById("util-em-myname").style.background = "#ffffff";
    document.getElementById("util-em-recipaddr").style.background = "#ffffff";
    javascript:Recaptcha.reload ();
}

function onOpenCloseCitation(index, state, itemid)
{

     if (state == "block")
     {
        if (index == "0")
        {  
           if (citeAPA == null)
           {
              citeAPA = getCitation('fd-apa', 'APA', itemid);
              LibServices(this,'wctlink_viewCitation_APA',';wctlink_viewCitation_APA');
           }
        }
        if (index == "1")
        {  
           if (citeCHICAGO == null)
           {
              citeCHICAGO = getCitation('fd-chicago', 'CHICAGO', itemid);
              LibServices(this,'wctlink_viewCitation_CHICAGO',';wctlink_viewCitation_CHICAGO');
           }
        }
        if (index == "2")
        {  
           if (citeHARVARD == null)
           {
              citeHARVARD = getCitation('fd-harvard', 'HARVARD', itemid);
              LibServices(this,'wctlink_viewCitation_HARVARD',';wctlink_viewCitation_HARVARD');
           }
        }
        if (index == "3")
        {  
           if (citeMLA == null)
           {
              citeMLA = getCitation('fd-mla', 'MLA', itemid);
              LibServices(this,'wctlink_viewCitation_MLA',';wctlink_viewCitation_MLA');
           }
        }
        if (index == "4")
        {  
           if (citeTURABIAN == null)
           {
               citeTURABIAN = getCitation('fd-turabian', 'TURABIAN', itemid);
               LibServices(this,'wctlink_viewCitation_TURABIAN',';wctlink_viewCitation_TURABIAN');
           }
        }
     }
}

function getCitation(id, style, oclc)
{
	jQuery.get(ajaxServiceUrl, {serviceCommand: 'getCitation', oclcnum: oclc, style: style }, function(data)
   {
      var citation = YAHOO.lang.JSON.parse(data);
      
		if (citation != null)
      {
          document.getElementById(id).innerHTML = citation.cite;
      }

   }); 
   return (document.getElementById(id).innerHTML);
}
