/*
 Copyright 2009, Dan C. Maftei
 Released under the Creative Commons BDS license
 http://creativecommons.org/licenses/BSD/
 */

/*
  Set up event handlers
 */
function scoresSetup() {
    document.getElementById('tab_uri').onclick = showUri;
    document.getElementById('tab_direct').onclick = showDirect;
    document.getElementById('tab_results').onclick = showResults;
    document.getElementById('form_uri').onsubmit = getScoresUri;
    document.getElementById('form_direct').onsubmit = getScoresDirect;
}

/*
  Show URI panel
 */
function showUri() {
    showPanel('uri');
    return false;
}

/*
  Show direct input panel
 */
function showDirect() {
    showPanel('direct');
    return false;
}

/*
  Show results panel
 */
function showResults() {
    showPanel('results');
    return false;
}

/*
  The three panels
 */
var panels = new Array('uri', 'direct', 'results');

/*
  Show named panel and adjust tabs
 */
function showPanel(panel) {
    for (var i = 0; i < panels.length; i++) {
        if (panels[i] == panel) {
            document.getElementById('tab_' + panels[i]).className = 'front';
            document.getElementById('div_' + panels[i]).className = 'front';
        }
        else {
            document.getElementById('tab_' + panels[i]).className = '';
            document.getElementById('div_' + panels[i]).className = 'hidden';
        }
    }
}

/*
  AJAX request for URI
 */
function getScoresUri() {
    return getScores('uri');
}

/*
  AJAX request for direct input
 */
function getScoresDirect() {
    return getScores('direct');
}

/*
  Cross-browser XMLHttpRequest object
 */
var xmlHttp = null;

/*
  Get the browser's XMLHttpRequest object
 */
function getXmlHttpObject() {
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject) {
        // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

/*
  The AJAX request
 */
function getScores(what) {
    xmlHttp = getXmlHttpObject();

    if (xmlHttp == null) {
        alert('Your browser does not support AJAX');
        return false;
    }
    xmlHttp.onreadystatechange = stateChanged;

    var value;
    
    if (what == 'uri')
        value = document.getElementById('uri').value;
    else if (what == 'direct')
        value = document.getElementById('direct').value;
    
    var url = 'scores/scores.php';
    var params = what + '=' + value;
    
    xmlHttp.open('POST', url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(params);

    return false;
}

/*
  The AJAX response
 */
function stateChanged() {
    if (xmlHttp.readyState == 4) {
        document.getElementById('div_results').innerHTML = xmlHttp.responseText;
        showResults();
    }
}

/*
  Get the text from tools.htm and put it in the popup
 */
function popup(what) {
    var text = document.getElementById('div_' + what + '_text').innerHTML;
    var popup = document.getElementById('div_' + what + '_popup');

    popup.innerHTML = text;
    popup.className = 'popup';
}

/*
  Hide the popup
 */
function popdown(what) {
    document.getElementById('div_' + what + '_popup').className = 'hidden';
}
