/**
 * contentOption - radio button object.
 * optionMsgFlag - Flag that says whether the content option message has to be shown or not.
 */
function validateContentOptions(contentOption, optionMsgFlag)
{
    if(contentOption.value=="FULL_TEXT" || contentOption.value=="ABSTRACT")
    { 
    	enableAttachment();
    }
  	if(contentOption.value=="PDF")
  	{
		window.document.emailForm.attachment.checked=true;
    	validatePdfContentOptions();
	}
	if(contentOption.value=="CITATION")
	{
    	enableAttachment();
	}
	if(optionMsgFlag) {
  		showSentOptionMsg();
	}
}

function validateForm(formObj,isMarkList) {
   var result = validateEmailForm(formObj);
   result = result && validateRecipientEmail(formObj);
   result = result && validateEmailFormat(formObj);
   result = result && validateContentOption(formObj);
   if(result && isMarkList) {
       result = result && populateMarkedString();
        enableAttachment();//enable the attachment on submit.
   }
   return result;
}


function  validateRecipientEmail(formObj)
{ 
  var strEmailList;
  var strEmailValues;
  strEmailList = trim(formObj.recipientEmailList.value);
  
  strEmailValues=strEmailList.split(";");  
  if(strEmailValues.length > 6) {
     alert(LIMIT_EXCEEDED);     
     return false;
  }

  var isAnyInvalidEmail = true;
  for(i=0;i<strEmailValues.length;i++)
   {
        if(trim(strEmailValues[i]).length == 0) {
          continue;
        }
        if(!checkEmail(trim(strEmailValues[i]))) {
           isAnyInvalidEmail = true;
           break;
        }  
        else {
           isAnyInvalidEmail = false; 
        }
   }  
   if(isAnyInvalidEmail) {
       alert(INVALID_EMAIL);
       formObj.recipientEmailList.focus();       
   }         
   return !(isAnyInvalidEmail);    
}

function disableBibliographicCitationFormat()
{
    for(i=0;i<emailForm.citationFormats.length;i++) {
        window.document.emailForm.citationFormats[i].disabled=true
    }
}

function enableBibliographicCitationFormat() {


    for(i=0;i<emailForm.citationFormats.length;i++) {
        window.document.emailForm.citationFormats[i].disabled=false
    }
}

function validatePdfContentOptions()
{

   // window.document.emailForm.emailFormats[2].disabled=true
   // enableBibliographicCitationFormat();
    disableAttachment();
}

function enablePTBTags()
{

    window.document.emailForm.emailFormats[2].disabled=false
}
function disableAttachment()
{
  window.document.emailForm.attachment.disabled=true;
}
function enableAttachment()
{
  window.document.emailForm.attachment.disabled=false;
}


//this function iterate over all the check boxes whose names ends with _child
// and concat each check box values seperated by ^
function populateMarkedString()
{
	var elements = document.emailForm.elements;
	var elementName;
	var endIndx;
    var markedString="";
    var found = false;
	for(var indx = 0; indx < elements.length; ++indx) {
		elementName = elements[indx].name;
		endIndx = elementName.indexOf("_child");
		if(elementName != null && endIndx > 0) {
			elementName = elementName.substring(0, endIndx);
			if(elements[indx].type == "checkbox") {
				if(elements[indx].checked) {
					markedString=markedString+elements[indx].value+"^";
					var docType = elements[indx+1].value;
                    markedString = markedString.replace(/~/g,docType);
                    found = true;
				}
			}
		}

	}
    if(found) {
        document.emailForm.markedItems.value = markedString;
    }
    else {
        alert(ONE_ITEM);
        return false;
    }
    
	return true;
}

function selectOrDeselectAll(obj) {
    if(obj.checked) {
        perform(obj , true);
    }
    else {
        perform(obj , false);
    }

}
function perform(object,operation)
{
    var elements = document.emailForm.elements;
    for(var indx = 0; indx < elements.length; ++indx) {
		elementName = elements[indx].name;
        var objName = object.name+"_child";
        if(elementName == objName)  {
            elements[indx].checked = operation;
        }
	}

}

function checkTabLevelSelection(obj) 
{
    var elementName=obj.name;
    var tabCheckBoxName = elementName.substring(0,elementName.indexOf("_child"));
    var sendAllCheck=document.emailForm.elements[tabCheckBoxName];
    if(obj.checked) 
    {
    	var elements = document.emailForm.elements;
        for(var indx = 0; indx < elements.length; ++indx) 
        {
        	tempElementName = elements[indx].name;
            if(tempElementName == elementName)  
            	{
                   if(!elements[indx].checked) 
                    {
                    	return;
                    }
               }

         }
        sendAllCheck.checked = true;
    }
    else 
    {
    	sendAllCheck.checked = false;
    }
}




function validateEmailFormat(formObj) {
    var isSelected = false;
    var emailFormat = formObj.emailFormats;


    for(var i=0;i<emailFormat.length;i++)
    {
        if(emailFormat[i].checked)
        {
            isSelected = true;
        }
    }
    if(!isSelected)
    {
        alert(EMAIL_NOTBLANK);
        return false;
    }
    else {
        return true;
    }


}

function validateContentOption(formObj) {

    var isSelected = false;
    var contentOption = formObj.contentOptions;


    for(var i=0;i<contentOption.length;i++)
    {
        if(contentOption[i].checked)
        {
            isSelected = true;
        }
    }
    if(!isSelected)
    {
        alert(EMAIL_CONTENTNOTBLANK);
        return false;
    }
    else {
        return true;
    }


}

function showSentOptionMsg() {
	var sent0 = new getObj('send8items');
	var sent1 = new getObj('sendlist');
	var sent2 = new getObj('sendPDF');
	if (document.emailForm.contentOptions[0].checked == true)
	{
	sent0.style.display = "inline";
	sent1.style.display = "none";
	sent2.style.display = "none";
	}
	else if (document.emailForm.contentOptions[1].checked == true)
	{
	sent0.style.display = "none";
	sent1.style.display = "inline";
	sent2.style.display = "none";
	}
	else if (document.emailForm.contentOptions[2].checked == true)
	{
	sent0.style.display = "none";
	sent1.style.display = "none";
	sent2.style.display = "inline";
	}
}
