function selChange(control, valuesArr, controlToPopulateArr)
{
  var myEle ;
  var x ;  
  
  for (var i=0; i < controlToPopulateArr.length; i++)
  {
	  for (var q=document.getElementById(controlToPopulateArr[i]).options.length;q>=0;q--) 
	  	document.getElementById(controlToPopulateArr[i]).options[q]=null;

	  selVal = document.getElementById(control).value;
	  for ( x=0; x < valuesArr[selVal][i].length ;  x++)
	  {
	          myEle = document.createElement("option") ;
	          myEle.value = valuesArr[selVal][i][x] ;
	          myEle.text = valuesArr[selVal][i][x] ;
	          document.getElementById(controlToPopulateArr[i]).appendChild(myEle) ;
	  }
  }    
    
}

function resetSelect(selName, selValue, selectName, divName) {

	var targets = document.getElementById(selName);
	var valueFound = new Boolean(false);
	for(i = 0; i < targets.options.length; i++) {
		if(targets.options[i].selected == false)
			continue;
		if(targets.options[i].value == selValue) {
			valueFound = new Boolean(true);
			document.getElementById(divName).style.display = 'inline';
			break;
		}
	}

	if(!valueFound.valueOf()) {
		document.getElementById(selectName).selectedIndex = -1;
		document.getElementById(divName).style.display = 'none';
	}
}

function openStates(selName) {

	var selected = document.getElementById(selName);
	var key = selected.options[selected.selectedIndex].value;
	var textValue = selected.options[selected.selectedIndex].text;

	var statesSelector = key += "_states";
	if(key.indexOf("us") > -1 && textValue.indexOf("All") == -1) {
		document.getElementById(statesSelector).style.display = 'inline';
	}
	if(key.indexOf("ca") > -1 && textValue.indexOf("All") == -1) {
		document.getElementById(statesSelector).style.display = 'inline';
	}
	if(key.indexOf("au") > -1 && textValue.indexOf("All") == -1) {
		document.getElementById(statesSelector).style.display = 'inline';
	}	
}

function expand(thistag) {
	expand(thistag, "true");
}

function expand(thistag, change) {
   	styleObj=document.getElementById(thistag).style;
	if(change == "true") {
   		if (styleObj.display=='none') {
   			styleObj.display='';
   		}else {
   			styleObj.display='none';
   		}
   	} else {
   			styleObj.display='';   	
   	}
}
	
function expandCollapse(thistag1, thistag2) {
   	styleObj1=document.getElementById(thistag1).style;
   	if (styleObj1.display=='none') {
   		styleObj1.display='';
   	}else {
   		styleObj1.display='none';
   	}
   	styleObj2=document.getElementById(thistag2).style;
   	if (styleObj2.display=='none') {
   		styleObj2.display='';
   	}else {
   		styleObj2.display='none';
   	}
}

function checkAll(checkboxTag, invisible, visible) {
	var checkboxes = document.getElementsByName(checkboxTag);

	for(var i=0; i < checkboxes.length; i++) {
		if(visible == "unselectall") {
    		checkboxes[i].checked = false;
    	}else if(visible == "selectall") {
    		checkboxes[i].checked = true;    	
    	}	
	}
	expandCollapse(invisible, visible);
}

function gotoPage(newPage, pageAttributeTag, formTag) {
	var page = document.getElementById(pageAttributeTag);
	page.value = newPage;
	document.getElementById(formTag).submit()
}

function search() {
	document.getElementById("searchForm").submit();
}

function addSearchArgument(dropDownTag, valueSpan, keyTagHidden, valueTagHidden, addSearchTag, imagesPath) {
	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	
	var selected = document.getElementById(dropDownTag);
	var key = selected.options[selected.selectedIndex].value;
	var textValue = selected.options[selected.selectedIndex].text;
	if(key == "") {
		key = textValue;
	}
	if(valueHiddenElement.value != "All" && valueHiddenElement.value != "") {
		if(!valueHiddenElement.value.match(textValue) && !valueHiddenElement.value.match(key)) {
			keyHiddenElement.value += "," + key;		
			valueHiddenElement.value += "," +textValue;
		} 
	} else {
		if(!valueHiddenElement.value.match(textValue) && !valueHiddenElement.value.match(key)) {
			keyHiddenElement.value = key;
			valueHiddenElement.value = textValue;
		}else {
			keyHiddenElement.value = key;
			valueHiddenElement.value = textValue;		
		}
	}

	if(!document.getElementById(key)) {
		valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, textValue, readDivElement, addSearchTag, dropDownTag, imagesPath);
	}
}

function clearSearchArgument(valueSpan, keyTagHidden, valueTagHidden, key, textValue, addSearchTag, dropDownTag) {
	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);	
	var d_nested = document.getElementById(key);
	var throwaway_node = readDivElement.removeChild(d_nested);
	
	//var p=window.open();
	//var newDoc=p.document.open("text/html","replace");
	//newDoc.write("READDIV ID " + readDivElement.id + "<br/>");
	//newDoc.write("KEYHIDDEN " + keyHiddenElement.value + "<br/>");
	//newDoc.write("VALUEHIDDEN " + valueHiddenElement.value + "<br/>");
		
	if(keyHiddenElement.value.match(key+",")) {
		keyHiddenElement.value = keyHiddenElement.value.replace(key+",", "");
		valueHiddenElement.value = valueHiddenElement.value.replace(textValue+",","");
		//newDoc.write("KEYHIDDEN1 " + keyHiddenElement.value + "<br/>");
	}else if(keyHiddenElement.value.match(key)) {
		if(keyHiddenElement.value.match(",")) {
			keyHiddenElement.value = keyHiddenElement.value.replace(","+key, "");
			valueHiddenElement.value = valueHiddenElement.value.replace(","+textValue,"");			
			//newDoc.write("KEYHIDDEN2 " + keyHiddenElement.value + "<br/>");
		}else {
			keyHiddenElement.value = keyHiddenElement.value.replace(key, "");
			valueHiddenElement.value = valueHiddenElement.value.replace(textValue,"");
			//newDoc.write("KEYHIDDEN3 " + keyHiddenElement.value + "<br/>");
		}
	}

	var keyValueLength = keyHiddenElement.value.length;
	//newDoc.write("KEYHIDDEN4 " + keyHiddenElement.value + "<br/>");
	var selected = document.getElementById(dropDownTag);		
	
	if(keyHiddenElement.value.match(",")) {
		var keyStrArray = keyHiddenElement.value.split(",");
		var valueStrArray = valueHiddenElement.value.split(",");
		var keyStrLength = keyStrArray.length-1;
		//newDoc.write("VALUESTRARRY " + valueStrArray[keyStrLength] + "<br/>");
		for(index = 0; index < selected.length; index++) {
			if(selected.options[index].value == keyStrArray[keyStrLength]) {
				selected.selectedIndex = index;							
			}
		}		
	}else {
		//newDoc.write("VALUESTRARRY 2 " + keyHiddenElement.value + "<br/>");
		if(keyValueLength == 0) {
			//newDoc.write("VALUESTRARRY 3 " + keyHiddenElement.value + "<br/>");
			var readDivChildren = readDivElement.childNodes;
			var readDivLength = readDivChildren.length;
			for(i=readDivLength-1; i>=0;i--) {
				readDivElement.removeChild(readDivChildren[i]);
				//newDoc.write("READDIV " + readDivChildren[i] + "<br/>");
			}
			selected.selectedIndex = 0;		
		}else {
			for(index = 0; index < selected.length; index++) {
				if(selected.options[index].value == keyHiddenElement.value) {
					selected.selectedIndex = index;							
				}
			}
		}
	}
	
	var dropDownTagElement = document.getElementById(dropDownTag)
	if(key == "us" || key == "au" || key == "ca" && dropDownTagElement.id == "country") {
		//newDoc.write("KEY " + key + "<br/>");
		var stateReadDivElement = document.getElementById("selected_"+key+"_state_values");
		var stateSelected = document.getElementById(key+"_state");
		var stateKeyHiddenElement = 	document.getElementById("selected_"+key+"_state_keys");
		var stateValueHiddenElement = document.getElementById(+key+"_state_values_hidden");	
		stateKeyHiddenElement.value = "";
		var stateReadDivChildren = stateReadDivElement.childNodes;
		var stateReadDivLength = stateReadDivElement.length;
		for(i=stateReadDivLength-1; i>=0;i--) {
			stateReadDivElement.removeChild(stateReadDivChildren[i]);
		}		
		stateSelected.selectedIndex = 0;
		closeState("selected_"+key+"_state_values", "selected_"+key+"_state_keys", +key+"_state_values_hidden", key+"_states", "true");
	}
}

function checkForAllCountries(dropDownTag, valueSpan, keyTagHidden, valueTagHidden, addSearchTag) {
	var readDivElement = document.getElementById(valueSpan);
	var selected = document.getElementById(dropDownTag);		
	var textValue = selected.options[selected.selectedIndex].text;

	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	//var p=window.open();
	//var newDoc=p.document.open("text/html","replace");
		
	if(textValue.indexOf("All") != -1) {
		keyHiddenElement.value = "";
		valueHiddenElement.value = "";
		var readDivChildren = readDivElement.childNodes;
		var readDivLength = readDivChildren.length;
		for(i=readDivLength-1; i>=0;i--) {
			readDivElement.removeChild(readDivChildren[i]);
		}
	
		for(index = 0; index < selected.length; index++) {
			var key = selected.options[index].value;
			var text = selected.options[index].text;
			if(text.indexOf("All") == -1) {
				//newDoc.write("TEXT " + text + "<br/>");
				//valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, text, readDivElement, addSearchTag, dropDownTag)					
				if(index == 1) {
					//newDoc.write("TEXT at 1" + valueHiddenElement.value + "<br/>");
					keyHiddenElement.value +=  key;		
					valueHiddenElement.value += text;
				}else {
					//newDoc.write("TEXT > 1" + valueHiddenElement.value + "<br/>");
					keyHiddenElement.value +=  "," + key;		
					valueHiddenElement.value += "," + text;					
				}			
			}
		}
		reloadSpan(dropDownTag, valueSpan, keyTagHidden, valueTagHidden, addSearchTag);	
	}
}

function checkForAll(dropDownTag, valueSpan, keyTagHidden, valueTagHidden, addSearchTag) {
	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	var keyHiddenElementValue = keyHiddenElement.value;
	var selected = document.getElementById(dropDownTag);	
	var textValue = selected.options[selected.selectedIndex].text;
	if(textValue.indexOf("All") != -1) {
		keyHiddenElement.value = "";
		valueHiddenElement.value = "";
		var readDivChildren = readDivElement.childNodes;
		var readDivLength = readDivChildren.length;
		for(i=readDivLength-1; i>=0;i--) {
			readDivElement.removeChild(readDivChildren[i]);
		}		
		if(keyHiddenElementValue.match("us") || keyHiddenElementValue.match("au") || keyHiddenElementValue.match("ca")) {
			var stateCountries = new Array("us", "au", "ca");
			for(country in stateCountries) {
				var stateReadDivElement = document.getElementById("selected_"+stateCountries[country]+"_state_values");
				var stateSelected = document.getElementById(stateCountries[country]+"_state");
				var stateKeyHiddenElement = 	document.getElementById("selected_"+stateCountries[country]+"_state_keys");
				var stateValueHiddenElement = document.getElementById(+stateCountries[country]+"_state_values_hidden");	
				stateKeyHiddenElement.value = "";
				var stateReadDivChildren = stateReadDivElement.childNodes;
				var stateReadDivLength = stateReadDivElement.length;
				for(i=stateReadDivLength-1; i>=0;i--) {
					stateReadDivElement.removeChild(stateReadDivChildren[i]);
				}		
				stateSelected.selectedIndex = 0;
			}
		}		
	}
}

function closeState(valueSpan, keyTagHidden, valueTagHidden, stateTable, removeSpan) {
	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	keyHiddenElement.value = "";
	if(valueHiddenElement != null) {
		valueHiddenElement.value = "";
	}
	if(removeSpan.indexOf("true") != -1) {
		var readDivChildren = readDivElement.childNodes;
		var readDivLength = readDivChildren.length;
		for(i=readDivLength-1; i>=0; i--) {
			readDivElement.removeChild(readDivChildren[i]);
		}
	}
	document.getElementById(stateTable).style.display='none';
}

function reloadSearchParams(dropDownTag, valueSpan, keyValue, valueIn, addSearchTag, keyTagHidden, valueTagHidden, imagesPath) {

	var readDivElement = document.getElementById(valueSpan);
	var keyString = keyValue;
	var valueString = valueIn;
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	var key;
	var value;
	keyHiddenElement.value = keyString;		
	valueHiddenElement.value =valueString;

	var selected = document.getElementById(dropDownTag);		
		
	//alert(valueString);
	if(keyString.match(",")) {
		var keyStrArray = keyString.split(",");
		var valueStrArray = valueString.split(",");
		for(i=keyStrArray.length-1; i>=0; i--) {
			key = keyStrArray[i];
			value = valueStrArray[i];
			valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, value, readDivElement, addSearchTag, dropDownTag, imagesPath)		
		}	
	}else if(keyString.length > 0 && !keyString.match(",")) {
		key = keyString;
		value = valueString;
		valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, value, readDivElement, addSearchTag, dropDownTag, imagesPath)		
	}
	
}
function reloadSpan(dropDownTag, valueSpan, keyTagHidden, valueTagHidden, addSearchTag, imagesPath) {

	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	var keyString = keyHiddenElement.value;
	var valueString = valueHiddenElement.value;
	var key;
	var value;
	//alert(valueString);
	if(keyString.match(",")) {
		var keyStrArray = keyString.split(",");
		var valueStrArray = valueString.split(",");
		for(i=keyStrArray.length-1; i>=0; i--) {
			key = keyStrArray[i];
			value = valueStrArray[i];
			valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, value, readDivElement, addSearchTag, dropDownTag, imagesPath)		
		}	
	}else if(keyString.length > 0 && !keyString.match(",")) {
		key = keyString;
		value = valueString;
		valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, value, readDivElement, addSearchTag, dropDownTag, imagesPath)		
	}
}

function valueSpanCreate(valueSpan, keyTagHidden, valueTagHidden, key, value, readDivElement, addSearchTag, dropDownTag, imagesPath) {

		var newReadValue = document.createElement("span");
		newReadValue.setAttribute("id", key);
		newReadValue.setAttribute("name", value);
		newReadValue.innerHTML = value;
		var href = document.createElement("a");
		var myimage = document.createElement("img");
		myimage.setAttribute("src", imagesPath + "delete.jpg");
		myimage.setAttribute("class", "img");
		
		var onClick = "clearSearchArgument('"+valueSpan+"','"+keyTagHidden+"','"+valueTagHidden+"','"+key+"','"+value+"','"+addSearchTag+"','"+dropDownTag+"');"
		if(dropDownTag.indexOf("country") != -1) {
			if((key.indexOf("us") != -1) || (key.indexOf("au") != -1) || (key.indexOf("ca") != -1)) {
				onClick += " closeState('"+valueSpan+"','"+keyTagHidden+"','"+valueTagHidden+"','"+key+"_states','false');";		
				expand(key+"_states", "true");
			}
		}
		var image = "<img src='"+imagesPath+"delete.jpg' class='img'/>"
		var href = document.createElement("a");
		href.setAttribute("href", "javascript:" + onClick);
		href.innerHTML=image;
		newReadValue.appendChild(href);
		readDivElement.appendChild(newReadValue);
}

function exportSearch(form, action) {
	
	var form = document.getElementById(form);	

	if (action != null) {
		form.action = action;
	}
	
	form.submit();
}

function viewExported(form, action) {
	var form = document.getElementById(form);
	
	if (action != null) {
		form.action = action;
	}
	
	form.submit();		
}

function setupSearchIn() {
	document.getElementById('oldqueryEcho').innerHTML = document.getElementById('oldquery').value;
	document.getElementById('query').value='';
}

function setupNewSearch() {
	document.getElementById('oldqueryEcho').innerHTML='&nbsp;';
	document.getElementById('query').value = document.getElementById('oldquery').value;
}

function toggleRecentPubSearch() {
	var titlecheck = document.getElementById('titlecheck');
	var abstractcheck = document.getElementById('abstractcheck');
	var recentpubscheck = document.getElementById('recentpubscheck');	
	var recentpubstext = document.getElementById('recentpubstext');	

	if (titlecheck.checked == true && abstractcheck.checked == true) {
		recentpubscheck.disabled = false;
		recentpubstext.innerHTML="Only search the Title and Abstract in publications from the last 5 years.";
	} else if (titlecheck.checked == true) {
		recentpubscheck.disabled = false;
		recentpubstext.innerHTML="Only search the Title in publications from the last 5 years.";
	} else if (abstractcheck.checked == true) {
		recentpubscheck.disabled = false;
		recentpubstext.innerHTML="Only search the Abstract in publications from the last 5 years.";
	} else {
		recentpubscheck.disabled = true;
		recentpubscheck.checked = false;
		recentpubstext.innerHTML="<i>Only search the Title and Abstract in publications from the last 5 years.</i>";
	}
}

function clearSpan(valueSpan, keyTagHidden, valueTagHidden, removeSpan) {	
	var readDivElement = document.getElementById(valueSpan);
	var keyHiddenElement = 	document.getElementById(keyTagHidden);
	var valueHiddenElement = document.getElementById(valueTagHidden);
	keyHiddenElement.value = "";
	valueHiddenElement.value = "";
	if(removeSpan.indexOf("true") != -1) {
		var readDivChildren = readDivElement.childNodes;
		var readDivLength = readDivChildren.length;
		for(i=readDivLength-1; i>=0; i--) {
			readDivElement.removeChild(readDivChildren[i]);
		}
	}
}
