
function submitSortOrderForm() {
	var sortOrderForm=document.getElementById('sortOrderFormID');
	sortOrderForm.submit();
}

function submitUpdateMarkedListForm(markedItemCount,currentPageMarkedItemCount,maxAllowedMarkedItemCount) {
    
   var isToDisplayCheckboxErrorMsg=isCheckboxErrorMsg(currentPageMarkedItemCount);
   if(isToDisplayCheckboxErrorMsg){
	    alert('Please check or uncheck the checkbox before clicking the update button.');
    }else{  
    var MARKLIST_ALL_ERR_MSG1="Checking 'Mark All' will exceed the limit of " + maxAllowedMarkedItemCount + " saved items in your Marked Items List.";
  	var MARKLIST_ALL_ERR_MSG2="Remove some items from your Marked Items List or just add items individually to the List.";
	if (markedItemCount > 0) {
		var field = document.markedList.CH;
		var chItemCount = 0;
		if (field.length == undefined && field.checked == true) {
			chItemCount = chItemCount + 1;
		}
		if (field.length != null) {
			for (i=0; i < field.length; i++) {
				if (field[i].checked==true){
					chItemCount = chItemCount + 1;
				}
			}
		}
		
	}
	var balanceMarkedItemCount = 0;
	if (chItemCount > currentPageMarkedItemCount) {
		balanceMarkedItemCount = chItemCount - currentPageMarkedItemCount;
	}
	var netMarkedItemCount = (markedItemCount+balanceMarkedItemCount);
	if (netMarkedItemCount <= maxAllowedMarkedItemCount) {
		var updateMarkedListForm=document.getElementById('updateMarkedListId');
		updateMarkedListForm.submit();
	}
	else {
		alert(MARKLIST_ALL_ERR_MSG1+"\n\n"+MARKLIST_ALL_ERR_MSG2);
	}
	
	}
	
}


function isCheckboxErrorMsg(currentPageMarkedItemCount){
    
    var isMarkAllCheckBox=document.markedList.overallCheck.checked;
    var field = document.markedList.CH;
    var isMarkCheckBox=false;
    
    if(field.length == undefined && isMarkAllCheckBox && currentPageMarkedItemCount==0){    	        //This condition is when check box is NOT CHECKED and trying to press update button (when number of record is 1)
	    	isMarkCheckBox=true;
	    }else if(field.length == undefined && !isMarkAllCheckBox && currentPageMarkedItemCount==1){    	//This condition is when check box is CHECKED and trying to press update button (when number of record is 1)
	    	isMarkCheckBox=true;
    }
        
	if(field.length !=null){
		for (i=0;i<field.length;i++){  
	    if(field[i].checked==true){
			isMarkCheckBox=true;
			break;
		  }
		} 
      }
    if( (currentPageMarkedItemCount==0 && !isMarkCheckBox) ||       	// When Mark All is not checked  
        (currentPageMarkedItemCount>0 && isMarkAllCheckBox && currentPageMarkedItemCount==field.length)||
        (field.length == undefined && !isMarkCheckBox) ){           	// checking for single record
	       	return true;
	       }else{
	       	return false;
	       }      
}


function refreshMarkedListForm() {
	
	var refreshListForm=document.getElementById('markedList');
	refreshListForm.submit();
	
}


function submitHistoryForm() {
	
	var historyForm=document.getElementById('historyFormId');
	historyForm.submit();
}


function echeck(str) {

        var at="@"
        var dot="."
        var lat=str.indexOf(at)
        var lstr=str.length
        var ldot=str.indexOf(dot)
        if (str.indexOf(at)==-1){
           alert("Invalid E-mail ID")
           return false
        }

        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
           alert("Invalid E-mail ID")
           return false
        }

        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
            alert("Invalid E-mail ID")
            return false
        }

         if (str.indexOf(at,(lat+1))!=-1){
            alert("Invalid E-mail ID")
            return false
         }

         if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
            alert("Invalid E-mail ID")
            return false
         }

         if (str.indexOf(dot,(lat+2))==-1){
            alert("Invalid E-mail ID")
            return false
         }
        
         if (str.indexOf(" ")!=-1){
            alert("Invalid E-mail ID")
            return false
         }
         if (str.indexOf(";")!=-1){
            alert("Invalid E-mail ID")
            return false
         }

         return true                    
    }

function mailValidation(){
    var sender=document.mailForm.mailfrom;  
    var receiverBox=document.mailForm.mailto;
    var emailID="";
    var receiver=document.mailForm.mailto.value;
    var length=1;
    var count;
    var receiverList=new Array();
    var reg = /[,\s]/ig; 
    
    if(reg.test(receiver)) {
        receiverList=receiver.split(reg);
        length=receiverList.length; 
    }
    
    for(count=0;count<length;count++) {

        if(length>1) {
            emailID=receiverList[count];
        } 
        else {
            emailID=receiver;
        }

        if ((emailID==null)||(emailID=="")){
            alert("Please Enter your Email ID")
            receiverBox.focus()
            return false
        }

        if (echeck(emailID)==false){
            receiverBox.focus()
            return false
        } 
    }

    return true
 }

function submitEmailForm() {
	
	var eMailForm=document.getElementById('emailOptions');
	if(mailValidation()==true) {
		eMailForm.submit();
	}else {
		window.location.reload();
 	}
}

function clearEmailForm(){
	document.mailForm.mailfrom.value="";
	document.mailForm.mailto.value="";
	document.mailForm.mailtype[1].checked=true;
	document.mailForm.mailto.focus();
}
function testEmpty() {
	
    if (document.basicSearch.SU.value.length<=0) {
		
        alert("Please enter Search Term");
        document.basicSearch.SU.focus();
        return false;
    }  else if (document.basicSearch.SU.value.length > 256) {
		
        alert("Please enter a Search Term which is fewer than 257 characters.");
        document.basicSearch.SU.focus();
        return false;
    }
	return true;
}


function submitBasicSearchForm() {

	var basicSearchForm=document.getElementById('basicSearchForm');
	     if(testEmpty()==true) {
			basicSearchForm.submit();
		 }
}

function validateYear( strValue ) {
	var objRegExp  = /(^\d{1,4}$)|(^\d{1,4}-\d{1,4}$)/;
	return objRegExp.test(strValue);
}


function testPersonSearch() {
	
	if (document.personSearchForm.NA.value.length == 0 && 
	      document.personSearchForm.OC.value.length == 0 &&
	      document.personSearchForm.BY.value.length == 0 &&
	      document.personSearchForm.DY.value.length == 0 &&
	      document.personSearchForm.BP.value.length == 0 &&
	      document.personSearchForm.NT.selectedIndex == 0 &&
	      document.personSearchForm.GD.selectedIndex == 0) { 
		
		alert("Please enter Search Term either for Name or Occupation or Nationality or BirthYear or DeathYear or BirthPlace or Gender");
		document.personSearchForm.NA.focus();
		return false;
	}
	else if (document.personSearchForm.BY.value.length > 0 && !validateYear(trim(document.personSearchForm.BY.value))) {
        alert("Invalid Birth Year value.");
        document.personSearchForm.BY.focus();
    } 
    else if (document.personSearchForm.DY.value.length > 0 && !validateYear(trim(document.personSearchForm.DY.value))) {
        alert("Invalid Death Year value.");
        document.personSearchForm.DY.focus();
    }
	else {	
		return true;
	}
}

function submitPersonSearchForm() {
	
	 var personSearchForm=document.getElementById('personSearchForm');
	   if(testPersonSearch()==true) {
			personSearchForm.submit();
	  }
	 
}

function testSubject() {
	
	if (document.subjectSearch.SU.value.length<=0) {
		
		alert("Please enter Search Term");
		document.subjectSearch.SU.focus();
		return false;
	}
	return true;
}

function submitSubjectSearchForm() {
	 
	  var subjectSearchForm=document.getElementById('subjectSearchForm');
      if(testSubject()==true) {
			subjectSearchForm.submit();
	  }
 }
 
 
function testAdvanceSearch() {
	
	if (document.searchForm.txt1.value.length<=0 && document.searchForm.txt2.value.length<=0 && document.searchForm.txt3.value.length<=0) {
		alert("Please enter Search Term");
		document.searchForm.txt1.focus();
		return false;
	}
	return true;
}

function isValidsubmitAdvancedSearchForm() {
	
	 var advancedSearchForm=document.getElementById('advancedSearchForm');
	 var publicationFromYear=trim(document.searchForm.fry.value);
 	 var publicationToYear=trim(document.searchForm.toy.value);
	 var timePeriodFromYear=trim(document.searchForm.tpf.value);
	 var timePeriodToYear=trim(document.searchForm.tpt.value);
     var isYear1AD = (document.searchForm.rfr.selectedIndex == 0);
     var isYear2AD = (document.searchForm.rto.selectedIndex == 0);
	 var publicationFromMonth=document.searchForm.frm.selectedIndex;
 	 var publicationToMonth=document.searchForm.tom.selectedIndex;
	 var publicationFromDate=document.searchForm.frd.selectedIndex;
 	 var publicationToDate=document.searchForm.tod.selectedIndex;
 	 var firstTextField = trim(document.searchForm.txt1.value);
 	 var secondTextField = trim(document.searchForm.txt2.value);
 	 var thirdTextField = trim(document.searchForm.txt3.value);
 	 var dtpField = document.searchForm.dtp.selectedIndex ;
 	 var documentNumber = trim(document.searchForm.did.value);
 	 
 	
 	  
 	 if(firstTextField.length == 0 &&
 	    secondTextField.length == 0 &&
 	    thirdTextField.length == 0 &&
 	    timePeriodFromYear.length == 0  &&   
 	    timePeriodToYear.length == 0  &&
 	   publicationFromMonth == 0 &&
 	    publicationFromDate == 0 &&
 		publicationFromYear.length == 0  &&
 		publicationToMonth == 0 &&
 		publicationToDate == 0 &&
 		publicationToYear.length == 0  &&
 		dtpField == 0 &&
 		documentNumber.length == 0) {
 	
 	 alert("Please enter Search Term or Time Period or Date of Publication or Document Type or Document Number");
		document.searchForm.txt1.focus();
		return false;
 	 	}


	
	else if (timePeriodFromYear.length > 0 && !validateYear(timePeriodFromYear)) {
		alert(timePeriodFromYear + " is an invalid year.");
		document.searchForm.tpf.focus();
		return false;
	 }
	
 
	// end year
	 else if (timePeriodToYear.length > 0 && !validateYear(timePeriodToYear)) {
		
		alert(timePeriodToYear + " is an invalid year.");
		document.searchForm.tpt.focus();
		return false;
	 }
	else if (publicationFromYear.length > 0 && !validateYear(publicationFromYear)) {
		alert(publicationFromYear + " is an invalid year.");
		document.searchForm.fry.focus();
		return false;
	 }
	
 
	// end year
	else if (publicationToYear.length >0 && !validateYear(publicationToYear)) {
		
		alert(publicationToYear + " is an invalid year.");
		document.searchForm.toy.focus();
		return false;
	 }

	 //checking for february month
 else if (publicationFromMonth=='02' && publicationFromDate>='30')	 {
		 alert(publicationFromDate + " is an invalid date for February month");
 		 document.searchForm.frd.focus();
		 return false;
	 }

	else  if (publicationToMonth=='02' && publicationToDate>='30')	 {
		 alert(publicationToDate + " is an invalid date for February month");
 		 document.searchForm.tod.focus();
		 return false;
	 }
	else if (isValidDocNum(documentNumber)== false) {
	  return false;
	 }
	 else {
	 return true;
	 }
}

function isValidDocNum(documentNumber){
	var regEx = new RegExp("^[A-Za-z0-9]+$");
	if(documentNumber != ""){
	if(regEx.test(documentNumber)) {
	 return true;
	 }
	 else{
			alert ("Enter a valid document number using only alphanumeric characters");
			return false;
		 }
	}
}

function submitAdvancedSearchForm() {
	
	 var advancedSearchForm=document.getElementById('advancedSearchForm');
	 if(isValidsubmitAdvancedSearchForm()) {
		advancedSearchForm.submit();
	}
}

function isValidTimelineSearchForm() {
	
        var yearStart = document.timelineSearch.tly1.value;
        var yearEnd = document.timelineSearch.tly2.value;
        var isYear1AD = (document.timelineSearch.tla1.selectedIndex == 0);
        var isYear2AD = (document.timelineSearch.tla1.selectedIndex == 0);
        var timelineText = document.timelineSearch.tlt.value;
        
        // check for all fields empty
        if (yearStart.length == 0 && yearEnd.length == 0 && timelineText.length == 0) {
			
            alert("All search fields are empty.");
            document.timelineSearch.tly1.focus();
            return false;
        }
        
        // check for valid years
        
        // start year
        if (yearStart.length > 0 && !isTimelineYearValid(yearStart) && yearStart.length>4) {
		     if ((isYear1AD && yearStart.length > 8) || (!isYear1AD && yearStart.length > 4)) { 
		            alert(yearStart + " is an invalid year.");
	   	   }
            document.timelineSearch.tly1.focus();
            return false;
        }
        
     
        // end year
        if (yearEnd.length > 0 && !isTimelineYearValid(yearEnd)) {
			
            alert(yearEnd + " is an invalid year.");
            document.timelineSearch.tly2.focus();
            return false;
        }

        return true;
    }
    
    function isTimelineYearValid( yearValue) {
		
        var intYearValue = parseInt(yearValue);
        // check if it is a number
        if(isNaN(intYearValue)) {
            return false;
        }
        // check if the value is positive and greater than 0
        if(intYearValue <= 0) {
            return false;
        }
        // check if all the characters were digits
        var str_intYearValue = "" + intYearValue;
        return yearValue.length == str_intYearValue.length;
    }

 //trim
    function LTrim( yearValue ) {
	
	var re = /\s*((\S+\s*)*)/;
	return yearValue.replace(re, "$1");
	
    }

// Removes ending whitespaces
	function RTrim( yearValue ) {
	
		var re = /((\s*\S+)*)\s*/;
		return yearValue.replace(re, "$1");
	
	}

// Removes leading and ending whitespaces
	function trim( yearValue ) {
	
	return LTrim(RTrim(yearValue));
	
	}
    //advanced search year validation
    function validateYear( strValue ) {
	var yearValue = trim(strValue);
	var objRegExp  = /(^\d{1,4}$)|(^\d{1,4}-\d{1,4}$)/;
	return objRegExp.test(yearValue);
}
    

function submitTimelineSearchForm() {
	
	var timelineSearchForm=document.getElementById('timelineSearchForm');
	if(isValidTimelineSearchForm()==true) {
		timelineSearchForm.submit();
	}
}

function testDictionary() {
	
	if (document.searchForm.TI.value.length<=0) {
		
		alert("Please enter Search Term");
		document.searchForm.TI.focus();
		return false;
	}
	return true;
}
	
function submitDictionarySearchForm() {
	
	var dictionarySearchForm=document.getElementById('dictionarySearchForm');
	if(testDictionary()==true) {
		dictionarySearchForm.submit();
	}
}
 
