/*
	SLOC = 186 JavaScript; SLOC date = 7/29/09	
*/
function getCsv(form){
	alert("Files may take a moment to generate. Please click ok to begin file generation.");
	var _form = document.forms[form];	
	_form.action='/csvUtil.php';
	_form.submit();		
}

function getTooLargeCsv(form){
	alert("Files may take a moment to generate. Please click ok to begin file generation. Please note that this CSV may contain more then 255 columns of data and may not open properly in Excel 2003 or earlier.  Please use an alternate program to properly display the data.");
	var _form = document.forms[form];	
	_form.action='/csvUtil.php';
	_form.submit();		
}

function sortOrderBy(form,url){
	var _form = document.forms[form];	
	_form.action='/'+url;
	_form.submit();		
}

function getDetailsCsv(form){
	alert("Files may take a moment to generate. Please click ok to begin file generation.");
	var _form = document.forms[form];	
	_form.action='/csvUtilFull.php';
	_form.submit();		
}

function getTooLargeDetailsCsv(form){
	alert("Files may take a moment to generate. Please click ok to begin file generation. Please note that this CSV may contain more then 255 columns of data and may not open properly in Excel 2003 or earlier.  Please use an alternate program to properly display the data.");
	var _form = document.forms[form];	
	_form.action='/csvUtilFull.php';
	_form.submit();		
}

function changeToPage(x){
	document.forms['listForm'].elements['page'].value=x;
	document.forms['listForm'].action='advancedQueryList.php';
	document.forms['listForm'].submit();
}

	
function tabPager(requestUrl, tabId){
	dijit.byId(tabId).href = requestUrl;
	dijit.byId(tabId).refresh();
}	

function newListRequest(){
	var myForm = document.forms[1];	
	var selection = myForm.elements['listDropDown'].value;
	setActionSubmit(selection);
}

function pageclear(thisfield) {
		thisfield.className = null;
		thisfield.value = "";
}

function pagerecall(thisfield) {
	if (thisfield.value == "") {
		thisfield.className = "pagingTextBox";
	}
}

function changePage(evt,thisfield, total) {	
	var keyCode = null;
	if( evt.which ) {
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		keyCode = evt.keyCode;
	}
	if( 13 == keyCode ) {
		if(thisfield.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(thisfield.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			var temp = window.location.href;
			var url ='';
			var value = temp.search("page");
			if(value != -1) {
				var range = temp.substring(0, value-1);
				url = range + "&page=" + thisfield.value;
			}else {
				var mark = temp.indexOf("?");
				if(mark == -1) {
					url = temp + "?&page=" + thisfield.value;
				}else {
					url = temp + "&page=" + thisfield.value;
				}
				
			}
			window.location.replace(url);
		}
		return false;
	}
	return true;
}

function changePageButton(total, isTop) {
		if(isTop) {
			var text = 	document.getElementById('pageNumTop');
		}else {
			var text = 	document.getElementById('pageNumBottom');
		}	
		if(text.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(text.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			var temp = window.location.href;
			var url ='';
			var value = temp.search("page");
			if(value != -1) {
				var range = temp.substring(0, value-1);
				url = range + "&page=" + text.value;
			}else {
				var mark = temp.indexOf("?");
				if(mark == -1) {
					url = temp + "?&page=" + text.value;
				}else {
					url = temp + "&page=" + text.value;
				}
				
			}
			window.location.replace(url);
		}
}

function changePageButtonTab(total, tabUrl, tabId, isTop) {
		if(isTop) {
			var text = 	document.getElementById(tabId + "_pageTop");
		} else {
			var text = 	document.getElementById(tabId + "_pageBottom");
		}		
		if(text.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(text.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			var temp = tabUrl;
			var url ='';
			var value = temp.search("page");
			if(value != -1) {
				var range = temp.substring(0, value-1);
				url = range + "&page=" + text.value;
			}else {
				var mark = temp.indexOf("?");
				if(mark == -1) {
					url = temp + "?&page=" + text.value;
				}else {
					url = temp + "&page=" + text.value;
				}
				
			}
			tabPager(url, tabId);
		}
}

function changePageTab(evt,thisfield, total, tabUrl, tabId) {	
	var keyCode = null;
	if( evt.which ) {
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		keyCode = evt.keyCode;
	}
	if( 13 == keyCode ) {
		if(thisfield.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(thisfield.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			var temp = tabUrl;
			var url ='';
			var value = temp.search("page");
			if(value != -1) {
				var range = temp.substring(0, value-1);
				url = range + "&page=" + thisfield.value;
			}else {
				var mark = temp.indexOf("?");
				if(mark == -1) {
					url = temp + "?&page=" + thisfield.value;
				}else {
					url = temp + "&page=" + thisfield.value;
				}
				
			}
			tabPager(url, tabId);
		}
		return false;
	}
	return true;
}


function changePagePost(evt,thisfield, total) {	
	var keyCode = null;
	if( evt.which ) {
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		keyCode = evt.keyCode;
	}
	if( 13 == keyCode ) {
		if(thisfield.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(thisfield.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			changeToPage(thisfield.value);
		}
		return false;
	}
	return true;
}

function changePageButtonPost(total, isTop) {
		if(isTop) {
			var text = 	document.getElementById('pageNumTop');
		} else {
			var text = 	document.getElementById('pageNumBottom');
		}		
		if(text.value > total) {
			alert("Value entered exceeds total pages. Please enter a value less than or equal to " + total);
		}else if(!isUnsignedInteger(text.value)) {
			alert("Value entered is not an integer. Please re-enter the value.");
		}else {
			changeToPage(text.value);
		}
}

function isUnsignedInteger(s) {
	return (s.toString().search(/^[0-9]+$/) == 0);
}


function openURL(URL) {
	window.location.href = URL;
	return true;
}

function changeOpacity(obj, opacity, decrease) 
{
    obj.style.opacity = (opacity / 100);
    obj.style.filter = "alpha(opacity:" + opacity + ")";
    
    if (decrease)
        opacity--;
    else
        opacity++;
        
    if (opacity != 100 && opacity != 0)
        setTimeout(function(){changeOpacity(obj, opacity, decrease);}, 5);
}
function openChebiFinder(findertype,selectiontype,formname,namefield,
		displayfield, accessionfield,idfield,sequencefield,speciesfield,
		taxidfield,pathfield,startposfield,endposfield)
{
	var childWindowTableFinder = window.open("/moleculeFinder.php?findertype=" + findertype
		+ "&selectiontype=" + selectiontype
		+ "&formname=" + formname
		+ "&namefield=" + namefield
		+ "&displayfield=" + displayfield
		+ "&accessionfield=" + accessionfield
		+ "&idfield=" + idfield
		+ "&sequencefield=" + sequencefield 
		+ "&speciesfield=" + speciesfield
		+ "&taxidfield=" + taxidfield
		+ "&pathfield=" + pathfield
		+ "&startposfield=" + startposfield
		+ "&endposfield=" + endposfield,
		"Finder", "scrollbars=yes,width=900,height=700,toolbar=no,status=no,menubar=no,resizable=yes");
	if (childWindowTableFinder.opener == null) childWindowTableFinder.opener = self;
	childWindowTableFinder.focus();
}