﻿//all you need to do is customise the following 2 variables
var ElementToUpdate = 'middleMenu';
var UrlToLinkTo ='';       //'http://www.peterdobbin.co.uk/AjaxThumbnails.php?pageToDisplay=';

var xmlHttp;
//var requestURL = 'http://localhost/misctest/getusernames.aspx?q=';
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5") != -1) ? 1 : 0;
var is_opera = ((navigator.userAgent.indexOf("Opera6") != -1) || (navigator.userAgent.indexOf("Opera/6") != -1)) ? 1 : 0;
//netscape, safari, mozilla behave the same??? 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;

function ajaxFunction(strCurrentPage) {

    switch (strCurrentPage) {
        case "Characters":
            UrlToLinkTo = 'MiddleMenu_Characters.html';
            break;
        case "Environments":
            UrlToLinkTo = 'MiddleMenu_Environments.html';
            break;
        case "LifeClass":
            UrlToLinkTo = 'MiddleMenu_LifeClass.html';
            break;
        case "Personal":
            UrlToLinkTo = 'MiddleMenu_Personal.html';
            break;

        case "SketchBook":
            UrlToLinkTo = 'MiddleMenu_SketchBook.html';
            break;
        case "Storyboards":
            UrlToLinkTo = 'MiddleMenu_Storyboards.html';
            break;
    }
    
    if (strCurrentPage.length > 0) {
        //Append the name to search for to the requestURL
        //var url = UrlToLinkTo + strCurrentPage;

        //Create the xmlHttp object to use in the request 
        //stateChangeHandler will fire when the state has changed, i.e. data is received back 
        // This is non-blocking (asynchronous) 
        xmlHttp = GetXmlHttpObject(stateChangeHandler);

        //Send the xmlHttp get to the specified url
        xmlHttp_Get(xmlHttp, UrlToLinkTo);
    }
    else {
        //Textbox blanked out, clear the results 
        document.getElementById(ElementToUpdate).innerHTML = '';
    }
}

//stateChangeHandler will fire when the state has changed, i.e. data is received back 
// This is non-blocking (asynchronous) 
function stateChangeHandler() {
    //readyState of 4 or 'complete' represents that data has been returned 
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
        //Gather the results from the callback 
        var str = xmlHttp.responseText;

        //Populate the innerHTML of the div with the results
        document.getElementById(ElementToUpdate).innerHTML = str;
        RefreshAfterAjax();
    }
}

function RefreshAfterAjax()
{ PreSimpleSwapOnload(); SimpleSwapSetup(); RefreshThinkbox(); }

// XMLHttp send GET request 
function xmlHttp_Get(xmlhttp, url) {
    xmlhttp.open('GET', url, true);
    xmlhttp.send(null);
}

function GetXmlHttpObject(handler) {
    var objXmlHttp = null;    //Holds the local xmlHTTP object instance 

    //Depending on the browser, try to create the xmlHttp object 
    if (is_ie) {
        //The object to create depends on version of IE 
        //If it isn't ie5, then default to the Msxml2.XMLHTTP object 
        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';

        //Attempt to create the object 
        try {
            objXmlHttp = new ActiveXObject(strObjName);
            objXmlHttp.onreadystatechange = handler;
        }
        catch (e) {
            //Object creation errored 
            alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
            return;
        }
    }
    else if (is_opera) {
        //Opera has some issues with xmlHttp object functionality 
        alert('Opera detected. The page may not behave as expected.');
        return;
    }
    else {
        // Mozilla | Netscape | Safari 
        objXmlHttp = new XMLHttpRequest();
        objXmlHttp.onload = handler;
        objXmlHttp.onerror = handler;
    }

    //Return the instantiated object 
    return objXmlHttp;
}

function UseValue(strVal) {
    document.frmStuff.txtName.value = strVal;
} 
