
//////////////////////////////////////////////////////////////////////////////////////
// UTILS
//////////////////////////////////////////////////////////////////////////////////////
// retrieve the flash movie
function getFlashMovie(movieName)
{
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

// load files
function loadJSFile(filename)
{
    var fileref = document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", filename);
    
    if(typeof fileref!="undefined")
    {
        document.getElementsByTagName("head")[0].appendChild(fileref);
    }
}

// unload js file
function unloadJSFile(filename)
{
    var targetelement = "script";
    var targetattr = "src";
    var allsuspects = document.getElementsByTagName(targetelement);
    
    // search backwards within nodelist for matching elements to remove
    for(var i = allsuspects.length; i>=0; i--)
    {
        if(allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1)
        {
            // remove element by calling parentNode.removeChild()
            allsuspects[i].parentNode.removeChild(allsuspects[i]);
        }
    }
}

// create js file
function createJSFile(filename, filetype)
{
    var fileref = document.createElement('script');
    fileref.setAttribute("type", "text/javascript");
    fileref.setAttribute("src", filename);
    
    return fileref;
}

// replace js file
function replaceJSFile(oldfilename, newfilename)
{
    var targetelement = "script";
    var targetattr = "src";
    var allsuspects = document.getElementsByTagName(targetelement);
    
    // search backwards within nodelist for matching elements to remove
    for(var i = allsuspects.length; i>=0; i--)
    {
        if(allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename) != -1)
        {
            var newelement = createjscssfile(newfilename, filetype);
            allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]);
        }
    }
}


//////////////////////////////////////////////////////////////////////////////////////
// MODERATOR
//////////////////////////////////////////////////////////////////////////////////////
// google moderator response handler
function googleModeratorHandler(response)
{
    var items = "";
    for(var i=0; i<response.data.items.length; i++)
    {
        var item = response.data.items[i];
        
        // in production code, item.text should have the HTML entities escaped.
        items += item.text + "/";
    }
    
    getFlashMovie("gadget").sendToActionscript(response);
}
