// alle mouseover events beim pageload registrieren
Event.observe(window, 'load', function(e) {
	var navs = document.getElementsByClassName('navImage');
	for(z=0;z<navs.length;z++) {
		Event.observe(navs[z], 'mouseover', function(e) { navFadeIn(Event.element(e)); });
		Event.observe(navs[z], 'mouseout', function(e) { navFadeOut(Event.element(e)); });
	}

	var prodBoxes = document.getElementsByClassName('prodBoxHover');
	for(z=0;z<prodBoxes.length;z++) {
		Event.observe(prodBoxes[z], 'mouseover', function(e) { produktBoxOpen(Event.element(e).parentNode.childNodes[0]); });
		Event.observe(prodBoxes[z], 'mouseout', function(e) {produktBoxClose(Event.element(e).parentNode.childNodes[0]); });
	}
    });

function navFadeIn(element) {
    if(element.effect) element.effect.cancel();
    element.effect = 
    new Effect.Opacity(element, {
	duration:0.5,
	from:0.4,
	to: 0.999
    });
}

function navFadeOut(element) {
    if(element.effect) element.effect.cancel();
    element.effect = 
    new Effect.Opacity(element, {
	duration:0.5,
	from:0.999,
	to:0.4
    });
}

function produktBoxOpen(element) {
    // close timout jedesmal bei mouseover event verlängern
    if(element.timeout) {
	    window.clearTimeout(element.timeout);
    }
    
    //nur wenn element geschlossen ist öffnen
    if(element.open || element.moving) return;

    // wenn box nicht geöffnet und nicht am öffnen oder schliessen ist, 
    element.moving = true;
    new Effect.MoveBy(element, -100, 0, {duration:0.2, afterFinish: function() {element.moving = false;}});
    element.open = true;
}

function produktBoxClose(element) {
    // nur wenn element offen ist schliessen
    if(!element.open) return;

    // close events muessen "gequeued" werden, damit die elemente nicht offen bleiben
    if(element.moving) {
	    if(!element.movetimeout)
		    element.movetimeout = window.setTimeout(function() { element.movetimeout = null; produktBoxClose(element); }, 50);
	    return;}

    // erst nach einer halben sekunde wirklich schliessen
    if(element.timeout) {
	window.clearTimeout(element.timeout);
    }
    element.timeout = window.setTimeout(function() {
	element.moving = true;
	new Effect.MoveBy(element, 100, 0, {duration:1, afterFinish: function() {element.moving = false;}});
	element.open = false;
    }, 500);
    
}

function merken(id) {
	var keks = Cookie.get('ProduktAnfrage');
	if(keks && keks.match(new RegExp('[^0-9]*' + id + ','))) {
		keks = keks.replace(new RegExp('([^0-9]*)' + id + ','), '$1');
		Cookie.set('ProduktAnfrage', keks);
		$('merker').src = "img/icons/12-em-check-bw.png";
		return;
	}
	Cookie.set('ProduktAnfrage', keks + id + ',');
	$('merker').src = "img/icons/12-em-check.png";
}


//Prototype Erweiterung fuer Cookies
var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.erase('_test') === '1');
  }
};

