var WindowUtilities = {
  // From script.aculo.us
  getWindowScroll: function() {
    var w = window;
      var T, L, W, H;
      with (w.document) {
        if (w.document.documentElement && typeof documentElement.scrollTop != "undefined") {
          T = documentElement.scrollTop;
          L = documentElement.scrollLeft;
        } else if (w.document.body) {
          T = body.scrollTop;
          L = body.scrollLeft;
        }
        if (w.innerWidth) {
          W = w.innerWidth;
          H = w.innerHeight;
        } else if (w.document.documentElement && typeof documentElement.clientWidth != "undefined") {
          W = documentElement.clientWidth;
          H = documentElement.clientHeight;
        } else {
          W = body.offsetWidth;
          H = body.offsetHeight
        }
      }
      return { top: T, left: L, width: W, height: H };
  }, 
  //
  // getPageSize()
  // Returns array with page width, height and window width, height
  // Core code from - quirksmode.org
  // Edit for Firefox by pHaez
  //
  getPageSize: function(){
    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {  
      xScroll = document.body.scrollWidth;
      yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
      xScroll = document.body.scrollWidth;
      yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
      xScroll = document.body.offsetWidth;
      yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;

    if (self.innerHeight) {  // all except Explorer
      windowWidth = self.innerWidth;
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowWidth = document.documentElement.clientWidth;
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowWidth = document.body.clientWidth;
      windowHeight = document.body.clientHeight;
    }  
    var pageHeight, pageWidth;

    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
      pageHeight = windowHeight;
    } else { 
      pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){  
      pageWidth = windowWidth;
    } else {
      pageWidth = xScroll;
    }

    return {pageWidth: pageWidth ,pageHeight: pageHeight , windowWidth: windowWidth, windowHeight: windowHeight};
  }
}



function send_form(){
	$('erreur').hide();
	
	var erreur = "Veuillez remplir correctement les champs en rouges";
	
	var confirmdiv = true;
	var verifchiffres 		= new RegExp("^[0-9]*$");					
	var veriflettres 		= new RegExp("^[a-zA-Z ]*$");					
	var verifalphanum		= new RegExp("^[0-9a-zA-Z ]*$");
//	var verifmail 			= new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$");	
	var verifmail 			= new RegExp("^([a-zA-Z0-9_-])*([a-zA-Z])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$");	
	var contientchiffres 	= new RegExp("[0-9]+");					
	var aujourdhui 			= new Date();
	
	['MAILADDRUSER','titre','nom','prenom','birthday','num_rue','ville','code_postal'].each(function(s){
		if($F(s) == ''){
			$(s).style.border = '1px solid red';
			confirmdiv = false;}
		else {
			$(s).style.border = '1px solid #595959';
		}
	});

	if(verifmail.exec($('MAILADDRUSER').value) == null)
	{
		$('MAILADDRUSER').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Veuillez verifier la validit&eacute; de votre adresse email";
	}

	if($('titre').value!='Mr' && $('titre').value!='Mme' && $('titre').value!='Mlle')
	{
		$('titre').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Le Champs \"Titre\" est obligatoire";
	}

	['nom','prenom','ville'].each(function(s){
		if(veriflettres.exec($F(s))===null)
		{
			$(s).style.border = '1px solid red';
			confirmdiv = false;
			erreur = erreur+"<br />Le Champs \""+s+"\" ne peut contenir que des lettres (Les ' et - ne sont pas accept"+String.fromCharCode(233)+"s)";
		}
	});

	['nom','prenom'].each(function(s){
		if($F(s).length<2 || $F(s).length>40)
		{
			$(s).style.border = '1px solid red';
			confirmdiv = false;
			erreur = erreur+"<br />Les Champs \"Nom\" et \"Pr&eacute;nom\" doivent &egrave;tre compris entre 2 et 40 caract&egrave;res";
		}
	});

	if($('code_postal').value.length!=5 || verifchiffres.exec($('code_postal').value) == null)
	{
		$('code_postal').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Le Champs \"Code Postal\" doit contenir 5 chiffres";
	}

	if($F('birthday').length!=10)
	{
		$('birthday').style.border = '1px solid red';
		confirmdiv = false;
	}
	else
	{
		var birthday1 = $F('birthday').substr(0,2);
		var birthday2 = $F('birthday').substr(2,1);
		var birthday3 = $F('birthday').substr(3,2);
		var birthday4 = $F('birthday').substr(5,1);
		var birthday5 = $F('birthday').substr(6,4);
		
		//alert(birthday1+"-"+birthday2+"-"+birthday3+"-"+birthday4+"-"+birthday5);

		if(verifchiffres.exec(birthday1)==null	||	verifchiffres.exec(birthday3)==null || verifchiffres.exec(birthday5)==null || birthday2!='/' || birthday4!='/' || Number(birthday1)>31 || Number(birthday1)<1 || Number(birthday3)>12 || Number(birthday3)<1 || Number(birthday5)>aujourdhui.getFullYear() || Number(birthday5)<1890)
		{
			$('birthday').style.border = '1px solid red';
			confirmdiv = false;
		}
		else
		{
			$('birthday').style.border = '1px solid #595959';
		}
	}
	
	if($F('ville').length>32)
	{
		$('ville').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Le Champs \"Ville\" doit contenir 32 caracteres au maximum";
	}

	if($F('num_rue').length>32)
	{
		$('num_rue').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Le Champs \"Adresse\" doit contenir 32 caracteres au maximum";
	}

	if(verifalphanum.exec($('num_rue').value)==null)
	{
		$('num_rue').style.border = '1px solid red';
		confirmdiv = false;
		erreur = erreur+"<br />Le Champs \"Adresse\" ne peut contenir que des chiffres et lettres (Les ' et - ne sont pas accept"+String.fromCharCode(233)+"s)";
	}
		
	if($F('bat_esc').length!='')
	{
		if($F('bat_esc').length>32)
		{
			$('bat_esc').style.border = '1px solid red';
			confirmdiv = false;
			erreur = erreur+"<br />Le Champs \"B"+String.fromCharCode(226)+"timent / Escalier\" doit contenir 32 caracteres au maximum";
		}
		else
		{
			$('bat_esc').style.border = '1px solid #595959';
		}

		if(verifalphanum.exec($('bat_esc').value)==null)
		{
			$('bat_esc').style.border = '1px solid red';
			confirmdiv = false;
			erreur = erreur+"<br />Le Champs \"B"+String.fromCharCode(226)+"timent / Escalier\" ne peut contenir que des chiffres et lettres (Les ' et - ne sont pas accept"+String.fromCharCode(233)+"s)";
		}
	}
	else
	{
		$('bat_esc').style.border = '1px solid #595959';
	}
	
	if (confirmdiv){
	    var windowScroll = WindowUtilities.getWindowScroll();    
		var pageSize = WindowUtilities.getPageSize();
 		nm = windowScroll.top - 234;
		$('confirm').setStyle({marginTop: nm +'px' });
		$('titre').hide();
		$('confirm').show();
		new Ajax.Request('perform.php',{
			method : 'post',
			parameters : Form.serialize('okshopping_form'),
			onComplete : function(req){
				if (req.status == 200){
					
					new Ajax.Updater('confirm_content','confirm.php',{
						method : 'post',
						parameters : Form.serialize('okshopping_form')
					});
				}
				else {
					alert('erreur lors de l\'inscription');
				}
			}
			
		});	
	}
	else {
		$('erreur').innerHTML = erreur;
		new Effect.Appear('erreur');
	}
	
	

}

function select_mode(){
	$('validebox').hide();
	$('closeconfirmcontent').hide();
	$('waitbox').show();
	//On envoi la requete à Finaref
	new Ajax.Request('send2finaref.php',{
		method : 'post',
		parameters : Form.serialize('okshopping_form'),
		onComplete : function(req){
			if(req.status == 200){
				if(req.responseText=='ok')
				{
					$('recevoir2').value='';
					$('webserviceok').value='1';
					new Ajax.Updater('confirm_content','choix.php',{
						method : 'post',
						parameters : Form.serialize('okshopping_form')+"&webserviceok=1"
					});
					$('closeconfirmcontent').show();
				}
				else
				{
					$('recevoir2').value='';
					$('webserviceok').value='0';
					new Ajax.Updater('confirm_content','choix.php',{
						method : 'post',
						parameters : Form.serialize('okshopping_form')+"&webserviceok=0"
					});
					$('closeconfirmcontent').show();
				}
			}
			else
			{
				$('recevoir2').value='';
				$('webserviceok').value='0';
				new Ajax.Updater('confirm_content','choix.php',{
					method : 'post',
					parameters : Form.serialize('okshopping_form')+"&webserviceok=0"
				});
				$('closeconfirmcontent').show();
			}
		}
	});
	
}

function valid(){
	if($('recevoir2').value=='')
	{
		alert('Merci de selectionner un mode de reception');
	}
	else
	{
		new Ajax.Request('send2.php',{
			method : 'post',
			parameters : Form.serialize('okshopping_form'),
			onComplete : function(req){
				if(req.status == 200){
					if($('checkmail').checked)
					{
						direct = 'email';
					}
					else if($('checkdownload').checked)
					{
						direct = 'download';
					}
					else
					{
						direct = 'mail';
					}
					
					id = req.responseText;
					new Ajax.Updater('confirm_content','confirm_'+direct+'.php',{
						method : 'post',
						parameters : Form.serialize('okshopping_form')  + '&id=' + id,
						onComplete : function(){$('okshopping_form').reset();}
					});
				}
			}
		});
	}
}
