var myConn = new XHConn();	

var importHTML = function(oNode, bImportChildren){
   var oNew;
   
   if(oNode.nodeType == 1){
      oNew = document.createElement(oNode.nodeName);
      for(var i = 0; i < oNode.attributes.length; i++){
	 oNew.setAttribute(oNode.attributes[i].name, oNode.attributes[i].value);
      }
      if(oNew.style && oNode.getAttribute("style")) {
	 oNew.style.cssText = oNode.getAttribute("style");
      } 
      if(oNode.getAttribute("class")) {
	 oNew.className = oNode.getAttribute("class");
      }
   } else if(oNode.nodeType == 3){
      oNew = document.createTextNode(oNode.nodeValue);
   }
   
   if(bImportChildren && oNode.hasChildNodes()){
      for(var oChild = oNode.firstChild; oChild; oChild = oChild.nextSibling){
	 oNew.appendChild(importHTML(oChild, true));
      }
   }
   
   return oNew;
}

// Begin IE IS A CHUMP

var isWordLink = function(anchor) {
   for (var k=0; k<anchor.attributes.length; k++) {
      if (anchor.attributes.item(k).nodeName == 'class') {
	 if (anchor.attributes.item(k).nodeValue == "wordlink") {
	    return 1;
	 }
      }
   }
   return 0;
}

// END IE IS A CHUMP

var openedclass = " openedword";

var goWord = function(word) {
   {
      var myword = document.getElementById("word");
      if(!myword || myword.className.indexOf(openedclass) > 0) {	
//	 alert(myword + " " + myword.className + " returning.");
	 return;
      }
   }
   if(myConn) {
      var fnWhenDone = function (oXML) { 
	 var word = document.getElementById("word");
	 if(!oXML.responseXML) {
//	    alert("BZZT!");
//	    alert(oXML);
	    return;
	 }
	 var content = importHTML(oXML.responseXML.firstChild, true);
	 word.appendChild(content);
	 var popup = document.getElementById("word_popup");
	 popup.style.display = "block";	
	 word.className += openedclass;

	 var closer = document.getElementById("closer");
	 closer.onclick = function() {
	    var popup = document.getElementById("word_popup");
	    if(popup) {
	       popup.style.display = "none";
	    } else {
	//       alert("No Popup Window.");
	    }
	    var word = document.getElementById("word");
	    while (word.hasChildNodes()) {
	       word.removeChild(word.firstChild);
	    }
	    word.className=word.className.replace(openedclass, "");
	 }

	 var emptyplayer = null;
	 var spans = word.getElementsByTagName("span");
	 for (var i = 0; i < spans.length; i++) {
	    var span = spans[i];
	    if(span.getAttribute("class") == "emptyplayer") {
	       emptyplayer = span;
	       break;
	    }
	 }

	 var hearitlink = null;
	 var anchors = document.getElementsByTagName("a");
	 for (var i=0; i<anchors.length; i++) {
	    var anchor = anchors[i];
	    if (anchor.getAttribute("class") == "soundfile") {
	       hearitlink = anchor;
	       break;
	    }
	 }

	 if(hearitlink != null && emptyplayer != null) {
	    sethearit(hearitlink, emptyplayer, hearitlink.getAttribute("href"), "block", true);
	    hearitlink.removeAttribute("href");
	 }
	 // alert("WORD:"+word+"\n"+oXML.responseText); 
      };	
      myConn.connect("/ww/goodwordjr/getwordcontent.jsp", "POST", "word="+word, fnWhenDone);
   }
}

var ajaxwords = function() {
/*
   if (myConn) // XMLHTTP not available. exit method/handle error.
   {	
      var fnWhenDone = function (oXML) { alert(oXML.responseXML); };	
      myConn.connect("/ww/goodwordjr/getwordcontent.jsp", "POST", "word=excited", fnWhenDone);
   }
*/  
 
   var anchors = document.getElementsByTagName("a");
   var classes = "";
   for (var i=0; i < anchors.length; i++) {
      var anchor = anchors[i];
      if ((anchor.getAttribute("class") && anchor.getAttribute("class") == "wordlink") ||
	 isWordLink(anchor)) {
	 classes += anchor.getAttribute("href") + "\n";
	 anchor.removeAttribute("href");
	 anchor.onclick = function() {				
	    goWord(this.innerHTML);
	 }
      }
   }
/*
   var word = document.getElementById("word");
   while (word.hasChildNodes()) {
      alert(word.firstChild);
      word.removeChild(word.firstChild);
   }
*/
}

var wordsonload = window.onload;
window.onload = function() {ajaxwords(); if(wordsonload) wordsonload();}
