/*
Script: watchlist.js
	Watchlist handling

License:
	copyright (c) by msse professionelle software
	copyright (c) 2008 Michael Schwarzl , <http://www.msse.at>

References:
	uses mootools library

*/

  //-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  // handling watchlist
  //-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  var wldata = new Array();

  function formatNum(count, addtext, nulltext) {
    switch (count) {
      case 0: if (!nulltext) { return '' } else { return nulltext; };
      case 1: return '1 Produkt in der' + addtext;
    }
    return count + ' Produkte in der' + addtext;
  }

  function getWatchListIDs() {
    var result = new Array;
    for (var idx = 0; idx < wldata.length; ++idx) {
      var arti = wldata[idx].split('=');
      result.push(arti[0]);
    }
    
    return result;
  }

  function getWatchListIDsText() {
    result = getWatchListIDs.join(','); 
  }
  

  function createWatchListItemSmall(artid) {
    var arti = artid.split('=');

    var el = new Element('div', {'id': 'mkimg'});
    var a = new Element('a', {'href': '/de/pmklprd.htm?artid=' + arti[0]}).injectInside(el);
    var img = new Element('img', {'src': '/image.img?kind=art2&width=100&id=' + arti[0], 'border':'0', 'title': 'Klicken Sie hier, um dieses Produkt anzuzeigen.'}).injectInside(a);
    
    var deldiv = new Element('div', {'class': 'preview', 'id': 'mkimgdel', 'xtitle': 'Dieses Produkt aus der Merkliste nehmen.'}).injectAfter(img);
    deldiv.setProperty('artid', artid);
    deldiv.addEvent('click', function(){ a.href=''; removeFromWatchList(this.getProperty('artid')); });
    el.setStyle('opacity', '0.3');

    
//    if (window.ie) deldiv.setStyle('opacity', '0.3');

    var fx = new Fx.Morph(el, {duration:200, wait:false});
    el.addEvent('mouseenter', function(){ fx.start({ 'opacity': '1' }); });
    el.addEvent('mouseleave', function(){ fx.start({ 'opacity': '0.2' }); });
    
    return el;
  }

  function createWatchListItemDetail(artid, index) {
  
    var arti = artid.split('=');
  
    var datanews = new Element('div', {'id': 'datanews'});   
    var datacnt = new Element('div', {'id': 'datacnt'}).injectInside(datanews);  if (index < 9) { datacnt.innerHTML = '0' + (index+1); } else {datacnt.innerHTML = (index+1); };
    var dataimg = new Element('div', {'id': 'dataimg'}).injectAfter(datacnt);
      var a = new Element('a', {'href': '/de/pmklprd.htm?artid=' + arti[0]}).injectInside(dataimg);
        var img = new Element('img', {'src': '/image.img?kind=art2&width=100&id=' + arti[0], 'border':'0', 'title': 'Klicken Sie hier, um dieses Produkt anzuzeigen.'}).injectInside(a);
    var datatext = new Element('div', {'id': 'datatext', 'style': 'top:45px; left:160px;'}).injectAfter(dataimg);
      var h5 = new Element('h5', {}).injectInside(datatext);
        var a = new Element('a', {'href': '/de/pmklprd.htm?artid=' + arti[0]}).injectInside(h5);
        if (arti.length > 1) { a.innerHTML = arti[1]; } else {a.innerHTML = 'kein Text hinterlegt'; }
    
        
    var deldiv = new Element('div', {'id': 'mkimgdel', 'xtitle': 'Dieses Produkt aus der Merkliste nehmen.', 'style': 'position:absolute; left:16px; top:55px;'}).injectAfter(datatext);
    deldiv.setStyle('opacity', '0.2');
    deldiv.setProperty('artid', artid);
    deldiv.addEvent('click', function(){ removeFromWatchList(this.getProperty('artid')); });
    
    var fx = new Fx.Morph(deldiv, {duration:200, wait:false});
    deldiv.addEvent('mouseenter', function(){ fx.start({ 'opacity': '1' }); });
    deldiv.addEvent('mouseleave', function(){ fx.start({ 'opacity': '0.2' }); });
    
        
    return datanews;
  }
  

  function displayImages(images) {


    // display items to wathlist    
    var gallery = $('mklst');
    gallery.empty();
    for (var idx = 0; idx < images.length; ++idx) {
      createWatchListItemSmall(images[idx]).inject(gallery);
    }
    
    // check if watchlist detail exists
    if ($('edtmklcnt')) $('edtmklcnt').innerHTML = formatNum(wldata.length, ' Merkliste', 'Es sind keine Produkte in der Merkliste'); 
    if ($('edtmkl')) {
      gallery = $('edtmkl');
      gallery.empty();
      
      for (var idx = 0; idx < images.length; ++idx) {
        createWatchListItemDetail(images[idx], idx).inject(gallery);
      }
    }

    // set printlinks
    var list = $$('.mklprint');
    list.each(function(element) {
       element.setProperty('href', '/partdru.htm?ms=5&art='+getWatchListIDs().join(','));
       element.setProperty('target', '_blank');
     });
    

    // set tooltips to delete buttons  
    var mytips = new Tips('#mkimgdel', {className: 'proform', showDelay: 400, hideDelay: 400, fixed: true}); 
  }

  function displayWatchLists() {
    $('mkcnt').innerHTML = formatNum(wldata.length, '');
    displayImages(wldata);
  }; 
  
  function loadWatchList() {
    var tmp = Cookie.read('mklst')
    if ((tmp == '') || (!tmp)) { wldata = new Array; } else { wldata = tmp.split(';'); }
    displayWatchLists();
  }
  
  function saveWatchList() {
    Cookie.write('mklst', wldata.join(';'), {duration: 30});
  }
  
  function addToWatchList(artid) {
    if (artid != '') { 
      if (wldata.indexOf(artid) == -1) wldata.push(artid);
      saveWatchList();
      displayWatchLists();
    }
  }

  function removeFromWatchList(artid) {
    if (artid != '') {
      var pidx = wldata.indexOf(artid) ;
      if (pidx >= 0) wldata.splice(pidx, 1);
      saveWatchList();
      displayWatchLists();
    }
  }

  function clearWatchList() {
     wldata = new Array;
     saveWatchList();
     displayWatchLists();
  }

  function initWatchList() {
     loadWatchList();
     displayWatchLists();
  }


  

  window.addEvent('domready', function(){ initWatchList(); });  
  
