/**
 * @author Christian Pippert
 * @copyright SMA Solar Technologie AG
 * @version 1.4
 */

var id
var request = null;
var locallang = new Array();

if(getURLParam("culture")=="de-de"){
	locallang = de_de;
}
else if(getURLParam("culture")=="en-gb"){
	locallang = en_gb;
}
else if(getURLParam("culture")=="en-us"){
	locallang = en_us;
}
else{
	locallang = defaultLang;
}

function triggerXML(dom){
	document.getElementById("gestern").innerHTML = locallang['TabGestern'];
	document.getElementById("aktuell").innerHTML = locallang['TabAktuell'];
	
	if (this.tab == 1) {
		
		document.getElementById("kg").innerHTML = "lb.";
				
		//Anlagen
		var day = dom.getElementsByTagName("day");
		//alert (typeof year[0].attributes[0].nodeValue);
		var absoluteAsNumber = parseInt(day[0].attributes[1].nodeValue);
		var differenceAsNumber = parseInt(day[0].attributes[2].nodeValue);
		var dayAsNumber = absoluteAsNumber - differenceAsNumber;
		document.getElementById("plantValue").innerHTML = number_format(dayAsNumber, 0, locallang['dec_point'], locallang['thousands_sep']);
		document.getElementById("plantText").innerHTML = locallang['TabGesternAnlagen'];
		
		//Energie
		var energy = dom.getElementsByTagName("day");
		var energyAsNumber = parseFloat(energy[1].attributes[2].nodeValue);
		document.getElementById("energieValue").innerHTML = convertNumber(energyAsNumber);
		document.getElementById("energieText").innerHTML = locallang['TabGesternEnergie'];
		document.getElementById("energieUnit").innerHTML = "(" + einheit(energyAsNumber,"energie") + ")";
		
		//CO2 Vermeidung
		var vermeidung = calcCO2(energyAsNumber);
		document.getElementById("carbonValue").innerHTML = convertNumber(vermeidung);
		document.getElementById("carbonText").innerHTML = locallang['TabGesternCo2'];
		document.getElementById("carbonUnit").innerHTML = "(" + einheit(vermeidung,"gewichtKG") + ")";
	}
	else {
		document.getElementById("kg").innerHTML = "lb.";
		
		//Anlagen
		var year = dom.getElementsByTagName("day");
		var yearAsNumber = parseInt(year[0].attributes[1].nodeValue);
		document.getElementById("plantValue").innerHTML = number_format(yearAsNumber, 0, locallang['dec_point'], locallang['thousands_sep']);
		document.getElementById("plantText").innerHTML = locallang['TabAktuellAnlagen'];
		
		//Energie
		var energy = dom.getElementsByTagName("year");
		var energyAsNumber = parseFloat(energy[1].attributes[1].nodeValue);
		document.getElementById("energieValue").innerHTML = convertNumber(energyAsNumber);
		document.getElementById("energieText").innerHTML = locallang['TabAktuellEnergie'];
		document.getElementById("energieUnit").innerHTML = "(" + einheit(energyAsNumber,"energie") + ")";
		
		//CO2 Vermeidung
		var vermeidung = calcCO2(energyAsNumber);
		document.getElementById("carbonValue").innerHTML = convertNumber(vermeidung);
		document.getElementById("carbonText").innerHTML = locallang['TabAktuellCo2'];
		document.getElementById("carbonUnit").innerHTML = "(" + einheit(vermeidung,"gewichtKG") + ")";
	}
	renderShadow();  
}

window.onload = function(){
	//createRequest("lib/portalwidget/werteLocal2.xml",2);
	createRequest("lib/portalwidget/ajax-proxy.php?ws_path=services/productiondata/100/australienschools-statistic/"+getCurrentDate(),2);
	document.getElementById("kg").innerHTML = "lb.";
	document.getElementById("titleDe").id = locallang['Header'];
	switchVar =1;
}
function changeTab(tab){
	//createRequest("lib/portalwidget/werteLocal2.xml",tab);
	createRequest("lib/portalwidget/ajax-proxy.php?ws_path=services/productiondata/100/australienschools-statistic/"+getCurrentDate(), tab);
	switchVar =1;
}

/********************************************************************************************************
 * 
 * Hilfsfunktionen
 */
function getURLParam(strParamName){
	var strReturn = "";
	var strHref = window.location.href;

	if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
		var aQueryString = strQueryString.split("&");
	
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
			if ( aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
		}
	}
	return strReturn;
}

function getCurrentDate(){
	var datum = new Date();
	var monatsZahl = datum.getMonth();
	var monate = new Array("01", "02", "03", "04", "05", "06","07", "08", "09", "10", "11", "12");
	var monat = monate[monatsZahl];
	var year = datum.getFullYear();
	var day = datum.getDate();
	if(day < 10) day = "0" + day;
	
	return year+"-"+monat+"-"+day;
}

function convertNumber(a) {
    var c = 0;
	//alert (typeof a);
    while (a>=1000) {
        c++;
        a = a/1000;
		//alert (a+" "+unim[c]);
    }
    return number_format(a,2,locallang['dec_point'], locallang['thousands_sep']);
}

function einheit(a,einheiten) {
	if(einheiten=="energie") var unim = new Array("MWh","GWh","TWh");
	else if(einheiten=="gewichtKG") var unim = new Array("KG","t","Kt","Mt","Gt");
	else if(einheiten=="gewichtLB") var unim = new Array("lb.","Thousand lb.","Million lb.","Billion lb.", "Trillion lb.");
	else var unim = new Array("Error","Error","Error","Error");
    var c = 0;
    while (a>=1000) {
		c++;
		a = a / 1000;
    }
    return unim[c];
}

function number_format( number, decimals, dec_point, thousands_sep ) { 
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;
 
    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = Math.abs(n).toFixed(prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
 
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    return s;
}
/**
 * Funktion berechnet die CO2 Vermeidung 
 * @param {Object} MWh
 * @return (float) vermeidung in KG
 */
function calcCO2(MWh){
	//var KWh=MWh/1000;
	//var vermeidung = (MWh*1000)/0.7;
	var vermeidung = MWh*700;
	return vermeidung;
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}

function changeUnit(unit){
	var tempValueCo2 = document.getElementById("carbonValue").innerHTML;
	var tempUnitCo2	= document.getElementById("carbonUnit").innerHTML;
	var gewichtseinheit;
	
	tempValueCo2 = Number(str_replace(",",".",tempValueCo2));
	if(tempUnitCo2=="(Gt)" || tempUnitCo2=="(Trillion lb.)" ) tempValueCo2=tempValueCo2*1000000000000;
	else if(tempUnitCo2=="(Mt)" || tempUnitCo2=="(Billion lb.)" ) tempValueCo2=tempValueCo2*1000000000;
	else if(tempUnitCo2=="(Kt)" || tempUnitCo2=="(Million lb.)")tempValueCo2=tempValueCo2*1000000;
	else if(tempUnitCo2=="(t)" || tempUnitCo2=="(Thousand lb.)" ) tempValueCo2=tempValueCo2*1000;
	else if(tempUnitCo2=="(KG)" || tempUnitCo2=="(lb.)" ) tempValueCo2=tempValueCo2*1;
	else alert ("Keine gueltige Einheit! " +tempUnitCo2);
	
	//lb
	if(unit==1){
		tempValueCo2 = tempValueCo2*2.2046
		//alert("Ergebnis"+tempValueCo2);
		gewichtseinheit = "gewichtLB";
		switchVar=0;
		document.getElementById("kg").innerHTML = "kg";
		//alert("unit = 1 "+tempValueCo2+ " TYPE " +typeof tempValueCo2);
	}
	//kg
	else if(unit==0){
		tempValueCo2 = tempValueCo2*0.45359237
		gewichtseinheit = "gewichtKG";
		switchVar=1;
		document.getElementById("kg").innerHTML = "lb.";
		//alert("unit = 0 "+tempValueCo2+ " TYPE " +typeof tempValueCo2);
	}
	//Fehler
	else{
		tempValueCo2 = 0;
		alert("Fehler: Keine Einheit angegeben");
	}
	document.getElementById("carbonValue").innerHTML = convertNumber(tempValueCo2);
	document.getElementById("carbonText").innerHTML = locallang['TabAktuellCo2'];
	document.getElementById("carbonUnit").innerHTML = "(" + einheit(tempValueCo2,gewichtseinheit) + ")";
	renderShadow(); 
}

/********************************************************************************************************
 * 
 * XMLHttpRequest - Funktionen
 */

function createRequest(file,tab){
	this.tab = tab;
	try {
		request = new XMLHttpRequest();
	}catch(ex){
		try {
			request = new ActiveXObject("MSXML2.XMLHTTP");
		}catch(ex){
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	request.onreadystatechange = complete;
	request.open("GET", file, true);
	request.send(null);
}

function complete(){
	switch(request.readyState){
		case 0:
		case 1:
		case 2:
		case 3:
			break;
		case 4:
			// Achtung hier das XML nehmen
			triggerXML(request.responseXML);
			return true;
	}
	return false;
}