var doc
function load() {
    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 = 0; 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];
            var mainCurrCookie = readCookie('mainCurr');
            document.getElementById("currency").value = mainCurrCookie;
            setTimeout(getRates,500); 
        }
        loadXML('CEBrates.xml');
    }
    else {
        alert('ActiveX required for this feature');
        return;
    }
    var fromCurrCookie = readCookie('from');
    var toCurrCookie = readCookie('to');
    document.getElementById("fromCurrency").value= fromCurrCookie;
    document.getElementById("toCurrency").value= toCurrCookie;
    setTimeout(setToFrom,500)
}   
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];
        var mainCurrCookie = readCookie('mainCurr');
        document.getElementById("currency").value = mainCurrCookie;
        setTimeout(getRates,500); 
};
var rateObject = {};
function getRates() {
    var curr= document.getElementById("currency").value;
    createCookie('mainCurr',curr,30);
    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;
};
function setToFrom() {
    var fromCurrRate
    var fromCurr= document.getElementById("fromCurrency").value
    createCookie('from',fromCurr,30);
    if (fromCurr == "EUR") {
        fromCurrRate = 1;
    }
    else {
        fromCurrRate = rateObject[fromCurr];
    }    
    var toCurr= document.getElementById("toCurrency").value
    createCookie('to',toCurr,30)
    if (toCurr == "EUR") {
        toCurrRate = 1;
    }
    else {
        toCurrRate = rateObject[toCurr];
    }
    var amount = document.getElementById("from").value
    var toFromCurrRate = amount * toCurrRate / fromCurrRate;
    var toFromCurrRateFix = toFromCurrRate.toFixed(3)
    var toCurrStatement= amount + " " + fromCurr + " = " + toFromCurrRateFix + " " + toCurr ; 
    document.getElementById("to").value=toCurrStatement;       
}
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
};
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
};
