function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function do_search(form) {
  if(form.searchMode.value == 'advanced') {
    if(form.searchIn.value != 'all') {
      q = document.getElementById('searchQueryString');
      q.value = form.searchIn.value + ":" + q.value;
    }
    dateFrom = formatDate(form['dp-normal-1'].value);
    if(dateFrom != null) {
      dateTo = formatDate(form['dp-normal-2'].value);
      if(dateTo != null) {
        var dateFacet = document.createElement("input");
        dateFacet.setAttribute("type", "hidden");
        dateFacet.name = 'fq';
        dateFacet.value = 'date:[' + dateFrom + " TO " + dateTo + "]";
        form.appendChild(dateFacet);
      }
    }
  }
  return false;
}

function formatDate(d) {
  if((d == null) || (d.length < 10)) return null;
  day = d.substring(0,d.indexOf('/'));
  month = d.substring(d.indexOf('/')+1,d.lastIndexOf('/'));
  year = d.substring(d.lastIndexOf('/')+1);
  return year + '-' + month + '-' + day + 'Z';
}

function add_facet(field,value) {
  var facet = document.createElement("input");
  facet.setAttribute("type", "hidden");
  facet.name = field;
  facet.value = value;
  form = document.getElementById('search-form');
  form.appendChild(facet);
  goto_result(0);
}

function remove_facet(id) {
  facet = document.getElementById(id);
  facet.value = '';
  do_search(facet.form);
  facet.form.submit();
}

function goto_result(result) {
  start = document.getElementById('start');
  start.value = result;
  do_search(start.form);
  start.form.submit();
}


/* ======================= DATEPICKER SETUP =========================== */

/* The following function creates a new input field and then calls datePickerController.create();
   to dynamically create a new date-picker widgit for it */
function newline() {
var total = document.getElementById("newline-wrapper").getElementsByTagName("div").length;
// No more than ten new inputs
if(!total) {
document.getElementById("newline").style.display = "none";
return false;
}
total++;
// Clone the first div in the series
var div = document.getElementById("newline-wrapper").getElementsByTagName("div")[0].cloneNode(true);
// Reset the cloned labels "for" attributes
var labels = div.getElementsByTagName('label');
for(var i = 0, lbl; lbl = labels[i]; i++) {
// Set the new labels "for" attribute
if(lbl["htmlFor"]) {
lbl["htmlFor"] = lbl["htmlFor"].replace(/[0-9]+/g, total);
}
else if(lbl.getAttribute("for")) {
lbl.setAttribute("for", lbl.getAttribute("for").replace(/[0-9]+/, total));
}
}
// Reset the inputs name and id attributes
var inputs = div.getElementsByTagName('input');
for(var i = 0, inp; inp = inputs[i]; i++) {
// Set the new inputs id and name attribute
inp.id = inp.name = inp.id.replace(/[0-9]+/g, total);
if(inp.type == "text") inp.value = "";
}
// Reset the button name and id attributes
var inputs = div.getElementsByTagName('button');
for(var i = 0, inp; inp = inputs[i]; i++) {
inp.id = inp.name = inp.id.replace(/[0-9]+/g, total);
}
// Create a delete button
var deleteBut = document.createElement('button');
deleteBut.className = "delete-button";
deleteBut.appendChild(document.createTextNode('X'));
deleteBut.onclick = destroyLine;
// Add the delete button to the wrapper div
div.appendChild(deleteBut);
// DOM inject the wrapper div
document.getElementById("newline-wrapper").appendChild(div);
// Call the create method to create and associate a new date-picker widgit with the new input
datePickerController.create();
// Stop the event
return false;
}
function resetLineNumbers() {
var divs = document.getElementById("newline-wrapper").getElementsByTagName("div");
for(var i = 0, div; div = divs[i]; i++) {
var inps = div.getElementsByTagName('input');
for(var j = 0, inp; inp = inps[j]; j++) {
inp.id = inp.name = inp.id.replace(/[0-9]+/g, i+1);
}
var buts = div.getElementsByTagName('button');
for(var j = 0, but; but = buts[j]; j++) {
but.id = but.name = but.id.replace(/[0-9]+/g, i+1);
}
}
}
function destroyLine() {
this.parentNode.parentNode.removeChild(this.parentNode);
resetLineNumbers();
datePickerController.create();
}


/* ======================= TOGGLE ADV. SEARCH  =========================== */
function toggleAdvancedSearch(mode){
  document.getElementById('searchMode').value = mode;
  form = document.getElementById('search-form');
  form.submit();
}

