

function unselectItems () {
	var args = unselectItems.arguments;
	var currentItem;
	
	for (var i=0;i<args.length;i++) {
		currentItem = document.getElementById(args[i]);
		currentItem.checked = false;
		}
	}
	
function unselectByName(name) {

	var buttons = document.getElementsByName(name);
	for (var i=0;i<buttons.length;i++) {
		buttons[i].checked = false;
		}
	}

function hideRange() {
	for(var i=0;i < arguments.length;i++) {
		var currentControl = document.getElementById(arguments[i]);
		currentControl.style.display = "none";
		}
	}
	
function showRange() {
	for(var i=0;i < arguments.length;i++) {
		var currentControl = document.getElementById(arguments[i]);
		currentControl.style.display = "inline";
		}
	}
	
// Set the visibility of an object to visible
function Display(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.display = "inline";     
    }
}

// Set the visibility of an object to hidden
function NoDisplay(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.display = "none";
    }
}	

function validateForm() {
	var useListContainer = document.getElementById(document.getElementsByName("UseListContainer")[0].value);
	var possibleUseButtons = useListContainer.getElementsByTagName("INPUT")
	
	var useValid = false;
	var useNamePostField = document.getElementById("UseNameFormField");
	var subUseNamePostField = document.getElementById("SubUseNameFormField");
	
	var useQueryValue;
	var shadeQueryValue = -1;
	var regionQueryValue;
	var countyQueryValue;
	
	for (var i=0;i < possibleUseButtons.length;i++) {
		if ((useValid == false) && (possibleUseButtons[i].checked)) {
			useValid = true;
			useQueryValue = possibleUseButtons[i].parentNode.getAttribute("subuseid").toString();
			var subUseNameLabel = possibleUseButtons[i].nextSibling;
			subUseNamePostField.value = subUseNameLabel.innerHTML;
			useNamePostField.value = possibleUseButtons[i].parentNode.getAttribute("usename");
			}
		}
		
	var useValidator = document.getElementById("useValidator");
	if (!useValid) 
		useValidator.style.display = "inline";
	else
		useValidator.style.display = "none";
	
	var shadeValid = false;
	var shadeName = document.getElementsByName("ShadeName")[0].value;
	var possibleShadeButtons = document.getElementsByName(shadeName);
	
	var shadeDiv = document.getElementById(document.getElementsByName("ShadeDivID")[0].value);
	if (shadeDiv.style.display == "none")
		shadeValid = true;
	else {
		for (var j=0;j < possibleShadeButtons.length;j++) {
			if ((shadeValid == false) && (possibleShadeButtons[j].checked)) {
				shadeValid = true;
				shadeQueryValue = possibleShadeButtons[j].value.toString();
				var shadeNamePostField = document.getElementById("ShadeType");
				var shadeNameLabel = possibleShadeButtons[j].nextSibling;
				shadeNamePostField.value = shadeNameLabel.innerHTML;
			}
		}
	}
			
	var shadeValidator = document.getElementById("shadeValidator");
	if (!shadeValid) 
		shadeValidator.style.display = "inline";
	else
		shadeValidator.style.display = "none";
		
	if (useValid && shadeValid) {
		var theForm = document.getElementById("Form1");
		var newAction = new Uri((document.getElementsByName("NewAction")[0]).value);
		newAction.AddQueryParameter("Region",theForm.__REGION.value);
		newAction.AddQueryParameter("Shade",shadeQueryValue);
		newAction.AddQueryParameter("Use",useQueryValue);
		theForm.action = newAction.toString();
		//theForm.action = "TurfRecommendation2.aspx?County=Wayne&Shade=0&Use=2";
		theForm.submit();
		}
	
			
}

function preload() {
	var args = preload.arguments;
	document.imageArray = new Array(args.length);
	
	for (var i=0;i<args.length;i++) {
		document.imageArray[i] = new Image();
		document.imageArray[i].src = args[i];
		}
}

function showSeasonalImages() {
	var currentImageControl;
	//var seasonalImageIDs = document.getElementById("seasonalImageIDs");
	for (var i=0;i<seasonalImageIDs.length;i++) {
		currentImageControl = document.getElementById(seasonalImageIDs[i]);
		currentImageControl.src = document.imageArray[i].src;
		}
}

function setQueryString() {
	alert('hello');
}

//HTMLElement.prototype.contains = function(node) {
//	if (node == null)
//		return false;
//	if (node == this)
//		return true;
//	else
//		return this.contains(node.parentNode);
//}

function showAnnotation(event) {
	if (!event)
		event = window.event;
		
	var annotatedElement;
	if(event.target)
		annotatedElement = event.target;
	if (event.srcElement)
		annotatedElement = event.srcElement;
		
	if (!(annotatedElement.getAttribute("annotation")))
		annotatedElement = annotatedElement.parentNode;
		
	//annotatedElement.style.display = "block";
		
	//annotatedElement.style.position = "absolute";
	//annotatedElement.parentNode.style.position = "absolute";
	
	var interiorMouseOut = false;
	if (event.relatedTarget && event.target)
		interiorMouseOut = isDescendantOf(event.target,event.relatedTarget);
		//interiorMouseOut = event.relatedTarget.descendsFrom(event.target);
	else if (event.fromElement && event.srcElement)
		interiorMouseOut = isDescendantOf(event.srcElement,event.fromElement);
		//interiorMouseOut = event.fromElement.descendsFrom(event.srcElement);
		
	if (!interiorMouseOut) {
		var annotationDiv = document.createElement("div");
		annotationDiv.id = annotatedElement.id + "_Annotation";
		var annotationText = document.createTextNode(annotatedElement.getAttribute("annotation"));
		annotationDiv.appendChild(annotationText);
		annotationDiv.className = "Annotation";
	
		var pageCoords = getPageCoords(annotatedElement);
		//annotationDiv.style.left = getPageCoords(annotatedElement).x + "px";
		annotationDiv.style.left = pageCoords.x + "px";
		annotationDiv.style.top = pageCoords.y + annotatedElement.clientHeight + "px";
	
		//annotatedElement.appendChild(annotationDiv);
		document.body.appendChild(annotationDiv);
		document.body.lastChild.id = annotatedElement.id + "_Annotation";
		//var newContainer = document.createElement("div");
		//annotatedElement.parentNode.replaceChild(newContainer,annotatedElement);
		//newContainer.appendChild(annotatedElement);
	}
}

function hideAnnotation(event,specifiedElement) {
	if (!event)
		event = window.event;
		
	var annotatedElement;
	if(event.target)
		annotatedElement = event.target;
	if (event.srcElement)
		annotatedElement = event.srcElement;
	if (specifiedElement)
		annotatedElement = specifiedElement;
		
	if (!(annotatedElement.getAttribute("annotation")))
		annotatedElement = annotatedElement.parentNode;
		
	//var annotationDiv = annotatedElement.lastChild;
	//annotatedElement.removeChild(annotationDiv);
	var annotationDiv = document.getElementById(annotatedElement.id + "_Annotation");
	
	if (annotationDiv) {
		var mouseOnAnnotationContainer = true;
		if (event.relatedTarget)
			mouseOnAnnotationContainer = (event.relatedTarget == annotationDiv);
		else if (event.toElement) 
			mouseOnAnnotationContainer = (event.toElement == annotationDiv);
			
		if (!(mouseOnAnnotationContainer))
			document.body.removeChild(annotationDiv);
	}
		
}


function isDescendantOf(currentNode,potentialAncestor) {
	if (currentNode == potentialAncestor)
		return true;
		
	var i=0;
	while((i < potentialAncestor.childNodes.length) && (currentNode != potentialAncestor.childNodes[i])) {
		if (isDescendantOf(currentNode,potentialAncestor.childNodes[i]))
			return true;
		i++;
	}
	
	return false;
}
	
function setAnnotationStatus(event,status) {

	if (!event)
		event = window.event;
		
	var triggerButton;
	if (event.target)
		triggerButton = event.target;
	if (event.srcElement)
		annotatedElement = event.srcElement;
	
	if (status == 'enable') {
		newMouseOverEvent = showAnnotation;
		newMouseOutEvent = hideAnnotation;
		}
	else if (status == 'disable') {
		newMouseOverEvent = null;
		newMouseOutEvent = null;
	}
	
	var annotatedElements = document.getElementsByName("annotation");
	for (var i=0;i<annotatedElements.length - 1;i++) {
		if (annotatedElements[i].addEventListener) {
			if (status == 'enable') {
				annotatedElements[i].addEventListener("mouseover",showAnnotation,true);
				annotatedElements[i].addEventListener("mouseout",hideAnnotation,true);
				}
			else {
				hideAnnotation(null,annotatedElements[i]);
				annotatedElements[i].removeEventListener("mouseover",showAnnotation,true);
				annotatedElements[i].removeEventListener("mouseout",hideAnnotation,true);
				}
			}
		else if (annotatedElements[i].attachEvent) {
			if (status == 'enable') {
				annotatedElements[i].attachEvent("onmouseover",showAnnotation);
				annotatedElements[i].attachEvent("onmouseout",hideAnnotation);
				}
			else {
				hideAnnotation(null,annotatedElements[i]);
				annotatedElements[i].detachEvent("onmouseover",showAnnotation);
				annotatedElements[i].detachEvent("onmouseout",hideAnnotation);
				}
			}
		}
			
	}

var previousFrame;

function showSelectedGroup(visibleItemId,groupName) {

	var containerAnchor = document.getElementById("containerAnchor");
	containerAnchor.style.display = "inline";
	
	var alternateContentContainer = document.getElementById("alternateContentContainer");
	alternateContentContainer.style.display = "none";
	
	previousFrame = currentFrame;
	currentFrame = document.getElementById(visibleItemId);	
	document.cookie = "currentFrame=" + currentFrame.id;
	var theBody = document.getElementById("theBody");
	//var itemsInGroup = getElementsByAttribute(theBody,"name",groupName);
	var itemsInGroup;
	for (var j=0;j<Frames.length;j++) {
		var thisFrame = document.getElementById(Frames[j]);
		if (thisFrame.id == visibleItemId) {
			thisFrame.style.display = "inline";
			if (previousFrame)
				clearInvalidAnnotations();
			}
		else {
			thisFrame.style.display = "none";
		}
	}
}

function GetCookieByKey(key,cookieString) {
	var keyPosition = cookieString.indexOf(key);
	
	if (keyPosition != -1) {
		var startPosition = keyPosition + key.length + 1;
		var endPosition = cookieString.indexOf(";",startPosition);
		var value = cookieString.substring(startPosition,endPosition);
		return value;
	}
}

function LoadCurrentFrame() {
	var cookieAsString = document.cookie;
	var returnFrameId = GetCookieByKey("currentFrame",cookieAsString);
	if (returnFrameId && (returnFrameId != 'generalGrassInfoDiv')) {
		showRange(returnFrameId);
		var hiddenFrameString = "";
		for (var i=0;i<Frames.length;i++) {
			if (returnFrameId != Frames[i])
				hiddenFrameString += "'" + Frames[i] + "'" + ",";
			}
		hiddenFrameString = hiddenFrameString.substring(0,hiddenFrameString.length - 1);
		eval("hideRange(" + hiddenFrameString + ")");
		//hideRange(hiddenFrameString.substring(0,hiddenFrameString.length - 1));
		if (returnFrameId == 'seasonalImageDiv')
			showSeasonalImages();
	}
}

	function ShowTitles(ShowOn)
				{	
					var Title=new Array(4);
						Title[0]="Title_SuggestedGrasses";
						Title[1]="Title_AdaptionAppearance";
						Title[2]="Title_Maintenance";
						Title[3]="Title_Planting";
					
					for(var x=0; x<4; x++)
					{
						divName = eval("Title[" + x + "]");

						AddObj = (stdBrowser) ? document.getElementById(divName).style : eval("document." + divName); 
						
						if (ShowOn == 'True') {
							AddObj.display ="inline";
							}
						else {
							AddObj.display ="none";
							}	
					}
					
				}
				
function getCultivarInfo (event,cultivarFile) {
	
	if (!event)
			event = window.event;
		
	var triggerButton = event.target || event.srcElement;
	//var response = AjaxFunctions.GetCultivarInfo(cultivarFile,GetCultivarInfo_CallBack);
	//triggerButton.style.cursor = "wait";
	var response = AjaxFunctions.GetCultivarInfo(cultivarFile);
	if (response.error != null) {
		alert(response.error);
		return;
	}
	//triggerButton.style.cursor = "auto";
	var alternateContentContainer = document.getElementById("alternateContentContainer");
	var containerAnchor = document.getElementById("containerAnchor");
	containerAnchor.style.display = "none";
	alternateContentContainer.style.display = "inline";
	alternateContentContainer.innerHTML = response.value;
	window.scrollTo(0,0);
	
	
}
	
function GetCultivarInfo_CallBack(response) {
	if (response.error != null) {
		//alert(response.error);
		return;
	}
	var alternateContentContainer = document.getElementById("alternateContentContainer");
	var containerAnchor = document.getElementById("containerAnchor");
	containerAnchor.style.display = "none";
	alternateContentContainer.style.display = "inline";
	alternateContentContainer.innerHTML = response.value;
	window.scrollTo(0,0);
	//alternateContentContainer.innerHTML = "<H1>This is a test</H1>";
}

function getMaintenanceInfo (event,theGrass,theUse) {

	
	
	var response = AjaxFunctions.getMaintenanceInfo(theGrass,theUse,GetTurfTipsHtmlResponse_CallBack);
	//var response1 = AjaxFunctions.getMaintenanceInfo(theGrass,theUse);
	/*if (response1.error != null) {
		alert(response1.error);
		return;
	}
	var alternateContentContainer = document.getElementById("alternateContentContainer");
	var containerAnchor = document.getElementById("containerAnchor");
	containerAnchor.style.display = "none";
	alternateContentContainer.style.display = "inline";
	alternateContentContainer.innerHTML = response1.value;*/
	
}

function GetTurfTipsHtmlResponse_CallBack(response1) {
	if (response1.error != null) {
		//alert(response1.error);
		return;
	}
	
	var alternateContentContainer = document.getElementById("alternateContentContainer");
	
	var containerAnchor = document.getElementById("containerAnchor");
	
	containerAnchor.style.display = "none";
	
	alternateContentContainer.style.display = "inline";
	
	alternateContentContainer.innerHTML = response1.value;
	
	window.scrollTo(0,0);
}
	
function show(divID){
    var currentControl = document.getElementById(divID);
    currentControl.style.display = "inline";        
}

function hide(divID){
    var currentControl = document.getElementById(divID);
    currentControl.style.display = "none";    
}
    
	
		
		
	

	