/* -----------------------------------------------------------------------------
   GLOBAL VARIABLES & OBJECTS
----------------------------------------------------------------------------- */
var d = document;
var w = window;
var is_public = 0;
var s = new CXMLHttpRequest();
var hostname = window.location.hostname;
var urlparams = window.location.search;
var popup;
var step=0;
var dtree=null;
var dtree_all = 1;
var ajax_loader = '<img src="img/icons/ajax_loader.gif" width="42" height="42" alt="Loading data..." />';
var ajax_loader2 = '<img src="img/icons/ajax_loader2.gif" width="42" height="42" alt="Saving data..." />';
var mw_cache = new Array();
var mw_checked = new Array();
var mw_nodes = new Array();
var mw_dates = new Array();
var total_checked = 0;
var shft=0;
var strg=0;
var last_checked=null;
var last_unchecked=null;
var mark = new Array('filename','email','email2','passwort','passwort2','firma','vorname','nachname','strasse','plz','ort','telefon','fax','handy');
var remember = 1;
var remember_minutes = 1440;
var file_start_date;
var file_end_date;
var persistant = new CookieUtil('WDBSESSION',remember_minutes,'/');
var cookie_hashkey = persistant.getSubValue('hk');
var cookie_uid = persistant.getSubValue('uid');
var zurueck = 'Zurück';
var phk='';
if (cookie_uid==99999) {
  zurueck = 'Zurück ('+cookie_hashkey+')';
  phk = '('+cookie_hashkey+')';
}

/* -----------------------------------------------------------------------------
   EVENTS
----------------------------------------------------------------------------- */
w.onload = call_step
//w.onunload = reset
d.onclick = MCLE
d.onselectstart = MSSE
d.onkeydown = KODE
d.onkeyup = KOUE

function MCLE(e) {
  if (!e) e = window.event;
  e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
  if (shft||strg) return false; else return;
}

function MSSE(e) {
  if (!e) e = window.event; 
  var targ;
  if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) targ = targ.parentNode;
	var id = targ.id;
	var found = 0;
	for (var i=0;i<mark.length;i++) {
	   if (id == mark[i]) found++;
	}
	if (!found) {
    return false;
  }
  else {
    return true;
  }
}

function KODE(e) {
  if (!e) e = window.event; 
  var targ;
  if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) targ = targ.parentNode;
	var code;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if (code ==16) {
    shft = 1;
    if (d.getElementById('shift')) d.getElementById('shift').style.backgroundPosition = '0 -13px';
  }
	else if (code ==17) strg = 1;
  return true;
}

function KOUE(e) {
  if (!e) e = window.event; 
  var targ;
  if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) targ = targ.parentNode;
  var code;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if (code ==16) {
    shft = 0;
    if (d.getElementById('shift')) d.getElementById('shift').style.backgroundPosition = '0 0';
  }
	else if (code ==17) strg = 0;
	else if (targ.id == 'filename' && code == 13) add_to_cart();
	return true;
}

/* -----------------------------------------------------------------------------
   POPUP WINDOW
----------------------------------------------------------------------------- */
function openWDB(params) {
  var w = 920;
  var h = 640;
  h = h - 20; 
  var x=0, y=0, parameter="";
  if (w < screen.availWidth || h < screen.availHeight) {
     x = (screen.availWidth - w - 12) / 2;
     y = (screen.availHeight - h - 104) / 2;
     if (window.opera) y = 0;
     if (x<0 || y<0) { x=0; y=0; }
     else parameter = "width=" + w + ",height=" + h + ",";
  }
  parameter += "left=" + x + ",top=" + y;
  var url='';
  if(window.location.hostname=='www.fgg-weser.local') {
    url = 'index.php';
  }
  else {
    url = 'http://datenbank.fgg-weser.de/weserdatenbank/index.php';
  }
  if (params) url += '?'+params;
  if (typeof(popup)!='undefined') {
    if (!popup.closed) {
      popup.location.replace(url);
      popup.focus();
      return false;
    }
  }
  popup = window.open(url,'Weserdatenbank',parameter+",scrollbars=no,menubar=no,location=no,toolbar=no,status=no,resizable=yes");
  popup.focus();
  return false;
}

/* -----------------------------------------------------------------------------
   DTREE CALLER
----------------------------------------------------------------------------- */
function dtree_caller() {
  if (dtree_all == 1) {
    dtree.closeAll();
    dtree_all = 0;
  }
  else {
    dtree.openAll();
    dtree_all = 1;
  }
}

/* -----------------------------------------------------------------------------
   CALL STEP
----------------------------------------------------------------------------- */
function call_step() {
   if (typeof(weserdb)=='undefined') weserdb=0;
   if (weserdb) {
    var ok = window.location.href.match(/index.php/g);
    if (!ok) return true;
    var hashkey = storage.get('hashkey');
    if (!hashkey && remember) {
      hashkey = parseInt(cookie_hashkey);
      if (hashkey) {
        storage.set('hashkey',hashkey);
      }
    }
    if (!hashkey) {
      hashkey = SyncHttpRequest('ajax.php?step=hashkey');
      storage.set('hashkey',hashkey);
      if (remember) {
        persistant.setSubValue('hk',hashkey);
      }
    }
    var step = parseInt(storage.get('step'));
    var p = new Array();
    if (urlparams) {
      urlparams = unescape(urlparams);
      urlparams = urlparams.replace('Ã¤','ä');
      urlparams = urlparams.replace('Ã¶','ö');
      urlparams = urlparams.replace('Ã¼','ü');
      urlparams = urlparams.replace(/Ã./,'ß');
      //urlparams = decodeURI(urlparams);
      urlparams = decodeURIComponent(urlparams.replace(/\?/g,''));
      var items = urlparams.split('&');
      for (var i=0;i<items.length;i++) {
        var tmp = items[i].split('=');
        p[tmp[0]] = tmp[1];
      }
      if (!step||step=='NaN') {
        var step = parseInt(p['step']);
        switch(step) {
          case 1:
            step1();
            break;
          case 2:
            set_nav(1);
            storage.set('pg',parseInt(p['pg']));
            storage.set('pg_name',p['pg_name']);
            storage.set('step',2);
            var callback = step2;
            s.sendXMLHttpRequest(0,'ajax.php?step=2&pg='+parseInt(p['pg'])+'&hashkey='+hashkey,callback,'','');
            return true;
            break;
          default:
            step1();
            break;
        }
      }
    }

    switch(step) {
      case 1: 
        step1();
        break;
      case 2:
        step2();
        break;
      case 3:
        step3();
        break;
      case 4:
        step4();
        break;
      case 5:
        step5();
        break;
      case 10:
        stinfos();
        break;
      case 11:
        stdetails();
        break;
      default:
        step1();
        break;
      }
    return true;
  }
  else {
    return false;
  }
}

/* -----------------------------------------------------------------------------
   SET NAV
----------------------------------------------------------------------------- */
function set_nav(nr) {
  for (var i=1;i<5;i++) {
    if (d.getElementById('nav'+i)) if (nr==i) d.getElementById('nav'+i).className = 'selected'; else d.getElementById('nav'+i).className = '';
  }
}

/* -----------------------------------------------------------------------------
   RESET
----------------------------------------------------------------------------- */
function reset() {
  var hashkey = storage.get('hashkey');
  storage.removeAll();
  if (hashkey) SyncHttpRequest('ajax.php?step=reset&hashkey='+hashkey);
	return;
}

/* -----------------------------------------------------------------------------
   LOGIN PROCESS
----------------------------------------------------------------------------- */
function login_process() {
   var markup = new Array();
   markup.push('<div id="all_lock"></div>');
   markup.push('<div id="breadcrumb">&nbsp;</div>');
   markup.push('<form id="form_login" action="" onsubmit="return false">');
  markup.push('<img style="float:left;margin-right:15px;" src="img/fotos/startseite.jpg" width="200" height="125" alt="" />');
   markup.push('<div style="text-align:center"><h1 style="margin-top:5px;padding-right:60px;font-size:28px;font-weight:normal">Willkommen<br />bei der<br />Weser-Datenbank</h1></div>');
   markup.push('<p class="intro">Hier haben Sie die Möglichkeit, kostenlos Gewässergütedaten aus dem Wesereinzugsgebiet<br />abzufragen und herunterzuladen. ');
   //markup.push('<a style="font-size:13px;" href="#" onclick="this.blur();show_register();return false">Dazu ist eine einmalige Registrierung erforderlich.</a></p><br />');
   markup.push('<table celppadding="0" cellspacing="0">');
   //markup.push('<tr><td class="desc"></td><td><input tabindex="1" type="text" id="email" name="email" maxlength="64" /></td><td><a href="#" onclick="this.blur();toggle_send_password();return false">Passwort vergessen?</a></td></tr>');
   markup.push('<tr><td><input tabindex="3" type="submit" class="button" onclick="this.blur();log_in();return false" name="login" value="Datenbank starten" /></td></tr>');
   //<td class="desc"></td><td><input tabindex="2" type="password" id="passwort" name="passwort" maxlength="32" /></td>   
//markup.push('<tr><td class="desc">&nbsp;</td><td><input type="submit" class="button" onclick="this.blur();log_in();return false" name="login" value="Login" /> &nbsp; <a href="#" onclick="this.blur();toggle_send_password();return false">Passwort vergessen?</a></td></tr>');
   markup.push('<tr><td class="desc">&nbsp;</td><td colspan="2"><div id="send_password">Zugangsdaten an die oben angegebene E-Mail-Adresse senden?');
   markup.push('<br /><br /><input type="button" class="button" onclick="this.blur();send_password();return false" value="Ja, Zugangsfdaten senden" /></div></td></tr>');
   markup.push('</table>');
   
   //d.forms['form_login']['email'].style.visibility = 'hidden';
   //d.forms['form_login']['passwort'].style.visibility = 'hidden';
   
   
   markup.push('<p style="margin-top:0"><strong>Hinweis:</strong><br />Die Messdaten werden von den zuständigen Behörden der einzelnen Bundesländer erfasst, ');
   markup.push('<br />der Geschäftsstelle Weser zur Verfügung gestellt und nach Prüfung für die Veröffentlichung<br />im Internet freigegeben.');
   markup.push('Für die Richtigkeit der Daten wird dennoch keine Gewähr übernommen.</p>');
   markup.push('<table celppadding="0" cellspacing="0">');
   markup.push('<tr><td width="300">Ansprechpartner:</td><td>&nbsp;</td></tr>');
   markup.push('<tr><td >Iris Krippenstapel</td><td>&nbsp;</td></tr>');
   markup.push('<tr><td >Tel.: 05121 509-700</td><td>&copy; Geschäftsstelle Weser, 2010</td></tr>');
   markup.push('<tr><td >E-Mail: <a href="mailto:krippenstapel@fgg-weser.de">krippenstapel@fgg-weser.de</a></td><td>&nbsp;&nbsp;&nbsp; Letzte Aktualisierung: 11.03.2010</td></tr>');
   markup.push('</table>');
   //markup.push('<p>Falls Sie sich noch nicht kostenlos registriert haben <a href="#" onclick="this.blur();show_register();return false">klicken Sie bitte hier.</a></p>');
   //markup.push('<p>Nach erfolgreicher Anmeldung erhalten Sie Ihre Zugangsdaten umgehend per E-Mail zugeschickt.</p>');
   markup.push('</form>');
   markup.push('<form id="form_register" action="" onsubmit="return false">');
   markup.push('<h1>Anmeldung zur Nutzung der Weserdatenbank:</h1>');
   markup.push('<table celppadding="0" cellspacing="0">');
   markup.push('<tr><td class="desc">E-Mail<sup>*</sup>:</td><td><input type="text" id="email2" name="email" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">Passwort<sup>*</sup>:</td><td><input type="password" id="passwort2" name="passwort" maxlength="32" /></td></tr>');
   markup.push('<tr><td class="desc">Firma<sup>*</sup>:</td><td><input type="text" id="firma" name="firma" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">Anrede:</td><td><select name="anrede" size="1"><option value="Herr">Herr</option><option value="Frau">Frau</option><option value="Prof">Prof</option><option value="Dr">Dr</option></select></td></tr>');
   markup.push('<tr><td class="desc">Vorname<sup>*</sup>:</td><td><input type="text" id="vorname" name="vorname" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">Nachname<sup>*</sup>:</td><td><input type="text" id="nachname" name="nachname" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">Straße<sup>*</sup> + Nr<sup>*</sup>:</td><td><input type="text" id="strasse" name="strasse" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">PLZ<sup>*</sup> + Ort<sup>*</sup>:</td><td><input type="text" id="plz" name="plz" class="short" maxlength="8" /><input type="text" id="ort" name="ort" class="medium" maxlength="64" /></td></tr>');
   markup.push('<tr><td class="desc">Telefon<sup>*</sup>:</td><td><input type="text" id="telefon" name="telefon" maxlength="32" /></td></tr>');
   markup.push('<tr><td class="desc">Fax:</td><td><input type="text" id="fax" name="fax" maxlength="32" /></td></tr>');
   markup.push('<tr><td class="desc">Handy:</td><td><input type="text" id="handy" name="handy" maxlength="32" /></td></tr>');
   markup.push('<tr><td class="desc">&nbsp;</td><td class="small">Ihre Daten werden von uns vertraulich behandelt und nicht an Dritte weitergegeben.<br />Nach erfolgreicher Anmeldung erhalten Sie Ihre Zugangsdaten umgehend per E-Mail zugeschickt.</td></tr>');
   markup.push('<tr><td class="desc"><sup>*</sup> Pflichtfelder</td><td><input type="button" onclick="this.blur();register();return false" class="button" value="Kostenlos registrieren" /></td></tr>');
   markup.push('</table>');
   markup.push('</form>');
   d.getElementById('center').innerHTML = markup.join("\n");
}
function log_in(status,params,req) {
  if (!status) {
    //var email = d.forms['form_login']['email'].value;
    var email = "info@fgg-weser.de";
    //var email = "debug";
    //var password = d.forms['form_login']['passwort'].value;
    var password = "FGG-Weser";
    //var password = "modus";
    if (!email) {
      alert('Bitte geben Sie Ihre E-Mail-Adresse ein!');
      d.forms['form_login']['email'].focus();
      return false;
    }
    else if (!password) {
      alert('Bitte geben Sie Ihr Passwort ein!');
      d.forms['form_login']['passwort'].focus();
      return false;
    }
    
    d.getElementById('all_lock').style.display = 'block';
    d.getElementById('activity').innerHTML = ajax_loader2;
    d.getElementById('activity').style.display = 'block';
    var callback = log_in;
    s.sendXMLHttpRequest(0,'ajax.php?step=log_in&email='+email+'&password='+password,callback,'','');
  }
  else if (status == 1) {
    var resp = parseInt(req.responseText);
    if (resp < 1) {
      d.getElementById('activity').style.display = 'none';
      d.getElementById('activity').innerHTML = '';
      d.getElementById('all_lock').style.display = 'none';
      alert("Ihre Zugangsdaten sind nicht korrekt!\nBitte korrigieren Sie Ihre Eingaben.");
    }
    else {
      if (remember) {
        persistant.setSubValue('logged_in',1);
        persistant.setSubValue('uid',resp);
      }
      storage.set('logged_in',1);
      var step = storage.get('step');
      if (!step) storage.set('step',1);
      s.sendXMLHttpRequest(0,'ajax.php?step=clear',null,'','');
      d.getElementById('activity').style.display = 'none';
      d.getElementById('activity').innerHTML = '';
      d.getElementById('all_lock').style.display = 'none';
      call_step();
    }
	}
	else if (status == 2) {
	 ajaxError();
	}
	return false;
}
function send_password(status,params,req) {
  if (!status) {
    var email = d.forms['form_login']['email'].value;
    if (!email) {
      alert('Bitte geben Sie Ihre E-Mail-Adresse ein!');
      d.forms['form_login']['email'].focus();
      return false;
    }
    d.getElementById('all_lock').style.display = 'block';
    d.getElementById('activity').innerHTML = ajax_loader2;
    d.getElementById('activity').style.display = 'block';
    var callback = send_password;
    s.sendXMLHttpRequest(0,'ajax.php?step=send_password&email='+email,callback,email,'');
  }
  else if (status == 1) {
    d.getElementById('activity').style.display = 'none';
    d.getElementById('activity').innerHTML = '';
    d.getElementById('all_lock').style.display = 'none';
    var resp = parseInt(req.responseText);
    if (resp != 1) {
      if (resp == -1) {
        alert("Diese E-Mail-Adresse ist bei uns nicht registriert!\nBitte korrigieren Sie Ihre Eingabe.");
        d.forms['form_login']['email'].focus();
      }
      else if (resp == -2) {
        alert("Leider ist der Versand von E-Mails aufgrund eines Fehlers zur Zeit nicht möglich!\nBitte versuchen Sie es später erneut.");
      }
    }
    else {
      var email = params;
      alert("Wir haben Ihre Zugangsdaten an folgende E-Mal-Adresse verschickt:\n\n"+email);
    }
	}
	else if (status == 2) {
	 ajaxError();
	}
	return false;
}
function toggle_send_password() {
  var div = d.getElementById('send_password');
  if (div.style.display != 'block') div.style.display = 'block'; else div.style.display = 'none';
}
function show_register() {
  d.getElementById('form_login').style.display = 'none';
  d.getElementById('form_register').style.display = 'block';
}
function register(status,params,req) {
  if (!status) {
    var form = d.forms['form_register'];
    var email = form['email'].value;
    if (check_email(email) == false) {
      alert("Bitte geben Sie eine gültige E-Mail-Adresse an!");
      form['email'].focus();
      return false;
    }
    var fchk=new Array();
    fchk[0]=new Array("passwort",/^[A-Za-z0-9\-\.\_]{6,12}$/,"Ihr Passwort muss aus 6 - 12 Zeichen bestehen!\n\nErlaubte Zeichen sind Buchstaben, Zahlen, Punkt sowie Binde- und Unterstrich.");
    fchk[1]=new Array("firma",/[A-Za-z]+/,"Bitte geben Sie Ihren Firmennamen an!");
    fchk[2]=new Array("vorname",/[A-Za-z]+/,"Bitte geben Sie Ihren Vornamen an!");
    fchk[3]=new Array("nachname",/[A-Za-z]+/,"Bitte geben Sie Ihren Nachnamen an!");
    fchk[4]=new Array("strasse",/[A-Za-z]+/,"Bitte geben Sie Ihre Straße und Hausnummer an!");
    fchk[5]=new Array("plz",/[0-9]{3,}/,"Bitte geben Sie Ihre Postleitzahl an!");
    fchk[6]=new Array("ort",/[A-Za-z]+/,"Bitte geben Sie Ihren Ort an!");
    fchk[7]=new Array("telefon",/[0-9]{3,}/,"Bitte geben Sie Ihre Telefonnummer an!");
    for (var i=0;i<fchk.length;i++){
    if(!fchk[i][1].test(form[fchk[i][0]].value)){
    	alert(fchk[i][2]);
    	form[fchk[i][0]].focus();
    	return false;}	
    }
    var passwort = form['passwort'].value;
    var firma = form['firma'].value;
    var anrede = form['anrede'].value;
    var vorname = form['vorname'].value;
    var nachname = form['nachname'].value;
    var strasse = form['strasse'].value;
    var plz = form['plz'].value;
    var ort = form['ort'].value;
    var telefon = form['telefon'].value;
    var fax = form['fax'].value;
    var handy = form['handy'].value;
    var post ='';
    post += 'email='+email;
    post += '&password='+passwort+'&firma='+firma+'&anrede='+anrede;
    post += '&vorname='+vorname+'&nachname='+nachname+'&strasse='+strasse;
    post += '&plz='+plz+'&ort='+ort+'&telefon='+telefon;
    post += '&fax='+fax+'&handy='+handy;
    d.getElementById('all_lock').style.display = 'block';
    d.getElementById('activity').innerHTML = ajax_loader2;
    d.getElementById('activity').style.display = 'block';
    var callback = register;
    s.sendXMLHttpRequest(0,'ajax.php?step=register',callback,email,post);
  }
  else if (status == 1) {
    var resp = parseInt(req.responseText);
    if (resp == -1) {
      alert("Diese E-Mail-Adresse ist schon in Gebrauch!\n\nBitte wählen Sie eine andere.");
      d.getElementById('activity').style.display = 'none';
      d.getElementById('activity').innerHTML = '';
      d.getElementById('all_lock').style.display = 'none';
      var form = d.forms['form_register'];
      form['email'].focus();
      return false;
    }
    else {
      var email = params;
      alert("Registrierung erfolgreich abgeschlossen!\nIhre Zugangsdaten haben wir Ihnen an\n\n"+email+"\n\nzugeschickt.\n\nSie können sich jetzt einloggen.");
      d.getElementById('activity').style.display = 'none';
      d.getElementById('activity').innerHTML = '';
      d.getElementById('all_lock').style.display = 'none';
      login_process();
    }
  }
  else if (status == 2) {
	 ajaxError();
	}
	return false;
}

/* -----------------------------------------------------------------------------
   STEP1: Parametergruppen
----------------------------------------------------------------------------- */
function step1(status,params,req) {
  if (!status) {
    set_nav(1);
    var logged_in = storage.get('logged_in');
    if (!logged_in) {
       logged_in = persistant.getSubValue('logged_in');
    }
    if (!logged_in && !is_public) {
       login_process();
       return false;
    }
    else {
      storage.set('logged_in',1);
    }
    var hashkey = storage.get('hashkey');
    var callback = step1;
    s.sendXMLHttpRequest(0,'ajax.php?step=1&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
   var markup = new Array();
   var pg_data = storage.get('pg');
   markup.push('<div id="breadcrumb">Datenabfrage '+phk+'</div>');
   markup.push('<form id="form_pg" action="" onsubmit="return false">');
   markup.push('<fieldset>Wählen Sie eine Parametergruppe:</fieldset>');
   markup.push('<img style="float:right;margin:6px 52px 0 0;" src="img/fotos/parameterauswahl.jpg" width="249" height="165" alt="" />');
   var pg = req.responseText.split("\n");
   for (var i=0;i<pg.length;i++) {
    if (pg[i]) {
      var tmp = pg[i].split('|');
      if (tmp[0] && tmp[1]) {
        /*
        var checked = '';
        if (!pg_data&&i==0) {
          checked='checked="checked"';
        }
        else if (pg_data==tmp[0]) {
          checked='checked="checked"';
        }
        */
        //markup.push('<label for="r_'+i+'"><input type="radio" name="pg" id="r_'+i+'" value="'+tmp[0]+'" '+checked+' /> '+tmp[1]+'</label>');
        //markup.push('<input type="hidden" name="pg_name" value="'+tmp[1]+'" />');
        markup.push('<a href="#" onclick="step2(0,\''+tmp[0]+'_'+tmp[1]+'\');return false;">'+tmp[1]+'</a>');
      }
    }
   }
   //markup.push('<button onclick="step2();return false">Abfragen</button>');
   markup.push('</form>');
   d.getElementById('center').innerHTML = markup.join("\n");
   storage.set('step',1);
	}
	else if (status == 2) {
	 ajaxError();
	}
	return false;
}

/* -----------------------------------------------------------------------------
   STEP2: Regionen
----------------------------------------------------------------------------- */
function step2(status,params,req) {
  if (!status) {
    set_nav(1);
    var pg = '';
    var pg_name = '';
    /*
    if (typeof(d.forms['form_pg'])!='undefined') {
      for(var i=0;i<d.forms['form_pg']['pg'].length;i++) {
        if(d.forms['form_pg']['pg'][i].checked) {
          pg = d.forms['form_pg']['pg'][i].value;
          pg_name = d.forms['form_pg']['pg_name'][i].value;
        }
      }
      storage.set('pg',pg);
      storage.set('pg_name',pg_name);
    }
    */
    if (params) {
      var items = params.split('_');
      pg = items[0];
      pg_name = items[1];
      storage.set('pg',pg);
      storage.set('pg_name',pg_name);
    }
    else {
      pg = storage.get('pg');
      pg_name = storage.get('pg_name');
    }
    var hashkey = storage.get('hashkey');
    var callback = step2;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=2&hashkey='+hashkey+'&pg='+pg,callback,'','');
  }
  else if (status == 1) {
   var logged_in = storage.get('logged_in');
   if (!logged_in) {
       logged_in = persistant.getSubValue('logged_in');
    }
    if (!logged_in && !is_public) {
       login_process();
       return false;
    }
    else {
      storage.set('logged_in',1);
    }
   var markup = new Array();
   var pg_name = storage.get('pg_name');
   markup.push('<div id="breadcrumb"><a class="back" href="#" onclick="step1();return false">'+zurueck+'</a>&nbsp;|&nbsp;<a href="#" onclick="step1();return false">Parameter:</a> '+pg_name+'</div>');
   markup.push('<img class="msk" src="img/messstellenkarten/Gesamt.png" alt="Karte Gesamt" />');
   markup.push('<form id="form_region" action="" onsubmit="return false">');
   markup.push('<h1>Wählen Sie die Region:</h1>');
   var region = req.responseText.split("\n");
   for (var i=0;i<region.length;i++) {
    if (region[i]) {
      markup.push('<a href="#" onclick="step3(0,\''+region[i]+'\');return false">'+region[i]+'</a>');
    }
   }
   markup.push('</form>');
   d.getElementById('center').innerHTML = markup.join("\n");
   storage.set('step',2);
	}
	else if (status == 2) {
	 ajaxError();
	}
	return true;
}

/* -----------------------------------------------------------------------------
   STEP3: Messstationen
----------------------------------------------------------------------------- */
function step3(status,params,req) {
  if (!status) {
    set_nav(1);
    region=params;
    if (!region) region=storage.get('region');
    storage.set('region',region);
    var hashkey = storage.get('hashkey');
    var callback = step3;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=3&region='+encodeURIComponent(region)+'&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
   var markup = new Array();
   var pg_name = storage.get('pg_name');
   var region = storage.get('region');
   var region_karte = region.replace(/[^A-Za-z\-\_ÄÖÜäöüß]/g,'');
   markup.push('<div id="all_lock"></div>');
   markup.push('<div id="breadcrumb"><a class="back" href="#" onclick="step2();return false">'+zurueck+'</a>&nbsp;|&nbsp;<a href="#" onclick="step1();return false">Parameter:</a> '+pg_name+' &raquo; <a href="#" onclick="step2();return false">Teilraum:</a> '+region+ '</div>');
   markup.push('<img class="msk" src="img/messstellenkarten/'+region_karte+'.png" alt="" />');
   markup.push('<form id="form_st" action="" onsubmit="return false">');
   markup.push('<h1>Wählen Sie eine Messstation:</h1>');
   markup.push('<div>');
   var st = req.responseText.split("\n");
   for (var i=0;i<st.length;i++) {
    if (st[i]) {
      var tmp = st[i].split('|');
      var tmp2 = tmp[1].split('_',2)
      markup.push('<a href="#" onclick="step4(0,\''+tmp[0]+'|'+tmp[1]+'\');return false"><span class="black">'+tmp2[0]+'</span> &nbsp; '+tmp2[1]+'</a>');
    }
   }
   markup.push('</div>');
   markup.push('</form>');
   d.getElementById('center').innerHTML = markup.join("\n");
   storage.set('step',3);
	}
	else if (status == 2) {
	 ajaxError();
	}
	return;
}

/* -----------------------------------------------------------------------------
   STEP4: Kenngrößengruppe/Kenngrößen
----------------------------------------------------------------------------- */
function step4(status,params,req) {
  if (!status) {
    set_nav(1);
    var st_data = params;
    var st;
    var st_name;
    if (!st_data) {
      st=storage.get('st');
      st_name=storage.get('st_name');
      if (st && st_name) step4(1,'cached',storage.get('dtree'));
      return false;
    }
    else {
      var tmp = st_data.split('|');
      st = tmp[0];
      var tmp2 = tmp[1].split('_');
      st_name = tmp2[1];
      storage.set('st',st);
      storage.set('st_name',st_name);
    }
    var hashkey = storage.get('hashkey');
    var pg = storage.get('pg');
    if (d.getElementById('all_lock')) {
      d.getElementById('all_lock').style.display = 'block';
    }
    if (d.getElementById('activity')) {
      d.getElementById('activity').innerHTML = ajax_loader2;
      d.getElementById('activity').style.display = 'block';
    }
    var callback = step4;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=4&pg='+pg+'&st='+st+'&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
   var markup = new Array();
   var pg_name = storage.get('pg_name');
   var region = storage.get('region');
   var st_name = storage.get('st_name');
   if (d.getElementById('activity')) {
     d.getElementById('activity').style.display = 'none';
     d.getElementById('activity').innerHTML = '';
   }
   if (d.getElementById('all_lock')) {
    d.getElementById('all_lock').style.display = 'none';
   }
   markup.push('<div id="breadcrumb"><a class="back" href="#" onclick="step3();return false">'+zurueck+'</a>&nbsp;|&nbsp;<a href="#" onclick="step1();return false">Parameter:</a> '+pg_name+' &raquo; <a href="#" onclick="step2();return false">Teilraum:</a> '+region+ ' &raquo; <a href="#" onclick="step3();return false">Station:</a> '+st_name+'</div>');
   markup.push('<h1>Wählen Sie Kenngröße und Zeitraum:</h1>');
   dtree = new dTree('dtree');
   //dtree.add(0,-1,'<a href="" onclick="dtree_caller();return false">Kenngrößengruppen</a>');
   var dtc=1;
   var keg;
   if (params == 'cached') {
    keg = req.split("\n");
   }
   else {
    var resp = req.responseText;
    storage.set('dtree',resp);
    keg = resp.split("\n");
   }
   for (var i=0;i<keg.length;i++) {
     if (keg[i]) {
        var kg = keg[i].split('|');
        var sub = dtc;
        for (var j=0;j<kg.length;j++) {
          var kegval;
          var tmp = kg[j].split(';');
          if (tmp[0]) {
            if (j == 0) {
              kegval = tmp[0];
              var p = kegval+'|0|'+tmp[1]+'|'+kegval;
              dtree.add(dtc,-1,tmp[1],'javascript:mw(0,\''+p+'\')');
            }
            else {
              var p = '0|'+tmp[0]+'|'+tmp[1]+'|'+kegval;
              dtree.add(dtc,sub,tmp[1],'javascript:mw(0,\''+p+'\')');
            }
            dtc++;
          }
        }
    }
   }
   if (dtc > 1) markup.push(dtree); else markup.push('<div class="dtree"><div class="warning">Keine Kenngrößen verfügbar.</div></div>');
   markup.push('<div id="all_lock"></div>');
   markup.push('<div id="dtree_lock"></div>');
   markup.push('<div class="range">');
   markup.push('<form id="form_range" action="" onsubmit="return false">');
   markup.push('<select id="minjahr" onchange="this.blur();check_minmax();change_date()" name="minjahr" size="1" disabled="disabled"></select>');
   markup.push('&nbsp;bis&nbsp;');
   markup.push('<select name="maxjahr" onchange="this.blur();check_maxmin();change_date()" name="maxjahr" size="1" disabled="disabled"></select>');
   //markup.push(' &nbsp;');
   //markup.push('<input type="button" onclick="this.blur();change_date()" value="OK" disabled="disabled" />');
   markup.push('</form>');
   markup.push('<div id="data" class="data"></div>');
   markup.push('<form id="form_select" action="" onsubmit="return false">');
   markup.push('<input type="button" class="select_all" onclick="this.blur();select_all()" value="alle auswählen" disabled="disabled" />');
   markup.push('<div id="shift"></div>');
   markup.push('<input type="button" class="deselect_all" onclick="this.blur();deselect_all()"  value="Auswahl aufheben" disabled="disabled" />');
   markup.push('</form>');
   markup.push('</div>');
   markup.push('<div class="download">');
   markup.push('<form id="form_download" action="" onsubmit="return false">');
   markup.push('<label>Dateiname: <input class="filename" type="text" id="filename" name="filename" disabled="disabled" /></label>');
   markup.push('<div class="filetype"><label>Dateiformat: <input type="radio" class="rb" name="filetype" value="xls" checked="checked" disabled="disabled" /> .XLS</label>');
   markup.push('<label><input type="radio" class="rb" name="filetype" value="csv" disabled="disabled" /> .CSV</label></div>');
   markup.push('<input class="button" type="button" id="button_cart" onclick="this.blur();add_to_cart()" disabled="disabled" value="Zum Download hinzufügen" />');
   markup.push('<input class="button" type="button" id="cart" name="cart" onclick="this.blur();step5(0,\'show\');return false" disabled="disabled" value="Downloadbereich" />');
   //markup.push('<a href="#" id="cart" onclick="this.blur();step5(0,\'show\');return false" title="Warenkorb anzeigen"></a>');
   markup.push('</form>');
   markup.push('</div>');
   var html = markup.join("\n");
   //html = html.replace('class="nodeSel"','class="node"');
   d.getElementById('center').innerHTML = html;
   dtree.openAll();
   storage.set('step',4);
   var items = storage.get('cart');
   //if (items > 0) {
    d.forms['form_download']['cart'].disabled = false;
    //d.getElementById('cart').style.backgroundPosition = '0 -32px';
    //d.getElementById('cart').style.cursor = 'pointer';
    //}
	}
	else if (status == 2) {
	 ajaxError();
	}
	return false;
}

/* -----------------------------------------------------------------------------
   AUSGABE: Messwerte
----------------------------------------------------------------------------- */
function mw(status,params,req) {
  if (!status) {
    mw_cache = [];
    mw_checked = [];
    mw_nodes = [];
    //for (var item in mw_checked) delete item; ?
    total_checked = 0;
    d.getElementById('dtree_lock').style.display = 'block';
    var ddata = d.getElementById('data');
    ddata.innerHTML = '';
    for(var i=0;i<d.forms['form_range'].length;i++) {
      d.forms['form_range'][i].disabled=true;
    }
    for(var i=0;i<d.forms['form_download'].length;i++) {
      d.forms['form_download'][i].disabled=true;
    }
    for(var i=0;i<d.forms['form_select'].length;i++) {
      d.forms['form_select'][i].disabled=true;
    }
    d.forms['form_download']['filename'].value = '';
    var minJ = d.forms['form_range']['minjahr'];
    for (var i=0;i<100;i++) {
      minJ.options[0] = null;
    }
    var maxJ = d.forms['form_range']['maxjahr'];
    for (var i=0;i<100;i++) {
      maxJ.options[0] = null;
    }
    var tmp = params.split('|');
    var keg = tmp[0];
    var kg = tmp[1];
    var kg_name = tmp[2];
    var keg_id = tmp[3];
    storage.set('keg',keg);
    storage.set('kg',kg);
    storage.set('kg_name',kg_name);
    storage.set('keg_id',keg_id);
    var st = storage.get('st');
    var hashkey = storage.get('hashkey');
    var callback = mw;
    d.getElementById('data').innerHTML = '<div class="message">Einen Augenblick bitte, die Daten werden aufbereitet...</div>'+ajax_loader;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=mw&st='+st+'&keg='+keg+'&kg='+kg+'&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
    var markup = Array();
    d.getElementById('dtree_lock').style.display = 'none';
    var ddata = d.getElementById('data');
    ddata.innerHTML = '';
    var data = req.responseText.split("\n");
    var tmp = data.shift().split('|');
    var minjahr = parseInt(tmp[0]);
    var maxjahr = parseInt(tmp[1]);
    if (data[0]) {
      if (params != 'cached') {
        if (minjahr && maxjahr) {
          var years = Array();
          for (var i=minjahr;i<maxjahr+1;i++) {
            years.push(i);
          }
          var minJ = d.forms['form_range']['minjahr'];
          var maxJ = d.forms['form_range']['maxjahr'];
          for (var i=0;i<years.length;i++) {
            minJ[i] = new Option(years[i],years[i]);
            maxJ[i] = new Option(years[i],years[i]);
            if (years[i] == maxjahr) maxJ.selectedIndex = i;
          }
        }
      }
      for(var i=0;i<d.forms['form_range'].length;i++) {
        d.forms['form_range'][i].disabled=false;
      }
      for(var i=0;i<d.forms['form_select'].length;i++) {
        d.forms['form_select'][i].disabled=false;
      }
      var region = storage.get('region');
      var st_name = storage.get('st_name');
      var kg_name = storage.get('kg_name');
      var keg = storage.get('keg');
      var keg_id = storage.get('keg_id');
      var jetzt = new Date();
      var kg_name_ohne_umlaute = kg_name;
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/ä/g,'ae');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/ö/g,'oe');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/ü/g,'ue');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/Ä/g,'Ae');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/Ö/g,'Oe');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/Ü/g,'Ue');
      kg_name_ohne_umlaute = kg_name_ohne_umlaute.replace(/ß/g,'ss');
      var filename = st_name+'['+region+']_'+kg_name_ohne_umlaute+'_'+jetzt.getTime();;
      filename = filename.replace(/ /g,'_');
      filename = filename.replace(/[^A-Za-z0-9ÄÖÜäöüß\-\_\(\)\[\]]/g,'');
      d.forms['form_download']['filename'].value = filename;
      if (params != 'cached') while (mw_cache.length) { mw_cache.pop(); }
      for (var i=0;i<data.length;i++) {
        var tmp = data[i].split('|');
        var kg_id = tmp[1];
        var kg_date = tmp[0];
        var kg_desc = tmp[2];
        if (tmp[2]) kg_desc = tmp[2];
        var kg_checked = tmp[2];
        var checked = '';
        if (kg_checked==1) {
          checked=' checked"';
        }
        if (kg_id && kg_date) {
          var tmp = kg_date.split('-');
          var date = tmp[2] + '.' + tmp[1] + '.' + tmp[0];
          var cnr = i % 2;
          markup.push('<a href="#" onclick="select_one(this.id);return false;" id="id_'+kg_id+'" class="mw'+cnr+checked+'">'+date+' - '+kg_desc+'</a>');
          if (params != 'cached') mw_cache.push(kg_date+'|'+kg_id+'|'+kg_desc);
        }
      }
      /* IE6 BUG Workaround */
      if (markup[0]) {
        markup.unshift('<a href="#" style="display:none;" onclick="return false;" id="id_0" class="mw0"><strong>kein</strong></a>');
      }
    }
    if (markup[0]) {
      var div = document.createElement("DIV");
      div.innerHTML = markup.join("\n");
      ddata.appendChild(div);

      mw_nodes = [];
      //for (var item in mw_nodes) delete item; ?
      var el = ddata.lastChild;
      var cn = el.firstChild;
      var c = 0;
      while (cn!=null) {
        if (cn.nodeName=='A') {
          var id = cn.id;
          mw_nodes[id] = c;
        }
        c++;
        cn=cn.nextSibling;
      }

      var tf;
      if (total_checked > 0) tf=false; else tf = true;
      var form = d.forms['form_download'];
      for(var i=0;i<form.length;i++) {
        form[i].disabled=tf;
      }
      d.forms['form_download']['cart'].disabled=false;
    }
    else {
      if (params != 'cached') {
        for(var i=0;i<d.forms['form_range'].length;i++) {
          d.forms['form_range'][i].disabled=true;
        }
        for(var i=0;i<d.forms['form_select'].length;i++) {
          d.forms['form_select'][i].disabled=true;
        }
        for(var i=0;i<d.forms['form_download'].length;i++) {
          d.forms['form_download'][i].disabled=true;
        }
        d.forms['form_download']['cart'].disabled=false;
      }
      d.forms['form_download']['filename'].value = '';
      ddata.innerHTML = '<div class="warning">Leider stehen für Ihre Auswahl derzeit keine Daten zur Verfügung.</div>';
    }
	}
	else if (status == 2) {
	 ajaxError();
	}
	return;
}
function check_minmax() {
  var minjahr = d.forms['form_range']['minjahr'][d.forms['form_range']['minjahr'].selectedIndex].value;
  var maxjahr = d.forms['form_range']['maxjahr'][d.forms['form_range']['maxjahr'].selectedIndex].value;
  if (minjahr > maxjahr) {
    minjahr = maxjahr;
    d.forms['form_range']['minjahr'].selectedIndex = d.forms['form_range']['maxjahr'].selectedIndex;
  }
  return;
}
function check_maxmin() {
  var minjahr = d.forms['form_range']['minjahr'][d.forms['form_range']['minjahr'].selectedIndex].value;
  var maxjahr = d.forms['form_range']['maxjahr'][d.forms['form_range']['maxjahr'].selectedIndex].value;
  if (maxjahr < minjahr) {
    maxjahr = minjahr;
    d.forms['form_range']['maxjahr'].selectedIndex = d.forms['form_range']['minjahr'].selectedIndex;
  }
  return;
}
function change_date() {
  d.getElementById('dtree_lock').style.display = 'block';
  for(var i=0;i<d.forms['form_download'].length;i++) {
    d.forms['form_download'][i].disabled=true;
  }
  for(var i=0;i<d.forms['form_select'].length;i++) {
    d.forms['form_select'][i].disabled=true;
  }
  var cld = d.getElementById('data').lastChild;
  d.getElementById('data').removeChild(cld);
  var minjahr = parseInt(d.forms['form_range']['minjahr'][d.forms['form_range']['minjahr'].selectedIndex].value);
  var maxjahr = parseInt(d.forms['form_range']['maxjahr'][d.forms['form_range']['maxjahr'].selectedIndex].value);
  var mw_data = new Array();
  if (mw_cache) {
    var j = mw_cache.length;
    for (var i=0;i<j;i++) {
      var tmp = mw_cache[i];
      var jahr = tmp.substr(0,4);
      var id = tmp.substr(11);
      var checked = 0;
      if (typeof(mw_checked['id_'+id])!='undefined') checked = mw_checked['id_'+id];
      if (jahr >= minjahr && jahr <= maxjahr) {
         var datum = tmp.substr(0,10);
         mw_data.push(datum+'|'+id+'|'+checked);
      }
      else {
        /* uncheck hidden of date narrowing */
        if (checked == 1) {
          mw_checked['id_'+id] = 0;
          total_checked--;
        }
      }
    }
  }
  last_checked = 0;
  last_unchecked = 0;
  var resp = new Object();
  if (mw_data) resp.responseText = minjahr + '|' + maxjahr + "\n" + mw_data.join("\n");
  mw(1,'cached',resp);
}
function select_one(id) {
  var el = d.getElementById(id);
  var val = mw_checked[id];
  var check;
  var uncheck;
  if (shft&&last_checked) check = 1;
  if (shft&&last_unchecked) uncheck = 1;
  if ((val!=1&&!uncheck)||(val==1&&check)) {
    mw_checked[id] = 1;
    el.style.backgroundPosition = '6px -16px';
    el.style.color = '#445D68';
    total_checked++;
    if (shft&&last_checked) {
      var lastnode = mw_nodes[last_checked];
      var curnode = mw_nodes[id];
      var startnode;
      var endnode;
      if (lastnode > curnode) {
        startnode = curnode+1;
        endnode = lastnode;
      }
      else {
        startnode = lastnode;
        endnode = curnode;
      }
      var el = d.getElementById('data').lastChild;
      for (var i=startnode;i<endnode;i++) {
        if (el.childNodes[i].nodeName == 'A') {
          el.childNodes[i].style.backgroundPosition = '6px -16px';
          el.childNodes[i].style.color = '#445D68';
          var id2 = el.childNodes[i].id;
          if (typeof(mw_checked[id2])=='undefined') mw_checked[id2] = 0;
          if (mw_checked[id2]!=1) {
            mw_checked[id2]=1;
            total_checked++;
          }
        }
      }
      last_checked = 0;
    }
    else {
      last_checked = id;
      last_unchecked = 0;
    }
    //alert(total_checked);
  }
  else {
    mw_checked[id] = 0;
    el.style.backgroundPosition = '6px 6px';
    el.style.color = '#000000';
    total_checked--;
    if (shft&&last_unchecked) {
      var lastnode = mw_nodes[last_unchecked];
      var curnode = mw_nodes[id];
      var startnode;
      var endnode;
      if (curnode < lastnode) {
        startnode = curnode+1;
        endnode = lastnode;
      }
      else {
        startnode = lastnode;
        endnode = curnode;
      }
      var el = d.getElementById('data').lastChild;
      for (var i=startnode;i<endnode;i++) {
        if (el.childNodes[i].nodeName == 'A') {
          el.childNodes[i].style.backgroundPosition = '6px 6px';
          el.childNodes[i].style.color = '#000000';
          var id2 = el.childNodes[i].id;
          if (typeof(mw_checked[id2])=='undefined') mw_checked[id2]=0;
          if (mw_checked[id2]==1) {
            mw_checked[id2]=0;
            total_checked--;
          }
        }
      }
      last_unchecked=0;
    }
    else {
      last_unchecked = id;
      last_checked = 0;
    }
    // Error Correction
    if (total_checked < 0) total_checked=0;
     //alert(total_checked);
  }
  
  var jetzt = new Date();
  var cur_filename = d.forms['form_download']['filename'].value;
  var tmp = cur_filename.split('_');
  tmp.pop();
  d.forms['form_download']['filename'].value = tmp.join('_')+'_'+jetzt.getTime();
  var tf;
  if (total_checked > 0) tf=false; else tf = true;
  var form = d.forms['form_download'];
  for(var i=0;i<form.length;i++) {
    if (form[i].id != 'cart') {
      form[i].disabled=tf;
    }
  }
}
function select_all() {
  var el = d.getElementById('data').lastChild;
  var cn = el.firstChild;
  while (cn!=null) {
    if (cn.nodeName=='A') {
      var id = cn.id;
      if (id) {
        if (typeof(mw_checked[id])=='undefined') {
          total_checked++;
        }
        else if (mw_checked[id]<1) {
          total_checked++;
        }
        mw_checked[id] = 1;
        cn.style.backgroundPosition = '6px -16px';
        cn.style.color = '#445D68';
      }
    }
    cn=cn.nextSibling;
  }
  var jetzt = new Date();
  var cur_filename = d.forms['form_download']['filename'].value;
  var tmp = cur_filename.split('_');
  tmp.pop();
  d.forms['form_download']['filename'].value = tmp.join('_')+'_'+jetzt.getTime();
  var form = d.forms['form_download'];
  for(var i=0;i<form.length;i++) {
    if (form[i].id != 'cart') {
      form[i].disabled=false;
    }
  }
}
function deselect_all() {
  var el = d.getElementById('data').lastChild;
  var cn = el.firstChild;
  while (cn!=null) {
    if (cn.nodeName=='A') {
      var id = cn.id;
      if (typeof(mw_checked[id])!='undefined') if (mw_checked[id]==1) total_checked--;
      mw_checked[id] = 0;
      cn.style.backgroundPosition = '6px 6px';
      cn.style.color = '#000000';
    }
    cn=cn.nextSibling;
  }
  // Remove hidden
  total_checked=0;
  var jetzt = new Date();
  var cur_filename = d.forms['form_download']['filename'].value;
  var tmp = cur_filename.split('_');
  tmp.pop();
  d.forms['form_download']['filename'].value = tmp.join('_')+'_'+jetzt.getTime();
  if (total_checked<1) {
    var form = d.forms['form_download'];
    for(var i=0;i<form.length;i++) {
      if (form[i].id != 'cart') {
        form[i].disabled=true;
      }
    }
  }
}

/* -----------------------------------------------------------------------------
   STEP5: Warenkorb
----------------------------------------------------------------------------- */
function step5(status,params,req) {
  if (!status) {
    set_nav(4);
    var logged_in = storage.get('logged_in');
    if (!logged_in) {
       logged_in = persistant.getSubValue('logged_in');
    }
    if (!logged_in && !is_public) {
       login_process();
       return false;
    }
    else {
      storage.set('logged_in',1);
    }
    var items = storage.get('cart');
    /*
    if (items < 1 && params == 'show') {
      return false;
    }
    */
    var hashkey = storage.get('hashkey');
    var callback = step5;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=show_cart&hashkey='+hashkey,callback,params,'');
  }
  else if (status == 1) {
    var markup = new Array();
    if (params == 'nav') {
      markup.push('<div id="breadcrumb"></div>');
    }
    else {
      markup.push('<div id="breadcrumb"><a class="back" href="#" onclick="step4();return false">'+zurueck+'</a>&nbsp;|&nbsp;<a href="#" onclick="step1();return false">Parameter</a>&nbsp;|&nbsp;<a href="#" onclick="step2();return false">Teilräume</a>&nbsp;|&nbsp;<a href="#" onclick="step3();return false">Stationen</a>&nbsp;|&nbsp;<a href="#" onclick="step4();return false">Kenngrößen</a></div>');
    }
    markup.push('<h1>Downloadbereich: bereitstehende Dateien '+phk+'</h1>');
    markup.push('<div id="all_lock"></div>');
    markup.push('<div id="data2" class="data2"><div>');
    var disabled = '';
    if (req.responseText == -1) {
      markup.push('<div class="message">Es stehen keine Dateien zum Download bereit!</div>');
      disabled = 'disabled="disabled"';
    }
    else {
      var filelist = new Array();
      var files = req.responseText.split("\n");
      for (var i=0;i<files.length;i++) {
       var item = files[i].split('|');
       if (item[0]) {
          var id = 'id_' + (i+1);
          var cnr = i % 2;
          filelist.push('<div id="'+id+'"><a href="#" class="mw'+cnr+'" onclick="delete_from_cart(0,\''+id+'|'+item[0]+'|'+item[1]+'\');return false"></a><span class="mw'+cnr+'">'+item[0]+'.'+item[1]+'</span></div>');
        }
      }
      /* IE6 BUG Workaround */
      if (filelist[0]) {
        filelist.unshift('<a href="#" style="display:none;" onclick="return false;" id="id_0" class="mw0">&nbsp;</a>');
      }
      markup.push(filelist.join("\n"));
    }
    markup.push('</div></div>');
    markup.push('<div class="download">');
    markup.push('<form id="form_download" action="" onsubmit="return false">');
    markup.push('<input class="button" type="button" id="button_empty_cart" onclick="this.blur();delete_from_cart(0,\'all\')" value="Downloadbereich leeren" '+disabled+' />');
    markup.push('<input class="button" type="button" id="button_download" onclick="this.blur();step6()" value="Download starten" '+disabled+' />');
    markup.push('</form>');
    markup.push('</div>');
    html = markup.join("\n");
    d.getElementById('center').innerHTML = html;
    storage.set('step',5);
  }
	else if (status == 2) {
	 ajaxError();
	}
	return true;
}

function add_to_cart(status,params,req) {
  if (!status) {
    var hashkey = storage.get('hashkey');
    var pg = storage.get('pg');
    var pg_name = storage.get('pg_name');
    var region = storage.get('region');
    var st = storage.get('st');
    var st_name = storage.get('st_name');
    var keg = storage.get('keg');
    var kg = storage.get('kg');
    var kg_name = storage.get('kg_name');
    mw_dates = [];
    var el = d.getElementById('data').lastChild;
    var cn = el.firstChild;
    while (cn!=null) {
      if (cn.nodeName=='A') {
        var id = cn.id;
        if (id) {
          if (typeof(mw_checked[id])!='undefined') {
            if (mw_checked[id]==1) {
              var mw_id = id.substring(3);
              mw_dates.push(mw_id)
           }
          }
        }
      }
      cn=cn.nextSibling;
    }
    var form = d.forms['form_download'];
    var filename = form['filename'].value;
    var filetype;
    for(var i=0;i<form['filetype'].length;i++) {
      if(form['filetype'][i].checked) {
        filetype = form['filetype'][i].value;
      }
    }
    var post;
    if (hashkey) {
      d.getElementById('all_lock').style.display = 'block';
      d.getElementById('activity').innerHTML = ajax_loader2;
      d.getElementById('activity').style.display = 'block';
      post += 'step=add_to_cart&pg='+pg+'&pg_name='+pg_name+'&region='+region+'&st='+st+'&st_name='+st_name;
      post += '&keg='+keg+'&kg='+kg+'&kg_name='+kg_name+'&filename='+filename+'&filetype='+filetype;
      post += '&mw_dates='+mw_dates.join(',');
      post += '&hashkey='+hashkey;
      var callback = add_to_cart;
      s.sendXMLHttpRequest(0,'ajax.php?step=add_to_cart',callback,'',post);
    }
  }
  else if (status == 1) {
    var items = parseInt(req.responseText);
    if (items == -1) alert("Dateiname schon im Downloadbereich vorhanden!\nBitte wählen Sie einen anderen Namen.");
    else if (items == -2) alert("Beim Schreiben des Downloads ist ein unbekannter Fehler aufgetreten!\n");
    else if (items > 0) {
      storage.set('cart',items);
      d.forms['form_download']['cart'].disabled = false;
      //d.getElementById('cart').style.backgroundPosition = '0 -32px';
      //d.getElementById('cart').style.cursor = 'pointer';
    }
    d.getElementById('activity').innerHTML = '';
    d.getElementById('activity').style.display = 'none';
    d.getElementById('all_lock').style.display = 'none';
  }
  else if (status == 2) {
	 ajaxError();
	}
	return; 
}

function delete_from_cart(status,params,req) {
  if (!status) {
    var tmp = params.split('|');
    var id = tmp[0];
    var filename = tmp[1];
    var filetype = tmp[2];
    var message;
    if (id == 'all') {
      filename = 'all';
      message = "Alle Dateien werden unwiderruflich gelöscht.\n\nMöchten Sie den Downloadbereich leeren?";
    }
    else {
      message = "Möchten Sie die Datei \n\n"+filename+'.'+filetype+"\n\nendgültig aus dem Downloadbereich entfernen?"
    }
    var check = confirm(message);
    if (check==true) {
      d.getElementById('all_lock').style.display = 'block';
      d.getElementById('activity').innerHTML = ajax_loader2;
      d.getElementById('activity').style.display = 'block';
      var hashkey = storage.get('hashkey');
      var callback = delete_from_cart;
      if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=delete_from_cart&filename='+filename,callback,id,'');
    }
  }
  else if (status == 1) {
   var resp = parseInt(req.responseText);
	 var del_id = params;
	 var c = 0;
	 if (del_id) {
      var el = d.getElementById('data2').lastChild;
      var cn = el.firstChild;
      while (cn!=null) {
        if (cn.nodeName=='DIV') {
          if (cn.style.display != 'none') {
            var id = cn.id;
            if (id == del_id) {
              cn.style.display = 'none';
            }
            else {
              var cln = c % 2;
              //cn.className = 'mw' + cln;
              cn.firstChild.className = 'mw' + cln;
              cn.lastChild.className = 'mw' + cln;
              c++;
            }
          }
        }
        cn=cn.nextSibling;
      }
   }
   storage.set('cart',resp)
	 if (resp < 1) {
	   d.getElementById('data2').innerHTML = '<div class="message">Es stehen keine Dateien zum Download bereit!</div>';
	   d.forms['form_download']['button_empty_cart'].disabled = true;
	   d.forms['form_download']['button_download'].disabled = true;
	 }
	 d.getElementById('activity').style.display = 'none';
	 d.getElementById('activity').innerHTML = '';
	 d.getElementById('all_lock').style.display = 'none';
	}
  else if (status == 2) {
	 ajaxError();
	}
	return;
}

/* -----------------------------------------------------------------------------
   STEP6: Download
----------------------------------------------------------------------------- */
function step6(status,params,req) {
  if (!status) {
    d.getElementById('all_lock').style.display = 'block';
    d.getElementById('activity').innerHTML = ajax_loader2;
    d.getElementById('activity').style.display = 'block';
    var hashkey = storage.get('hashkey');
    var callback = step6;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=step6&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
    d.getElementById('activity').style.display = 'none';
	  d.getElementById('activity').innerHTML = '';
	  d.getElementById('all_lock').style.display = 'none';
	  var resp = parseInt(req.responseText);
	  if (req.responseText == -1) {
	     alert("Fehler beim Erstellen der ZIP-Datei!\nBitte starten Sie den Download nochmals.\n\nSollte das Problem bestehen bleiben setzen Sie sich bitte mit unserem technischen Support in Verbindung.");
	     return false;
    }
    else if (req.responseText == -2) {
       alert("Unbekannter Fehler!\n\nBitte wenden Sie sich an unseren Support.");
    }
    else {
  	  var tmp = req.responseText.split('|');
  	  var size = tmp[0];
  	  var zipfile = tmp[1];
  	  var message = "Die erzeugte Datei hat eine Größe von "+size+".\n\n Möchten Sie den Download jetzt starten?";
  	  var check = confirm(message);
      if (check==true) {
        window.location.href = zipfile;
        //window.location.replace(zipfile);
        /*
        var dl = window.open('','Download','width=100,height=100,scrollbars=no,menubar=no,location=no,toolbar=no,status=no,resizable=no');
        var markup='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
        markup+='<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">';
        markup+='<head>';
        markup+='<meta http-equiv="refresh" content="0; URL='+zipfile+'">';
        markup+='</head><body>';
        markup+='</body></html>';
        dl.document.open();
        dl.document.write(markup);
        dl.document.close();
        dl.focus();
        */
      }
    }
	}
  else if (status == 2) {
	 ajaxError();
	}
	return false;
}

/* -----------------------------------------------------------------------------
   Stationsinformationen
----------------------------------------------------------------------------- */
function stinfos(status,params,req) {
  if (!status) {
    set_nav(2);
    var logged_in = storage.get('logged_in');
    if (!logged_in) {
       logged_in = persistant.getSubValue('logged_in');
    }
    if (!logged_in && !is_public) {
       login_process();
       return false;
    }
    else {
      storage.set('logged_in',1);
    }
    var hashkey = storage.get('hashkey');
    var callback = stinfos;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=stinfos&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
   var markup = new Array();
   markup.push('<div id="breadcrumb">Übersicht</div>');
   markup.push('<img class="msk" src="img/stationsinfos/Messstationen.png" alt="" />');
   markup.push('<form id="form_stinfos" action="" onsubmit="return false">');
   markup.push('<h1>Wählen Sie eine Messstation:</h1>');
   markup.push('<div>');
   var stationen = req.responseText.split("\n");
   for (var i=0;i<stationen.length;i++) {
    if (stationen[i]) {
      var tmp = stationen[i].split('|');
      markup.push('<a href="#" onclick="stdetails(0,\''+tmp[0]+'|'+tmp[2]+'\');return false"><span class="black">'+tmp[1]+'</span> &nbsp; '+tmp[2]+'</a>');
    }
   }
   markup.push('</div>');
   markup.push('</form>');
   d.getElementById('center').innerHTML = markup.join("\n");
   storage.set('step',10)
	}
	else if (status == 2) {
	 ajaxError();
	}
	return true;
}

/* -----------------------------------------------------------------------------
   Stationsdetails
----------------------------------------------------------------------------- */
function stdetails(status,params,req) {
  if (!status) {
    set_nav(2);
    var info_st = '';
    var info_st_name = '';
    if (params) {
      var tmp = params.split('|');
      info_st = tmp[0];
      info_st_name = tmp[1];
    }
    if (info_st && info_st_name) {
      storage.set('info_st',info_st);
      storage.set('info_st_name',info_st_name);
    }
    else {
      info_st = storage.get('info_st');
      info_st_name = storage.get('info_st_name');
    }
    var hashkey = storage.get('hashkey');
    var callback = stdetails;
    if (hashkey) s.sendXMLHttpRequest(0,'ajax.php?step=stdetails&station='+info_st+'&hashkey='+hashkey,callback,'','');
  }
  else if (status == 1) {
   var info_st = storage.get('info_st');
   var info_st_name = storage.get('info_st_name');
   var markup = new Array();
   markup.push('<div id="breadcrumb"><a class="back" href="#" onclick="stinfos();return false">'+zurueck+'</a>&nbsp;|&nbsp; Station: '+info_st_name+'</div>');
   var tmp = req.responseText.split('|');
   var title = tmp[0];
   var desc = tmp[1];
   var img = tmp[2];
   var pdf = tmp[3];
   if (img != 0) {
      markup.push('<img class="pho" src="'+tmp[2]+'" width=325" alt="" />');
   }
   markup.push('<h1>Informationen zu:</h1>');
   markup.push('<div id="div_stdetails">');
   markup.push('<h3>Messstation '+info_st_name+'</h3>');
   markup.push('<p>'+desc+'</p>');
   if (pdf != 0) {
      markup.push('<a class="pdf" href="'+pdf+'" target="_blank">Informationen als PDF-Datei anzeigen</a>');
   }
   markup.push('</div>');
   d.getElementById('center').innerHTML = markup.join("\n");
   storage.set('step',11)
	}
	else if (status == 2) {
	 ajaxError();
	}
	return true;
}



/* -----------------------------------------------------------------------------
   GLOBAL FUNCTIONS
----------------------------------------------------------------------------- */
function ajaxError() {
  d.getElementById('dtree_lock').style.display = 'none';
  var ddata = d.getElementById('data');
  ddata.innerHTML = '';
  alert ("Die Verbindung zur Datenbank hatte einen Timeout bzw. der Server ist derzeit nicht erreichbar.\nBitte versuchen Sie es später erneut."); 
}
function check_email(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  var res = (reg.test(s));
 }
 else
 {
  var res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }
 return(res);
}
