function init() {
	sfHover();
	applyPagination();
}

function sfHover() {
	if (navigator.appName != "Microsoft Internet Explorer") return;
	var sfEls = document.getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {this.className+=' sfhover';}
		sfEls[i].onmouseout=function() {this.className=this.className.replace(' sfhover','');}
	}
}

var els_displayed = {};
function displayElement(id) {
	var e = document.getElementById(id);
	e.style.display = /block/.test(e.style.display) ? 'none' : 'block';
	els_displayed[e]=e;
}

// inspect the document for tables with paginated data
function applyPagination() {
	var els = document.getElementsByTagName('div');
	for (var i=0;i<els.length;i++){
		var e = els.item(i);
		if (/paginate/.test(e.className)) gotoPage('first',undefined,e);
	}
}

// go to page p for the container that contains a table of rows of data
function gotoPage(p,link,container) {
	if (!container) container = link.parentNode.parentNode;
	var items_per_page = container.getAttribute('rel') || 10;
	var table = container.getElementsByTagName('table').item(0);
	var rows = table.getElementsByTagName('tr');
	var rows_filtered = []; for (var i=1;i<rows.length;i++) if (rows.item(i).className!='filtered_out') rows_filtered.push(rows.item(i));
	var pages = Math.ceil(rows_filtered.length / items_per_page);
	var page_id = container.getElementsByTagName('div').item(0).getElementsByTagName('span').item(0);
	var page = Math.round(/Page ([0-9]+)/.exec(page_id.innerHTML)[1]);
	if (p=='first') {
		page=1;
	} else if (p=='last') {
		page=pages;		
	} else {
		page+=p;
		if (page>pages) page=pages;
		if (page<1) page=1;
	}
	page_id.innerHTML = 'Page ' + (pages>0 ? page : 0) + ' of ' + pages;

	// display the pages
	var odd=false;
	for (var i=0;i<rows_filtered.length;i++) {
		odd=!odd;
		rows_filtered[i].style.display = (i-0)>=(page-1)*items_per_page && (i-0)<page*items_per_page ? '' : 'none';
		if (rows_filtered[i].style.display=='') {
			rows_filtered[i].className=rows_filtered[i].className.replace(' odd','');
			rows_filtered[i].className+=odd ? ' odd' : '';
		}
	}
}

function filterResults() {
	var ret=true;	// default - submit the form 

	// hide filter select/checkboxes
	var el_pf = document.getElementById('protein_family');
	var el_da = document.getElementById('disease_area');
	el_pf.style.display=el_da.style.display='none';

	// filter the results
	var el_results = document.getElementById('results');
	if (el_results!=undefined) {
		var el_form = document.getElementById('subHeader').getElementsByTagName('form').item(0);
		var families = getFormValue(el_form,'protein_family[]');
		var diseases = getFormValue(el_form,'disease_area[]');
		var rows = el_results.getElementsByTagName('tr');

		// filter the rows
		for (var i=1;i<rows.length;i++) {
			var row = rows.item(i);
			var family = row.getElementsByTagName('td').item(3).innerHTML;
			// check if one of the diseases for this structure are in the desired list of diseases to filter on
				var contains_disease = false; 
				var disease = row.getElementsByTagName('td').item(4).innerHTML.split(/\s*,\s*/);
				for (var i2 in disease) 
					contains_disease=contains_disease || inArray(disease[i2],diseases);
			row.className = (families.length==0 || inArray(family,families)) && (diseases.length==0 || contains_disease) ? '' : 'filtered_out';
		}

		// display first page
		gotoPage('first',undefined,el_results.parentNode);
		
		// do not submit the form - js filtered it
		ret=false;
	}

	// clear all
	clearAll('disease_area[]');
	clearAll('protein_family[]');

	// return 
	return ret;
}

function clearAll(l) {
	/*
	var el_form = document.getElementById('subHeader').getElementsByTagName('form').item(0);
	alert (el_form); 
	setFormValue(el_form,l,[]); */
	
	var element = document.getElementsByName(l);
	var element_length = document.getElementsByName(l).length;
	for (i=0; i< element_length; i++)
	{
		element[i].checked = false;
	}

}

function resetAll()
{
clearAll('disease_area[]');
clearAll('protein_family[]');
clearAll('site_checkbox[]');
document.getElementById("isee_checkbox").checked = false;
document.getElementById("searchterm").value = "";

}


function unapplyDefaultText(i,t) {
	i.value = i.value.replace(t,'');
	i.className = 'text defaultOut';
}

function applyDefaultText(i,t) {
	if (i.value=='') {
		i.value = t;
		i.className = 'text defaultIn';
	}
}


function point_it(event){
	pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft;
	pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop;
	document.getElementById("cross").style.left = (pos_x-1) ;
	document.getElementById("cross").style.top = (pos_y-15) ;
//	document.getElementById("cross").style.visibility = "visible" ;

	if(pos_x>177 && pos_x<608 && pos_y>21 && pos_y<41){
		window.location.href="index.php?disease_area[]=cancer";
	} else if(pos_x>45 && pos_x<317 && pos_y>66 && pos_y<86){
		window.location.href="index.php?disease_area[]=chromatin and epigenetics";
	} else if(pos_x>156 && pos_x<635 && pos_y>291 && pos_y<311){
		window.location.href="index.php?disease_area[]=signalling";
	} else if(pos_x>12 && pos_x<282 && pos_y>111 && pos_y<131){
		window.location.href="index.php?disease_area[]=drug metabolism and toxicology";
	} else if(pos_x>146 && pos_x<482 && pos_y>155 && pos_y<175){
		window.location.href="index.php?disease_area[]=metabolism";
	} else if(pos_x>135 && pos_x<435 && pos_y>200 && pos_y<220){
		window.location.href="index.php?disease_area[]=neurobiology";
	} else if(pos_x>140 && pos_x<360 && pos_y>246 && pos_y<266){
		window.location.href="index.php?disease_area[]=parasitic disease";
	}

//	document.pointform.form_x.value = pos_x;
//	document.pointform.form_y.value = pos_y;
}

function toactiveICM(strWindowName) {
	var strUrl = "http://www.sgc.ox.ac.uk/iSee/activeISeeRequirementsChecking.html";
	var strWindowFeatures ="target=_top, resizable=1,scrollbars=1, width=1240, height=768";
	window.open(strUrl, strWindowName, strWindowFeatures);
	}
