function initBasicSearch() {
	var formObj = getDynamicSearchFormObj();
	initializeDateLimiters(formObj);
}

function validateSearchForm(event) {
    var validForm = true;
	var formObj = document.forms[0];
	var inputFieldValue = "inputFieldValue(0)";
	var searchTermObj = formObj.elements[inputFieldValue];
	
	if(searchTermObj!=null && trim(searchTermObj.value)=="" && !standAloneLimitersSelected(formObj)){
		alert(SEARCH_TERMS_EMPTY);
		searchTermObj.focus();
	    cancelEvent(event);
	    return false;
	}else if(!(isValidDateInformation(formObj))) {
		alert(INVALID_DATE_MSG);
		validForm = false;
		cancelEvent(event);
	} else if(!validateDateRange(formObj)) {
		alert(INVALID_DATE_RANGE);
		validForm = false;
		cancelEvent(event);
	} else if(!(isValidInputFieldName(formObj))) {
		alert(INVALID_SEARCH_INDEX);
	    searchTermObj.focus();
	    cancelEvent(event);
		return false;
	}

    if( (searchTermObj != null) && (trim(searchTermObj.value) != "") && !isValidWildCardSearch(searchTermObj.value)){
        alert(WILDCARD_SEARCH_TERMS);
        searchTermObj.focus();
	    cancelEvent(event);
        return false;
    }

    if(!singleFieldDateEvents()){
		alert(INVALID_DATE_FORMAT);
		cancelEvent(event);
		return false;
	}
    
    return validForm;
}

/* This function is used for Date Validation when configured DisplayFormat as 'SINGLE_FIELD' text box & not an option box */
function singleFieldDateEvents(){
	var formObj = document.forms[0];
	var singleFieldDate = "dateLimiterValue(" + dateIndices[0] + ").singleFieldDate";
	var singleFieldDateObj = formObj.elements[singleFieldDate];
	if( singleFieldDateObj != null) {
    	var dateEntered =trim(singleFieldDateObj.value);
    	if(dateEntered != null){
			if(!isValidDateOption(dateEntered)) {
			  return false;
			}
		}
	}	
	return true;	
}

/***************************************** Basic Search Event Binding ******************************************/

function basicSearchBodyOnLoad(){
	initBasicSearch();
	window.focus();
}

function attachBasicSearchEvents(){
	addLoadEvent(document.body, basicSearchBodyOnLoad);
	//addKeyPressEvent(document.body, BrowserKeyCap);
    // SEE:   searchFormScripts.js - checkEnter
    // NOTE:  Before submitting, the validateSearchForm() method is called.  All
    //        search forms must therefore override this method for validating.
    //        Calling submit directly does not invoke and onsubmit() calls, so this
    //        is the workaround used.  In the future, eventListenerList() could be
    //        used when browsers fully implement Dom Level 3 Events.
    addSubmitEvent(document.forms[0], validateSearchForm);
	//attachPopup("searchForm-helpLink", openGaleChildWindow);
	initializeStandAloneLimiterArray(document.forms[0]);
	initializeDateLimiters(document.forms[0]);
}
//window.onload = attachBasicSearchEvents;

addWindowLoadEvent(attachBasicSearchEvents);
