// gestion des menu gauches, attribut display
// function voir() {
// 	var i, obj, args = voir.arguments;
//
// 	if(document.getElementById) {
// 		for (i=0; i<args.length; i++) {
// 			obj = document.getElementById(args[i]);
// 	 		obj.style.display = "block";
// 	 		obj.style.visibility = "visible";
// 	 	}
// 	}
// }
//
// function cache() {
// 	var i, obj, args = cache.arguments;
//
// 	if(document.getElementById) {
// 		for (i=0; i<args.length; i++) {
// 			obj = document.getElementById(args[i]);
// 	 		obj.style.display = "none";
// 	 		obj.style.visibility = "hidden";
// 	 	}
// 	}
// }

// Applique une popup a des objet (obj est un objet jQuery)
TZR.myApplyHottip = function(obj){
  obj.tooltip({
    position: "bottom right",
    offset: [-60,2],
    delay:10,
    opacity: 1,
    tip: '.tooltip'
  });
};

function dob_picker(selector){
  jQuery(selector).each(function(){
    jQuery(this).datepicker({
       dateFormat: date_format,
       altField: "#"+jQuery(this).attr('rel'),
       altFormat: "yy-mm-dd",
       showStatus: true,
       showOn: "both",
       buttonImage:"/images/calendrier.gif",
       buttonImageOnly: true,
       changeMonth: true,
       changeYear: true,
       mandatory:true,
       minDate: new Date(1900, 1, 1),
       defaultDate: jQuery.datepicker.parseDate('yy-mm-dd', jQuery("#"+jQuery(this).attr('rel')).attr('value') ),
       maxDate: new Date(1999, 1, 1),
       yearRange:'1900:'+(new Date()).getFullYear()
    });
  });
};

//definir la bonne langue pour le calendrier
jQuery(function(a){
  a.datepicker.regional['en']=a.datepicker.regional[''];
  a.datepicker.setDefaults(a.datepicker.regional[lang]);
});

//resoud le plantage sous ie
jQuery.ajaxSetup ({
      async: false
});

var scroller;

// swap image
// definir la valeur de l'image alternative dans l'attribut rel
function swap_image() {
    tmp = jQuery(this).attr('src');
    jQuery(this).attr('src', jQuery(this).attr('rel'));
    jQuery(this).attr('rel', tmp);
};

function step1() {
  jQuery('#retour').hide();
  jQuery('#suite')
  .click(function(e){
        jQuery('#frmstep1').submit();
        return false;
  })
  .toggle(jQuery('#listeDate select:visible option:selected').attr('dispo') > 0);

  //definit le tooltip sur les jours du calendrier
  jQuery('#calendrier').mousemove(function(){
      if(jQuery(document).attr('monthchanged',true)){
          jQuery(document).attr('monthchanged',false);
          TZR.myApplyHottip(jQuery('.ui-state-perso'));
      }
  });
  jQuery('#calendrier').datepicker({
      numberOfMonths: 3,
      showButtonPanel: false,
      changeMonth: false,
      changeYear: false,
      hideIfNoPrevNext: true,
      showOtherMonths: false,
      minDate: new Date(2009, 11, 1),
      maxDate: new Date(2010, 3, 30),
      beforeShowDay: function(date) {
          var ret = new Array();
          ret[0] = false;
          ret[1] = 'ui-state-default';
          if (tbdate[jQuery.datepicker.formatDate('yy-mm-dd', date)] == 1) {
              ret[1] = 'ui-state-perso';
              ret[2] = tbcomment[jQuery.datepicker.formatDate('yy-mm-dd', date)];
          }
          return ret;
      },
      onChangeMonthYear: function(year, month, inst) { jQuery(document).attr('monthchanged',true) }
  });

  // step1 changement station => chgt detail et date
  jQuery('#step1Resort').change(function(e){
      jQuery('.detailStation').hide();
      resort_oid = jQuery(this).val().replace(':','');
      if (resort_oid){
          jQuery('#detail'+resort_oid).show();
          jQuery('#step1alerte').hide();
          jQuery('#listeDate select').hide().attr('name', '');
          jQuery('#step1dt'+resort_oid).show().attr('name', 'DATEE');
          jQuery('#suite').hide();
      }
  })/*.change()*/;

  // step1 changement date => alert mail waiting list ou suite
  jQuery('#listeDate select').change(function(){
      var date_oid = jQuery(this).val();
      if (date_oid) {
          jQuery('#step1alerte').hide();
          //si pas dispo pour cette date
          $dispo = jQuery(this).find('option:selected').attr('dispo');
          if ($dispo < 1) {
              jQuery('#step1alerte').show();
              jQuery('#suite').hide();
          } else {
              // affichage et activation du bouton suivant
              jQuery('#step1alerte').hide();
              jQuery('#suite').show();
              window.scrollTo(0,645);
          }
      } else
        jQuery('#suite').hide();
  });

  // submit alert
  jQuery('#btstep1alerte').click(function(e){
      var reg = /^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$/;
      if (reg.test(jQuery('#frmstep1 input[name=EMAIL]').val())) {
          jQuery.ajax({
              type: "POST",
              url: tzr_self+'function=waitinglist',
              dataType: "html",
              data: jQuery('#frmstep1').serializeArray(),
              success: function(msg){
                  jQuery("#step1alerte").html(msg);
              }
          });
      } else
          jQuery('#frmstep1 input[name=EMAIL]').focus();
      return false;
  });
}

function step2() {

    // date picker
    dob_picker('input.dobpicker');
    TZR.myApplyHottip(jQuery('.helpertips'));
    scroller = jQuery('#scrollerperso').scrollable({size: 2, item: '.elmscrollable', api: true});
    // ajout
    jQuery('#step2btAdd').click(function(e){
        jQuery('#ajout').hide();
        jQuery('#elmFrm').addClass('elmscrollable').show();
	scroller.reload();
        scroller.end();
        step2_edit();
        return false;
    });

    // bouton de modif d'un rider, appel formulaire edition
    jQuery('.savedRider .bt_form').click(function(e){
        jQuery('#ajout').hide();
        jQuery('#suite').hide();
        var oid = jQuery(this).attr('rel');
        jQuery('#rider'+oid.replace(':','')).load(
            tzr_self,
            {'function' : 'editRider', 'nocache' : 1, 'template': 'step2_editRider.html', 'oid': oid},
            step2_edit
        );
        return false;
    });

    // suppression
    jQuery('.close a').click(function(e){
        var oid = jQuery(this).attr('rel');
        jQuery.ajax({
            url: tzr_self,
            data: {'function':'delRider', 'oid': oid, 'template': 'step2_listRider.html'} ,
            dataType: 'html',
            success: function(data, status) {
                jQuery('#scrollerperso .items').html(data);
                step2();
            }
        });
        return false;
    });
    // show add rider btn if form present and hidden
    jQuery('#ajout').toggle(jQuery('#elmFrm:hidden').length > 0);
    nbRiders = jQuery('.savedRider').length;
    jQuery('#suite').toggle(nbRiders > 0 && nbRiders <= dispo);
    jQuery('#toManyRiders').toggle(nbRiders == dispo);
}
//valid les element specifique du formulaire d'ajout de rider
function validFormRider(frm){
  var $frm = jQuery(frm);
  var civ = jQuery('#'+$frm.attr('id')+' input[name=CIVIL]:checked').val(); 
  if(!civ){
    jQuery('#'+$frm.attr('id')+' input[name=CIVIL]').parent().css('border','1px solid red');
    return false;
  }else{
    jQuery('#'+$frm.attr('id')+' input[name=CIVIL]').parent().css('border','0px solid black');
  };
  var dob = jQuery('#'+$frm.attr('id')+' input.dobpicker '); 
  if(!dob.val()){
    jQuery('#'+$frm.attr('id')+' input[name=DOB]').parent().css('border','1px solid red');
    return false;
  }else{
    jQuery('#'+$frm.attr('id')+' input[name=DOB]').parent().css('border','0px solid black');
  };
  var country = jQuery('#'+$frm.attr('id')+' select[name=COUNTRY] '); 
  if(!country.val()){
    country.parent().css('border','1px solid red');
    return false;
  }else{
    country.parent().css('border','0px solid black');
  };
  var lvl = jQuery('#'+$frm.attr('id')+' select[name=SEG1] '); 
  if(!lvl.val()){
    lvl.parent().css('border','1px solid red');
    return false;
  }else{
    lvl.parent().css('border','0px solid black');
  };
  return true;
}

function step2_edit() {
    // edition rider
    dob_picker('input.dobpicker');
    TZR.myApplyHottip(jQuery('.helpertips'));
    jQuery('#scrollerperso form').submit(function(e){
        if (validFormRider(this) && TZR.isFormValidWithFocus(this, true)) {
            jQuery.ajax({
                url: tzr_self,
                data: jQuery(this).serializeArray(),
                dataType: 'html',
                success: function(data, status) {
                    jQuery('#scrollerperso .items').html(data);
                    step2();
                }
            });
        }
        return false;
    });
    scroller.reload();
}
function step3_fillform(frm) {
    $val = jQuery(frm).val();
    for(k in tbskier[$val]){
	jQuery('#createAccount [name='+k+']').val(tbskier[$val][k]);
	if (k == 'DOB' ) jQuery('#createAccount [name='+k+'_jquery]').datepicker('setDate',jQuery.datepicker.parseDate('yy-mm-dd', tbskier[$val][k] ));
    };
    
    //jQuery('#createAccount input[name=FNAME]').val(fname);
    //jQuery('#createAccount input[name=LNAME]').val(lname);
    //jQuery('#dobpicker').val(dob);
    //jQuery('#altpicker').val(dob_raw);
    //jQuery('#createAccount select[name=COUNTRY]').val(country);
    //jQuery('#createAccount input[name=email]').val(email);
}
jQuery(document).ready(function(){
  // active le mousehover sur image contenu dans les lien de class swap
  jQuery('a.swap img').hover(swap_image, swap_image);
  switch (step) {
    case 1:
        step1();
        break;
    case 2:
        jQuery('#suite a').attr('href', tzr_self+'&alias=booking&step=3');
        jQuery('#retour a').attr('href', tzr_self+'&alias=booking');
        jQuery('#retour').show();
        step2();
        // ajout du premier rider
        if (jQuery('#elmFrm:visible').length > 0)
          step2_edit();
        break;
    case 3:
        jQuery('#retour a').attr('href', tzr_self+'&alias=booking&step=2');
        jQuery('#retour').show();
        break;

  }

  // toggle connection/lost password forms
  jQuery('.bt_toggle').click(function(e){
    jQuery('#connection').slideToggle('1000');
    jQuery('#lost_passwd').slideToggle('1000');
    return false;
  });

  // submit lost password form
  jQuery('#lp_submit').click(function(e) {
      jQuery('#lp_inner .errormessage').html('');
      var email = jQuery('#lp_email').val();
      jQuery.post(tzr_self, {'function': 'lostpassword', 'email': email}, function(data){
          if (data.error) {
              jQuery('#lp_inner .errormessage').html(data.msg);
          } else {
              jQuery('#lp_inner').html(data.msg);
              jQuery('#lp_submit').hide();
          }
      }, "json");
  });

  // dob date picker (step3, myaccount)
  dob_picker("#dobpicker");

});
jQuery(document).attr('monthchanged',true);

//parametrage de dialog
TZR.myDialog = function(options){
  jQuery("#dialog").dialog({
    draggable: false,
    bgiframe: true,
    resizable: false,
    height: 40,
    modal: true,
    overlay: { backgroundColor: '#000', opacity: 0.5},
    autoOpen: false
  });

  jQuery.each(options, function(name, opt) {
    jQuery("#dialog").dialog('option', name.valueOf(), opt);
  });
  jQuery("#dialog").dialog('open');
};
