var request = false;
var reqbusy = false;
var stemmer = 0;

try {
 	request = new XMLHttpRequest();
  } catch (trymicrosoft) {
try {
	request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (othermicrosoft) {
try {
	request = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (failed) {
	request = false;
	 }  
  }
}

if (!request)
  alert("Error initializing XMLHttpRequest!");

function AjxUpd(div, req, data) {
  var url = ("KKajax.cgi?req=" + req + "&div=" + div + "&data=" + escape(data));
// Sjekk at request-objektet er ledig, hvis ikke sett en timeout og fors¿k igjen senere
// Vi holder rede pŒ status selv fordi forskjellige nettlere behandler ready-state forskjellig
  if (reqbusy) {
//  	alert("AjxUpd('"+div+"','"+req+"','"+data+"')");
  	var to = setTimeout("AjxUpd('"+div+"','"+req+"','"+data+"')", 100);
  	return false;
  	}
  else {
  	reqbusy = true;
    request.open("GET", url, true);
    //	alert('AjxUpd: ' + url);
    request.onreadystatechange = updatePage;
    //  request.send(null);
    request.send("");
  }
  return false;
}

function countme(knapp) {
	var act;
	act = ((knapp.checked) ? 'pluss' : 'minus');
	document.getElementById('counter').style.display = 'block';
	alert('act/stemmer' + act + ' ' + stemmer);
   if (act == "minus") {
   		stemmer --;
   		document.getElementById('counter').innerHTML = ('<p>'+stemmer+'</p>');
   		return true;
   		}
   if (act == "pluss") {
   		stemmer ++;
   		document.getElementById('counter').innerHTML = ('<p>'+stemmer+'</p>');
   		return true;
   		}
   	}


function silentUpdate(req, retvalue, data) {
	var url = ("KKajax.cgi?req=" + req + "&data=" + escape(data));
	request.open("GET", url, true);
	request.onreadystatechange = { };
	request.send(null);
//	alert('Silentupdate: ' + url);
	return retvalue;
	}


function updatePage() {
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText.split("#@#");
			// alert("div: " + response[0] + ", svar: " + response[1]);
			// alert ("postaction: " + response[2]);
			//alert(response[0]);
       		document.getElementById(response[0]).innerHTML = response[1]; 
       		// if (response[2]) { alert(response[2]); eval(response[2]) };
       		if (response[2]) { eval(response[2]) };
       		// sett klart for ny request
       		reqbusy = false;
       		} else { }
     }
   }

function editinstans(div) {
	document.getElementById('instans_' + div).style.backgroundcolor = '#110000';
	dato      = document.getElementById(div + '.dato').value;
	klokke    = document.getElementById(div + '.klokke').value;
	status    = document.getElementById(div + '.status').options[document.getElementById(div + '.status').selectedIndex].value;
	
	// div = 'instans_' + div;
	req = 'edit.instans';
	ddata = 'eiid='+div+'&dato='+dato+'&klokke='+klokke+'&status='+status;
	AjxUpd(('instans'+div), req, ddata);
	document.getElementById('instans_' + div).style.backgroundcolor = '#ffffff';

	return false;
	}

function openlayer(div, opphav) {
	var venstre;
	var top;
	
	var pos = findPos(opphav);
	venstre = pos[0];
	top     = pos[1];
	
	// alert('Venstre: ' + venstre + ', Topp: ' + top);
	document.getElementById(div).style.left = (venstre - 200);
	document.getElementById(div).style.top = (top -200);

	document.getElementById(div).style.display = 'block';
	return false;
	}

function closelayer(div) {
	document.getElementById(div).style.display = 'none';
	return false;
	}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
