
var dateIndices=new Array();var browseIndices=new Array();var standAloneLimiters=new Array();var FROM="from";var TO="to";var ALL_DATES="0";var BETWEEN="4";var OPERATOR_OR="OR";var rowNumberForPreviousSearches=0;var limiterFieldObject="";var browseWindow;var limiterFieldControl;var inputFieldControl;var limiterChoosen=false;function populateDateIndicesArray(formObj){if(formObj!=null){var dateIndexCollection=formObj.dateIndices;if(isValidObject(dateIndexCollection)&&isValidObject(dateIndexCollection.length)){for(var d=0;d<dateIndexCollection.length;d++){dateIndices[d]=dateIndexCollection[d].value;}}else if(isValidObject(dateIndexCollection)){dateIndices[0]=dateIndexCollection.value;}}}
function populateStandaloneLimitersArray(formObj){if(formObj!=null)
{var standaloneLimiterCollection=formObj.standAloneLimiters;if(isValidObject(standaloneLimiterCollection)&&isValidObject(standaloneLimiterCollection.length)){for(var d=0;d<standaloneLimiterCollection.length;d++){standAloneLimiters[d]=standaloneLimiterCollection[d].value;}}else if(isValidObject(standaloneLimiterCollection)){standAloneLimiters[0]=standaloneLimiterCollection.value;}}}
function initializeDateLimiters(formObj){populateDateIndicesArray(formObj);var DL_PREFIX="dateLimiterValue";for(d=0;d<dateIndices.length;d++){var index=dateIndices[d];var dateMode=DL_PREFIX+"("+index+").dateMode";var dateModeObj=formObj.elements[dateMode];modifyDate(formObj,index,true,FROM);modifyDate(formObj,index,true,TO);getElementById("anddate").className="disabled";for(j=0;j<dateModeObj.length;j++){disableOrEnableDates(formObj,dateModeObj[j],index);if(dateModeObj[j].checked)break;}}}
function isValidDateInformation(formObj){if(dateIndices.length>0){var index=dateIndices[0];var dateLimiter=new DateLimiter(formObj,index);var validFromDate=true;var validToDate=true;if(!dateLimiter.fromYearObj.disabled){validFromDate=trim(dateLimiter.fromYearVal)!="";if(!dateLimiter.toYearObj.disabled){validToDate=trim(dateLimiter.fromYearVal)!="";}}
return validFromDate&&validToDate;}
return true;}
function isValidDate(day,month,year){if(year==""){return false;}
if(month<1||month>12){return false;}
if(day<1||day>31){return false;}
if((month==4||month==6||month==9||month==11)&&(day==31)){return false;}
if(month==2){var leap=(year%4==0&&(year%100!=0||year%400==0));if(day>29||(day==29&&!leap)){return false;}}
return true;}
function validateDateRange(formObj,index){if(dateIndices.length>0){var index=dateIndices[0];var dateLimiter=new DateLimiter(formObj,index);var flag=0;if(!dateLimiter.fromDayObj.disabled&&!dateLimiter.toDayObj.disabled&&!dateLimiter.dateModesObj[0].checked&&!dateLimiter.dateModesObj[1].checked&&!dateLimiter.dateModesObj[2].checked){var fromDate=new Date(dateLimiter.fromYearVal,"01","01");var toDate=new Date(dateLimiter.toYearVal,"01","01");if(fromDate>toDate){return false;}}}
return true;}
function disableOrEnableDates(formObj,option,index){if(option.checked){if(option.value==BETWEEN){modifyDate(formObj,index,false,FROM);modifyDate(formObj,index,false,TO);getElementById("anddate").className="dateConjunction";}else{modifyDate(formObj,index,true,TO);modifyDate(formObj,index,false,FROM);getElementById("anddate").className="disabled";}}}
function disableOrEnableDatesForMode(formObj,option,index){if(option.checked){if(option.value==BETWEEN){modifyDate(formObj,index,false,FROM);modifyDate(formObj,index,false,TO);getElementById("anddate").className="dateConjunction";}else{modifyDate(formObj,index,true,TO);modifyDate(formObj,index,false,FROM);getElementById("anddate").className="disabled";reInitDateLimiter(formObj,false,true);}}}
function modifyDate(formObj,index,disableFlag,type){var year="dateLimiterValue("+index+")."+type+"Year";if(!disableFlag){disableBooleanLimiters(formObj);}
formObj.elements[year].disabled=disableFlag;}
function DateLimiter(formObj,index){this.fromDay="dateLimiterValue("+index+")."+FROM+"Day";this.fromMonth="dateLimiterValue("+index+")."+FROM+"Month";this.fromYear="dateLimiterValue("+index+")."+FROM+"Year";this.toDay="dateLimiterValue("+index+")."+TO+"Day";this.toMonth="dateLimiterValue("+index+")."+TO+"Month";this.toYear="dateLimiterValue("+index+")."+TO+"Year";this.fromDayObj=formObj.elements[this.fromDay];this.fromMonthObj=formObj.elements[this.fromMonth]
this.fromYearObj=formObj.elements[this.fromYear]
this.toDayObj=formObj.elements[this.toDay];this.toMonthObj=formObj.elements[this.toMonth]
this.toYearObj=formObj.elements[this.toYear]
this.fromDayVal=this.fromDayObj.value
this.fromMonthVal=this.fromMonthObj.value
this.fromYearVal=this.fromYearObj.value
this.toDayVal=formObj.elements[this.toDay].value
this.toMonthVal=formObj.elements[this.toMonth].value
this.toYearVal=formObj.elements[this.toYear].value
this.DATE_INDEX=index;this.dateMode="dateLimiterValue"+"("+this.DATE_INDEX+").dateMode";this.dateModesObj=formObj.elements[this.dateMode];}
function initializeStandAloneLimiterArray(formObj){populateStandaloneLimitersArray(formObj);}
function standAloneLimitersSelected(formObj){var limiterSelected=false;for(var i=0;i<standAloneLimiters.length&&!limiterSelected;i++){var limiter=formObj.elements["limiterFieldValue("+standAloneLimiters[i]+")"];var limiterType=limiter!=null?limiter.type:"";for(var j=0;j<dateIndices.length;j++){var index=dateIndices[j];var dateMode="dateLimiterValue("+index+").dateMode";var dateModeObj=formObj.elements[dateMode];for(k=1;k<dateModeObj.length;k++){if((dateModeObj[k].checked==true)){limiterSelected=true;}}}
if((limiter!=null)&&limiter.type==null&&standAloneLimitersArraySelected(limiter)){limiterSelected=true;}
if((limiterType=="checkbox")&&(limiter.checked==true)){limiterSelected=true;}else if((limiterType=="text")&&(trim(limiter.value)!="")){limiterSelected=true;}else if((limiterType=="select-one")&&(limiter.selectedIndex>0)){limiterSelected=true;}else if(limiterType=="select-multiple"&&limiter.selectedIndex>-1){var selections=limiter.options;for(var idx=0;idx<selections.length;idx++){if(selections[idx].selected&&selections[idx].value!=''){limiterSelected=true;}}}}
return limiterSelected;}
function standAloneLimitersArraySelected(limiters){var limiterSelected=false;for(var i=0;i<limiters.length;i++){var limiter=limiters[i];var limiterType=limiter!=null?limiter.type:"";if((limiterType=="checkbox")&&(limiter.checked==true)){limiterSelected=true;}else if((limiterType=="text")&&(trim(limiter.value)!="")){limiterSelected=true;}else if((limiterType=="select-one")&&(limiter.selectedIndex>0)){limiterSelected=true;}else if(limiterType=="select-multiple"&&limiter.selectedIndex>-1){var selections=limiter.options;for(var idx=0;idx<selections.length;idx++){if(selections[idx].selected&&selections[idx].value!=''){limiterSelected=true;}}}}
return limiterSelected;}
function doLimiterBrowse(){var href=this.href;var formObj=getDynamicSearchFormObj();var index=getParamValueInURL(href,"terms");var LIMITER_SUFFIX="_dynamicLimiterField";var searchType=formObj.searchType.value;var fieldId=index+LIMITER_SUFFIX;var inputField=getElementById(fieldId);limiterFieldObject=inputField;limiterChoosen=true;limiterFieldControl=inputField;var preselectOnLoad='';if((inputField.value!=null)&&(inputField.value.length>0)){preselectOnLoad='&preselectOnLoad=Y';}
var browseIndexUrl=href+"&searchType="+searchType+preselectOnLoad;openInChildWindow(browseIndexUrl,"galeChildWindow");return false;}
function doMultiLimiterBrowse(formObj,inputField,index,hide,show,returnVal,clearVal){toHide=hide;toShow=show;returnPulldown=returnVal;textToClear=clearVal;if(inputField.name==null){inputField=inputField[0];}
limitFormField=inputField.name;var productId=formObj.prodId.value;var usrGrp=formObj.userGroupName.value;var fn=inputField.value;var qt=index;fieldIndex=-1;var name=BROWSE_INDEX_SELECTIONS;browseWindow=window.open(BASIC_BROWSE_INDEX_URL+"&query="+fn+"&terms="+qt+"&rowIndex="+qt+"&fieldName="+name,"galeChildWindow","toolbar=no, directories=no, status=yes, location=no, resizable=yes, menubar=no, scrollbars=yes,width=700,height=450");}
function doBrowse(){var id=this.id;var temp=id.split("_");var inputRowNumber=temp[1];rowNumberForPreviousSearches=inputRowNumber;var formObj=document.forms[0];var indexFieldName="inputFieldName("+inputRowNumber+")";var inputValueName="inputFieldValue("+inputRowNumber+")";var index=formObj.elements[indexFieldName].value;var inputQueryTerms=formObj.elements[inputValueName].value;var searchType=formObj.searchType.value;limiterChoosen=false;inputFieldControl=formObj.elements[inputValueName];var suffix=inputRowNumber+index;var browseTerm=getBrowseTermFromCookie(suffix);var browseIndexUrl=this.href+"&query="+browseTerm+"&searchType="+searchType+"&rowIndex="+suffix;var terms=getURLParamValue('terms',browseIndexUrl);if(terms=='nz'||terms=='nr'||terms=='sm'||terms=='sw')
openInChildWindowForTreeView(browseIndexUrl,"galeChildWindow");else
openInChildWindow(browseIndexUrl,"galeChildWindow");return false;}
function getURLParamValue(strParamName,URLString){var strReturn="";if(URLString.indexOf("?")>-1){var strQueryString=URLString.substr(URLString.indexOf("?")).toLowerCase();var aQueryString=strQueryString.split("&");for(var iParam=0;iParam<aQueryString.length;iParam++){if(aQueryString[iParam].indexOf(strParamName.toLowerCase()+"=")>-1){var aParam=aQueryString[iParam].split("=");strReturn=aParam[1];break;}}}
return strReturn;}
function doPreviousSearches(){var id=this.id;var temp=id.split("_");rowNumberForPreviousSearches=temp[1];openInChildWindow(this.href+"&brwIdx=PS","galeChildWindow");return false;}
function setSearchString(value){if(limiterChoosen&&limiterFieldObject!=""){appendOR(limiterFieldObject,value);limiterFieldObject="";}else{var formObj=document.forms[0];var indexFieldName="inputFieldValue("+rowNumberForPreviousSearches+")";var inputFieldObj=formObj.elements[indexFieldName];appendOR(inputFieldObj,value);}}
function setFieldValue(selectionValues){if(limiterChoosen){appendOR(limiterFieldControl,selectionValues);}else{appendOR(inputFieldControl,selectionValues);}}
function clearLimiter(){limiterFieldControl.value='';}
function getLimiter(){return limiterFieldControl.value;}
function appendOR(fieldObj,value){if(value.length>0){if(fieldObj.value.length==0){fieldObj.value=value;}else{fieldObj.value=fieldObj.value+OPERATOR_OR+value;}}}
function getBrowseTermFromCookie(suffix){var cookieId=formCookieId("browseTerm",suffix);var browseTerm=getCookie(cookieId);if(browseTerm==null){return"";}
return browseTerm;}
function formCookieId(name,suffix){return name+"_"+suffix;}
function validateLimiters(formObj,event){if(!isValidDateInformation(formObj)){alert(INVALID_DATE_MSG);cancelEvent(event);return false;}
else if(!validateDateRange(formObj)){alert(INVALID_DATE_RANGE);cancelEvent(event);return false;}
else if(!validateLexileScore(formObj))
{alert(INVALID_LEXILE_SCORE);cancelEvent(event);return false;}
return true;}
function showMoreOptions(){getElementById("limitCriteria").className="hide";this.className="hideSearchOptions hide";getElementById("searchForm-moreSearch").className="moreSearchOptions";}
function hideMoreOptions(){getElementById("limitCriteria").className="";this.className="moreSearchOptions hide";getElementById("searchForm-hideSearch").className="hideSearchOptions";}
function attachFieldBrowseEvent(){var anchorlinks=document.links;var fieldBrowseIdPattern="^browseField_.+_.+$";var fieldBrowseExp=new RegExp(fieldBrowseIdPattern);var prevIndexSuffix="__";for(var i=0;i<anchorlinks.length;i++){var anchorId=anchorlinks[i].id;if(fieldBrowseExp.test(anchorId)&&prevIndexSuffix==anchorId.substring(anchorId.length-prevIndexSuffix.length)){anchorlinks[i].onclick=doPreviousSearches;}else if(fieldBrowseExp.test(anchorId)){anchorlinks[i].onclick=doBrowse;}}}
function attachLimiterBrowseEvent(){var anchorlinks=document.links;var limiterBrowseIdPattern="^browseField_[a-zA-Z0-9]+$";var limiterBrowseExp=new RegExp(limiterBrowseIdPattern);for(var i=0;i<anchorlinks.length;i++){if(limiterBrowseExp.test(anchorlinks[i].id)){anchorlinks[i].onclick=doLimiterBrowse;}}}
function attachLimiterScriptEvents(){var hideOption=getElementById("searchForm-hideSearch");if(hideOption!=null){hideOption.onclick=showMoreOptions;}
var showOption=getElementById("searchForm-moreSearch");if(showOption!=null){showOption.onclick=hideMoreOptions;}
attachFieldBrowseEvent();attachLimiterBrowseEvent();disableBeforeForCurrentUser();}
function validateLexileScore(formObj){var lexileScoreElems=formObj.elements["limiterFieldValue(LX)"];if(lexileScoreElems!=null)
{for(var i=0;i<lexileScoreElems.length;i++)
{var lexileScoreField=lexileScoreElems[i];if(lexileScoreField.type=="text")
{if(trim(lexileScoreField.value)!="")
{var regEx1=new RegExp("^[0-9]{1,}$");var regEx2=new RegExp("^([0-9]{1,}-[0-9]{1,})$");var regEx3=new RegExp("^([0-9]{1,} to [0-9]{1,})$");var lexileScore=lexileScoreField.value;if(regEx1.test(lexileScore))
{return true;}
else if(regEx2.test(lexileScore))
{return true;}
else if(regEx3.test(lexileScore))
{return true;}
else
{return false;}}}}}
return true;}
function disableDates(){var booleanLimiterID1="limiterFieldValue_1";var booleanLimiterID2="limiterFieldValue_2";var formObj=document.forms[0];var booleanLimiter1=formObj.elements[booleanLimiterID1];var booleanLimiter2=formObj.elements[booleanLimiterID2];if((booleanLimiter1.checked||booleanLimiter2.checked)&&!(formObj.elements["dateLimiterValue(DA).dateMode"]==null)){var dateLimiters=formObj.elements["dateLimiterValue(DA).dateMode"];for(var j=0;j<dateLimiters.length;j++){dateLimiters[j].checked=false;}
modifyDate(formObj,dateIndices[0],true,FROM);modifyDate(formObj,dateIndices[0],true,TO);getElementById("anddate").className="disabled";reInitDateLimiter(formObj,true,true);}}
function reInitDateLimiter(formObj,fromYear,toYear){var fromYear="dateLimiterValue("+dateIndices[0]+").fromYear";var toYear="dateLimiterValue("+dateIndices[0]+").toYear";if(fromYear)
formObj.elements[fromYear].selectedIndex=0;if(toYear)
formObj.elements[toYear].selectedIndex=0;}
function disableBeforeForCurrentUser(){var formObj=document.forms[0];if(formObj){var fromYear=formObj.dateLimiterValue_DA_fromYear;if(fromYear&&fromYear.length==2){formObj.dateLimiterValue_DA_dateMode_1.disabled=true;}}}
addWindowLoadEvent(attachLimiterScriptEvents);
