
//Binary Clock
var grayimg = new Image();
grayimg.src = "binclock_gray.gif";
var eightimg = new Image();
eightimg.src = "binclock_8.jpg";
var fourimg = new Image();
fourimg.src = "binclock_4.jpg";
var twoimg = new Image();
twoimg.src = "binclock_2.jpg";
var oneimg = new Image();
oneimg.src = "binclock_1.jpg";

function timeIt() {
	timenow = new Date();
	liteup("h1", Math.floor(timenow.getHours() / 10));
	liteup("h2", timenow.getHours() % 10);
	liteup("m1", Math.floor(timenow.getMinutes() / 10));
	liteup("m2", timenow.getMinutes() % 10);
	liteup("s1", Math.floor(timenow.getSeconds() / 10));
	liteup("s2", timenow.getSeconds() % 10);
	setTimeout("timeIt()", 1000);
}

function getWeather(lat,lng,town) {
	var script = document.createElement('script');
	document.body.appendChild(script);
	script.src = 'http://' + geonamesAddress + '/findNearByWeatherJSON?lat=' + lat + '&lng=' + lng + '&callback=loadJSON' + town   
}  
function liteup(col, num){
	if (num % 2 == 1)
		eval("document." + col + "1.src = oneimg.src");
	else
		eval("document." + col + "1.src = grayimg.src");
	if (num == 2 || num == 3 ||num == 6 || num == 7)
		eval("document." + col + "2.src = twoimg.src");
	else
		eval("document." + col + "2.src = grayimg.src");
	if (num <= 7 && num >= 4)
		eval("document." + col + "4.src = fourimg.src");
	else
		eval("document." + col + "4.src = grayimg.src");
	if (num >= 8)
		eval("document." + col + "8.src = eightimg.src");
	else
		eval("document." + col + "8.src = grayimg.src");
	return true;
}

function loadJSONWien(result) {
	var tempCent= result.weatherObservation.temperature;
	var tempFaren= tempCent * 1.8+32;  
	var windspeedKm= result.weatherObservation.windSpeed;
	var windspeedMile= windspeedKm * 5/8
	var windspeedMileFix = windspeedMile.toFixed(2);
	var clouds = result.weatherObservation.clouds;
	if(clouds=="n/a") {
		clouds = "clear skies";
	}    
	document.getElementById("Wclouds").value= clouds;
	document.getElementById("WtempC").value= tempCent + "°C";
	document.getElementById("WtempF").value= tempFaren + "°F";
	document.getElementById("WwindspeedK").value= windspeedKm + "km/h";
	document.getElementById("WwindspeedM").value= windspeedMileFix + " mph"; 
	document.getElementById("Whumidity").value= result.weatherObservation.humidity + "%";
	document.getElementById("Wstation").value= result.weatherObservation.stationName;
}
function loadJSONNottm(result) {
	var tempCent= result.weatherObservation.temperature;
	var tempFaren= tempCent * 1.8+32;  
	var windspeedKm= result.weatherObservation.windSpeed;
	var windspeedMile= windspeedKm * 5/8
	var windspeedMileFix = windspeedMile.toFixed(2);
	var clouds = result.weatherObservation.clouds;
	if(clouds=="n/a") {
		clouds = "clear skies";
	}    
	document.getElementById("Nclouds").value= clouds;
	document.getElementById("NtempC").value= tempCent + "°C";
	document.getElementById("NtempF").value= tempFaren + "°F";
	document.getElementById("NwindspeedK").value= windspeedKm + "km/h";
	document.getElementById("NwindspeedM").value= windspeedMileFix + " mph"; 
	document.getElementById("Nhumidity").value= result.weatherObservation.humidity + "%";
	document.getElementById("Nstation").value= result.weatherObservation.stationName;
}
function createTableMoz() {
	var cubes = doc.getElementsByTagNameNS('http://www.ecb.int/vocabulary/2002-08-01/eurofxref','Cube');
	var dateRate = cubes[1].getAttribute('time'); 
	var dateRateSplit = dateRate.split('-');
	for (var i = 2; i < cubes.length; i++){
		var currency = cubes[i].getAttribute('currency');
		var rate = cubes[i].getAttribute('rate');
		rateObject[currency] = rate;
	}
	document.getElementById('boldStuff').innerHTML = dateRateSplit[2] + "." + dateRateSplit[1] + "." + dateRateSplit[0];
	document.getElementById("currency").value = "GBP";
	getRates(); 
};
var rateObject = {};
function getRates() {
	var curr= document.getElementById("currency").value;
	var currRate = rateObject[curr]; 
	var currStatement= "1 EUR = " + currRate + " " + curr ; 
	document.getElementById("rate").value=currStatement;
	var currRev=1/currRate;
	currRevFix=currRev.toFixed(5);
	var currRevStatement= "1 " + curr +"= " + currRevFix + " EUR";
	document.getElementById("rateRev").value=currRevStatement;
	timeIt();
}
function load(){
	calcRetire();
	for(i=0;i<2;i++) {
		if(i==0) {
			getWeather(48.206,16.370,"Wien");
		}
		if(i==1) {
			getWeather(52.952,-1.148,"Nottm");
		}
	}
	if (document.implementation &&document.implementation.createDocument){
		doc = document.implementation.createDocument("", "", null);
		doc.load('CEBrates.xml');
		doc.onload = createTableMoz;
	}
	else if (window.ActiveXObject){
		var doc1 = new ActiveXObject('Msxml2.DOMDocument.3.0');
		function loadXML(xmlFile){
			doc1.async=false;
			doc1.load(xmlFile);
			doc1.setProperty("SelectionLanguage", "XPath");
			var nsMappings = "xmlns:gesmes='http://www.gesmes.org/xml/2002-08-01' " + "xmlns:default='http://www.ecb.int/vocabulary/2002-08-01/eurofxref'";
			doc1.setProperty("SelectionNamespaces", nsMappings);
			var xpath = "/gesmes:Envelope/default:Cube/default:Cube";
			var cubeMain = doc1.selectNodes(xpath)
			var dateRate = cubeMain[0].getAttribute('time');
			var dateRateSplit = dateRate.split('-');            
			xpath = "/gesmes:Envelope/default:Cube/default:Cube/default:Cube";
			var cubes = doc1.selectNodes(xpath);
			for (var i = 2; i < cubes.length; i++){
				var currency = cubes[i].getAttribute('currency');
				var rate = cubes[i].getAttribute('rate');
				rateObject[currency] = rate;
			}
			document.getElementById('boldStuff').innerHTML = dateRateSplit[2] + "." + dateRateSplit[1] + "." + dateRateSplit[0];
			document.getElementById("currency").value = "GBP";
			getRates(); 
		}
		loadXML('CEBrates.xml');
	}
	else {
		alert('ActiveX required for this feature');
		return;
	}
};
function calcRetire() {
	var today = new Date(),
	partFree = new Date(),
	free = new Date(),
	diff;
	partFree.setMonth(9);
	partFree.setDate(1);
	free.setYear(2012);
	free.setMonth(0);
	free.setDate(1);
	console.log(partFree.getTime());
	if (today.getTime() < partFree.getTime()) {
		partFreeDiff = partFree.getTime() - today.getTime();
		partFreeDiff = Math.floor(partFreeDiff / (1000 * 60 * 60 * 24));
		document.getElementById("eightHour").value = partFreeDiff + " Days";
		freeDiff = free.getTime() - today.getTime();
		freeDiff = Math.floor(freeDiff / (1000 * 60 * 60 * 24));
		document.getElementById("freeMan").value = freeDiff + " Days";		
	}
	else if (today.getTime() < free.getTime()){
		freeDiff = partFree.getTime() - today.getTime();
		freeDiff = Math.floor(freeDiff / (1000 * 60 * 60 * 24));
		document.getElementById("eightHour").value = "0 Days";
		document.getElementById("freeMan").value = freeDiff + " Days";
	}
	else {
		document.getElementById("eightHour").value = "0 Days";
		document.getElementById("freeMan").value = "0 Days";
	}
	return;
}

