// JavaScript allgemein
// Copyright (c) 2007 Harald Lathwesen, all rights reserved
//
// The Author grants you a non-exclusive, royalty free, license to use,
// modify and redistribute this software, provided that this copyright notice
// and license appear on all copies of the software.
// This software is provided "as is", without a warranty of any kind.
//
// Eine Sammlung von immer wieder benötigten Funktionen, die zum Zwecke der Platzeinsparung hier gesammelt werden
//
// Die Sammlunge enthält:
// liesCookie(name)
// runden(x)
// fmt00(v)
// getToken( d, wrI, token )
// getWRToken( d, wrI )
// enumData( d, wrI )
//
// Version 0.0.1 vom 18.12.07 von HL
// V0.0.2 vom 23.04.08 von HL: Funktion url_Test() eingefügt
// V0.0.3 vom 14.05.08 von HL: Funktion runden um parameter vz erweitert, um positives Vorzeichen ausgeben zu können
// V0.0.4 vom 22.07.08 von HL: in enumData von parseInt auf parseFloat
// V0.0.5 vom 01.08.10 von HL: Anpassung auf Solar-Log Web - Classic-2nd-Edition
//

var jetzt = new Date()
var Auszeit = new Date(jetzt.getTime() + (1000 * 60 * 60 * 24 * 365))
var keks;
var web20 = false;

// hier anpassen, wenn es nicht in Unterverzeichnis liegt, dann nächste Zeile verwenden.
// var pfad="./";
//var pfad="http://www.solarlog-home.de/das399igste/Daten/"
//var pfad="http://www.das399igste.kilu.de/Daten/"
//var pfad="http://home.arcor.de/das399igste/solar/das400igste/Daten/"
var pfad="http://das399igste.slexpert.de/Daten/"
//var pfad="http://das400igste.slexpert.de/Daten/"
//var pfad = "http://www.das400igste.kilu.de/Daten/";  //SL800 2 WR und Verbrauchszähler
// var pfad="http://www.solarlog-home.de/das399igste/SL100/"
// var pfad="http://www.slexpert.kilu.de/virtuelle/"
// var pfad="http://www.solarlog-home.de/das399igste/virtuelle/"
// var pfad="../Daten/";
//var pfad="http://www.solarlog-home.de/heckmann/"
//var pfad="http://www.harpisol.de/"


// nächste Zeile aktivieren, indem erste 2 Zeichen gelöscht werden, hier verwenden wenn alles im gleichen Verzeichnis liegt.
// var pfad=""

// Manz: für Testzwecke hier eine Datenquelle wo seit Mitte 2006 bereits Daten vorhanden sind, und Multilingual bereits angepaßt, wenn erwünscht dann in nächster Zeile die ersten 2 Schrägstriche löschen, fertig für Tests.
// var pfad="http://www.meine-photovoltaik-anlage.de/Daten/"  // mit Temp
// var pfad="http://www.stefan-bauer.net/daten/SolarLog/"
// var pfad="http://www.solarlog-home.de/pv-oyten/"  //2x MS
// var pfad="http://www.solarlog-home2.de/grenzstrom/"  // 2 WR
// var pfad="http://www.solarlog-home.de/helios/"  // 2x MS
// var pfad="http://www.solarlog-home3.de/wiesenmaier/"  //mit Temperatur
// var pfad="http://www.ist-schaumburg.homepage.t-online.de/solarlog/"  // 4 Jahre
// var pfad="http://www.solarlog-home3.de/alvesrode-solar/"  // 5 Jahre
// var pfad="http://www.solarlog-home3.de/eiglsperger/"  // seit Mai 2006 - 23 kW
// var pfad="http://www.solarlog-home.de/albsolar/Daten/"  // 2 WR
// var pfad="http://www.ostfriesenstrom.de/"  // mit Temperatur
// var pfad="http://www.steffenhofmann.de/"
// var pfad="http://www.solarlog-home.de/mainzer_sonnenstrom/"
// var pfad="http://www.solarlog-home.de/mainzer_sonnenstrom2/"
// var pfad="http://www.solarlog-home.de/paosolar/"  //Multistring
// var pfad="http://www.solarlog-home.de/rst-solar/" //seit 01/2008
// var pfad="http://www.sunforfree.de/sunnyreport/langenfeld/"  //Multistring
// var pfad="http://www.solarlog-home.de/da-dida/" // seit 1998, Daten ab 2001
// www.solarlog-home2.de/faust/expert.html // die EXTRA-Weiterleitung
// var pfad="http://www.gahn-kulmbach.de/solar/"  //seit 2004
// var pfad="http://www.solarlog-home.de/svari/" // 3x SB5000TL MS HC
// var pfad="http://www.stefan-bauer.net/daten/SolarLog/"  // 3 Strings
// var pfad="http://www.solarlog-home.de/nisius/"  //Multistring
// var pfad="http://www.solarlog-home.de/pv-kipp/"  //jeweils 5 WR mit 3 Strings, Strings und Temperatur
// var pfad="http://www.solarlog-home.de/uebelein/"  // 3 Strings
// var pfad="http://www.solarlog-home.de/pv-kipp-beckmann/" //jeweils 3 WR mit 3 Strings, 1 WR mit 2 Strings
// var pfad="http://www.solarlog-home.de/uebelein/"  // alter SB5000TL mit 3 String
//? var pfad="http://www.solarlog-home.de/pv-rettenbach/"  //11WR, 1x Multistring
// var pfad="http://www.falkenstein-viernheim.de/" // 3WR
// var pfad="http://www.solarlog-home.de/essencepur/"   // 3 WR
// var pfad="http://www.solarlog-home.de/rhein-solar/"  // seit 2/08 im Betrieb (Schaltjahr)
// var pfad="http://www.solarlog-home.de/ramascho/"  // 2WR 1x MS
// var pfad="http://www.solarlog-home.de/frisco/"
// var pfad="http://www.solarlog-home.de/high-light/"
// var pfad="http://www.solarlog-home2.de/sonneamstrom/"
// var pfad="http://www.solarlog-home.de/pvbe/"
// var pfad="http://www.solarlog-home.de/lucky/"
//var pfad="http://www.solarlog-home5.de/schos/"  //mit Anlagenerweiterung
// var pfad="http://www.solarlog-home3.eu/hanssonnig/"
//var pfad="http://www.solarlog-home.de/heckmann/"  // mit Anlagenerweiterung
// var pfad="http://www.solarlog-home6.de/wolfsolar-bucha"  // seit 3/10

//var pfad="http://www.solarlog-home6.de/solvester/"

//var pfad="http://www.solarlog-home5.de/saar_solar/" //SL500 mit S0 Einspeisezähler, MS
// var pfad="http://www.solarlog-home6.de/ballenstedt/"  // SL500 mit S0 als WR
// var pfad="http://www.solarlog-home.de/neumann-kassel/"  // SL800 mit WebBox, S0 Einspeisezähler, MS
// var pfad="http://www.solarlog-home.de/pvbe/"  // SL800 mit S0 Ertragszähler, MS  // Daten in /daten
// var pfad="http://www.solarlog-home.de/pvpilsach/"  //  SL800 mit Verbrauchszähler
//? var pfad="http://www.solarlog-home.de/petersolar/"  //SL800 mit 6 WR und S0 als Ertragszähler in Gruppen
// var pfad="http://www.solarlog-home.de/karwath/"  // SL800 mit S0 als Verbrauchszähler

//var pfad="http://home.solarlog-web.de/15.html"  // Solar-Log™ WEB „Classic 2nd Edition“



function liesCookie(name) {
	//alert("Cookie: "+name);
	keks = document.cookie;
	// Anfangsposition des Name=Wert-Paars suchen
	var posName = keks.indexOf("; " + name + "=");
	if (posName == -1) {
		// vielleicht war's der erste Name in der Liste?
		if (keks.indexOf(name + "=") == 0) {
			posName = 0;
		}
		// nein? dann abbrechen mit Rückgabewert null
		else {
			return null;
		}
	}
	// Anfangs- und Endposition des Krümelwerts suchen
	var wertAnfang = keks.indexOf("=", posName)+1;
	var wertEnde = keks.indexOf(";", posName+1);
	if (wertEnde == -1) {
		wertEnde = keks.length;
	}
	// Krümelwert auslesen und zurückgeben
	var wert = keks.substr(wertAnfang, wertEnde);
	//return unescape(wert);
	return wert;
}

function runden(x, n, vz) {
	if ( isNaN(x)) return "";
	if ( n == null ) n = 1;
	if ( vz == null ) vz = 0;
	var e = Math.pow(10, n);
	var k = (Math.round(x * e) / e).toString();
	if (k.indexOf('.') == -1) k += '.';
	k += e.toString().substr(1);
	k = k.substring(0, k.indexOf('.') + n+1);
	f = k;
	if (Lang == "DE") {
		var parts = k.split(".");
		f = parts[0]+","+parts[1];
	}
	if ( (vz == 1) && k > 0 ) {
		f = "+"+f;
	}
	if ( n == 0 ) f = f.substring(0, f.length-1);
	return f;
}

function fmt00(v) {
	if( v<10 ){
		return "0"+v;
	}
	else{
		return ""+v;
	}
}

function getToken( d, wrI, token ) {
	var pnt1, pnt2;
	pnt1 = 0;
	pnt2 = d.indexOf(token);

	while( wrI>0 ) {
		pnt1 = pnt2+1;
		pnt2 = d.indexOf(token,pnt1);
		wrI--;
		if( pnt2 <= 0 )
		break;
	}
	if( wrI>0 )
	return "";
	if( pnt2<=0 )
	return d.substr(pnt1);
	return d.substr(pnt1,pnt2-pnt1);
}

function getWRToken( d, wrI ) {
	return getToken( d, wrI, "|" );
}

function enumData( d, wrI ) {
	var data=new Array();
	var pnt1, pnt2, s=0;
	data[0] = getWRToken( d, 0 );
	d = getWRToken( d, wrI );
	pnt1=0;
	while( true ) {
		pnt2 = d.indexOf(";",pnt1);
		if( pnt2 <= 0 ) {
			data[1+s] = parseFloat( d.substr(pnt1),10 );
			break;
		}
		data[1+s] = parseInt( d.substr(pnt1, pnt2-pnt1),10 );
		pnt1 = pnt2+1;
		s++;
	}
	return data;
}
/*
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
return this.replace(/\s+$/,"");
}
*/
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function url_Testx(_url) {
	if ( _url.length > 0 ) {
		// check for obsolete 'index.html'
		nt = _url.indexOf('index.html');
		if ( nt != -1) {
			_url = _url.substring(0,nt);
		}
		// check for necessary 'http://'
		nt = _url.indexOf('http://');
		if ( nt != -1) {
			// 'http://' found
		}
		else {
			// adding 'http://' to url
			_url = "http://"+_url;
		}

		// check for %2F-Notation
		for (var i=0; i<5; i++) {
			nt = _url.indexOf('%2F');
			if ( nt != -1) {
				_url = _url.substring(0,nt)+"/"+_url.substring(nt+3);
			}
		}

		// check for necessary '/' at the end of the URL
		testLZ = _url.substring(_url.length-1);
		if (_url.substring(12,24) == "solarlog-web") { // neues Portal solarlog-web
			if (testLZ == "/") {
				// adding '/' to end of URL
				_url = _url.substring(0,_url.length-1);
			}
			_url = _url+"?file=";
			web20 = true;
		}
		else { // solarlog-home
			if (testLZ != "/") {
				// adding '/' to end of URL
				_url = _url+"/";
			}
		}
	} // end check _url.leng
	else {
		// standard processing, lokale Daten verwenden
		_url="";
	}
	return _url;
}

function url_Test(_url) {
	if ( _url.length > 0 ) {
		// check for obsolete 'index.html'
		nt = _url.indexOf('index.html')
		if ( nt != -1) {
			_url = _url.substring(0,nt);
		}
		nt = _url.indexOf('months.js')
		if ( nt != -1) {
			_url = _url.substring(0,nt);
		}
		// check for necessary 'http://'
		nt = _url.indexOf('http://')
		if ( nt != -1) {
			// 'http://' found
		}
		else {
			// adding 'http://' to url
			_url = "http://"+_url;
		}

		// check for %2F-Notation
		for (var i=0; i<5; i++) {
			nt = _url.indexOf('%2F');
			if ( nt != -1) {
				_url = _url.substring(0,nt)+"/"+_url.substring(nt+3);
			}
		}
		// check for %252F-Notation
		for (var i=0; i<5; i++) {
			nt = _url.indexOf('%252F');
			if ( nt != -1) {
				_url = _url.substring(0,nt)+"/"+_url.substring(nt+5);
			}
		}

		// check for necessary '/' at the end of the URL
		nt = _url.indexOf('solarlog-web')
			if ( nt != -1) {
				testLZ = _url.substring(_url.length-1)
				if (testLZ == "/") {
					// adding '/' to end of URL
					_url = _url.substring(0,_url.length-1)
				}
				_url = _url+"?file=";
				web20 = true;
			}
			else { // solarlog-home
				testLZ = _url[_url.length-1]
				//alert("326 "+testLZ)
				if (testLZ != "/") {
					// adding '/' to end of URL
					_url = _url+"/"
				}
			}
		/*
		testLZ = _url.substring(_url.length-1)
		if (_url.substring(12,24) == "solarlog-web") { // neues Portal solarlog-web
			if (testLZ == "/") {
				// adding '/' to end of URL
				_url = _url.substring(0,_url.length-1)
			}
			_url = _url+"?file=";
			web20 = true;
		}
		else { // solarlog-home
			if (testLZ != "/") {
				// adding '/' to end of URL
				_url = _url+"/"
			}
		}
		*/
	} // end check _url.leng
	else {
		// standard processing, lokale Daten verwenden
		_url="";
	}
	//alert("#354 "+_url);
	return _url;
}

/*
function daten_in(_daten) {
if ( _daten.length > 0 ) {
if (web20) {
_daten += "&nocache";
}
else {
var jetzt = new Date();
_daten += "?nocache&time="+jetzt.getMilliseconds();
//_daten += "?nocache";
}
document.write("<script type='text/JavaScript' src='"+_daten+"'><\/script>");
}
}
*/

