var _search_api_url="/API/Search/DataAPI-exalead.aspx";var _currentSearchResults;var _errorMessages;var _monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];var _map;var _mgr;var _queries=[];var _curQ=0;var _resultSets=[];var _curRS=-1;var _resultsPage=1;function getQueryVariable(variable){var query=window.location.search.substring(1);var vars=query.split("&");for(var i=0;i<vars.length;i++){var pair=vars[i].split("=");if(pair[0]==variable){return pair[1];}}
return false;}
if(getQueryVariable("page")){var _resultsPage=getQueryVariable("page");}
var _resultsReturned=20;function processDate(date,type){dateArray=date.split("-");var dateOutput="";switch(type){case"year":dateOutput=dateArray[0];break;case"monthname":dateOutput=_monthNames[(Number(dateArray[1])-1)];break;case"monthnumber":dateOutput=dateArray[1];break;case"day":dateOutput=dateArray[2];break;default:break;}
return dateOutput;}
function parseQueryString(){if(getQueryVariable("type")){var type=getQueryVariable("type");var queryObj=new Query();if(getQueryVariable("search")){var searchStr=getQueryVariable("search");var searchArr=searchStr.split(";");for(var x=0;x<searchArr.length;x++){if(searchArr[x]!=""){var searchTagArr=searchArr[x].split(":");queryObj.addSearchTag(searchTagArr[0].toLowerCase(),searchTagArr[1]);}}
queryObj.returns.type="XML";queryObj.addRetField(["imageid","title","date","city","state","country"]);queryObj.addParam(["MAX_RESULTS:"+_resultsReturned]);queryObj.addParam(["ABSTRACT_LENGTH:35"]);if(getQueryVariable("page")){var startNum=(_resultsReturned*getQueryVariable("page")-_resultsReturned)+1;queryObj.addParam(["RESULT_START_AT_NUMBER:"+startNum]);}
if(getQueryVariable("dahstartstate")){queryObj.addParam(["DAH_START_STATE:"+getQueryVariable("dahstartstate")]);}}
switch(type){case"search":queryObj.addRetField(["abstract"]);break;case"browse":break;default:break;}
_queries[_curQ]=queryObj;}}
var Query=function(type){this.search={};this.returns={"type":"","fields":[]}
this.parameters=[];};Query.prototype={addSearchTag:function(key,value){if(!this.search[key]){this.search[key]="";this.search[key]={"key":key,"values":[]}}
this.search[key].values.push(value);},addRetField:function(fields){for(var r=0;r<fields.length;r++){this.returns.fields.push(fields[r]);}},addParam:function(params){for(var p=0;p<params.length;p++){this.parameters.push(params[p]);}},asString:function(type){var string="";for(var t in this.search){if(type=="da"){if(this.search.name){string+="TEXT:"+this.search[t].values.join(",");}
if(this.search.text){if(string==""){string+="TEXT:";}
string+=this.search[t].values.join(",");}}else{string+=this.search[t].key.toUpperCase()+":"+this.search[t].values.join(",");}}
if(string!=""){string="search="+string;if(this.returns.type){string+="&returns="+this.returns.type;}else{string+="&returns=XML";}
if(this.returns.fields.length>0){string+=this.returns.fields.join(",");}
if(this.parameters.length>0){string+="&parameters="+this.parameters.join(";");}
return string;}else{return false;}}}
var Result=function(source){this.id=$("imageid",source).text();this.pdflink=_search_api_url+"?search=IMAGEID:"+this.id+";&returns=PDF;";this.thumbsource=_search_api_url+"?search=IMAGEID:"+this.id+";&returns=THUMB;";this.location={"city":$("city",source).text(),"state":$("state",source).text(),"country":$("country",source).text(),"lat":$("latitude",source).text(),"lon":$("longitude",source).text()};this.publication={"title":$("title",source).text()};var date;if($("date",source).length>0){date=$("date",source);}else if($("pubdate",source).length>0){date=$("pubdate",source);}
if(date){this.date={"year":processDate(date.text(),"year"),"month":{"number":processDate(date.text(),"monthnumber"),"name":processDate(date.text(),"monthname")},"day":processDate(date.text(),"day")};}
this.text={"abstract":$("abstract",source).text()};this.timeline={"start":$("date",source).text(),"title":$("title",source).text(),"durationEvent":false};};var ResultSet=function(source){this.results=[];var resultsdata;if($("result",source).length>0){resultsdata=$("result",source);}else if($("imageid",source).length>0){resultsdata=$("imageid",source);}
if(resultsdata){for(var x=0;x<resultsdata.length;x++){this.results.push(new Result(resultsdata.eq(x)));}}
this.timeline={"wiki-section":"Search Results Timeline","dateTimeFormat":"ISO 8601","events":[]};for(var j=0;j<this.results.length;j++){this.timeline.events[j]=this.results[j].timeline;}
if($("hits",source).length>0){this.hits=$("hits",source).text();}
else{this.hits=this.results.length;}
if($("totalresults",source).length>0){this.totalcount=$("totalresults",source).text();}
else{this.totalcount=this.hits;}
this.dahstartstate=$("dahstartstate",source).text();};function textSearch(output_el,query){$(output_el).parent(":hidden").show();$(".loading").show();$(output_el).hide();$.ajax({type:"GET",url:_search_api_url,data:query,success:function(data,textStatus){_curRS++;_resultSets[_curRS]=new ResultSet(data);$(output_el).html(buildResultHtml(_resultSets[_curRS]));if($("#option_display_map:checked").length>0){loadMaps(_resultSets[_curRS]);$("#search_results_map").removeClass('hidden');}
$(".loading").hide();var totalpages=Math.ceil((_resultSets[_curRS].totalcount/_resultsReturned));$('.pager').pager({pagenumber:_resultsPage,pagecount:totalpages,buttonClickCallback:function(destPage){window.location.href='/Search/Results.aspx?'+paraLink(_queries[_curQ])+'&type=search&page='+destPage+"&dahstartstate="+_resultSets[_curRS].dahstartstate;}});$(output_el).show();},error:function(data,textStatus,errorThrown){if(console){console.log("data: "+data);console.log("textStatus: "+textStatus);console.log("errorThrown: "+errorThrown);}}});}
function testSearch(query){var status;var xml;var error;$.ajax({type:"GET",url:_search_api_url,data:query,success:function(data,textStatus){_currentSearchResults=new ResultSet(data);status=textStatus;xml=data;},error:function(data,textStatus,errorThrown){if(console){console.log("data: "+data);console.log("textStatus: "+textStatus);console.log("errorThrown: "+errorThrown);}
status=textStatus;xml=data;error=errorThrown;},complete:function(){if(console){console.log(String(xml));}}});window.location.href="/Search/Results.aspx?"+query+"&type=search";}
function paraLink(queryObj,name,text,date,location,title){var output="";if(name){output+="NAME:"+name+";";}else if(queryObj.search.name){output+="NAME:"+queryObj.search.name.values.join(",");}
if(text){output+="TEXT:"+text+";";}else if(queryObj.search.text){output+="TEXT:"+queryObj.search.text.values.join(",");}
if(date){output+="DATE:"+date+";";}else if(queryObj.search.date){output+="DATE:"+queryObj.search.date.values.join(",");}
if(location){output+="LOCATION:"+location+";";}else if(queryObj.search.location){output+="LOCATION:"+queryObj.search.location.values.join(",");}
if(title){output+="TITLE:"+title+";";}else if(queryObj.search.title){output+="TITLE:"+queryObj.search.title.values.join(",");}
if(output!=""){return"search="+output;}else{return false;}}
function checkStatus(url){$.ajax({type:"GET",url:url,success:function(data,textStatus){if(console){console.log("data: "+data+"; textStatus: "+textStatus);}},error:function(data,textStatus,errorThrown){if(console){console.log("data: "+data+"; textStatus: "+textStatus+"; errorThrown: "+errorThrown);}}});}
function parseTextInput(input){var re=/[^\'\"]+([a-zA-z\d\s])+[^\'\"]+/g;var result=input.match(re);return result;}
function cleanQuotes(input){var re=/[^\'\"]+([a-zA-z\d\s])+[^\'\"]+/g;var result=String(input.match(re));return result;}
function textToQuery(input,type){var output="";var prefix="";var set;var string=$.trim(input);string=string.replace(/&/,"and");if(cleanQuotes(string)!=string||type=="phrase"){string=cleanQuotes(string);var sets=string.split(",");for(var x=0;x<sets.length;x++){set=sets[x].split(" ");sets[x]="+"+set.join("+");}
output+=sets.join(",");}else{set=string.split(" ");for(var v=0;v<set.length;v++){if(type=="include"){prefix="+";}else if(type=="exclude"){prefix="-";}else if(type=="none"||type===undefined){prefix="";}
set[v]=prefix+set[v];}
output+=set.join(",");}
return output;}
function lockdownTextQuery(tQuery){var query="search=TEXT:"+tQuery+";&returns=XML:imageid,city,state,country,title,date;&parameters=MAX_RESULTS:1;";return query;}
function constructParameters(){var parameters="";if(Number($("#option_results_display").val())!==0){parameters+="RESULTS_RETURNED:"+Number($("#option_results_display").val())+";";}
if($("#option_front_page_only:checked").length>0){parameters+="ONLY_FRONT_PAGES;";}
if(parameters!=""){parameters="&parameters="+parameters;}
return parameters;}
function displayQuery(){if(constructQuery()==""){$("#dev_query").html("");$("#dev_query").hide();}else{$("#dev_query").html("<strong>Query:</strong> "+constructQuery());$("#dev_query").show();}}
function buildResultHtml(resultSet){var resultOutput="";if($("#option_display_map:checked").length>0){resultOutput+="<div id='search_results_map' style='height: 290px; width: 740px;'></div>";}
if($("#option_display_timeline:checked").length>0){resultOutput+="<div id='search_results_timeline' style='height: 290px; width: 740px;'></div>";}
for(var x=0;x<resultSet.results.length;x++){var result=resultSet.results[x];var location=result.location;var outputLocation=location.city+", "+location.state+", "+location.country;var queryCi="ci"+location.city;var querySt="st"+location.state;var queryCo="ci"+location.country;var outputRefineLocation="<a href='/Search/Results.aspx?"+paraLink(_queries[_curQ],null,null,null,queryCi)+"&type=search'>"+location.city+"</a>, <a href='/Search/Results.aspx?"+paraLink(_queries[_curQ],null,null,null,querySt)+"&type=search'>"+location.state+"</a>, <a href='/Search/Results.aspx?"+paraLink(_queries[_curQ],null,null,null,queryCo)+"&type=search'>"+location.country+"</a>";var outputImg="<div class='image-thumb'><a onclick='openPDFOverlay(\""+result.id+"\",this.href,\""+result.publication.title+"\"); return false;' href='"+result.pdflink+"' title='"+result.publication.title+"'><img src='"+result.thumbsource+"' style='width:75px;' /></a></div>";var outputDate="";var outputRefineDate="";if(result.date){var date=result.date;outputDate=date.month.name+" "+date.day+", "+date.year;var queryDate="m"+date.month.number+",d"+date.day+",y"+date.year;outputRefineDate="<a href='/Search/Results.aspx?"+paraLink(_queries[_curQ],null,null,queryDate)+"&type=search'>"+outputDate+"</a>";}
var outputTitle="<h3 class='search-result-title'><a onclick='openPDFOverlay(\""+result.id+"\",this.href,\""+result.publication.title+"\"); return false;' href='"+result.pdflink+"' title='"+result.publication.title+"'>"+result.publication.title+" - "+outputDate+" - "+outputLocation+"</a></h3>";var outputAbstract="<div class='search-result-abstract'>"+result.text.abstract+"</div>";var outputRefine="<div class='search-result-refine'><strong>Refine by:</strong><br />"+outputRefineDate+"<br />"+outputRefineLocation+"</div>";resultOutput+="<div class='search-result' id='"+result.id+"'>"+outputTitle+outputImg+outputAbstract+outputRefine+"</div>";}
return resultOutput;}
function loadMaps(resultSet){if(GBrowserIsCompatible()){_map=new GMap2(document.getElementById("search_results_map"),{size:new GSize(740,290)});_map.setCenter(new GLatLng(41.959062,-95.677068),4);_map.enableDoubleClickZoom();var mgr=new MarkerManager(_map);var markers=[];for(var x=0;x<resultSet.results.length;x++){var result=resultSet.results[x];var location=result.location;if(!isNaN(location.lat)&&!isNaN(location.lon)){var title=result.publication.title;var html="<div class='image-thumb'><a href='"+result.pdflink+"'><img src='"+result.thumbsource+"' style='width:75px;' /></a></div>";var latlng=new GLatLng(location.lat,location.lon);var marker=createMarker(latlng,title,html);markers.push(marker);}}
mgr.addMarkers(markers,0,10);mgr.refresh();_map.setUIToDefault();}}
function createMarker(latlng,title,html){var marker=new GMarker(latlng,{title:title});GEvent.addListener(marker,"click",function(){_map.panTo(marker.getLatLng());_map.openInfoWindowHtml(marker.getLatLng(),html);});return marker;}
function loadTimeline(resultSet){var eventSource=new Timeline.DefaultEventSource();for(var x=0;x<resultSet.results.length;x++){var result=resultSet.results[x];var timeline=result.timeline;console.log(timeline.start);if(result.title===undefined){result.title="No title";}
console.log(result.title);var evt=Timeline.DefaultEventSource.Event({'id':result.id,'end':timeline.start,'latestStart':timeline.start,'earliestEnd':timeline.start,'instant':true,'text':result.title,'description':"No Description"});eventSource.add(evt);}
var bandInfos=[Timeline.createBandInfo({eventSource:eventSource,date:"Jun 28 2006 00:00:00 GMT",width:"70%",intervalUnit:Timeline.DateTime.MONTH,intervalPixels:100}),Timeline.createBandInfo({eventSource:eventSource,date:"Jun 28 2006 00:00:00 GMT",width:"30%",intervalUnit:Timeline.DateTime.YEAR,intervalPixels:200})];bandInfos[1].syncWith=0;bandInfos[1].highlight=true;tl=Timeline.create(document.getElementById("search_results_timeline"),bandInfos);}
function radioDates(parent){$(parent+" input[name='date']").change(function(){$(parent+" input[name='date']").parent().nextAll(".form-subset:visible").slideUp();if($(parent+" input[name='date']:checked").val()=="exact"){$(parent+" .exact .form-subset").slideDown();}else if($(parent+" input[name='date']:checked").val()=="between"){$(parent+" .between .form-subset").slideDown();}});}
function addSearchDatepicker(){$(".datepicker").datepicker({changeMonth:true,changeYear:true,showOn:'button',buttonImage:"/images/calendar_icon.gif",buttonImageOnly:true,yearRange:'1700:2009',onClose:function(dateText,inst){var dateArray=dateText.split("/");$(this).prevAll('.year').val(dateArray[2]);$(this).prevAll('.month').val(dateArray[0]);$(this).prev('.day').val(dateArray[1]);}});}
function setCboValue(id,val){}
function loadList(id,returns,el){$.ajax({type:"GET",url:_search_api_url,data:"search=LIST:"+id+";&returns=XML:"+returns+";",success:function(data,textStatus){var html="<option value='0'>All</option>";switch(returns){case"countries":$("country",data).each(function(){var id=$(this).find('countryid').text();var name=$(this).find('countryname').text();html+="<option value='co"+id+"'>"+name+"</option>";});break;case"states":$("state",data).each(function(){var id=$(this).find('stateid').text();var name=$(this).find('statename').text();html+="<option value='st"+id+"'>"+name+"</option>";});break;case"cities":$("city",data).each(function(){var id=$(this).find('cityid').text();var name=$(this).find('cityname').text();html+="<option value='ci"+id+"'>"+name+"</option>";});break;case"titles":$("publication",data).each(function(){var id=$(this).find('pubid').text();var name=$(this).find('title').text();html+="<option value='"+id+"'>"+name+"</option>";});break;default:break;}
$(el).html(html);},complete:function()
{switch(returns)
{case"states":$("select[id$='cboCity'], select[id$='cboTitle']").children().remove().end().append('<option selected value="0">All</option>');break;case"cities":$("select[id$='cboTitle']").children().remove().end().append('<option selected value="0">All</option>');break;}},error:function(data,textStatus,errorThrown){if(console){console.log(data+","+textStatus+","+errorThrown);}}});}
function loadMaps2(resultSet){if(GBrowserIsCompatible()){_map=new GMap2(document.getElementById("map"),{size:new GSize(740,290)});_map.setCenter(new GLatLng(41.959062,-95.677068),4);_map.enableDoubleClickZoom();var mgr=new MarkerManager(_map);var markers=[];for(var x=0;x<resultSet.results.length;x++){var result=resultSet.results[x];var location=result.location;if(!isNaN(location.lat)&&!isNaN(location.lon)){var title=result.publication.title;var html="<div class='image-thumb'><a href='"+result.pdflink+"'><img src='"+result.thumbsource+"' style='width:75px;' /></a></div>";var latlng=new GLatLng(location.lat,location.lon);var marker=createMarker(latlng,title,html);markers.push(marker);}}
mgr.addMarkers(markers,0,10);mgr.refresh();_map.setUIToDefault();}}
function refineClearAll(){$("#refine input[type='text']").val("");$("input[id$='search_refine_front_only']").attr('checked',false);$("#dExactDate select, #dDateRange select, #dYearRange select").find('option:first').attr('selected','selected').parent('select');$("select[id$='cboCountry']").find('option:first').attr('selected','selected');$("select[id$='cboState'], select[id$='cboCity'], select[id$='cboTitle']").children().remove().end().append('<option selected value="0">All</option>');}
function ValidateQuickSearch()
{var quickSearchText=$("input[id$='txtQuickSearch']").val();if(quickSearchText==''||quickSearchText=='Quick Search')
{alert('Invalid Quick Search');return false;}
else
{return true;}}
function ValidateKeywordSearch()
{var keywordSearchText=$("input[id$='txtKeyword']").val();if(keywordSearchText==''||keywordSearchText=='Keyword Search')
{alert('Invalid Keyword text');return false;}
else
{return true;}}
function ValidateFirstLastNameSearch()
{var nameText=$("input[id$='txtFirstName']").val();if(nameText==''||nameText=='First Name')
{alert('Invalid First Name');return false;}
else
{nameText=$("input[id$='txtLastName']").val();if(nameText==''||nameText=='Last Name')
{alert('Invalid Last Name');return false;}
else
{return true;}}}
function IsValidDateRefinement()
{var beginSearchYear=$("select[id$='cboBetweenBeginYear']").val();var endSearchYear=$("select[id$='cboBetweenEndYear']").val();if(beginSearchYear>0&&endSearchYear>0)
{if(beginSearchYear>=endSearchYear)
{alert('End Year must be later than Begin Year');return false;}}
else
{if(beginSearchYear>0)
{alert('Please select End Year');return false;}
else if(endSearchYear>0)
{alert('Please select Begin Year');return false;}
else
{beginSearchYear=$("select[id$='cboBeginYear']").val();endSearchYear=$("select[id$='cboEndYear']").val();if(beginSearchYear>0&&endSearchYear>0)
{if(beginSearchYear>endSearchYear)
{alert('Begin Year cannot be later than End Year');return false;}
else
{var beginSearchMonth=$("select[id$='cboBeginMonth']").val();var endSearchMonth=$("select[id$='cboEndMonth']").val();if(beginSearchMonth>0&&endSearchMonth>0)
{if(beginSearchMonth>endSearchMonth&&beginSearchYear==endSearchYear)
{alert('Begin Month cannot be later than End Month');return false;}
else
{var beginSearchDay=$("select[id$='cboBeginDay']").val();var endSearchDay=$("select[id$='cboEndDay']").val();if(beginSearchDay>0&&endSearchDay>0)
{if(beginSearchDay>=endSearchDay&&beginSearchMonth==endSearchMonth&&beginSearchYear==endSearchYear)
{alert('Begin Day must be earlier than End Day');return false;}}
else if(beginSearchDay>0)
{alert('Please select End Day');return false;}
else if(endSearchDay>0)
{alert('Please select Begin Day');return false;}
else
{alert('Please select Begin and End Days');return false;}}}
else if(beginSearchMonth>0)
{alert('Please select End Month');return false;}
else if(endSearchMonth>0)
{alert('Please select Begin Month');return false;}
else
{alert('Please select Begin and End Months');return false;}}}
else if(beginSearchYear>0)
{alert('Please select End Year');return false;}
else if(endSearchYear>0)
{alert('Please select Begin Year');return false;}}}
return true;}
