var IE = document.all?true:false;
if(!IE) document.captureEvents(Event.MOUSEMOVE);
var mouseX = 0;
var mouseY = 0;


var step = 1;
var MAX_STEPS = 0;
var klimastasjonId = -1;
var firstFactor = -1;
var secondFactor = -1;
var watering = -1;
var previousAttacks = -1;;
var yearsSinceLastCultivated = -1;
var density = -1;

function base(steps) {
	MAX_STEPS = steps;
	document.onmousemove = getMouseXY;
}

function reset() {
	for(var i = MAX_STEPS; i > 0; i--){
		var element = document.getElementById(i);
		var children; 

		if(element && element.childNodes.length > 0) {

			children = element.childNodes;

			for(var j = 0; j < children.length; j++){

				if(children[j].type == "radio") {
					children[j].disabled = "";		
				}

			}
			if(i > 1)
				element.style.visibility = "hidden";
		}
	}
	step = 1;
}

function processQuestion(obj,step)
{
	rem_error();
	if(obj.value == "true" )
	{
		disableRadioButtons(obj);
		step += 1;
		toggleVisibility(document.getElementById(step));
	}
	else if(obj.value == "false" ) 
	{
		if(obj.name == "q1")
		{
			error("Det er for tidlig å sprøyte");
		}
		if(obj.name == "q2")
		{
			error("Vent til kronbladene begynner å falle av");
		}
		if(obj.name == "q3")
		{
			error("Det er for sent å sprøyte");
		}
	}
	else
	{
		if(step == 0) {

			if(obj.name == "klimastasjonId") {
				klimastasjonId = obj.value;	
			}
			if(obj.name == "firstFactor") {
				firstFactor = obj.value;	
			}
			if(obj.name == "secondFactor") {
				secondFactor = obj.value;	
			}
		}
		else
		{
			if(obj.name == "density") {
				density = obj.value;	
			}
                        if(obj.name == "watering") {
				watering = obj.value;	
			}
			if(obj.name == "yearsSinceLastCultivated") {
				yearsSinceLastCultivated = obj.value;	
			}
			if(obj.name == "previousAttacks") {
				previousAttacks = obj.value;
			}
			step += 1;
	
			/* small hack to help failing logic :-)*/
			if(step == 8) {
				var element = document.getElementById('9');
				element.style.visibility = "visible";
			}
			toggleVisibility(document.getElementById(step));
		}
	}
}

function check(option) {

	var b = true;

	if(option == 1) {
		b = (yearsSinceLastCultivated > -1 && density > -1 && previousAttacks > -1);

		if(!b) {
			error("Du må fylle ut feltene 4-6");
			return b;
		}
		b = (klimastasjonId > -1 || (firstFactor > -1 && secondFactor > -1));
		if(!b) error("Du må velge en av klimastasjonene eller bruke egne værdata.");
	}
	if(option == 2) {
		var klimastasjonVal = document.getElementById('klimastasjon');	
		var klimastasjonDiv = document.getElementById('8');
		var factors = document.getElementById('9');
		var ff = document.getElementById('first_factor');
		var sf = document.getElementById('second_factor');
		
		if( ff.value > -1 && sf.value > -1 && factors.style.visibility == "visible") {
			klimastasjonVal.value = -1;
		} else if(klimastasjonVal.value > -1  && klimastasjonDiv.style.visibility == "visible") {
			ff.value = -1;
			sf.value = -1;
		} else {
			error("Du må velge en klimastasjon, eller fylle inn dine egne værdata.");
			return false;
		}
	}
	return b;
}

function disableRadioButtons(obj)
{
	var parent = obj.parentNode;
	var children = parent.childNodes;
	for(var i = 0; i < children.length;i++)
	{
		if(children[i].type == "radio")
		{
			children[i].disabled = "disabled";
		}
	}
}

function toggleVisibility(obj,toggle)
{
	if(obj)
	{
		if(obj.style.visibility == "visible" && toggle) {
			obj.style.visibility = "hidden";
			obj.style.display = "none";
		}
		else if(obj.style.visibility == "hidden") {
			obj.style.visibility = "visible";
			obj.style.display = "block";
		}
	} 
	else
	{
		alert("No element found");
	}
}


function error(string)
{
	var element = document.getElementById("error");
	if(element.firstChild) element.removeChild(element.firstChild);
	var divNode = document.createElement("div");
	var textNode = document.createTextNode(string);
	divNode.appendChild(textNode);
	
	element.appendChild(divNode);

	element.style.left = (mouseX+65) + 'px';
	element.style.top = (mouseY-5) + 'px';

	element.style.width = '250px';	
	element.style.background = 'yellow';
	element.style.zIndex = '1';
	element.style.filter = 'alpha(opacity=75)';
}

function rem_error() {
	var element = document.getElementById("error");
	if(element.firstChild) element.removeChild(element.firstChild);
	element.style.background = "";
}

function getMouseXY(e) {
	if(IE){
		mouseX = event.clientX;
		mouseY = event.clientY;
	} else {
		mouseX = e.pageX;
		mouseY = e.pageY;
	}
	if(mouseX < 0) mouseX = 0;
	if(mouseY < 0) mouseY = 0;
	return true;
}

function findCoords(e) {
	var posX = 0, posY = 0;
	
	if( !e ) { e = window.event; } if( !e ) { alert("returning"); return [ 0, 0 ]; }
	if( typeof( e.pageX ) == 'number' ) {
		posX = e.pageX; posY = e.pageY;
	} else {
		if( typeof( e.clientX ) == 'number' ) {
			posX = e.clientX; posY = e.clientY;
			if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) && !( window.opera || window.debug || navigator.vendor == 'KDE' ) ) {
				posX += document.body.scrollLeft; posY += document.body.scrollTop;
			}  else {
				if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) && !( window.opera || window.debug || navigator.vendor == 'KDE' ) ) {
					posX += document.documentElement.scrollLeft; posY += document.documentElement.scrollTop;
				}
			}
		}
	}
	return [ posX, posY ];
}
