window.onload = setupEvents;

function setupEvents() {
   $('urlForm').onsubmit = function(){
      analyzeURL($F('url'));
      return false;
   }
   
   $('aboutClassy').style.display = "none";
   
   $('aboutClassyLink').onclick = function(){
      return toggleBox('aboutClassy');
   };
   
   $('browserTools').style.display = "none";
   
   $('browserToolsLink').onclick = function(){
      return toggleBox('browserTools');
   };
   
   $('devAccess').style.display = "none";
   
   $('devAccessLink').onclick = function(){
      return toggleBox('devAccess');
   };
   
   $('url').focus();
}

function toggleBox(boxID) {
   if ($(boxID + 'Link').getAttribute("rel") == "boxClosed") {
      $(boxID).style.display = "";
      $(boxID + 'Link').setAttribute("rel", "boxOpen");
   } else {
      $(boxID).style.display = "none";
      $(boxID + 'Link').setAttribute("rel", "boxClosed");
   }
   return false;
}

function analyzeURL(theURL) {
   $('results').style.display = "none";
   $('status').style.display = "block";
   $('status').innerHTML = "<img src=\"loading.gif\" alt=\"Loading...\" /> <span class=\"message\">Analyzing page...</span>";
   
   var pageGetter = new Ajax.Request("./classy-xml.php", {parameters: "pageURL="+encodeURIComponent(theURL), method: 'get', onComplete: processData});
}

function processData(originalRequest) {
   $('status').innerHTML = "<img src=\"loading.gif\" alt=\"Loading...\" /> <span class=\"message\">Processing results...</span>";
   
   var classy = originalRequest.responseXML.documentElement;
   var ids = classy.getElementsByTagName("ids")[0].getElementsByTagName("id");
   var classes = classy.getElementsByTagName("classes")[0].getElementsByTagName("class");
   
   var content = "";
   
   content += "<table id=\"holderTable\"><tr><td><div id=\"idList\" class=\"box\"><h2 class=\"title top\">IDs</h2><ol>";
   
   for (var i=0; i < ids.length; i++) {
      content += "<li>" + ids[i].getElementsByTagName("name")[0].firstChild.data + " (";
      
      members = ids[i].getElementsByTagName("members")[0].getElementsByTagName("member");
      
      for (var j=0; j < members.length; j++) {
         content += members[j].firstChild.data;
      }
      
      content += ")</li>";
   }
   
   content += "</ol></div></td><td><div id=\"classList\" class=\"box\"><h2 class=\"title top\">Classes</h2><ol>";
   
   for (var i=0; i < classes.length; i++) {
      content += "<li><p>" + classes[i].getElementsByTagName("name")[0].firstChild.data + "</p><p><ul>";
      
      members = classes[i].getElementsByTagName("members")[0].getElementsByTagName("member");
      
      for (var j=0; j < members.length; j++) {
         content += "<li>" + members[j].firstChild.data;
         
         if (members[j].getAttribute("id")) {
            content += " (" + members[j].getAttribute("id") + ")";
         }
         
         content += "</li>";
      }
      
      content += "</ul></p></li>";
   }
   
   content += "</ol></div></td></tr></table>";
   
   $('status').style.display = "none";
   
   $('results').style.display = "block";
   $('results').innerHTML = content;
}