// JavaScript Document

function ScrollToElement(theElement){

  var selectedPosX = 0;
  var selectedPosY = 0;
              
  while(theElement != null){
    selectedPosX += theElement.offsetLeft;
    selectedPosY += theElement.offsetTop;
    theElement = theElement.offsetParent;
  }
                        		      
 window.scrollTo(selectedPosX,selectedPosY);

}


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function fok(name)
{
	var form = document.getElementById(name);
	var wform = document.getElementById('w'+name);
	
	form.className='';
	wform.className='hide';
}

function fnok(name)
{
	var form = document.getElementById(name);
	var wform = document.getElementById('w'+name);
	
	form.className='wrong';
	wform.className='wrong';
}

function checkEmail(e) {
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	
	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return (false);
		}	
	} 
	
	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (true);		
		} 
	}
	return false;
}

//--------------------------------------------------
// Check state activation regarding country selected
//--------------------------------------------------

function checkStateActivation()
{
	var formCountry=document.getElementById('country');
	var formState=document.getElementById('state');
	var formStateMand=document.getElementById('stateMand');

	if (formCountry.value == "US")
	{
		formState.disabled = false;
		formStateMand.className="";
	}
	else
	{
		formState.value="";
		formState.disabled = true;		
		formStateMand.className="hide";
	}	
}

//-------------------
// Creation de compte
//-------------------

function ValidateFormCreate(obj)
{
	var formPrenom=document.getElementById('prenom');
	var formNom=document.getElementById('nom');
	var formEMail1=document.getElementById('createemail1');
	var formEMail2=document.getElementById('createemail2');
	var formPassword1=document.getElementById('createpassword1');
	var formPassword2=document.getElementById('createpassword2');
	
	var check=1;
	
	// Prénom
	
	if ((formPrenom.value == null) || (trim(formPrenom.value).length == 0))
	{
		
		fnok('prenom');
		if (check == 1) {
			formPrenom.focus(); }
		check=0;
	}
	else
	{
		fok('prenom');
	}
	
	// Nom
	
	if ((formNom.value == null) || (trim(formNom.value).length == 0))
	{
		
		fnok('nom');
		if (check == 1) {
			formNom.focus(); }
		check=0;
	}
	else
	{
		fok('nom');
	}
	
	// EMail valide ?
	
	if ((formEMail1.value == null) || (trim(formEMail1.value).length == 0) || (checkEmail(trim(formEMail1.value)) == false))
	{	
		fnok('createemail1');
		if (check == 1) {
			formEMail1.focus(); 
		}
		check=0;
	}
	else
	{
		fok('createemail1');
	}
	
	// Second Email ?
	
	if (formEMail1.value != formEMail2.value)
	{
		fnok('createemail2');
		formEMail2.value="";
		if (check == 1) {
			formEMail2.focus(); }
		check=0;
	}
	else
	{
		fok('createemail2');	
	}
	
	// Password
	
	if ((formPassword1.value == null) || (trim(formPassword1.value).length == 0))
	{
		
		fnok('createpassword1');
		if (check == 1) {
			formPassword1.focus(); }
		check=0;
	}
	else
	{
		fok('createpassword1');
	}
	
	// Second Password ?
	
	if (formPassword1.value != formPassword2.value)
	{
		fnok('createpassword2');
		formPassword2.value="";
		if (check == 1) {
			formPassword2.focus(); }
		check=0;
	}
	else
	{
		fok('createpassword2');	
	}
	
	if (check == 1)
	{
		return true;
	}
	return false;
}

// --------------------------
// Compte - Mes coordonnees
// --------------------------

function ValidateModifCoord(obj)
{
	var formFirstName=document.getElementById('firstname');
	var formLastName=document.getElementById('lastname');
	var formCountry=document.getElementById('country');
	var formState=document.getElementById('state');
	
	var check=1;
	
	// Prénom
	
	if ((formFirstName.value == null) || (trim(formFirstName.value).length == 0))
	{		
		fnok('firstname');
		if (check == 1) {
			formFirstName.focus(); }
		check=0;
	}
	else
	{
		fok('firstname');
	}
	
	// Nom
	
	if ((formLastName.value == null) || (trim(formLastName.value).length == 0))
	{		
		fnok('lastname');
		if (check == 1) {
			formLastName.focus(); }
		check=0;
	}
	else
	{
		fok('lastname');
	}

	// State
	if ((formCountry.value != null) && (formCountry.value == "US") && ((formState.value == null) || (trim(formState.value).length == 0)))
	{		
		fnok('state');
		if (check == 1) {
			formState.focus(); }
		check=0;
	}
	else
	{
		fok('state');
	}	

	if (check == 1)
	{
		return true;
	}
	return false;

}

function ValidateModifEMail(obj)
{
	var formEMail=document.getElementById('email');
	var formEMail2=document.getElementById('email2');
	
	var check=1;	
	
	// EMail valide ?
	
	if ((formEMail.value == null) || (trim(formEMail.value).length == 0) || (checkEmail(trim(formEMail.value)) == false))
	{	
		fnok('email');
		if (check == 1) {
			formEMail.focus(); 
		}
		check=0;
	}
	else
	{
		fok('email');
	}
	
	// Second Email ?
	
	if (formEMail.value != formEMail2.value)
	{
		fnok('email2');
		formEMail2.value="";
		if (check == 1) {
			formEMail2.focus(); }
		check=0;
	}
	else
	{
		fok('email2');	
	}
	
	if (check == 1)
	{
		return true;
	}
	return false;

}

function ValidateDemandeRetirer(obj)
{
	var formPrenom=document.getElementById('prenom');
	var formNom=document.getElementById('nom');
	var formEMail=document.getElementById('email');
	var formCommentaire=document.getElementById('commentaire');
	
	var check=1;	

	// firstname

	if ((formPrenom.value == null) || (trim(formPrenom.value).length == 0))
	{		
		fnok('prenom');
		if (check == 1) {
			formPrenom.focus(); }
		check=0;
	}
	else
	{
		fok('prenom');
	}
	
	// lastname

	if ((formNom.value == null) || (trim(formNom.value).length == 0))
	{		
		fnok('nom');
		if (check == 1) {
			formNom.focus(); }
		check=0;
	}
	else
	{
		fok('nom');
	}	

	// EMail valide ?
	
	if ((formEMail.value == null) || (trim(formEMail.value).length == 0) || (checkEmail(trim(formEMail.value)) == false))
	{	
		fnok('email');
		if (check == 1) {
			formEMail.focus(); 
		}
		check=0;
	}
	else
	{
		fok('email');
	}
		
	// comment

	if ((formCommentaire.value == null) || (trim(formCommentaire.value).length == 0))
	{		
		fnok('commentaire');
		if (check == 1) {
			formCommentaire.focus(); }
		check=0;
	}
	else
	{
		fok('commentaire');
	}	
		
		
	if (check == 1)
	{
		return true;
	}
	return false;
}

function ValidateModifPassword(obj)
{
	var formOldPassword=document.getElementById('oldpassword');
	var formPassword1=document.getElementById('password');
	var formPassword2=document.getElementById('password2');
	
	var check=1;
	
	// Old Password
	
	if ((formOldPassword.value == null) || (trim(formOldPassword.value).length == 0))
	{	
		fnok('oldpassword');
		if (check == 1) {
			formOldPassword.focus(); }
		check=0;
	}
	else
	{
		fok('oldpassword');
	}

	// Password
	
	if ((formPassword1.value == null) || (trim(formPassword1.value).length == 0))
	{	
		fnok('password');
		if (check == 1) {
			formPassword1.focus(); }
		check=0;
	}
	else
	{
		fok('password');
	}
	
	// Second Password ?
	
	if (formPassword1.value != formPassword2.value)
	{
		fnok('password2');
		formPassword2.value="";
		if (check == 1) {
			formPassword2.focus(); }
		check=0;
	}
	else
	{
		fok('password2');	
	}
	
	if (check == 1)
	{
		return true;
	}
	return false;
}

function clickGalleryCheck(obj)
{
	var publique=document.getElementById('publique');
	var nompublique=document.getElementById('nompublique');

	if (publique.checked == true)
	{
		nompublique.disabled=false;
//		ValidateModifGalerie();
	}
	else
	{
		nompublique.disabled=true;
		fok('nompublique');
	}
}

// Validate Gallery

function checkGalleryPublicName(e)
{
	ok = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_";

	for(i=0; i < e.length ;i++)
	{
		if(ok.indexOf(e.charAt(i))<0){ 
			return (false);
		}
	}	
	return true;
}

function ValidateModifGalerie()
{
	var publique=document.getElementById('publique');
	var nompublique=document.getElementById('nompublique');

	var check=1;

	if (publique.checked == true)
	{		
		var val = trim(nompublique.value);
		if ((checkGalleryPublicName(val) == false) || (val.length > 15) || (val.length == 0))
		{
			fnok('nompublique');
			if (check == 1) {
				nompublique.focus(); }
			check=0;
		}
		else
		{
			fok('nompublique');	
		}		
	} 
		
	if (check == 1)
	{
		return true;
	}
	return false;	
}

function firstnameOver()
{
	Tip('Le champ &laquo;<span class="bold">Prénom</span>&raquo; de peut pas être vide.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}
function firstnameOverEn()
{
	Tip('The &laquo;<span class="bold">First Name</span>&raquo; field can not be empty.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}
function lastnameOver(lang)
{
	Tip('Le champ &laquo;<span class="bold">Nom</span>&raquo; de peut pas être vide.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}
function lastnameOverEn(lang)
{
	Tip('The &laquo;<span class="bold">Last Name</span>&raquo; field can not be empty.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}
function emailOver(lang)
{
	Tip('Le champ &laquo;<span class="bold">E-Mail</span>&raquo; de peut pas être vide<br/>et doit contenir un E-Mail valide.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}
function emailOverEn(lang)
{
	Tip('The &laquo;<span class="bold">E-Mail</span>&raquo; field can not be empty and must contain a valid E-Mail.', ABOVE, true,OFFSETX, -17, BALLOON, true);
}

function nothing()
{
}

function validatePrevenirTrois(firstname, lastname, email, check, lang)
{
	var oFirstname=document.getElementById(firstname);
	var oLastname=document.getElementById(lastname);
	var oEMail=document.getElementById(email);
	
	var vFirstname = trim(oFirstname.value);
	var vLastname = trim(oLastname.value);
	var vEMail = trim(oEMail.value);

	var vCheck=check;
	
	if ((vFirstname.length > 0) || (vLastname.length > 0) || (vEMail.length > 0))
	{
		if (vFirstname.length == 0)
		{
			oFirstname.className='firstwrong';
			if (lang == 'FR') {
				oFirstname.onmouseover=firstnameOver;
			} else {
				oFirstname.onmouseover=firstnameOverEn;
			}
			oFirstname.onmouseout=UnTip;

			if (vCheck == 1)
			{
				oFirstname.focus();
				vCheck = 0;
			}
		}
		else
		{
			oFirstname.className='first';
			oFirstname.onmouseover =nothing;
			oFirstname.onmouseout =nothing;			
		}

		if (vLastname.length == 0)
		{
			oLastname.className='lastwrong';
			if (lang == 'FR') {
			oLastname.onmouseover=lastnameOver;
			} else {
			oLastname.onmouseover=lastnameOverEn;
			}
			oLastname.onmouseout=UnTip;
			if (vCheck == 1)
			{
				oLastname.focus();
				vCheck = 0;
			}
		}
		else
		{
			oLastname.className='last';
			oLastname.onmouseover=nothing;
			oLastname.onmouseout=nothing;
		}

		if ((vEMail.length == 0) || (checkEmail(vEMail) == false))
		{
			oEMail.className='emailwrong';
			if (lang == 'FR') {
			oEMail.onmouseover=emailOver;
			} else {
			oEMail.onmouseover=emailOverEn;
			}
			oEMail.onmouseout=UnTip;

			if (vCheck == 1)
			{
				oEMail.focus();
				vCheck = 0;
			}
		}
		else
		{
			oEMail.className='email';
			oEMail.onmouseover=nothing;
			oEMail.onmouseout=nothing;			
		}

	}
	else
	{
		oFirstname.className='first';
		oLastname.className='last';
		oEMail.className='email';
		
		oFirstname.onmouseover =nothing;
		oFirstname.onmouseout =nothing;			
		oLastname.onmouseover =nothing;
		oLastname.onmouseout =nothing;			
		oEMail.onmouseover =nothing;
		oEMail.onmouseout =nothing;					
	}
	
	return vCheck;
}

function ValidatePrevenirGalerie(lang)
{
	var oWrong=document.getElementById('errorGlobal');	
	
	var check=1;

	check = validatePrevenirTrois('firstname_1','lastname_1','email_1',check,lang);
	check = validatePrevenirTrois('firstname_2','lastname_2','email_2',check,lang);
	check = validatePrevenirTrois('firstname_3','lastname_3','email_3',check,lang);
	check = validatePrevenirTrois('firstname_4','lastname_4','email_4',check,lang);
	check = validatePrevenirTrois('firstname_5','lastname_5','email_5',check,lang);
	
	if (check == 0)
	{
		oWrong.className='wrong';
		return false;
	}

	// Check if at least on field is not empty
	var ok = 0;
	for (i = 1;(i <= 5) && (ok == 0); i++)
	{
		var oFirstname=document.getElementById('firstname_'+i);
		if (trim(oFirstname.value).length > 0)
			ok = 1;
	}

	if (ok == 0)
	{
		document.getElementById('firstname_1').className='firstwrong';
		document.getElementById('lastname_1').className='lastwrong';
		document.getElementById('email_1').className='emailwrong';

		if (lang == 'FR') {
			document.getElementById('firstname_1').onmouseover=firstnameOver;
			document.getElementById('lastname_1').onmouseover=lastnameOver;
			document.getElementById('email_1').onmouseover=emailOver;
		} else {
			document.getElementById('firstname_1').onmouseover=firstnameOverEn;
			document.getElementById('lastname_1').onmouseover=lastnameOverEn;
			document.getElementById('email_1').onmouseover=emailOverEn;
		}
		document.getElementById('firstname_1').onmouseout=UnTip;
		document.getElementById('lastname_1').onmouseout=UnTip;
		document.getElementById('email_1').onmouseout=UnTip;

		oWrong.className='wrong';
		return false;
	}

	oWrong.className='hide';		
	return true;	
}

//------------------------------
// User Galery Picture Selection
//------------------------------

function pictureSelected(obj)
{
	var name = obj.name;
	var pos = name.indexOf('_');
	var image = "img_"+name.substring(pos+1, name.length);
	
	var oImage= document.getElementById(image);
	
	if (obj.checked == true)
	{
		oImage.className = 'select';
	}
	else
	{
		oImage.className = 'noselect';
	}	
}

function pictureForceSelect(obj)
{
	var name = obj.name;
	var pos = name.indexOf('_');
	var image = "img_"+name.substring(pos+1, name.length);
	
	var oImage= document.getElementById(image);
	
	oImage.className = 'select';
}

function pictureForceUnselect(obj)
{
	var name = obj.name;
	var pos = name.indexOf('_');
	var image = "img_"+name.substring(pos+1, name.length);
	
	var oImage= document.getElementById(image);
	
	oImage.className = 'noselect';
}

//----------------------
// Validate Multiple Add
//----------------------

function ValidateMultipleAdd()
{
	var checked = false;
	
	// Retrieve all check cases
	for (var i=0;i<document.forms[0].elements.length;i++)
	{
		var e=document.forms[0].elements[i];
		if (e.type=='checkbox')
		{
			if (e.checked == true)
			{
				checked = true;
			}
		}
	}
	
	if (checked == false)
	{
		document.getElementById('error').className='error';
		ScrollToElement(document.getElementById('error'));
		return false;
	}
	
	document.getElementById('error').className='hide';
	return true;
}

//--------------------
// Select All CheckBox
//--------------------

function SelectAll()
{
	// Retrieve all check cases
	for (var i=0;i<document.forms[0].elements.length;i++)
	{
		var e=document.forms[0].elements[i];
		if (e.type=='checkbox')
		{
			e.checked = true;
			pictureForceSelect(e);
		}
	}
}

function UnselectAll()
{
	// Retrieve all check cases
	for (var i=0;i<document.forms[0].elements.length;i++)
	{
		var e=document.forms[0].elements[i];
		if (e.type=='checkbox')
		{
			e.checked = false;
			pictureForceUnselect(e);
		}
	}
}

// Adresse de Livraison

function ValidateAdresseLivraison(obj)
{
	var formStreet1=document.getElementById('street1');
	var formZipCode=document.getElementById('zipcode');
	var formTown=document.getElementById('town');
	var formState=document.getElementById('state');
	var formCountry=document.getElementById('country');
	
	var check=1;
	
	// Street 1
	
	if ((formStreet1.value == null) || (trim(formStreet1.value).length == 0))
	{		
		fnok('street1');
		if (check == 1) {
			formStreet1.focus(); }
		check=0;
	}
	else
	{
		fok('street1');
	}
	
	// Zip Code
	
	if ((formZipCode.value == null) || (trim(formZipCode.value).length == 0))
	{		
		fnok('zipcode');
		if (check == 1) {
			formZipCode.focus(); }
		check=0;
	}
	else
	{
		fok('zipcode');
	}

	// Town
	
	if ((formTown.value == null) || (trim(formTown.value).length == 0))
	{		
		fnok('town');
		if (check == 1) {
			formTown.focus(); }
		check=0;
	}
	else
	{
		fok('town');
	}

	// Country
	
	if ((formCountry.value == null) || (trim(formCountry.value).length == 0))
	{		
		fnok('country');
		if (check == 1) {
			formCountry.focus(); }
		check=0;
	}
	else
	{
		fok('country');
	}
	
	// State
	if ((formCountry.value != null) && (formCountry.value == "US") && ((formState.value == null) || (trim(formState.value).length == 0)))
	{		
		fnok('state');
		if (check == 1) {
			formState.focus(); }
		check=0;
	}
	else
	{
		fok('state');
	}	

	if (check == 1)
	{
		return true;
	}
	return false;

}

//------------------------
// Chèque-cadeau - Montant
//------------------------

function checkMontant()
{
	var formMontant=document.getElementById('montant');

	v = formMontant.value;
	
	var regexp =/^[ ]*(\d+)/;
	
	if (v.match(regexp) != null)
	{
		formMontant.value = RegExp.$1;
	}
	
	if (isNaN(formMontant.value))
	{
	 	fnok('montant');
		return false;
	}
	else
	{
		if ((formMontant.value >= 5) && (formMontant.value <= 1000))
		{
			fok('montant');
			return true;
		}
		else
		{
			fnok('montant');
			return false;
		}
	}
}

//--------------
// Chèque-cadeau
//--------------

function ValidateGiftCertificate()
{
	var formMontant=document.getElementById('montant');
	var formde=document.getElementById('de');
	var forma=document.getElementById('a');
	
	var check=1;

	// Montant
	if (checkMontant() == false)
	{
		formMontant.focus();
		check = 0;
	}

	// De	
	if ((formde.value == null) || (trim(formde.value).length == 0))
	{		
		fnok('de');
		if (check == 1) {
			formde.focus(); }
		check=0;
	}
	else
	{
		fok('de');
	}
	
	// A
	if ((forma.value == null) || (trim(forma.value).length == 0))
	{		
		fnok('a');
		if (check == 1) {
			forma.focus(); }
		check=0;
	}
	else
	{
		fok('a');
	}

	if (check == 1)
	{
		return true;
	}
	return false;	
}