//This function is moved to here from FCLDisplayCaseSearchFormPage_main.jsp 
function viewPackage(){
	var idx = document.paygForm.payg.selectedIndex;
	var formAction = document.paygForm.payg.options[idx].value;
	document.paygForm.action = "/lx1/specialoffer/getOffer?mode=home&action=signup&packageid=" + formAction;
	document.paygForm.submit();
}

// must do the following for netscape in order to ignore enter key in textarea
if (document.layers) {
window.captureEvents(Event.KEYPRESS);
window.onKeyPress = KeypressHandler;
}

//This Function is moved here from FCL_SearchMain.jsp
function checkRadio(sType){
//For FCL
	if(!(document.fclSearchForm.searchType[0].checked) || (document.formSearch.searchType[1].checked)){
		document.fclSearchForm.searchType[0].checked = true;
	}
	if(sType == "citation"){
		document.fclSearchForm.searchType[1].click();
	}
}
function KeypressHandler(event){
var key = ((parseInt(navigator.appVersion) > 4))? event.keyCode:event.which;
var fromForm = document.fclSearchForm.name;

	if(navigator.userAgent.indexOf("MSIE") != -1){
        if(event.keyCode == "13"){
			fclSubmitSearch();
			//validatePage();
		}else{
			return;
		}
	}
	if(navigator.appName.indexOf("Netscape") != -1 || navigator.userAgent.indexOf("Nav") != -1){
 	var formLength = document.fclSearchForm.elements.length;
	var elementName = "";
		for(i=0; i < formLength; i++ ){
			if(document.fclSearchForm.elements[i].name == event.target.name){
					elementName = document.fclSearchForm.elements[i].name;
					break;
				}
		}
        if(key == "13" && event.target.name == elementName){
			fclSubmitSearch();
			//validatePage();
		}else{
			return;
		}
    }
}//end KeypressHandler()
function checkCitationSubmit(){
	var citationBox = document.fclSearchForm.fclSearch.value;
	if(isBlank(citationBox)){
		alert("Please enter citation.");
		return false;
	}else{
		document.fclSearchForm.submit();
		return true;
	}
}
function checkCitation(){
	var citationBox = document.fclSearchForm.fclSearch.value;
	if(isBlank(citationBox)){
		alert("Please enter citation.");
		return;
	}else{
		document.fclSearchForm.submit();
		return;
	}
}

function validatePage(){

	var dateArray = new Array(2);
	var searchBoxJuris = document.fclSearchForm.searchTerm.value;

	var dateFrom = document.fclSearchForm.fromDate.value;
	var dateTo = document.fclSearchForm.toDate.value;

	//make sure at least one data source is selected
	for(i=0; i < document.fclSearchForm.sourceType.length; i++){
			if(document.fclSearchForm.sourceType[i].checked){

				var selectedIndex = document.fclSearchForm.sourceCandidate[i].selectedIndex;

				var selectedOption = document.fclSearchForm.sourceCandidate[i].options[selectedIndex];
				var selectedOptionValue = selectedOption.value;
				
				if(selectedOptionValue == "selectSource" && i == 0){
					alert("Please select a State.");
					return;
				}
				if(selectedOptionValue == "selectSource" && i == 1){
					alert("Please select a Court.");
					return;
				}
				document.fclSearchForm.sourceID.value = selectedOption.value;
				break;
	
			}else{
				if(document.fclSearchForm.sourceType.length - 1 == i){
					alert("Please choose a State or Federal court.");
					return;
				}
			}
		
	}//Loop

	//flag for checking at least one constraint is specified
	var nonEmptyFlag = 0;

	//validate date field 
	if(document.fclSearchForm.dateType[1].checked){
		
		if((isBlank(dateFrom)) && (isBlank(dateTo))){
			alert("Please enter a date.");
			return;
		}
		if(!isBlank(dateFrom)){
			if(!validateDate(dateFrom)){
				alert("Please enter a date in 'MM/DD/YYYY' format.");
				return;
			}
		}
		if(!isBlank(dateTo)){
			if(!validateDate(dateTo)){
				alert("Please enter a date in 'MM/DD/YYYY' format.");
				return;
			}
		}
		if((!(isBlank(dateFrom))) && (!(isBlank(dateTo)))){
			if(!compareDates(dateFrom, dateTo)){
				alert("Please make sure date in the 'From' field is before the date in the 'To' field.");
				return;
			}
		}
		nonEmptyFlag = 1;
	}


	if(document.fclSearchForm.dateType[0].checked){
	        if ( document.fclSearchForm.relativeDate.value != '1-NONE' )  nonEmptyFlag = 1;
	}
	if ( !isBlank(document.fclSearchForm.party.value) ) nonEmptyFlag = 1;
	if ( !isBlank(document.fclSearchForm.judge.value) ) nonEmptyFlag = 1;
	if ( !isBlank(document.fclSearchForm.counsel.value) ) nonEmptyFlag = 1;


	//copy function  isBlank
	var searchTerm = document.fclSearchForm.searchTerm.value;
	if( !isBlank(searchTerm) )
	{
		if (searchTerm.length > 255)
		{
			alert("Field must have no more than 255 characters.\nYou currently have " + searchTerm.length  + ".");
			return;
		}
		nonEmptyFlag = 1;
	}

	//check if at lease one constraint is specified
 	if ( nonEmptyFlag != 1 )
	{
		alert("Please supply additional search criteria"); 	
		return;
	}
	
	//if we get here, it means all checkings have been passed. Do a submit  
	document.fclSearchForm.submit();
	return;

}//End validatePage()

function isBlank(s){
   // whitespace characters
   var whitespace = " \t\n\r";
   var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {  
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    // All characters are whitespace.
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

// Added for w# 1440296
function checkKeywordSearchBox(formName, fieldName){  
	var field = eval("document." + formName + "." + fieldName + ".value");   
	
		if(field.length > 255){		
		 alert("Field must have no more than 255 characters.\nYou currently have " + field.length  + ".");
		 return;
		}			
		validatePage();
}


function checkSearchBox(formName, fieldName, ifError, searchType){  
	var qtyfield = eval("document." + formName + "." + fieldName + ".value");   

	if(isBlank(qtyfield)){
		alert(ifError);
		return;

	}else{

		if(qtyfield.length > 255){
		alert("Field must have no more than 255 characters.\nYou currently have " + qtyfield.length  + ".");
		return;
		}
	//eval("document."+formName+".submit()");
	
	//Added 10/27/2003
	if(searchType == "citation"){
		checkCitationSubmit();
	}else{
		validatePage();
	}

    //window.location.pathname =  "/design/lexisnexisresearch/casedecision.html";

	}

}

//Date Validation below

function validateDate(fval) //expects fval to be not null & validates date in "MM/DD/YYYY" format
{
   dates = fval.split("/");
   if(dates.length!=3) return false;
   if(dates[0].length > 2 || dates[0].length < 1 || dates[1].length > 2 || dates[1].length < 1 || dates[2].length!=4 ) return false;
   if(isNaN(dates[0]) || isNaN(dates[1]) || isNaN(dates[2])) return false; 
   if (parseInt(dates[0]) > 12) return false;
   if (!isDayMonthYearValid(dates[1],dates[0],dates[2])) return false;
   return true;
}
function isDateDigit(fval)
{
   return isDateValid(fval,false);
}
function isDayMonthYearValid(day,month,year)
{
   if (day > 31) return false;
   if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) return false;
   if (month == 2)
   {
      if (isLeapYear(year))
      {
         if (day > 29) return false;
      }
      else
      {  
         if (day > 28) return false;
      }
   }
   return true;  
}
function isLeapYear(year)
{
   if (year % 4 == 0)
   {
      if (year % 100 == 0)
      {
          if (year % 400 == 0) 
              return true;
          else 
              return false;
      } 
      return true;
   }
   else
   {
     return false;
   }       
}

function compareMilliSeconds(date1,date2) {
   if (date1 <= date2) 
       return true;
   else
       return false;
}

function compareDates(fromDate, toDate){

	var fromDateConverted = new Date(fromDate);
	var fromSeconds = fromDateConverted.getTime(fromDateConverted);

	var toDateConverted = new Date(toDate);
	var toSeconds = toDateConverted.getTime(toDateConverted);

	return compareMilliSeconds(fromSeconds, toSeconds);
}
function disableOther(flag){	  
      document.fclSearchForm.sourceCandidate[0].disabled=flag;
      document.fclSearchForm.sourceCandidate[1].disabled=flag;
      document.fclSearchForm.sourceType[0].disabled=flag;
      document.fclSearchForm.sourceType[1].disabled=flag;
      document.fclSearchForm.dateType[0].disabled=flag;
      document.fclSearchForm.dateType[1].disabled=flag;
      document.fclSearchForm.relativeDate.disabled=flag;
	  document.fclSearchForm.fromDate.disabled=flag;
	  document.fclSearchForm.toDate.disabled=flag;
	  document.fclSearchForm.party.disabled=flag;
	  document.fclSearchForm.judge.disabled=flag;
	  document.fclSearchForm.counsel.disabled=flag;
}

function fclSubmitSearch(){
	var searchEntry = document.fclSearchForm.fclSearch.value;
	if(document.fclSearchForm.searchType[0].checked){
		document.fclSearchForm.action.value = "FCLSearchCaseByTerms";
		document.fclSearchForm.searchTerm.value = searchEntry;
		checkKeywordSearchBox('fclSearchForm', 'fclSearch');
//		checkSearchBox('fclSearchForm', 'fclSearch', 'Please enter search term.', 'searchTerm');

	}else if(document.fclSearchForm.searchType[1].checked){
		document.fclSearchForm.action.value = "FCLSearchCaseByCitation";
		document.fclSearchForm.citation.value = searchEntry;
		checkSearchBox('fclSearchForm', 'fclSearch', 'Please enter a citation.', 'citation');
	}else{
		alert("Please select search type");
		return;
	}
}
