var Ssdc = {};

Ssdc.form = {
  elForm : null,
  "onSubmit" : function (form){
    var url = '/index.php?page=_don.store';
    Ssdc.form.elForm = $(form);
    new Ajax.Request(url, { method: 'post', 
	  onComplete: Ssdc.form.gestionReponse,
	  parameters : $(form).serialize(true)
    });
  },
  "gestionReponse" : function(xhr) {
    var resultat = $('resultat');
    if (xhr.status == 200){
	  var res = xhr.responseText.evalJSON();
	  if(res.error != 0){
      Ssdc.form.elForm = null;
      alert(res.msg);
	  }
	  else{
      Ssdc.form.elForm.action = res.action;
      Ssdc.form.elForm.submit();
    }
		//alert(xhr.responseText.evalJSON());
		//$('resultat').update(res.msg);
		
    }
    else{
      $('resultat').innerHTML = xhr.status;
    }
  },
  "recup_montant" : function(){
    montant = -1;
    if($F('MontantLibre')!=""){
      montant = $F('MontantLibre');
    }
    if($F('radio1')!=null){
      montant = $F('radio1');
    }
    if($F('radio2')!=null){
      montant = $F('radio2');
    }
    if($F('radio3')!=null){
      montant = $F('radio3');
    }
    if($F('radio4')!=null){
      montant = $F('radio4');
    }
	if($F('radio5')!=null){
      montant = $F('radio5');
    }
	if($F('radio6')!=null){
      montant = $F('radio6');
    }
    $('montant1').value = Number(montant);
  }
}

Ssdc.Zoom = {
  "TOPRIGHT"    : 1,
  "BOTTOMRIGHT" : 2,
  "BOTTOMLEFT"  : 3,
  "TOPLEFT"     : 4,
  "load" : function (elm, position, list) {
    $$('select').invoke('hide');
    if (this !== Ssdc.Zoom) {
      elm = {'offsetTop' : $('zoom-contener').offsetTop + 5,
             'offsetLeft' : $('zoom-contener').offsetLeft + 5,
             'getDimensions' : function () { return this.dimensions; },
             'dimensions' : $('zoom-contener').down('img').getDimensions(),
             'href' : this.elm.action};
      position = Ssdc.Zoom.position.align;
      list = Ssdc.Zoom.list;
    } else elm = $(elm);
    Ssdc.Zoom.position = {'top'        : elm.offsetTop,
			  'left'       : elm.offsetLeft,
			  'dimensions' : elm.getDimensions(),
			  'align'      : position};
    Ssdc.Zoom.list = list;
    if (!$('zoom-layout')) {
      var contener, layout;
      document.body.appendChild(layout = new Element('div',{'id' : 'zoom-layout'}));
      document.body.appendChild(contener = new Element('div',{'id' : 'zoom-contener'}));
      Ssdc.Zoom.imgs_cached = [new Image()];
      Ssdc.Zoom.imgs_cached[0].src = '/pub/pix/no-photo.gif';
      Ssdc.Zoom.imgs_cached[0].loadedEvent = Ssdc.Zoom.imageLoaded.bindAsEventListener({"index" : 0});
      $(Ssdc.Zoom.imgs_cached[0]).observe('click',Ssdc.Zoom.close.bindAsEventListener({"index" : 0}));
      Ssdc.Zoom.imgs_error = [];
      Ssdc.Zoom.imgs_width = [32];
      $('zoom-contener').setStyle({'height' : '40px', 'width'  : '90%', 'left'   : '5%'});
    } else {
      while ($('zoom-contener').lastChild) $('zoom-contener').removeChild($('zoom-contener').lastChild);
      ['zoom-contener','zoom-layout'].each(Element.show);
    }
    if (!position) self.scrollTo(0, 0);
    var id = Ssdc.Zoom.isCached(elm);
    if (id === false) {
      id = Ssdc.Zoom.imgs_cached.push(new Image()) - 1;
      Ssdc.Zoom.imgs_cached[id].src = elm.href;
      $(Ssdc.Zoom.imgs_cached[id]).observe('click',Ssdc.Zoom.close.bindAsEventListener({"index" : id}));
    }
    if (typeof Ssdc.Zoom.imgs_cached[id].loadedEvent !== 'function'
        && Ssdc.Zoom.imgs_cached[id].width < 1) {
      Ssdc.Zoom.imgs_cached[id].loadedEvent = Ssdc.Zoom.imageLoaded.bindAsEventListener({"index" : id});
      Ssdc.Zoom.imgs_cached[id].observe('load',Ssdc.Zoom.imgs_cached[id].loadedEvent);
      Ssdc.Zoom.imgs_cached[id].errorLoadedEvent = Ssdc.Zoom.imageLoaded.bindAsEventListener({"index" : 0, "error" : id});
      Ssdc.Zoom.imgs_cached[id].observe('error',Ssdc.Zoom.imgs_cached[id].errorLoadedEvent);
    } else if (!Prototype.Browser.IE) Ssdc.Zoom.imageLoaded(null, {'index' : id});
    if (Prototype.Browser.IE) {
      Ssdc.Zoom.imageLoaded(null,{"index" : id});
    }
    return false;
  },
  "imageLoaded" : function (e, obj) {
    if (e !== null) obj = this;
    if (!obj.error) {
      for (var k in Ssdc.Zoom.imgs_error)
        if (Ssdc.Zoom.imgs_error[k] == obj.index) { obj.index = 0; break; }
    } else Ssdc.Zoom.imgs_error.push(obj.error);
    while ($('zoom-contener').lastChild) $('zoom-contener').removeChild($('zoom-contener').lastChild);
    $('zoom-contener').appendChild(Ssdc.Zoom.imgs_cached[obj.index]);
    Ssdc.Effect.show(Ssdc.Zoom.imgs_cached[obj.index]);
    if (!Ssdc.Zoom.imgs_width[obj.index])
      Ssdc.Zoom.imgs_width[obj.index] = Ssdc.Zoom.imgs_cached[obj.index].getDimensions().width;
    if (!Ssdc.Zoom.imgs_width[obj.index])
      Ssdc.Zoom.imgs_width[obj.index] = Ssdc.Zoom.imgs_cached[obj.index].getDimensions().width;
    var viewport_dimensions = document.viewport.getDimensions();
    var img_dimensions = $($('zoom-contener').firstChild).getDimensions();
    var left_position = ((viewport_dimensions.width - img_dimensions.width + 10) / 2) + 'px';
    var top_position = '30px';
    switch (Ssdc.Zoom.position.align) {
    case Ssdc.Zoom.TOPRIGHT:
      left_position = (Ssdc.Zoom.position.left + Ssdc.Zoom.position.dimensions.width - img_dimensions.width - 5) + 'px';
      top_position = (Ssdc.Zoom.position.top - 5) + 'px';
      break;
    case Ssdc.Zoom.BOTTOMRIGHT:
      left_position = (Ssdc.Zoom.position.left + Ssdc.Zoom.position.dimensions.width - img_dimensions.width - 5) + 'px';
      top_position = (Ssdc.Zoom.position.top + Ssdc.Zoom.position.dimensions.height - img_dimensions.height - 5) + 'px';
      break;
    case Ssdc.Zoom.BOTTOMLEFT:
      left_position = (Ssdc.Zoom.position.left - 5) + 'px';
      top_position = (Ssdc.Zoom.position.top + Ssdc.Zoom.position.dimensions.height - img_dimensions.height - 5) + 'px';
      break;
    case Ssdc.Zoom.TOPLEFT:
      left_position = (Ssdc.Zoom.position.left - 5) + 'px';
      top_position = (Ssdc.Zoom.position.top - 5) + 'px';
      break;
    default:
      if (img_dimensions.width > viewport_dimensions.width * 0.9
          || img_dimensions.width < Ssdc.Zoom.imgs_width[obj.index]) {
        left_position = '5%';
        Ssdc.Zoom.imgs_cached[obj.index].setStyle({'width'  : (viewport_dimensions.width * 0.9) + 'px'});
        if (Prototype.Browser.IE) {
          var height = img_dimensions.height * viewport_dimensions.width * 0.9 / img_dimensions.width;
          Ssdc.Zoom.imgs_cached[obj.index].setStyle({'height' : height + 'px'});
        }
        img_dimensions.width = viewport_dimensions.width * 0.9;
      }
    }
    $('zoom-contener').setStyle({'height' : 'auto',
                                 'width'  : (img_dimensions.width + 10) + 'px',
                                 'left'   : left_position,
                                 'top'    : top_position});
    var layout_height = viewport_dimensions.height-2;
    $('zoom-layout').setStyle({'width' : (viewport_dimensions.width - 2) + 'px',
                               'height' : layout_height + 'px'});
    $('zoom-layout').observe('click', Ssdc.Zoom.close.bindAsEventListener({"index" : obj.index}));
    if (Ssdc.Zoom.observing !== obj.index) {
      if (Ssdc.Zoom.observing && typeof Ssdc.Zoom.imgs_cached[Ssdc.Zoom.observing].loadedEvent == 'function')
        Event.stopObserving(window, 'resize', Ssdc.Zoom.imgs_cached[Ssdc.Zoom.observing].loadedEvent);
    
      Event.observe(window, 'resize', Ssdc.Zoom.imgs_cached[obj.index].loadedEvent);
    }
    Ssdc.Zoom.observing = obj.index;
    if (!Ssdc.Zoom.list) return;
    $('zoom-contener').appendChild(new Element('p', {'id' : 'previous'}));
    $('zoom-contener').appendChild(new Element('p', {'id' : 'next'}));
	$('zoom-contener').appendChild(new Element('p', {'id' : 'fermer'}));
    var ap = new Element('a', {'href' : 'javascript:void(0);'}).observe('click', Ssdc.Zoom.rotate);
    ap.innerHTML = 'Précédent';
	var ax = new Element('a', {'href' : 'javascript:void(0);'}).observe('click', Ssdc.Zoom.close.bindAsEventListener({"index" : obj.index}));
    ax.innerHTML = 'Fermer';
    var an = new Element('a', {'href' : 'javascript:void(0);'}).observe('click', Ssdc.Zoom.rotate);
    an.innerHTML = 'Suivant';
    $('previous').appendChild(ap);
    $('next').appendChild(an);
	$('fermer').appendChild(ax);

    var position = Ssdc.Zoom.getPositionInList(Ssdc.Zoom.imgs_cached[obj.index].src);
    if (Ssdc.Zoom.hasPrevious(position)) {
      $('zoom-contener').down('#previous').show();
      $('zoom-contener').down('#previous a').action = Ssdc.Zoom.list[position - 1].href;
      var id =Ssdc.Zoom.isCached({'href' : Ssdc.Zoom.list[position - 1].href});
      if (id === false) {
        id = Ssdc.Zoom.imgs_cached.push(new Image()) - 1;
        Ssdc.Zoom.imgs_cached[id].src = Ssdc.Zoom.list[position - 1].href;
      }
    } else $('zoom-contener').down('#previous').hide();
    if (Ssdc.Zoom.hasNext(position)) {
      $('zoom-contener').down('#next').show();
      $('zoom-contener').down('#next a').action = Ssdc.Zoom.list[position + 1].href;
      var id =Ssdc.Zoom.isCached({'href' : Ssdc.Zoom.list[position + 1].href});
      if (id === false) {
        id = Ssdc.Zoom.imgs_cached.push(new Image()) - 1;
        Ssdc.Zoom.imgs_cached[id].src = Ssdc.Zoom.list[position + 1].href;
      }
    } else $('zoom-contener').down('#next').hide();
  },
  "isCached" : function (elm) {
    for (var k in Ssdc.Zoom.imgs_cached)
      if (typeof Ssdc.Zoom.imgs_cached[k] == 'object' && Ssdc.Zoom.imgs_cached[k].src === elm.href) return k;
    return false;
  },
  "close" : function (e) {
    if (Ssdc.Zoom.imgs_cached[this.index].loadedEvent)
      Event.stopObserving(window,'resize',Ssdc.Zoom.imgs_cached[this.index].loadedEvent);
    ['zoom-contener','zoom-layout'].each(Element.hide);
    $$('select').invoke('show');
  },
  "rotate" : function () {
    Ssdc.Effect.hide($('zoom-contener').down('img'), Ssdc.Zoom.load.bindAsEventListener({"elm":this}));
  },
  "rotateThumb" : function (elm) {
    if ($('zoom-thumb').src == $(elm).select('img')[0].src){
      return false;
    }
    $('zoom-thumb').src = $(elm).select('img')[0].src;
    $('zoom-thumb').up('a').href = elm.href;
    Ssdc.Effect.show($('zoom-thumb'));
    return false;
  },
  "getPositionInList" : function (href) {
    for (var i = 0; i !=  Ssdc.Zoom.list.length; ++i) if (Ssdc.Zoom.list[i].href == href) return i;
    return Ssdc.Zoom.list.length - 1;
  },
  "hasNext" : function (position) {
    return Ssdc.Zoom.list.length - 1 != position;
  },
  "hasPrevious" : function (position) {
    return position != 0;
  }
};


Ssdc.Effect = {
  "resize" : function (elm, new_dimensions, speed, callback, onComplete) {
    if (((elm.getWidth() + (speed * 2)) < new_dimensions.width && speed > 0)
        || ((elm.getWidth() + (speed * 2)) > new_dimensions.width && speed < 0)) elm.setStyle({top: (elm.offsetTop - speed) + 'px',
                                                                                               left: (elm.offsetLeft - speed) + 'px',
                                                                                               width: (elm.getWidth() + (speed * 2)) + 'px',
                                                                                               height: (elm.getHeight() + (speed * 2)) + 'px'});
    else {
      var style = {top: Math.round(elm.offsetTop - ((new_dimensions.height - elm.getHeight()) / 2)) + 'px',
        left: Math.round(elm.offsetLeft - ((new_dimensions.width - elm.getWidth()) / 2)) + 'px',
        width: new_dimensions.width + 'px',
        height: new_dimensions.height + 'px'};
      if (typeof onComplete == 'function') return onComplete(elm.setStyle(style));
      return elm.setStyle(style);
    }
    new PeriodicalExecuter(function(pe) { pe.stop(); Ssdc.Effect.resize(elm, new_dimensions, callback(speed), callback, onComplete); }, 0.06);
  },
  "toggle" : function (elm, onComplete) {
    elm = $(elm);
    if (elm.visible()) this.hide(elm, function (node) { node.hide(); });
    else this.show(elm, onComplete);
  },
  "show" : function (elm, onComplete) {
    elm = $(elm).setOpacity(0);
    elm.show();
    Ssdc.Effect.appear(elm, 1, 0.2, function(speed){ return speed * 1.4; }, onComplete);
  },
  "hide" : function (elm, onComplete) {
    elm = $(elm).setOpacity(1);
    Ssdc.Effect.appear(elm, 0, -0.2, function(speed){ return speed * 1.4; }, onComplete);
  },
  "appear" : function (elm, max, speed, callback, onComplete) {
    if (((elm.getStyle('opacity') + speed) <= max && speed > 0)
        || ((elm.getStyle('opacity') + speed) > max && speed < 0) ) elm.setOpacity(elm.getStyle('opacity') + speed);
    else {
      if (typeof onComplete == 'function') return onComplete(elm.setOpacity(max));
      return elm.setOpacity(max);
    }
    new PeriodicalExecuter(function(pe) { pe.stop(); Ssdc.Effect.appear(elm, max, callback(speed), callback, onComplete); }, 0.06);
  }
}
