
function doKeyDown (k) {

    var myKeyCode      = k.keyCode;
//    var mySrcElement   = k.srcElement;
    var isShiftPressed = k.shiftKey;
    var isCtrlPressed  = k.ctrlKey;
    var isAltPressed   = k.altKey;
	var isApplePressed   = k.metaKey;

//	document.getElementById('key').innerHTML = myKeyCode;
//	document.getElementById('element').innerHTML = mySrcElement;
//	document.getElementById('shift').innerHTML = isShiftPressed;
//	document.getElementById('control').innerHTML = isCtrlPressed;
//	document.getElementById('alt').innerHTML = isAltPressed;
//	document.getElementById('apple').innerHTML = isApplePressed;

  if (myKeyCode == 65 && isCtrlPressed) {
	  place('quiz', 'response', '\341') ;
 }
   if (myKeyCode == 69 && isCtrlPressed) {
	  place('quiz', 'response', '\351') ;
 }
   if (myKeyCode == 73 && isCtrlPressed) {
	  place('quiz', 'response', '\355') ;
 }
   if (myKeyCode == 79 && isCtrlPressed) {
	  place('quiz', 'response', '\363') ;
 }
   if (myKeyCode == 85 && isCtrlPressed) {
	  place('quiz', 'response', '\372') ;
 }
   if (myKeyCode == 78 && isCtrlPressed) {
	  place('quiz', 'response', '\361') ;
 }
   if (myKeyCode == 85 && isAltPressed && isCtrlPressed) {
	  place('quiz', 'response', '\374') ;
 }
 //‡ dec =225 oct =341 &aacute;
 //Ž dec =233 oct =351
 //’ dec =237 oct =355
 //— dec =243 oct =363
 //œ dec =250 oct =372
 //– dec =241 oct =361
 //Ÿ dec =252 oct =374
	  //suck info from a div
	//var displayed = document.getElementById('displayed').innerHTML;
	//put info into a div
	//document.getElementById('displayed').innerHTML = displayed;
//place('quiz', 'response', '&eacute;') 
//place('quiz', 'response', '&iacute;')
//place('quiz', 'response', '&oacute;') 
//place('quiz', 'response', '&uacute;')
//place('quiz', 'response', '&ntilde;')
//place('quiz', 'response', '&uuml;')

 return true;
} // doKeyDown


   var http_request = false;
   
   function makeRequest(url, parameters, mydest) {
	   //alert(parameters);
	  //put destination in a hidden holder
	  document.getElementById('holdest').innerHTML = mydest;
      http_request = false;
	  
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml; charset=utf-8');
            //http_request.overrideMimeType('text/html');
			//ISO-8859-1
			http_request.overrideMimeType('text/html; charset=utf-8');


         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
	  
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
	  
      http_request.onreadystatechange =  function alertContents() {
		  //alert(mydest);
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
			//get destination from holder
			mydest = document.getElementById('holdest').innerHTML;
            document.getElementById(mydest).innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }


   
   function get(obj,dest) {
      var getstr = "?";
//	  alert(obj.childNodes.length);
      for (i=0; i<obj.childNodes.length; i++) {
//		 alert("tagName: " + obj.childNodes[i].tagName + " type: " + obj.childNodes[i].type + " name: " + obj.childNodes[i].name + " value: " + obj.childNodes[i].value);
         if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
            if (obj.childNodes[i].type == "hidden") {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }			
            if (obj.childNodes[i].type == "checkbox") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               } else {
                  getstr += obj.childNodes[i].name + "=&";
               }
            }
            if (obj.childNodes[i].type == "radio") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               }
            }
         } else if (obj.childNodes[i].tagName == "select") {
            var sel = obj.childNodes[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         } else {
//			 alert(obj.childNodes[i].childNodes.length);		 
		 }
         
      }
	  //getstr = codeAccents(getstr);
	  //alert(getstr);
      makeRequest('getResponse.php', getstr, dest);
   }


function submitFunction() {
   document.quiz.action= location.href;
   document.quiz.submit()
   }

function toggleBlock(elementId) {
	var element = document.getElementById(elementId);

	if(element.style.display == '')
	  element.style.display = 'none';
	else
	  element.style.display = '';  
  }

  
//function place(formname, inputname, value){
//	document.forms[formname].elements[inputname].focus();
//	document.forms[formname].elements[inputname].value+=value;		   
//}


//this puts the insertion at the cursor, instead of at the end of the word
function place(formname, myField, myValue) {
	myField = document.getElementById(myField);
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var scrollTop = myField.scrollTop;
		myField.value = myField.value.substring(0, startPos)
		              + myValue
                      + myField.value.substring(endPos, myField.value.length);
		myField.focus();
		myField.selectionStart = startPos + myValue.length;
		myField.selectionEnd = startPos + myValue.length;
		myField.scrollTop = scrollTop;
	} else {
		myField.value += myValue;
		myField.focus();
	}
}



var cX = 0; var cY = 0;
function UpdateCursorPosition(hideboxe){ cX = hideboxe.pageX; cY = hideboxe.pageY;}
function UpdateCursorPositionDocAll(hideboxe){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function AssignPosition(hideboxd) {
hideboxd.style.left = (cX+10) + "px";
hideboxd.style.top = (cY+10) + "px";
}
function HideContent(hideboxd) {
if(hideboxd.length < 1) { return; }
document.getElementById(hideboxd).style.display = "none";
}
function ShowContent(hideboxd) {
if(hideboxd.length < 1) { return; }
var hideboxdd = document.getElementById(hideboxd);
AssignPosition(hideboxdd);
hideboxdd.style.display = "block";
}
function ReverseContentDisplay(hideboxd) {
if(hideboxd.length < 1) { return; }
var hideboxdd = document.getElementById(hideboxd);
AssignPosition(hideboxdd);
if(hideboxdd.style.display == "none") { hideboxdd.style.display = "block"; }
else { hideboxdd.style.display = "none"; }
}


