/**
* Installation javascript for Gallery
*
* $Id$
*/
function display_error(parentElt, text)
{
var div = document.createElement('div');
div.setAttribute('id', 'step2');
div.style.display = 'none';
div.style.position = 'relative';
div.innerHTML = '\
'+text+'\
';
parentElt.appendChild(div);
Effect.Appear('div')
}
function open_http_request()
{
var http_request = false;
if ( window.XMLHttpRequest )
{
// Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if ( http_request.overrideMimeType)
http_request.overrideMimeType('text/xml');
}
else if ( windows.ActiveXObject )
{
// IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch ( e ) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch ( e ) {}
}
}
return http_request;
}
function begin_download()
{
var pane = document.getElementById('pane');
Effect.SlideUp('step1');
var step2 = document.createElement('div');
step2.setAttribute('id', 'step2');
step2.style.display = 'none';
step2.style.position = 'relative';
step2.innerHTML = '\
\
\
\
SiteComponents is downloading Gallery. Please wait.
\
\
';
pane.appendChild(step2);
Effect.Appear('step2')
var http_request = open_http_request();
if ( !http_request )
{
display_error("Could not initiate download request. Please install manually.");
return;
}
var statusTimer;
http_request.onreadystatechange = function()
{
try {
if ( http_request.readyState == 4 )
{
if ( http_request.status == 200 )
{
var xmldoc = http_request.responseXML;
var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data;
var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data;
if ( resultCode == 0 )
{
// Success
clearTimeout(statusTimer);
begin_extraction();
return;
}
else
{
clearTimeout(statusTimer);
display_error(resultString);
return;
}
}
else
{
display_error("There was a problem initiating the download request. Please install manually.");
return;
}
}
} catch ( e ) {
display_error("There was a problem initiating the download request. Please install manually.");
}
};
http_request.open('GET', "?setup&command=download", true);
http_request.send(null);
statusTimer = setTimeout(update_download_status, 1000, document.getElementById('status'));
}
function update_download_status(elt)
{
var http_request = open_http_request();
if ( !http_request )
{
setTimeout(update_download_status, 1000, elt);
return;
}
http_request.onreadystatechange = function()
{
try {
if ( http_request.readyState == 4 )
{
if ( http_request.status == 200 )
{
var xmldoc = http_request.responseXML;
var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data;
var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data;
if ( resultCode == 0 )
{
// Success
elt.innerHTML = (resultString / 1000) + " kB";
}
}
}
} catch ( e ) { }
setTimeout(update_download_status, 1000, elt);
return;
};
http_request.open('GET', "?setup&command=get_download_status", true);
http_request.send(null);
}
function begin_extraction()
{
var pane = document.getElementById('pane');
Effect.SlideUp('step2');
var step3 = document.createElement('div');
step3.setAttribute('id', 'step3');
step3.style.display = 'none';
step3.style.position = 'relative';
step3.innerHTML = '\
\
\
\
Please wait while SiteComponents extracts the Gallery package.
\
';
pane.appendChild(step3);
Effect.Appear('step3')
var http_request = open_http_request();
if ( !http_request )
{
display_error("Could not initiate extraction request. Please install manually.");
return;
}
http_request.onreadystatechange = function()
{
try {
if ( http_request.readyState == 4 )
{
if ( http_request.status == 200 )
{
var xmldoc = http_request.responseXML;
var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data;
var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data;
if ( resultCode == 0 )
{
// Success
show_installation();
return;
}
else
{
display_error(resultString);
return;
}
}
else
{
display_error("There was a problem initiating the extraction request. Please install manually.");
return;
}
}
} catch ( e ) {
display_error("There was a problem initiating the extraction request. Please install manually.");
}
};
http_request.open('GET', "?setup&command=extract", true);
http_request.send(null);
}
function show_installation()
{
var pane = document.getElementById('pane');
Effect.SlideUp('step3');
var step4 = document.createElement('div');
step4.setAttribute('id', 'step4');
step4.style.display = 'none';
step4.style.position = 'relative';
step4.innerHTML = '\
Initial installation complete.\
Please visit the Gallery setup page to proceed.\
';
pane.appendChild(step4);
Effect.Appear('step4')
}