/**
 * Dateiname       : javascript/secraquickfinder.js
 * Erzeugungsdatum : 12.01.2009
 * Autor           : Carsten Kube
 * Version         : 1.0
 * Letzte Akt.     : 12.01.2009 (CK)
 * 
 * (c) Copyright SECRA GmbH
 */

var secra;
if(!secra)
{
  secra = {};
}
else if(typeof secra != "object")
{
  throw new Error("secra ist kein Objekt!");
}

if(!secra.OPCookie) {
  secra.OPCookie = function(name) {
    var i;
    this.$name = name;
    var allcookies = document.cookie;
    if(allcookies == "") {
      return;
    }
    var cookies = allcookies.split(/;\s+/);    
    var cookie = null;
    for(i = 0; i < cookies.length; i++) {
      if(cookies[i].substring(0, name.length+1) == (name + "=")) {
        cookie = cookies[i];
        break;
      }
    }
  
    if(cookie == null) {
      return;
    }
    var cookieval = cookie.substring(name.length+1);
    var a = cookieval.split('&');
    for(i=0; i < a.length; i++) {
      a[i] = a[i].split(':');
    }
    for(i = 0; i < a.length; i++) {
      this[a[i][0]] = decodeURIComponent(a[i][1]);
    }
  };
  
  secra.OPCookie.prototype.store = function(daysToLive, path, domain, secure) {
    var cookieval = "";
    for(var prop in this) {
      if((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function')) {
        continue;
      }
      if(cookieval != "") {
        cookieval += '&';
      }
      cookieval += prop + ':' + encodeURIComponent(this[prop]);
    }
  
    var cookie = this.$name + '=' + cookieval;
    if(daysToLive || daysToLive == 0) { 
        cookie += "; max-age=" + (daysToLive*24*60*60);
    }
  
    if(path) {
      cookie += "; path=" + path;
    }
    if(domain) {
      cookie += "; domain=" + domain;
    }
    if(secure) {
      cookie += "; secure";
    }
    document.cookie = cookie;
  };
  
  secra.OPCookie.prototype.remove = function(path, domain, secure) {
    for(var prop in this) {
      if(prop.charAt(0) != '$' && typeof this[prop] != 'function') {
        delete this[prop];
      }
    }
    this.store(0, path, domain, secure);
  };
  
  secra.OPCookie.enabled = function() {
    if(navigator.cookieEnabled != undefined) {
      return navigator.cookieEnabled;
    }
    if(secra.OPCookie.enabled.cache != undefined) {
      return secra.OPCookie.enabled.cache;
    }
    document.cookie = "testcookie=test; max-age=10000";
    var cookies = document.cookie;
    if(cookies.indexOf("testcookie=test") == -1) {
      return secra.OPCookie.enabled.cache = false;
    } else {
      document.cookie = "testcookie=test; max-age=0";
      return secra.OPCookie.enabled.cache = true;
    }
  };
}

function secraquickfinder() {
  var anreise      = document.getElementById("secraanreise");
  var abreise      = document.getElementById("secraabreise");
  var objart       = document.getElementById("secraobjart");
  var zimart       = document.getElementById("secrazimmerart");
  var erwachsene   = document.getElementById("secraerwachsene");
  var kinder       = document.getElementById("secrakinder");
  var blockpers    = document.getElementById("secrapersonenblock");
  var blockzimart  = document.getElementById("secrazimartblock");
  var anreise_time = document.getElementById("secradatumA");
  var abreise_time = document.getElementById("secradatumB");  
  
  var opc = new secra.OPCookie("secraquickfinder");
  var p = location.search.split(/&|\?/), i, kv;
  var get_anreise_time = null, get_abreise_time = null ,getanreise = null, getabreise = null, getobjart = null, geterwachsene = null, getkinder = null, getzimmerart = null;
  for(i=0; i<p.length; i+=1) {
    kv = p[i].split("=");
    if(p[i].indexOf("secraanreise=") !== -1) {
      getanreise = kv[1];
    } else if(p[i].indexOf("secraabreise=") !== -1) {
      getabreise = kv[1];
    } else if(p[i].indexOf("secraobjart=") !== -1) {
      getobjart = kv[1];
    } else if(p[i].indexOf("secraerwachsene=") !== -1) {
      geterwachsene = kv[1];
    } else if(p[i].indexOf("secrakinder=") !== -1) {
      getkinder = kv[1];
    } else if(p[i].indexOf("secrazimmerart=") !== -1) {
      getzimmerart = kv[1];
    } else if(p[i].indexOf("secradatumA=") !== -1) {
      get_anreise_time = kv[1];
    } else if(p[i].indexOf("secradatumB=") !== -1) {
      get_abreise_time = kv[1];
    }
  }

  if(opc.objart && getobjart === null) {
    objart.value = opc.objart;
  }
  if(opc.zimart && getobjart === null) {
    zimart.value = opc.zimart;
  }
  if(opc.anreise && anreise.value == "" && getanreise === null) {
    anreise.value = opc.anreise;
  }
  if(opc.abreise && abreise.value == "" && getabreise === null) {
    abreise.value = opc.abreise;
  }
  if(opc.erwachsene && erwachsene.value == "" && geterwachsene === null) {
    erwachsene.value = opc.erwachsene;
  }
  if(opc.kinder && kinder.value == "" && getkinder === null) {
    kinder.value = opc.kinder;
  }
  if(opc.anreise_time && anreise_time.value == "" && get_anreise_time === null) {
    anreise_time.value = opc.anreise_time;
  }
  if(opc.abreise_time && abreise_time.value == "" && get_abreise_time === null) {
    abreise_time.value = opc.abreise_time;
  }    
  opc.objart  = objart.value;
  opc.zimart  = zimart.value;
  opc.anreise = anreise.value;
  opc.abreise = abreise.value;
  opc.erwachsene = erwachsene.value;
  opc.kinder = kinder.value;
  opc.anreise_time = anreise_time.value;  
  opc.abreise_time = abreise_time.value;    
  opc.store(1, "/");
  objart.onchange = function() {
    if(this.value === "hotel") {
      blockpers.style.display = "none";
      blockzimart.style.display = "";
    } else {
      blockpers.style.display = "";
      blockzimart.style.display = "none";
    }
  }
  blockpers.style.visibility = "";
  objart.onchange();
}

Handler.add(window,"load", secraquickfinder);
