/**
 * fonctions pour l'inscription d'un user a la gameco (site+ event)
 */


/**
 * affiche, en fonction des cases cochées, différentes offres, retrouvées par Ajax
 */
function showOffer()
{
  //recuperer les cases cochées
  var list_profile = "";
  var glue = "";
  var elts = $('form_profil').elements;
  for (i=0; i<elts.length; i++)
  {
  	 // on check dans le cas d'un radio et dans le cas d'un hidden
 		if(((elts[i].type == "radio" && elts[i].checked) || elts[i].type == "hidden") && elts[i].name == "public_profile") 
    {
      list_profile += glue + elts[i].value;
      glue = ",";
    }
  }
  //alert(list_profile);
  $('offers').innerHTML = "";//efface la liste dans tous les cas
  $('offers').show();
  if($('userformContener')) $('userformContener').hide();
  if($('codepromoContener')) $('codepromoContener').hide();
  if($('nbpassContener')) $('nbpassContener').hide();
  if($('addparticipantContener')) $('addparticipantContener').hide();
  $('btnsubmit').disabled = true;
  $('promo_used').value = "";
  $('pack_selected').value = "";
  $('listPromo').innerHTML = "";
  $('nbpass').value = 1;
  
  updPrice();
    
  if(list_profile.length > 0)
  {
  	if(document.form_registration)	var con_id = getRadioButtonCheckedValue(document.form_registration.con_id);
    new Ajax.Updater('offers',LIST_OFFERS,
                {parameters:{list_profile: list_profile, con_id: con_id},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {$('offers').update(divLoader)},
                  onComplete:function() {}
                  }  
                );
  }
}

/**
 * gere le rollover des packages
 * @param {Object} id id du package
 * @param {Object} sens 1 pour mouseover, 0 pour mouseout
 */
function swapSelected(id, sens)
{
  if($('pack_header_'+id) && $('pack_details_'+id))
  {
    if(sens)
    {
      $('pack_header_'+id).className = 'header headerHover';
      $('pack_details_'+id).className = 'details detailsHover';
    }else{
      if ($F('pack_selected') != id) 
      {
        $('pack_header_' + id).className = 'header';
        $('pack_details_' + id).className = 'details';
      }
    }
  }
}

/**
 * retiens le pack selectionné, le met en gris et deselectionne le precedent eventuellement selectionne, et affiche la suite du formulaire de commande
 * @param {Object} cpr_id
 */
function showOption(cpr_id)
{
  var pack_selected = 0;
  //remet l'ancien pack avec la class normale
  if ($('pack_selected') && $F('pack_selected') && $F('pack_selected') != "") 
  {
    pack_selected = $F('pack_selected');
    $('pack_' + pack_selected).className = 'pack';
    $('pack_header_' + pack_selected).className = 'header';
    $('pack_details_' + pack_selected).className = 'details';
  }
  //met le nouveau pack en selected
  $('pack_selected').value = cpr_id;
  //$('pack_'+$F('pack_selected')).className += ' selectedOffer';
  
  //efface le code promo eventuellement saisie
  $('listPromo').innerHTML = "";
  $('promo_used').value = "";
  
  updPrice();
  
  if($('userformContener')) $('userformContener').show();
  
  //alert("-"+pack_selected+"-");
  if (cpr_id == 55 || cpr_id == 56 || cpr_id == 0) 
  {
    $('codepromoContener').hide();
    if($('con_multiuser_reg') && $F('con_multiuser_reg') == 1)	$('nbpassContener').hide();
  }else{
    //affiche la suite du formulaire
    
    $('codepromoContener').show();
    if($('con_multiuser_reg') && $F('con_multiuser_reg') == 1)	$('nbpassContener').show();
  }
  //si on est loggé, on permet de submiter le formulaire
  if($('usr_id') && $F('usr_id') != "")
  {
    $('btnsubmit').disabled = false;
  }
  
}

/**
 * met a jour le prix de la commande
 */
function updPrice()
{
  //mettre a jour le prix
  var pack_selected = $F('pack_selected');
  var nbpass = $F('nbpass');
  var promo_used = $F('promo_used');
  new Ajax.Updater('total',CMD_TOTAL,
                {parameters:{pack_selected: pack_selected, nbpass: nbpass, promo_used: promo_used},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {$('total').innerHTML = "<img src='/images/ajax.gif' />";},
                  onComplete:function() {}
                  }  
                );
}

/**
 * reinitialise le bouton de check de email a l'etat par defaut, et cache la suite du formulaire
 */
function resetButtonEmail()
{
  $('btn_email_registration').value = 'Check!';
  $('btn_email_registration').disabled = false;
  $('btn_email_registration').className = '';
  $('userformExtended').innerHTML = "";
}


/**
 * verifie l'email qui est saisie a l'inscription, et affiche selon le cas (connu ou pas) le password ou le reste du formulaire
 */
function verifEmail()
{
  if($('email_registration') && $F('email_registration').length > 0 && validMail($F('email_registration')))
  {
    //alert($F('email_registration'));
    var email = $F('email_registration');
    new Ajax.Updater('userformExtended',VERIF_EXIST_EMAIL,
                {parameters:{email: email},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {$('btn_email_registration').value = 'searching...';$('btn_email_registration').disabled = true; /*$('btn_email_registration').className = 'disabled';*/},
                  onComplete:function() {$('btn_email_registration').value = 'Check!';$('btn_email_registration').disabled = false;}
                  }  
                );
  }else{
  	$('btnsubmit').disabled = true;
    alert("Please, enter a valid email!");
  }
}

/**
 * verifie l'email et le password soumis dans le formulaire d'engistrement
 */
function verifPwd()
{
  var email = ($('email_registration')) ? $F('email_registration') : false;
  var pwd = ($('pwd_registration')) ? $F('pwd_registration') : false;
  if(email && pwd)
  {
    new Ajax.Updater('userformExtended',VERIF_LOGIN,
                {parameters:{email: email, pwd: pwd},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {},
                  onComplete:function() {}
                  }
                );
  }
}

/**
 * verifie l'email et le password soumis dans le formulaire d'engistrement
 */
function replaceLogin(link_logout,link_ms,firstname)
{
  var content = "<div class='welcome'><b>Welcome "+firstname+"</b>&nbsp; | &nbsp;"+link_logout+"<br/>"+link_ms+"</div>";
  $('login_bt').replace(content);
}



          
/**
 * ajout d'un participant a la commande
 */
function addPart()
{
  var compteur = $F('nbpass');
  $('addparticipantContener').show();
  if(participant_content.length > 0 && compteur > 1)
  {
    var temp = compteur;
    temp++;
    var txt = participant_content.replace(/_1/g,'_'+temp);
    
    var participant = $('addparticipantContener');
    if (participant) 
    {
      var div = new Element('div');//Obligé de faire comme ca, IE n'aime pas bien les innerHTML, et ca garde les infos saisis pour les inputs precedents
      div.update(txt);
      participant.appendChild(div);
    }
  }
  $('btnsubmit').disabled = true;
  compteur++;
  $('nbpass').value = compteur;
  checkEmptyUserForm_additional();
  updPrice();
}

/**
 * efface le contener pour un participant
 * 
 */
function delPart()
{
  var compteur = $F('nbpass');
  if(compteur > 1)
  {
    var indice = compteur;
    var old = $('participant_' + indice);
    //alert(indice);
    //if(old) alert('old');
    //if(old.parentNode) alert('old.parentNode');
    //if(old.parentNode.removeChild) alert('old.parentNode.removeChild');
    if(old && old.parentNode && old.parentNode.removeChild)
    {
      //alert('remove');
      old.parentNode.removeChild(old);
    }
    compteur--;
    $('nbpass').value = compteur;
  }
  checkEmptyUserForm_additional();
  updPrice();
}

function  checkEmptyUserForm_additional(){
	var compteur = $F('nbpass');
	if(compteur == 1)
  {
  	$('addparticipantContener').hide();
    if(typeof checkEmptyUserForm == "function")  checkEmptyUserForm();
  }else{
	  for(i=1; i<=compteur; i++)
	  {
	  	if($('part_usrid_'+i))
	  	{
	  		if(
					$F('part_lastname_'+i)!='' &&	$F('part_job_'+i)!='' &&	$F('part_firstname_'+i)!='' &&
					($F('part_email_'+i)!='' || $F('part_usrid_'+i)!='' && $F('part_email_'+i)=='')
				){
					if(typeof checkEmptyUserForm == "function") checkEmptyUserForm();
				}else{
					$('btnsubmit').disabled = true;
				}
	  	}
	  }
  }
}

/**
 * verifie un code promo saisi et affiche la reduction eventuelle
 */
function checkCodePromo()
{
  var codepromo = $F('codepromo');
  var pack_selected = $F('pack_selected');
  if(codepromo)
  {
  	if(document.form_registration)	 var con_id = getRadioButtonCheckedValue(document.form_registration.con_id);
    new Ajax.Updater('listPromo',VALID_CODE_PROMO,
                {parameters:{codepromo: codepromo, pack_selected: pack_selected, con_id: con_id},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {$('btn_codepromo').value = 'Checking...';$('btn_codepromo').disabled = 'disabled';},
                  onComplete:function() 
                              {
                                $('btn_codepromo').value = 'Check!';
                                $('btn_codepromo').disabled = false;
                                $('codepromo').value='';
                              }
                  }  
                );
  }else{
  	alert("Please enter a promo code.");
  }
}

/**
 * affiche/cache l'exemple de saisie d'un participant dans l'input box
 * @param sens {boolean}: true si on cache, false si on affiche
 */
function swapSample(sens, id)
{
  valbox = $F(id);
  //alert('ok1');
  if (sens && (valbox == 'Please type a name'))
  {
    $(id).value = '';
    $(id).style.color = '#000';
  }
  if (!sens && (valbox == ''))
  {
    $(id).value = 'Please type a name';
    $(id).style.color = '#888';
    var num = id.split("_")[2];
    $('part_usrid_'+num).value ='';
    $('part_lastname_'+num).value ='';
    $('part_lastname_'+num).disabled = false;
    $('team_'+num).disabled = false;
    $('part_job_'+num).value ='';
    $('part_email_'+num).value ='';
  }
  //alert('ok2');
}

/**
 * met a jour en ajax le total TTC de la commande ainsi que la TVA
 */
function majTvaResume()
{
  var cty_id = $F('cty_id');
  var con_id = $F('con_id');
  var cde_id = $F('cde_id');
  
  if(cty_id && con_id && cde_id)
  {
    new Ajax.Updater('totalContener',MAJ_PRICE,
                {parameters:{cty_id: cty_id, con_id: con_id, cde_id: cde_id},
                  asynchronous:true, 
                  evalScripts:true,
                  onCreate:function() {$('totalContener').innerHTML = "<img src='/images/ajax.gif' />";},
                  onComplete:function() {}
                  }  
                );
  }
}

function hideCountryOptions(is_intra, cty_id){
	if(is_intra){
    $('VATintra').show();
  }else{
    $('VATintra').hide();
  }
	if(cty_id!=184){
    $('State').hide();
  }else{
    $('State').show();
  }
}

/**
 * affiche le bouton submit que si un moyen de paiement est selectionn� et la case des cgv est coch�e (confirm_orderSuccess)
 */
function checkCGV()
{
  if( (($('payment_paybox') && $F('payment_paybox')) || ( $('payment_transfer') && ($F('payment_transfer')))) && $('chk_cgv').checked  )
  {
    $('commit').disabled = '';
  }
  else
  {
    $('commit').disabled = 'disabled';
  }
}

/**
 * verifie que la billing address dans confirmOrder est bien remplie
 */
function checkBillingAddress()
{
  //bcp_contact_firstname, bcp_contact_lastname, bcp_tel, bcp_name, bcp_address, bcp_postcode, bcp_city, cty_id
  txt = "";
  if($F('bcp_contact_firstname') == '')
  {
    txt += "- Contact's first name\n";
  }
  if($F('bcp_contact_lastname') == '')
  {
    txt += "- Contact's last name\n";
  }
  if($F('bcp_tel') == '')
  {
    txt += "- Telephone\n";
  }
  if($F('bcp_name') == '')
  {
    txt += "- Company Name\n";
  }
  if($F('bcp_address') == '')
  {
    txt += "- Address\n";
  }
  if($F('bcp_postcode') == '')
  {
    txt += "- Postcode\n";
  }
  if($F('cty_id') == '184' && $F('bcp_name') == '')
  {
    txt += "- State (US Only)\n";
  }
  if($F('bcp_city') == '')
  {
    txt += "- City\n";
  }
  if($F('cty_id') == '')
  {
    txt += "- Country\n";
  }
  if($("VATintra").style.display!='none' && $F('num_intra') == '')
  {
    txt += "- VAT intra CE Nb\n";
  }
  if(txt.length > 0)
  {
    alert("Theses fields must be filled:\n"+txt);
    return false;
  }
  return true;
}

/**
 * verifie le formulaire au moment du submit
 */
function checkRegForm(e)
{
  var msg = "";
  if(!$F('pack_selected'))
  {
    msg += "You must choose an offer!\n";
  }
  if(!$F('nbpass'))
  {
    msg += "You must order at least one pass!\n";
  }
  if (!$F('usr_id'))//le user n'est pas logué
  {
    //verifier tous les champs de reg user
    if ($('email_registration') &&
    $('firstname') &&
    $('lastname') &&
    $('pwd_registration') &&
    $('confirm_pwd_registration') &&
    $('company_registration') &&
    $('position')) 
    {
      if (!$F('email_registration') || !validMail($F('email_registration'))) 
      {
        msg += "You must provide a valid email!\n";
      }
      if (!$F('firstname')) 
      {
        msg += "You must provide a firstname!\n";
      }
      if (!$F('lastname')) 
      {
        msg += "You must provide a lastname!\n";
      }
      if (!$F('pwd_registration')) 
      {
        msg += "You must provide a password!\n";
      }
      if (($F('pwd_registration') && !$F('confirm_pwd_registration')) ||
      ($F('pwd_registration') && ($F('confirm_pwd_registration') != $F('pwd_registration')))) 
      {
        msg += "Your confirmation did not match your password!\n";
      }
      if (!$F('company_registration')) 
      {
        msg += "You must provide a company name!\n";
      }
      if (!$F('position')) 
      {
        msg += "You must provide a job title!\n";
      }
      
    } else {
      msg += "An error occurred! Please, try again!\n";
    }
  }//pas logué
  
  var field = "";
  if($F('nbpass') > 1)//si il y a des participants, il faut checker que leurs champs sont bien remplis
  {
    //parcourir les elements du forms et, a chaque fois qu'on rencontre un elements de type participant obligatoire, verifier qu'il est rempli
    var elts = $('form_profil').elements;
    for (var i = 0; i < elts.length; i++)
    {
      
      if(elts[i].name.indexOf("add_participant_") > -1 
      || elts[i].name.indexOf("part_firstname_") > -1
      || elts[i].name.indexOf("part_job_") > -1
      || elts[i].name.indexOf("team_") > -1)
      {
        //alert(elts[i].name+'/'+elts[i].value);
        if(elts[i].value == "")
        {
          field = "";
          if(elts[i].name.indexOf("add_participant_") > -1) field = "'Name'";
          if(elts[i].name.indexOf("part_firstname_") > -1) field = "'Firstname'";
          if(elts[i].name.indexOf("part_job_") > -1) field = "'Job title'";
          
          msg += "You must fill-in the fields "+field+" for your co-participants\n";
        }
      }
      //alert(elts[i].name.substr(elts[i].name.lastIndexOf("_"),elts[i].name.length));
      //cas particulier : si le participant est connu (part_usrid_x est rempli), on n'a pas besoin de l'email
      if(elts[i].name.indexOf("part_email_") > -1 
      && elts[i].value == "" 
      && $('part_usrid'+elts[i].name.substr(elts[i].name.lastIndexOf("_"),elts[i].name.length)).value == "")
      {
        msg += "You must eitheir add a known participant or provide its email!\n";
      }
      
      if(elts[i].name.indexOf("part_email_") > -1 
      && $('part_usrid'+elts[i].name.substr(elts[i].name.lastIndexOf("_"),elts[i].name.length)).value == "")
      {
        if(!validMail(elts[i].value))
        {
          msg += "You must provide a valid email for your co-participants!\n";
        }
      }
    }
  }
  
  if(msg.length > 0)
  {
    msg = "Some error(s) occurred while processing your request:\n" + msg;
    alert(msg);
    Event.stop(e);
    return false;
  }else{
    return true;
  }
}

/**
 * Affiche/cache la combo de choix de groupe, suivant le profil choisie
 * @param {Object} id: identifiant unique du participant
 */
function checkProfil(id)
{
  id = id.substr(12, id.length); //ex: checkProfil('part_profil_1')
  //list_prf_isbooth: la liste des profils qui ont un isbooth
  if ($('part_profil_'+id) && $('team_'+id) && list_prf_isbooth)
  {
    $('team_'+id).disabled = false;
    val = $F('part_profil_'+id);
    for(i=0; i<list_prf_isbooth.length; i++)
    {
      if (list_prf_isbooth[i] == val)
      {
        $('team_'+id).selectedIndex = 0;
        $('team_'+id).disabled = 'disabled';
        break;
      }
    }
  }
}

/**
 *  fonction appelée lors du choix d'une convention avant le chargement de la requête Ajax
 */
function listConvLoading()
{
	 $('titleContent').update(divLoader);
	 $('btnsubmit').hide();
	 $('total').hide();
	 $('profile').hide();
	 $('offers').hide();
	 $('nbpassContener').hide();
	 $('total').update('Your total:  0  &euro;');
	 if($('userformContener').style.display!='none') $('userformContener').hide();
	 if($('codepromoContener').style.display!='none') $('codepromoContener').hide();
}

/**
 * appelé apres le choix d'une convention. Fais apparaitre le choix normal/invest
 */
function listConvComplete()
{
  $('titleContent').show();
  $('divFunction').show();
}

/**
 *  fonction appelée lors du choix d'un soustype de convention //après le retour de la requête Ajax
 */
function listFuncComplete(obj)
{
	var val = $F(obj.id);
  if(val == 1)
  {
    $('prf_public').show();
    $('prf_invest').hide();
  }else{
    $('prf_public').hide();
    $('prf_invest').show();
  }
  $('offers').hide();
  $('nbpassContener').hide();
  $('total').update('Your total:  0  &euro;');
  if($('userformContener').style.display!='none') $('userformContener').hide();
  if($('codepromoContener').style.display!='none') $('codepromoContener').hide();
  $('profile').show();
	$('btnsubmit').show();
	$('total').show();
}

/**
 * check le cpn_name sur le fast pitch registration
 */
function checkCpnName()
{
  if($('cpn_name') && !$F('cpn_name'))
  {
    alert('You must at least fill-in the company name!');
    return false;
  }
}

