function fAsynchronousGet(tag)
{
	var oXMLHttpRequest = new XMLHttpRequest;
	oXMLHttpRequest.open("GET", "newphotoclock.php?tag=" + tag + "&json", true);
	oXMLHttpRequest.onreadystatechange = function()
	{
		if (this.readyState == XMLHttpRequest.DONE)
		{
			handleJson(this.responseText);
		}
	}
	oXMLHttpRequest.send(null);
}

var serverOffset = 0;
function handleJson(json)
{
	var obj = jsonParse(json);
	handleRow(obj['tag'], obj['data']);
/*
	for(x in obj['data'])
	{
		handleRow(x, obj[x]);
	}
*/
	serverOffset = (new Date().getTime()/1000) - obj['time'];
}

function handleRow(key, val)
{
	var el = document.getElementById(key);
	if(el != null)
	{
		el.innerHTML = val;
/*
		var gcount = 0;
		for(k in val['graph']) gcount++;
		var gel = el.childNodes[0].childNodes[0];
		gel.innerHTML = "";
		for(k in val['graph']) addBar(gel, val['graph'][k]['percent'], gcount, val['graph'][k]['selected']);
		for(k in val['boxes'])
		{
			if(val['boxes'][k]['type'] == 'text')
			{
				var bel = el.childNodes[0].childNodes[parseInt(k)+1];
				bel.innerHTML = val['boxes'][k]['value'];
			}
			else
			{
				var bel = el.childNodes[0].childNodes[parseInt(k)+1];
				if(bel != null)
					addImage(bel,val['boxes'][k]['value']);
			}
		}
*/
	}
}

function outputObj(obj)
{
	if(typeof(obj) == 'object')
	{
		var ret = "";
		for(x in obj)
		{
			ret += x;
			ret += "=";
			ret += outputObj(obj[x]);
			ret += ",";
		}
		return "(" + ret + ")";
	}
	else
	{
		return obj;
	}
}

function addImage(container, val)
{
	container.innerHTML = "";
	var newa = document.createElement('a');
	newa.setAttribute('href', val['url']);
	newa.setAttribute('title', val['title']);
	newa.setAttribute('style', 'float:left; font-size: 8px;');
	var newimg = document.createElement('img');
	newimg.setAttribute('src', val['src']);
	newimg.setAttribute('alt', val['title']);
	newimg.setAttribute('onmouseover', 'highlight_flickr(\'' + val['tags'] + '\')');
	newimg.setAttribute('onmouseout', 'unhighlight_flickr(\'' + val['tags'] + '\')');
	newa.appendChild(newimg);
	container.appendChild(newa);
}

function addBar(container, percent, count, selected)
{
	var newdiv = document.createElement('div');
	var color = "cornflowerblue";
	if(selected)
		color = "blue";
	newdiv.setAttribute('style','background-color:' + color + '; overflow:hidden; clear:both; display:inline; float:right; width:' + percent*(50/100) + 'px; height:' + (50/count) + 'px;');
	newdiv.innerHTML = "&nbsp";
	container.appendChild(newdiv);
}
var loadedDate = new Date();
fAsynchronousGet('wday');
fAsynchronousGet('day');
fAsynchronousGet('month');
fAsynchronousGet('year');
fAsynchronousGet('date');
setInterval("updateTime()", 500);

function updateTime()
{
	var currentTime = new Date();
	currentTime.setTime(currentTime.getTime() + serverOffset);
	var time = document.getElementById('date');
	var minutes = currentTime.getMinutes();
	if(minutes < 10)
		minutes = "0" + minutes;
	else
		minutes += "";
	//alert(minutes);
	if(time.childNodes[0].childNodes[3].innerHTML == ":")
		time.childNodes[0].childNodes[3].innerHTML = "";
	else
		time.childNodes[0].childNodes[3].innerHTML = ":";
	time.childNodes[0].childNodes[4].innerHTML = minutes.substring(0,1);
	time.childNodes[0].childNodes[5].innerHTML = minutes.substring(1,2);
	if(loadedDate.getHours() != currentTime.getHours())
	{
		fAsynchronousGet('date');
	}
	if(loadedDate.getDate() != currentTime.getDate())
	{
		fAsynchronousGet('wday');
		fAsynchronousGet('day');
	}
	if(loadedDate.getMonth() != currentTime.getMonth())
	{
		fAsynchronousGet('month');
	}
	if(loadedDate.getYear() != currentTime.getYear())
	{
		fAsynchronousGet('year');
	}
	loadedDate = currentTime;
}
