var timeout_wipajax_main = undefined;
var timeout_wipajax_basket_add = undefined;

function wipAjaxHttpAjaxSuccess (t, statusDiv) {

}
function wipAjaxHttpAjaxError (t) {
  //alert('Error ' + t.status + ' -- ' + t.statusText);
  //alert('you can\'t user this pseudo (ndr : test version).');
  //$(imgPseudo).src = '/champNonValide.gif';
}

function wipAjaxHttpAjaxError404 (t) {
  //alert('Error ' + t.status + ' -- ' + t.statusText);
  //alert('you can\'t user this pseudo (ndr : test version).');
  //$(imgPseudo).src = '/champNonValide.gif';
}

var toggle_db = new Hash();
function wipAjax (queryString, htmlDiv, page, method, effect, toggle, toggle_keep_open) {
  var url = page;
  var status = $(htmlDiv + 'status');
  if (status) {
    status.style.display = 'inline';
  }

  if (toggle) {
    try {
      clearTimeout(timeout_wipajax_main);
      clearTimeout(timeout_wipajax_basket_add);

      toggle_db.each( function(pair) {
        if (htmlDiv != pair.value) {
          //if ( $('debug') ) $('debug').insert({ bottom : (pair.key + ' = "' + pair.value + '"') });
          //alert(pair.key + ' = "' + pair.value + '"');
          var my_div_toggle = $(pair.key);
          if (my_div_toggle) {
            my_div_toggle.removeClassName('active');
          }
          if ($(pair.value).visible()) {
            new Effect.SlideUp($(pair.value), { duration: 0.5 } );
          }
          toggle_db.unset(pair.key);
        }
      });

      var div_toggle = $(htmlDiv + toggle);
      if ( toggle_db.get(htmlDiv + toggle) ) {
	if (toggle_keep_open) {
	  effect = '';
	} else {
          toggle_db.unset(htmlDiv + toggle);
          if (div_toggle) div_toggle.removeClassName('active');
          new Effect.SlideUp(htmlDiv, { duration: 0.5 } );
          return;
	}
      } else {
        toggle_db.set(htmlDiv + toggle, htmlDiv);
        if (div_toggle) div_toggle.addClassName('active');
      }

    } catch (err) {
    }
  }

  if (method == 'post') {
    new Ajax.Updater(
                     htmlDiv, url, {
                                    onComplete:function(){
                                                          if (effect) {
							    try {
							      if (effect == 'slidedown') {
							        new Effect.SlideDown(htmlDiv, { duration: 0.5 } );
							      } else {
							        htmlDiv.show();
                                                                new Effect.Highlight(htmlDiv, { duration: 0.5 } );
							      }
							    } catch (err) {
							    }
                                                          }
                                                         },
                                    asynchronous: true,
                                    evalScripts: true,
                                    method: 'post',
                                    parameters: '',
                                    postBody: queryString,
                                    on404: wipAjaxHttpAjaxError404,
                                    onSuccess: wipAjaxHttpAjaxSuccess,
                                    onFailure: wipAjaxHttpAjaxError
                                   }
                       );

  } else {
    new Ajax.Updater(
                     htmlDiv, url + '?' + queryString, {
                                                        onComplete:function(){
                                                                              if (effect) {
										try {
							                          if (effect == 'slidedown') {
							                            new Effect.SlideDown(htmlDiv, { duration: 0.5 } );
							                          } else {
							                            htmlDiv.show();
                                                                                    new Effect.Highlight(htmlDiv, { duration: 0.5 } );
							                          }
										} catch (err) {
										}
                                                                              }
                                                                             },
                                                        asynchronous: true,
                                                        evalScripts: true,
                                                        method: 'get',
                                                        on404: wipAjaxHttpAjaxError404,
                                                        onSuccess: wipAjaxHttpAjaxSuccess,
                                                        onFailure: wipAjaxHttpAjaxError
                                                       }
                    );
  }

}



function focus_textarea (ev) {
  var el = ev.element();
  if (el.readAttribute('alt') == el.value) { el.value=''; }
  var par = el.up(1);
  par.removeClassName('wipajaxinactive');
  par.addClassName('wipajaxactive');
}
function blur_textarea (ev) {
  var el = ev.element();
  var par = el.up(1);
  if (!el.value) {
    el.value=el.readAttribute('alt');
    par.removeClassName('wipajaxactive');
    par.addClassName('wipajaxinactive');
  }
}


function update_user_box(div, page, query_string) {
  // alert(div);
  if (div && page) {
    wipAjax(query_string, div, page);
  } else {
    var user_box = document.getElementById("wip_person_fb");
    // add in some XFBML. note that we set useyou=false so it doesn't display "you"
    user_box.innerHTML = "<span>" +
         "<fb:profile-pic uid=loggedinuser facebook-logo=true></fb:profile-pic>" +"<fb:name uid=loggedinuser useyou=false></fb:name>. You are signed in with your Facebook account." +
         "</span>";
    // because this is XFBML, we need to tell Facebook to re-process the document
    FB.XFBML.Host.parseDomTree();
  }
}

function init_user_box() {
  // because this is XFBML, we need to tell Facebook to re-process the document
  FB.XFBML.Host.parseDomTree();
}



var menu_db = new Hash();
function menu_toggle (current, parent) {
  menu_db.each( function(pair) {
    if (current != pair.key) {
      //alert(pair.key + ' = "' + pair.value + '"');
      if ($(pair.key)) {
        $(pair.key).removeClassName('current');
      }
      menu_db.unset(pair.key);
    }
  });

  menu_db.set(current, 1);
  if ($(current)) {
    $(current).addClassName('current');
  }
}






