/*
 * Javascript functions used by PHP Icecast Player.
 *
 * ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is PHP Icecast Player.
 *
 * The Initial Developer of the Original Code is Vincent Tabard
 * <vincent@balbinus.net>.
 * Portions created by the Initial Developer are Copyright (C) 2006
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK *****
 */

// Initialisation
function init()
{
	refreshBottom("plugins/IcecastStats/web/updateIceStats/pytagor", "bottom", 60000);
	refreshConducteur("plugins/TitresOnAir/web/updateOnAir", "onAirContent", 30000);
}

// Afficher / Cacher
function hidepage(page)
{
	document.getElementById(page).style.display = 'none';
}

function showpage(page)
{
	hideall();
	document.getElementById(page).style.display = 'block';
}

function hideall()
{
	hidepage('aide');
	hidepage('onAir');
}

// AHAH
function refreshBottom(url, target, delay)
{
	if (window.XMLHttpRequest)
	{
		reqm = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		reqm = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (reqm != undefined)
	{
		reqm.onreadystatechange = function() {refreshBottomDone(url, target, delay);};
		reqm.open("GET", url, true);
		reqm.send("");
	}
}  

function refreshBottomDone(url, target, delay)
{
	if (reqm.readyState == 4) // only if req is "loaded"
	{
		if (reqm.status == 200) // only if "OK"
		{
			if(target != undefined)
			{
				document.getElementById(target).innerHTML = reqm.responseText;
			}
		}
		else
		{
			if(target != undefined)
			{
				document.getElementById(target).innerHTML="ahah error:\n"+reqm.statusText;
			}
		}
		if (delay != undefined)
		{
			setTimeout("refreshBottom('"+url+"','"+target+"',"+delay+");", delay); // resubmit after delay
			// server should ALSO delay before responding
		}
	}
}

// AHAH
function refreshConducteur(url, target, delay)
{
	if (window.XMLHttpRequest)
	{
		reqc = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		reqc = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (reqc != undefined)
	{
		reqc.onreadystatechange = function() {refreshConducteurDone(url, target, delay);};
		reqc.open("GET", url, true);
		reqc.send("");
	}
}  

function refreshConducteurDone(url, target, delay)
{
	if (reqc.readyState == 4) // only if req is "loaded"
	{
		if (reqc.status == 200) // only if "OK"
		{
			if(target != undefined)
			{
				document.getElementById(target).innerHTML = reqc.responseText;
			}
		}
		else
		{
			if(target != undefined)
			{
				document.getElementById(target).innerHTML="ahah error:\n"+reqc.statusText;
			}
		}
		if (delay != undefined)
		{
			setTimeout("refreshConducteur('"+url+"','"+target+"',"+delay+");", delay); // resubmit after delay
			// server should ALSO delay before responding
		}
	}
}

