function validateForm1(){	
	id='';	
	errorLabel='';
	idBox='';
	idError='';
	showErrorBox=false;	
	emailValue='';
	passwordValue='';
	login='';
	filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	filterPhone=/^[0-9\ ]*$/i;
	filterPassword=/^[A-Za-z0-9_=+@#?!\-]*$/;
	filterLogin=/^[A-Za-z0-9_@.\-]*$/;
	jQuery('#errorBox').hide();
	
	for(i=0;i<22;i++){
		switch(i){
			case 0:id='selectGender';break;
			case 1:id='firstNameInput';break;
			case 2:id='surNameInput';break;
			case 3:id='countrySelect';break;
			case 4:id='eMailInput';break;
			case 5:id='confEMailInput';break;
			case 6:id='passwordInput';break;
			case 7:id='confPasswordInput';break;			           
			case 8:id='ownNissan1';break;
			case 9:id='PermitionEmail';break;
			case 10:id='PermitionSMS';break;
			case 11:id='PermitionPostal';break;
			case 12:id='PermitionPhone';break;
			case 13:id='PermitionGeneral';break;
			case 14:id='mobileInput';break;
			case 15:id='adressInput';break;
			case 16:id='adress2Input';break;
			case 17:id='adress3Input';break;
			case 18:id='townInput';break;
			case 19:id='postCodeInput';break;
			case 20:id='loginInput';break;
			case 21:id='confLoginInput';break;			
		}
		
		idBox=id+'Box';
		idError=id+'Error';		
		idError2=id+'Error2';
		
		markError=false;
		jQuery('#'+idError).hide();
		if(jQuery('#'+idBox).hasClass('error')) jQuery('#'+idBox).removeClass('error');
		switch(i){
			case 0:
			case 3:
				if(jQuery('#'+id).val()=='Select') markError=true;
				break;
			case 4:
			if(jQuery.trim(jQuery('#'+id).val())!="") {
				if(filter.test(jQuery('#'+id).val())){								
					emailValue=jQuery('#'+id).val();
				} else {
					markError=true;
				}
			}else {
				markError=true;
			}
				break;
			case 5:			
			if(jQuery.trim(jQuery('#'+id).val())!="") {
				if(filter.test(jQuery('#'+id).val())){
					if(jQuery('#'+id).val()!=emailValue) {
						markError=true;
					}
				} else {
					markError=true;
				}
			}else {				
				markError=true;
			}
				break;
			case 6: 
			if(jQuery.trim(jQuery('#'+id).val())!="" && jQuery.trim(jQuery('#'+id).val()).length>3 && jQuery.trim(jQuery('#'+id).val()).length<17 && filterPassword.test(jQuery('#'+id).val())  ) {
				passwordValue=jQuery('#'+id).val();	
			} else {
				markError=true;
			}			
				break;
			case 7:
				if(jQuery.trim(jQuery('#'+id).val())!="") {
					if(passwordValue!=jQuery('#'+id).val()){
						markError=true;
					}
				 }else {
						  markError=true;
				 }
				break;		
			
			case 9:

				if (validatePermition(id, idBox, "eMailInput")) {
					markError = true;
				}
				
				break;
			
			case 10:
			
				if (validatePermition(id, idBox, "mobileInput")) {
					markError = true;
				}
				
				break;
			
			case 11:
			case 12:
			case 13:
				
				if (validatePermition(id, idBox, null)) {
					markError = true;
				}
				
				break;
				
			case 10:
				
				jQuery('#' + "mobileInputMandatory")
				
				if (jQuery('#' + idBox).length) {
					mobile = jQuery('#mobileInputBox #mobileInput');
					if (mobile.val()) {
						permitionSMS = jQuery('#' + idBox + ' input[type=radio][name=PermitionSMS]:checked').attr('value');
						if (!permitionSMS) {
							markError = true;
						}
					}
				}
				
				break;
				
			case 14:				
				if (jQuery('#' + id + "Mandatory").length) {
					if (jQuery.trim(jQuery('#'+id).val()) == '') {
						markError = true;
					}
				}
				
				if(jQuery('#mobileInput').val()!=''){
					if(!filterPhone.test(jQuery('#mobileInput').val())){
						markError = true;
					}
				}
				
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
				
				if (jQuery('#' + id + "Mandatory").length) {
					if (jQuery.trim(jQuery('#'+id).val()) == '') {
						markError = true;
					}
				}
				
				break;
			case 20 :
				if(jQuery.trim(jQuery('#'+id).val())!='' && filterLogin.test(jQuery('#'+id).val())) {
					login = jQuery('#'+id).val();
				} else {
					markError=true;
				}
				break;
				
			case 21 :
				if(jQuery.trim(jQuery('#'+id).val())!='') {					
					if (login != jQuery('#'+id).val()) {
						markError=true;
					}				
				} else {
					markError=true;
				}
				break;				
			default:
				if(jQuery('#'+id).val()==''){
				 	markError=true;					
				}
		}
		if(markError){
			jQuery('#'+idBox).addClass('error');
			jQuery('#'+idError).show();
			showErrorBox=true;
		}
	}
	if(showErrorBox){
		jQuery('#errorBox').show();
	}else{
		if(jQuery('#ownNissan1').attr('checked')){
			jQuery('#nissanNextPage').val(jQuery('#yesLink').val());
		}else{
			jQuery('#nissanNextPage').val(jQuery('#noLink').val());		
		}
		return true;
	}
	return false;
}

function validatePermition(id, idBox, idField) {
	
	if (jQuery('#' + idBox).length) {				
		mandatory = false;
		if (jQuery('#' + id + "Mandatory").length) {
			mandatory = true;
			if (idField != null) {
				if (! jQuery('#' + idField).attr('value')) {
					mandatory = false;
				}
			}
		}		
	
		if (mandatory) {
			permitionInput = jQuery('#' + idBox + ' input[type=radio][name=' + id + ']:checked');
			if (permitionInput.length) {
				permition = permitionInput.attr('value');
				if (! permition) {
					return true;
				}
			} else {
				permitionInput = jQuery('#' + idBox + ' input[type=checkbox][name=' + id + ']:checked');
				if (! permitionInput.length) {
					return true;
				}
			}
		}
	}
	
	return false;
}

function validateConfirmationForm() {

	markError = false;
	
	/* Validate agreement */
	agreementInput = jQuery('#agreedInput');
	if (agreementInput != null && agreementInput.size() > 0) {
		if (! agreementInput.is(':checked')) {
			jQuery('#agreedInputBox').addClass('error');
			markError = true;
		} else {
			//cocher
			jQuery('#agreedInputBox').removeClass('error');
		}
	}
	
	/* Validate global permition */
	/* Can be not mandatory */
	globalPermition = jQuery('#globalPermition');
	
	if (jQuery('#globalPermitionMandatory').length) {
		if (globalPermition != null && globalPermition.size() > 0) {
			if (! globalPermition.is(':checked')) {
				jQuery('#globalPermitionBox').addClass('error');
				markError = true;
			} else {
				jQuery('#globalPermitionBox').removeClass('error');
			}
		}	
	}
	
	if (markError) {
		jQuery('#errorAgreement').show();
		//jQuery('html,body').animate({scrollTop: jQuery('#errorAgreement').offset().top});
		
		return false;
	}
	
	return true;
}


function validateForm3(){
	id='';	
	errorLabel='';
	idBox='';
	idError='';
	showErrorBox=false;	

	jQuery('#errorBox').hide();
	for(i=0;i<3;i++){
		switch(i){
			case 0:id='vehiculeModel';break;
			case 1:id='history1';break;
			case 2:id='vehicleEngine';break;	
		}
		idBox=id+'Box';
		idError=id+'Error';		

		markError=false;
		jQuery('#'+idError).hide();
		if(jQuery('#'+idBox).hasClass('error'))
			jQuery('#'+idBox).removeClass('error');
		switch(i){
			case 0:	
				if((jQuery('#'+id).val().toUpperCase()== 'SELECT')||(jQuery('#'+id).val().toUpperCase()=='')||(jQuery('#'+id).val().toUpperCase()==jQuery('#defaultModelValue').val().toUpperCase())){ 
					markError=true;
				}
				break;
			case 1:				
				if(!jQuery('#history1').attr('checked')&&!jQuery('#history2').attr('checked')){ 
					markError=true;
				}
				break;
			case 2:	
				if((jQuery('#'+id).val().toUpperCase()== 'MOTEUR')||(jQuery('#'+id).val().toUpperCase()=='')){ 
					markError=true;
				}
				break;
			default:
				if(jQuery('#'+id).val()==''){
				 	markError=true;
				}
		}
		if(markError){			
			jQuery('#'+idBox).addClass('error');
			jQuery('#'+idError).show();
			showErrorBox=true;
		}
	}
	if(showErrorBox){
		jQuery('#errorBox').show();
	}else{
		return true;
	}
	return false;
}



function validateForm4(){
	id='';	
	errorLabel='';
	idBox='';
	idError='';
	login='';
	showErrorBox=false;
	email01Value='';
	email02Value='';
	filterLogin=/^[A-Za-z0-9_@.\-]*$/;
	filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; // email regexp
	filterNickname=/^[A-Za-z0-9]*$/;
	
	jQuery('#errorBox2').hide();
	for(i=0;i<9;i++){
		switch(i){
			case 0:
				id='nickName';
				break;
			case 1:
				id='email01';
				break;
			case 2:
				id='email01Confirm';
				break;
			case 3:
				id='email02';
				break;
			case 4:
				id='email02Confirm';
				break;
			case 5:
				id='askList';
				break;
			case 6:
				id='answer';
				break;
			case 7:
				id='login';
				break;
			case 8:
				id='loginConfirm';
				break;					
				
		}
		idBox=id+'Box';
		idError=id+'Error';		

		markError=false;
		jQuery('#'+idError).hide();
		if(jQuery('#'+idBox).hasClass('error'))
			jQuery('#'+idBox).removeClass('error');
		switch(i){
			case 0: 	
					if(jQuery.trim(jQuery('#'+id).val()) =='' || jQuery.trim(jQuery('#'+id).val()).length<2 ||  jQuery.trim(jQuery('#'+id).val()).length>9 || !filterNickname.test(jQuery('#'+id).val()) ){
						markError=true;
					}
					break;
			case 1:				
					if( (jQuery('#'+id).val() != '') && !(filter.test(jQuery('#'+id).val()))) {
						markError=true;
					}else{
						email01Value=jQuery('#'+id).val();
						
					}
					break;
			case 2:
					if (jQuery('#'+id).val() != null){
						if(email01Value != '' && jQuery('#'+id).val()!=email01Value){
							markError=true;
						}
					}
					break;
			case 3:
					if( (jQuery('#'+id).val() != '') && !(filter.test(jQuery('#'+id).val()))) {
						markError=true;
					}else{
						email02Value=jQuery('#'+id).val();
						
					}
			case 4:
					if (jQuery('#'+id).val() != null){
						if(email01Value != '' && jQuery('#'+id).val()!=email02Value){
							markError=true;
						}
					}
					break;
			case 5:	
					if(jQuery.trim(jQuery('#'+id).val()) ==''){
					 	markError=true;
					}
					break;
			case 6:	
					if(jQuery.trim(jQuery('#'+id).val()) =='' || jQuery.trim(jQuery('#'+id).val()).length<2){
						markError=true;
					}
					break;
			case 7:	
				if(jQuery.trim(jQuery('#'+id).val())!='' && filterLogin.test(jQuery('#'+id).val())) {
					login = jQuery('#'+id).val();
				} else {
					markError=true;
				}
				break;
			case 8:	
				if(jQuery.trim(jQuery('#'+id).val())!='') {					
					if (login != jQuery('#'+id).val()) {
						markError=true;
					}				
				} else {
					markError=true;
				}
				break;				
					
			default:
				if(jQuery.trim(jQuery('#'+id).val()) ==''){
				 	markError=true;
				}
		}
		if(markError){			
			jQuery('#'+idBox).addClass('error');
			jQuery('#'+idError).show();
			showErrorBox=true;
		}
	}
	
	
	if(showErrorBox){
		jQuery('#errorBox2').show();
		return false;
	}
	
	return true;
}

function validateForm5(){
	if (jQuery('#tcCheck').is(':checked') || !jQuery('#tcCheck').hasClass('mandatory')) {
		myAction = jQuery('#validateFormAction').val();	
		nextpage =	jQuery('#nextPage').val();
		jQuery('#nissanNextPage').val(nextpage);
		jQuery('#confirmStep5').attr("action", myAction);		
		jQuery('#confirmStep5').submit();		
	} else {
		jQuery('#errorBox3').show().parent('label').addClass('leafErr');
		jQuery('#errorBox').show();
		jQuery('#checkError').show();		
	}		
}


function displayCWRemoveComment() {
	//jQuery('#removeCWErrorMessage').hide();
	if(jQuery('#rsOpt4') != null){
		if (jQuery('#rsOpt4').is(':checked')) {			
			jQuery('#removeComment').show();
		} else {
			jQuery('#removeComment').hide();
		}
	}
}

function validateCWRemove() {
	if (jQuery('#rsOpt4').is(':checked')) {
		if (jQuery('#comment').val()=='') {
			jQuery('#removeCWErrorMessage').show();
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}

function validateCWTCForm(){	
	if (jQuery('#tcCheck').is(':checked')) {
		return true;
	} else {
		jQuery('#errorBox3').show().parent('label').addClass('leafErr');
		return false;
	}		
}


function validateCWTCFormNotInterrested(){	
	jQuery('#notInterrested').val('true');
	notIPage =	jQuery('#notInterrestedPage').val();	
	jQuery('#nissanNextPage').val(notIPage); 		
	return true;	
}

function validateProfil(){		
	if (validateForm1()) {
		myAction = jQuery('#saveProfilAction').val();		
		jQuery('#confirmStep5').attr("action", myAction);		
		jQuery('#confirmStep5').submit();			
	}			
}

function validateService(){		
	if (validateForm4()) {
		myAction = jQuery('#saveServiceAction').val();		
		jQuery('#confirmStep5').attr("action", myAction);				
		jQuery('#confirmStep5').submit();			
	}			
}



function validateForgotten(){
	id='';	
	errorLabel='';
	idBox='';
	idError='';
	showErrorBox=false;	
	filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	jQuery('#errorBox').hide();

	for(i=0;i<1;i++){
		switch(i){
			case 0:id='eMailInput';break;
		}
	
		idBox=id+'Box';
		idError=id+'Error';		

		markError=false;
		
		if(jQuery('#'+idBox).hasClass('error')) jQuery('#'+idBox).removeClass('error');
		switch(i){
			case 0:
				if(filter.test(jQuery('#'+id).val())){								
					emailValue=jQuery('#'+id).val();				
				} else {
					markError=true;
				}
				break;		
			default:
				if(jQuery('#'+id).val()==''){
				 	markError=true;					
				}
		 }
        
        }
		if(markError){			
			jQuery('#'+idBox).addClass('error');
			jQuery('#errorBox').show();
			jQuery('#'+idError).show();
			showErrorBox=true;
			return false;
		}else{
			return true;
		}
}		

function backForm1() {
	jQuery('#step1Form').attr('action',jQuery('#backLink1').val());		
	return true;
}
function backForm2() {
	jQuery('#step2Form').attr('action',jQuery('#backLink2').val());		
	return true;
}
function backForm3() {
	jQuery('#step3Form').attr('action',jQuery('#backLink3').val());		
	return true;
}

function backForm4() {
	jQuery('#step4Form').attr('action',jQuery('#backLink4').val());		
	return true;
}


function gotoUrl2(url) {
	document.location = url;				
}

jQuery(document).ready(function () {

	if(jQuery('#registerForm1') != null){
		if (jQuery('#registerForm1').size() > 0) {
			jQuery('#btBackForm1').bind('click', backForm1);
			jQuery('#btContinueForm1').bind('click', validateForm1);
		}
		/*
		if (jQuery('#errorBox2') != null) {
			jQuery('#errorBox2').addClass('hideDiv');
		}*/
		
	}

	if(jQuery('#registerForm2') != null){
		if (jQuery('#registerForm2').size() > 0) {
			jQuery('#btBackForm2').bind('click', backForm2);	
		}
	}

	if(jQuery('#registerYourNissanForm') != null){
		if (jQuery('#registerYourNissanForm').size() > 0) {
			jQuery('#btBackForm3').bind('click', backForm3);	
			jQuery('#btContinueForm3').bind('click', validateForm3);
		}
	}
	
	if(jQuery('#registerConfirmation') != null){
		if (jQuery('#registerConfirmation').size() > 0) {
			jQuery('#btContinueConfirm').bind('click', validateConfirmationForm);
		}
	}
	
	if(jQuery('#registerForm4') != null){
		if (jQuery('#registerForm4').size() > 0) {
			jQuery('#btBackForm4').bind('click', backForm4);
			jQuery('#btContinueForm4').bind('click', validateForm4);
		}
	}
	
	if(jQuery('#tcForm') != null){
		if (jQuery('#tcForm').size() > 0) {
			jQuery('#btNotInterested').bind('click', validateCWTCFormNotInterrested);
			jQuery('#btValidate').bind('click', validateCWTCForm);
		}
	}
	
	if(jQuery('#confirmStep5') != null){
		if (jQuery('#confirmStep5').size() > 0) {
			jQuery('#btValidateProfil').bind('click', validateProfil);
			jQuery('#btValidateService').bind('click', validateService);
			jQuery('#btValidateTC').bind('click', validateForm5);
		}
	}
	
	if(jQuery('#btRemoveCW') != null){
		jQuery('#btRemoveCW').bind('click', validateCWRemove);
	}
	

	/* FIXME: change condition */
	
	if(jQuery('#B_content') != null){
		if (jQuery('#btContinueForgotPassword')!= null ) {

			jQuery('#btContinueForgotPassword').bind('click', validateForgotten);
		}
	} 
});
