// from http://www.tek-tips.com/faqs.cfm?fid=4862
function addOnLoadHandler(myHandler) {
  if ( typeof window.addEventListener != "undefined" )
      window.addEventListener( "load", myHandler, false );
  else if ( typeof window.attachEvent != "undefined" )
      window.attachEvent( "onload", myHandler );
  else {
      if ( window.onload != null ) {
          var oldOnload = window.onload;
          window.onload = function ( e ) {
              oldOnload( e );
              myHandler();
          };
      }
      else
          window.onload = myHandler;
  }
}

function showHide(id){
  if (document.getElementById){
    var obj = document.getElementById(id);
    if (obj.style.display == "none"){
      obj.style.display = "";
    } else {
      obj.style.display = "none";
    }
  }
}

function showHideBC(imageID){
	if(imageID == 'bcExpand'){
		document.getElementById('bcCollapse').style.display = "";
		document.getElementById('bcExpand').style.display = "none";
		document.getElementById('bcAdditional').style.display = "";
	}else{
		document.getElementById('bcCollapse').style.display = "none";
		document.getElementById('bcExpand').style.display = "";
		document.getElementById('bcAdditional').style.display = "none";
	}
}

function showDiv(pass) {
  var divs = document.getElementsByTagName('div');
  //alert("divs = " + divs.length);
  for (i=0; i<divs.length; i++) {
    //if (divs[i].id.match(pass)) {
    if (divs[i].id.indexOf(pass, 0) != -1) {
      if (document.getElementById) {
	if (divs[i].style.display == "none"){
	  divs[i].style.display = "";
	} else {
	  divs[i].style.display = "none";
	}
      }
    }
  }
}

function showSpan(pass) {
  var spans = document.getElementsByTagName('span');
  //alert("spans = " + spans.length);
  for (i=0; i<spans.length; i++) {
    if (spans[i].id.indexOf(pass, 0) != -1) {
      if (document.getElementById) {
	if (spans[i].style.display == "none"){
	  spans[i].style.display = "";
	} else {
	  spans[i].style.display = "none";
	}
      }
    }
  }
}

function showSearchOptions(optionregion){
  expandarrow = document.getElementById('searchOptionsShow');
  collapsearrow = document.getElementById('searchOptionsHide');
  hiddenoptiondiv = document.getElementById(optionregion);
  if(hiddenoptiondiv.style.display == "none"){
    hiddenoptiondiv.style.display = "";
    expandarrow.style.display = "none";
    collapsearrow.style.display = "";
  } else {
    hiddenoptiondiv.style.display = "none"
      expandarrow.style.display = "";
    collapsearrow.style.display = "none";
  }
}

function showOptions(optionregion, show, hide){
  expandarrow = document.getElementById(show);
  collapsearrow = document.getElementById(hide);
  hiddenoptiondiv = document.getElementById(optionregion);
  if(hiddenoptiondiv.style.display == "none"){
    hiddenoptiondiv.style.display = "";
    expandarrow.style.display = "none";
    collapsearrow.style.display = "";
  } else {
    hiddenoptiondiv.style.display = "none"
      expandarrow.style.display = "";
    collapsearrow.style.display = "none";
  }
}

function openUrlTextWindow(url) {
  if (typeof(popupWin) != "object"){
    popupWin = window.open(url, "urlWindow", "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
  } else {
    if (!popupWin.closed){
      popupWin.location.href = url;
    } else {
      popupWin = window.open(url, "urlWindow", "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
    }
  }
  popupWin.focus();
}


function openHelpTextWindow(url) {
  var attributes = "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes,width=350,height=250";
  var win = window.open(url, "dshelpwindow", attributes);
  win.onClose = window.focus();
  win.focus();
}

// Idea from http://domscripting.com/presentations/xtech2006/ by Jeremy Keith // Fix to IE bug with getAttribute described at http://www.glennjones.net/Post/809/getAttributehrefbug.htm
// Opera 9 and greater appear not to have this problem.
// IE reportedly offers a workaround 2-arg version of getAttribute, where the second arg of 2 means to // do what the DOM Level 2 spec says to do, and what Opera and Firefox do already.
function doLabelHelpLinks() {
  if (document.getElementsByTagName) {
    var links = document.getElementsByTagName("a");
    for (var i=0; i < links.length; i++) {
      if (links[i].className.match("labelHelpLink")) {
        links[i].onclick = function() {
          var url = null;
          try {
            url = this.getAttribute("href", 2);
          } catch (e) {
            url = this.getAttribute("href");
          } 
          openHelpTextWindow(url);
          return false;
        };
      }
    }
  }
} 

//Global variable since addOnLoadHandler also defined and used in js_functions.js
//Check this flag to see if addOnLoadHandler already loaded
if(typeof(addonloadhandler_global_flag) == "undefined") { 
	addonloadhandler_global_flag = 1;
	addOnLoadHandler(doLabelHelpLinks);
}

function clearSelect(item) {
	var n;
	var i;
	n = item.length;
	for (i=0; i < n ; i++) {
		item.options[i].selected = false;
	}
}

function setSelect(item, optionValue) {
	var n;
	var i;
	n = item.length;
	for (i=0; i < n ; i++) {
		if (item.options[i].value == optionValue) item.options[i].selected = true;
	}
}


function SearchFormSetSelect(item) {
	if (item.form.object_type_enable[1].checked == false) {
		item.form.object_type_enable[1].checked = true;
		item.form.object_type_enable[1].click();	
		item.checked = true;
	}
}

function SearchFormSelectAll(item,sel) {
	var n;
	var i;
	n = item.form.object_type.length;
	for (i=0; i < n ; i++) {
		if (item.form.object_type[i].type=='checkbox') {                            
			if (sel == true) {
				item.form.object_type[i].checked = true;
			}

			if (sel == false) {
				item.form.object_type[i].checked = false;
			}
		}
	}
}

function SearchFormSetSelectMime(item) {
	if (item.form.document_type_enable[1].checked == false) {
		item.form.document_type_enable[1].checked = true;
		item.form.document_type_enable[1].click();	
		item.checked = true;
	}
}

function SearchFormSelectAllMime(item,sel) {
	var n;
	var i;
	n = item.form.document_type.length;
	for (i=0; i < n ; i++) {
		if (item.form.document_type[i].type=='checkbox') {                            
			if (sel == true) {
				item.form.document_type[i].checked = true;
			}

			if (sel == false) {
				item.form.document_type[i].checked = false;
			}
		}
	}
}

function SearchFormSetScope(item) {
	//alert("item = " + item.value);
	if (item.value == 'Collection' || item.value == 'Collection+') {
	  if (document.getElementById){
	    var obj = document.getElementById('col_scope');
	    obj.style.display = "";
	    obj = document.getElementById('fed_scope');
	    obj.style.display = "none";
	    obj = document.getElementById('site_scope');
	    obj.style.display = "";
	  }
	}
	else if (item.value == 'Site') {
	  if (document.getElementById){
	    var obj = document.getElementById('col_scope');
	    obj.style.display = "none";
	    obj = document.getElementById('fed_scope');
	    obj.style.display = "none";
	    obj = document.getElementById('site_scope');
	    obj.style.display = "";
	  }
	}
	else if (item.value == 'AllFederated' || item.value == 'SelectFederated') {
	  if (document.getElementById){
	    var obj = document.getElementById('fed_scope');
	    obj.style.display = "";
	    obj = document.getElementById('col_scope');
	    obj.style.display = "none";
	    obj = document.getElementById('site_scope');
	    obj.style.display = "none";
	  }
	  var sel = false;
	  if (item.value == 'AllFederated') {
		sel = true;
	  }
	  var n;
	  var i;
	  n = item.form.fed_name.length;
	  for (i=0; i < n ; i++) {
		if (item.form.fed_name[i].type=='checkbox') {                            
			if (sel == true) {
				item.form.fed_name[i].checked = true;
			}

			if (sel == false) {
				item.form.fed_name[i].checked = false;
			}
		}
	  }
	}
	else {
	  if (document.getElementById){
	    var obj = document.getElementById('col_scope');
	      obj.style.display = "none";
	    obj = document.getElementById('fed_scope');
	    obj.style.display = "none";
	  }
	}
}

function SearchFormSetFedNameSelect(item) {
	if (item.form.scope.value != 'SelectFederated') {
		item.form.scope.value = 'SelectFederated';
		item.form.scope.change();	
	}
}

/* The showDescription function is for the search results page to hide and show the query details */
function showDescription(optionregion){
        expandarrow = document.getElementById('descriptionShow');
        collapsearrow = document.getElementById('descriptionHide');
        hiddenoptiondiv = document.getElementById(optionregion);
        if(hiddenoptiondiv.style.display == "none"){
        	hiddenoptiondiv.style.display = "";
        	expandarrow.style.display = "none";
        	collapsearrow.style.display = "";
        } else {
        	hiddenoptiondiv.style.display = "none"
        	expandarrow.style.display = "";
        	collapsearrow.style.display = "none";
        }
}


