/**
 * AJAXFORM $.la.verifyParrainage(nom,prenom,mail,m1,m2,m3,idForm)
 * 
 * MUSILINE $.la.radio.popUpRadio() $.la.radio.lancePopUpRadio()
 * 
 * PROGRAMME $.la.programme.display_en_ce_moment()
 * $.la.programme.display_prochaine_diffusion()
 * 
 * MODALBOX $.la.modalbox.truc()
 */

(function($){

	
    $.la = $.la||{};
    $.extend(true,$.la,
    {
    	
       games:{
	    	next_game_move:function(ReturnUrl){
	    		if(ReturnUrl != '')
	    	     	{		
	    				var aReturnUrl = ReturnUrl.split('?');
	    				
	    	        	if(aReturnUrl[0] == "submitAvis")
	    				{	
	    					submitAvis( '' );	
	    				}
	    				else if(aReturnUrl[0] == "getAnswer")
	    				{	
	    					getAnswer();	
	    				}
	    				else if(aReturnUrl[0] == "gameStart")
	    				{	
	    					gameStart();	
	    				}	
	    				else if(aReturnUrl[0] == "gameRestart")
	    				{	
	    					gameRestart();	
	    				}		
	    				else if(aReturnUrl[0] == "game")
	    				{	
	    					document.game.submit();	
	    				}
	    				else
	    				{
	    					window.location.href = ReturnUrl ;	
	    				}
	    	        			
	    	        }
	    	        else
	    	        {
	    	         	window.location.reload();
	    	        }
	    		
	    		return false;	
	    	}
    	},
    	
    	
    	
        /* AJAXFORM */
        ajaxForm:{
   		
    		 submit:{
            'method':'post',
            'dataType':'json',
            'async' : true 
        	},
        	commonSettings:{
	            modalBox:{/* $.la.ajaxForm.commonSettings.modalBox.register.width */
	                register: {
	                    width:670,
	                    height:550
	                },
	                success:   {
	                    width:670,
	                    height:530
	                }
	            }
        	},
            /* propre &agrave; premiere */
            settings:{ 
			    'modal_login_form':{
        				id_loading:'loading_pic_nav',
                        submit:{
                            'url':jQuery.la.prefixAjaxReturnUrl + '/action/login',
                            'handler': function(json){
                                if(json.res == 1){
                                    if(window.location.search.indexOf('iframe=1') != -1){
                                        parent.location.href=json.return_url;
                                    }
                                    else{
                                    	$.la.games.next_game_move(json.return_url);
                                    }
                                }else{
                                    jQuery.la.ajaxForm.hide_loader_picture(jQuery.la.ajaxForm.settings['modal_login_form'].id_loading);
                                    jQuery.la.ajaxForm.alertForm('modal_login_form',1);
                                }
                            }
                        }
			    	},
                'modal_register_form':{
                    step:[{
                        fields:['sexe','first_name','last_name','date_de_naissance','email','code_postal'],
                        success: function(){

                            $.la.ajaxForm.gotoStep('modal_register_form',1)
                        }
                    },
                    {
                        fields:['login','password','confirmmotdepasse'],
                        success: function(){
                            $.la.ajaxForm.gotoStep('modal_register_form',2)
                        }
                    },
                    {
                        fields:['newsletter_premiere', 'hebdo_people', 'quot_people', 'quot_ent', 'newsletter_theatre', 'people_look', 'hebdo_ent', 'offres_premiere'],
                        success: function(){
                            $.la.ajaxForm.gotoStep('modal_register_form',3)
                        }
                    },
                    {
                        fields:['cgu'],
                        success: function(){
                            $.la.ajaxForm.gotoStep('modal_register_form',4)
                        }
                    }],

                    success:{
                        code_postal:  function(){
                            $.la.ajaxForm.gotoStep('modal_register_form',2)
                        }
                    },
                    id_loading:'loading_pic_valider', 
                    rules: {
			            first_name: {
		                    'validateFirstName' : true,
		                    required: true,
		                    minlength: 1
		                },
		                last_name: {
		                    'validateLastName' : true,
		                    required: true,
		                    minlength: 1
		                },
                    	newsletter_premiere: "required",
        				quot_people: "required",
        				hebdo_people: "required",
        				quot_ent: "required",
        				newsletter_theatre: "required",
        				people_look: "required",
        				hebdo_ent: "required",
        				offres_premiere: "required",
                        code_postal: {
                            'validateZipCode': false,
                            'required':true,
                            'number':false,
                            'minlength': 2,
                            'maxlength': 10
                        },
                        email: {
	                    	required:true,
	                        email: true,
	                        emailExistAjax: true 
	                    }
                    },
                    messages: {
                    	first_name: {
                    		minlength: "1 caract&egrave;res mini"
                    	},
                    	last_name: {
                            minlength: "1 caract&egrave;res mini"
                        },
	                    newsletter_premiere: {
                            required: "choix obligatoire"
                        },
                        hebdo_people: {
                            required: "choix obligatoire"
                        },
                        quot_people: {
                            required: "choix obligatoire"
                        },
                        quot_ent: {
                            required: "choix obligatoire"
                        },
                        newsletter_theatre: {
                            required: "choix obligatoire"
                        },
                        people_look: {
                        	required: "choix obligatoire"
                        },
                        hebdo_ent: {
                            required: "choix obligatoire"
                        },
                        offres_premiere: {
                            required: "choix obligatoire"
                        },
                        sexe:"choix obligatoire",
                        cgu: "Validation obligatoire"
                    }
                },
                'full_register_form':{
                	id_loading:'loading_pic_valider', 
                    rules: {
			               first_name: {
			                    minlength: 1
			                },
			                last_name: {
	                            minlength: 1
			                },
		                 	newsletter_premiere: "required",
	        				hebdo_people: "required",
		                 	quot_people: "required",
		                 	quot_ent: "required",
	        				newsletter_theatre: "required",
	        				people_look: "required",
	        				hebdo_ent: "required",
	        				offres_premiere: "required",
	                        code_postal: {
	                            'maxlength': 10
	                        }
                    },
                    messages: {
                    	first_name: {
                			minlength: "1 caract&egrave;res mini"
	                	},
	                	last_name: {
	                        minlength: "1 caract&egrave;res mini"
	                    },                    	
                    	newsletter_premiere: {
                            required: "choix obligatoire"
                        },
                        hebdo_people: {
                            required: "choix obligatoire"
                        },
                        quot_people: {
                            required: "choix obligatoire"
                        },
                        quot_ent: {
                            required: "choix obligatoire"
                        },
                        newsletter_theatre: {
                            required: "choix obligatoire"
                        },
                        people_look: {
                        	required: "choix obligatoire"
                        },
                        hebdo_ent: {
                            required: "choix obligatoire"
                        },
                        offres_premiere: {
                            required: "choix obligatoire"
                        }
                    },
                    submit:{
                    	'async':true
                    }
                },
                'full_newsletter_form_colonne_droite':{
                	id_loading:'loading_pic_valider', 
                    rules: {
			               first_name: {
			                    minlength: 1
			                },
			                last_name: {
	                            minlength: 1
			                },
		                 	newsletter_premiere: "required",
	        				hebdo_people: "required",
		                 	quot_people: "required",
		                 	quot_ent: "required",
	        				newsletter_theatre: "required",
	        				people_look: "required",
	        				hebdo_ent: "required",
	        				offres_premiere: "required",
	                        code_postal: {
	                            'maxlength': 10
	                        }
                    },
                    messages: {
                    	first_name: {
                			minlength: "1 caract&egrave;res mini"
	                	},
	                	last_name: {
	                        minlength: "1 caract&egrave;res mini"
	                    },                    	
                    	newsletter_premiere: {
                            required: "choix obligatoire"
                        },
                        hebdo_people: {
                            required: "choix obligatoire"
                        },
                        quot_people: {
                            required: "choix obligatoire"
                        },
                        quot_ent: {
                            required: "choix obligatoire"
                        },
                        newsletter_theatre: {
                            required: "choix obligatoire"
                        },
                        people_look: {
                        	required: "choix obligatoire"
                        },
                        hebdo_ent: {
                            required: "choix obligatoire"
                        },
                        offres_premiere: {
                            required: "choix obligatoire"
                        }
                    },
                    submit:{
                    	'async':true
                    }
                },
                'full_newsletter_form_news':{
                	id_loading:'loading_pic_valider', 
                    rules: {
			               first_name: {
			                    minlength: 1
			                },
			                last_name: {
	                            minlength: 1
			                },
		                 	newsletter_premiere: "required",
	        				hebdo_people: "required",
		                 	quot_people: "required",
		                 	quot_ent: "required",
	        				newsletter_theatre: "required",
	        				people_look: "required",
	        				hebdo_ent: "required",
	        				offres_premiere: "required",
	                        code_postal: {
	                            'maxlength': 10
	                        }
                    },
                    messages: {
                    	first_name: {
                			minlength: "1 caract&egrave;res mini"
	                	},
	                	last_name: {
	                        minlength: "1 caract&egrave;res mini"
	                    },                    	
                    	newsletter_premiere: {
                            required: "choix obligatoire"
                        },
                        hebdo_people: {
                            required: "choix obligatoire"
                        },
                        quot_people: {
                            required: "choix obligatoire"
                        },
                        quot_ent: {
                            required: "choix obligatoire"
                        },
                        newsletter_theatre: {
                            required: "choix obligatoire"
                        },
                        people_look: {
                        	required: "choix obligatoire"
                        },
                        hebdo_ent: {
                            required: "choix obligatoire"
                        },
                        offres_premiere: {
                            required: "choix obligatoire"
                        }
                    },
                    submit:{
                    	'async':true
                    }
                },
                /**** 
                 * EDIT FORMS
                 */
                'full_edit_form':{
                	id_loading: 'loading_pic_valider',
                	rules: {
                        sexe: "required",
                        first_name: {
                			required: true,
                			'validateFirstName' : true,
                			minlength: 1
                        },
                        last_name: {
                        	required: true,
                        	'validateLastName' : true,
                        	minlength: 1
                        },
                        date_de_naissance: {
                            required: true,
                            'validateDateNaissance' : true
                        },
                        adresse: {
                            'validateAddress': true,
                            required: false
                        },
                        code_postal: {
                            'validateZipCode': true,
                            'required':true,
                            'number':true,
                            'minlength': 5,
                            'maxlength': 5
                        },
                        ville: {
                            'validateCity': true,
                            required: false
                        },
                        telephone: {
                            'validatePhone': true,
                            required: false
                        },
                        password:{
                            required:true,
                            minlength: 5
                        },
                        confirmmotdepasse:{
                            required:true,
                            minlength: 5,
                            equalTo: "#password"
                        },
                        cgu:'required'
                     
                    },

                    messages: {
                        sexe:"Homme ou femme ?",
                        first_name: {
                            'validateFirstName' : "Pr&eacute;nom invalide",
                            required: "Pr&eacute;nom obligatoire",
                            minlength: "3 caract&egrave;res mini"
                        },
                        last_name: {
                            'validateLastName' : "Nom invalide",
                            required: "Nom obligatoire",
                            minlength: "2 caract&egrave;res mini" // MOD by Young Sun, cf line 111
                        },
                        date_de_naissance: {
                            'validateDateNaissance' : "Date invalide",
                            required: "Date requise"
                        },
                        adresse: {
                            'validateAddress': 'Adresse invalide',
                            required: ''
                        },
                        code_postal: {
                            'validateZipCode': 'Code postal invalide',
                            'number': "Que des chiffres !",
                            'required': "Code postal obligatoire",
                            'minlength': "Code postal trop court !",
                            'maxlength': "Code postal trop long !"
                        },
                        ville: {
                            'validateCity': 'Ville invalide',
                            required: false
                        },
                        telephone: {
                            'validatePhone': 'T&eacute;l&eacute;phone invalide'
                        },
                        password:{
                            required:"Mot de passe requis",
                            minlength: "5 caract&egrave;res mini"
                        },
                        confirmmotdepasse:{
                            required:"Champ requis",
                            minlength: "5 caract&egrave;res mini",
                            equalTo: "Mots de passe diff&eacute;rents"
                        },
                        cgu: "Acceptation obligatoire !"
                    },
                    submit:{
                    	'url':'/action/edit',
                        'handler': function(json){
                    		if(json.res != 0){
                    			if(json.return_url != ''){
	                            	document.getElementById('full_edit_form').submit();
	                        		
                            			if(document.location.search.indexOf('iframe=1') != -1){
	                						parent.location.href=json.return_url;
	                					}
	                					else{
	                						document.location.href=json.return_url;
	                					}
	                            }
                                $('.information_update_success').hide('slow');
	                            $('.information_update_error').show('slow');
	                            document.location.href="#info_update";    	
	                         }else{
                                $.la.ajaxForm.hide_loader_picture($.la.ajaxForm.div_du_loader_form_valider);
       	                     	$('.information_update_error').hide('slow');
                           		$('.information_update_success').show('slow');
                                $.la.ajaxForm.alertForm('full_edit_form',1);
                                
                            	if($('#avatar').attr('value') != "" && $('#avatar').attr('value') != undefined)
                            		{
                            			$('#ajax').attr('value', '0');
                            			document.full_edit_form.submit();
                            		}
                            	else
	                            	{
	                            		document.location.href="#info_update";  
	                            	}
	                           }
                    		
	                        }
                    }
                },
                'full_newsletter_form':{
                	id_loading: 'loading_pic_newsletter'
                },
                'full_newsletter_form_colonne_droite':{
                	id_loading: 'loading_pic_newsletter_colonne'
                },
                'full_newsletter_form_news':
                {
                	id_loading: 'loading_pic_newsletter_news'
                },
                'full_login_form':{
                	id_loading: 'loading_pic_login'
                },
                /*************************************************************************************************************************************************/
                /******************************************* Setting for activation formulars ********************************************************************/
                /*************************************************************************************************************************************************/
                'modal_activation_login_form':{
                	id_loading:'loading_pic_activate'
                },
                'full_activation_login_form':{
                    id_loading: 'loading_pic_activate'
                },              
                'full_first_visit_form':{
                	id_loading:'loading_pic_first'
                },
                /* override of modal first visit form to add width=670 for premiere */
                'modal_first_visit_form':{
                	id_loading:'loading_pic_first',
                	rules: {
                        UserEmail: {
                            'required':true,
                            'email': true
                        }
                    },
                    messages: {
                        UserEmail: "Votre email n'est pas valide"
                    }
                }
            },
            getAlertForm:function(id_form,error){
                var message = "Une erreur est survenue.";
                switch(id_form){
                    case 'modal_login_form':
                        switch(error){
	                        case 1:
                                message = 'Mot de passe oubli&eacute;? <a href="javascript:void(0);" onclick="$(\'#' + id_form + ' .\' + $.la.ajaxForm.settings[\'' +id_form + '\'].errorMessageClass).hide();$.la.modalbox.ldapOpenCloseLoginBoxRegistered(\'ldapLoginBoxForgetPassword\');">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe';
                                break;
                        }
                        break;
                    case 'full_login_form':
                    	switch(error){
                            case 1:
                                message = 'Pseudo ou mot de passe oubli&eacute;? Saisissez votre email pour recevoir vos codes d\'acc&egrave;s';
                                break;
                            case 100:
                                message = 'L\'adresse email existe prise. Veuillez en choisir une autre.';
                                break;
                        }
                        break;
                    case 'modal_first_visit_form':
                        switch(error){
                            case 1:
                                /* message = 'Mot de passe oubli&eacute;? Indiquez votre adresse email dans le champs E-mail en bas du formulaire et nous vous renverrons votre pseudo et votre mot de passe'; */
                                message = 'Le compte email que vous avez saisi est d&eacute;j&agrave; utilis&eacute;.<br /> Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$.la.modalbox.ldapOpenCloseLoginBoxRegistered(\'ldapLoginBoxForgetPassword\');" >cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                break;
                            case 2:
                                message = 'Le compte email que vous avez saisi est d&eacute;j&agrave; utilis&eacute;.<br /> Mot de passe oubli&eacute;? <a href="#forgotpassword"  onclick="$.la.modalbox.ldapOpenCloseLoginBoxRegistered(\'ldapLoginBoxForgetPassword\');">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                break;
                        }
                        break;
                    case 'full_first_visit_form':
                        switch(error){
                            case 1:
                                /* message = 'Mot de passe oubli&eacute;? Indiquez votre adresse email dans le champs E-mail en bas du formulaire et nous vous renverrons votre pseudo et votre mot de passe'; */
                                message = 'Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$(\'#full_forget_password_form #UserEmail\').attr(\'value\', $(\'#full_first_visit_form #NewUserEmail\').val()); $.la.ajaxForm.validateForm(\'full_forget_password_form\');document.location.href = \'#forgotpassword\'; return false;">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                break;
                            case 2:
                            	 message = 'Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$(\'#full_forget_password_form #UserEmail\').attr(\'value\', $(\'#full_first_visit_form #NewUserEmail\').val()); $.la.ajaxForm.validateForm(\'full_forget_password_form\');document.location.href = \'#forgotpassword\'; return false;">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                // message = 'Vous &ecirc;tes d&eacute;j&egrave; inscrit sur un de nos sites. Vous pouvez utiliser le m&ecirc;me identifiant, mot de passe. <br /> Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$(\'#full_forget_password_form #UserEmail\').attr(\'value\', $(\'#full_first_visit_form #NewUserEmail\').val()); $.la.ajaxForm.validateForm(\'full_forget_password_form\');document.location.href = \'#forgotpassword\'; return false;">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                //message = 'Le compte email que vous avez saisi est d&eacute;j&agrave; utilis&eacute;.<br /> Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$(\'#full_forget_password_form #UserEmail\').attr(\'value\', $(\'#full_first_visit_form #NewUserEmail\').val()); $.la.ajaxForm.validateForm(\'full_forget_password_form\'); document.location.href = \'#forgotpassword\';return false;">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                                break;
                            default:
                            	message = 'Mot de passe oubli&eacute;? <a href="#forgotpassword" onclick="$(\'#full_forget_password_form #UserEmail\').attr(\'value\', $(\'#full_first_visit_form #NewUserEmail\').val()); $.la.ajaxForm.validateForm(\'full_forget_password_form\');document.location.href = \'#forgotpassword\'; return false;">cliquez ici</a> et nous vous renverrons votre pseudo et votre mot de passe.';
                            	break;
                        }
                        break;
                    case 'full_activation_login_form':
                        switch(error){
                            case 1:
                                message = 'Le pseudo et le mot de passe ne correspondent pas. <br /><a href="/action/login#forgotpassword">Cliquez ici pour recevoir vos codes d\'acc&egrave;s</a>';
                                break;
                        }
                        break;
                    case 'modal_forget_password_form':
                        switch(error){
                            case 1:
                                message = 'Un email vous a &eacute;t&eacute; envoy&eacute;';
                                break;
                            case 2:
                                message = 'Votre adresse n\'est pas enregistr&eacute;e dans notre base. <br /> <a href="javascript:void(0)" onclick="$(\'#modal_forget_password_form\').attr(\'action\', \'/action/register/Modal\');$(\'#modal_forget_password_form\').removeAttr(\'onsubmit\');$(\'#full_forget_password_form input[name=ajax]\').val(\'\');$(\'#modal_forget_password_form\')[0].submit();" >Cliquez ici pour vous inscrire.</a>';
                                break;
                        }
                        break;
                    case 'full_forget_password_form':
                        switch(error){
                            case 1:
                                message = 'Un email vous a &eacute;t&eacute; envoy&eacute;';
                                break;
                            case 2:
                                message = 'Votre adresse n\'est pas enregistr&eacute;e dans notre base. <br /> <a href="javascript:void(0)" onclick="$(\'#full_forget_password_form\').attr(\'action\', \'/action/register\');$(\'#full_forget_password_form\').removeAttr(\'onsubmit\');$(\'#full_forget_password_form input[name=ajax]\').val(\'\');$(\'#full_forget_password_form\')[0].submit();" >Cliquez ici pour vous inscrire.</a>';
                                break;
                        }
                        break;
                    case 'full_register_form':
                    	switch(error){
                    		case 100:
                    			 message = 'L\'adresse email existe prise. Veuillez en choisir une autre.';
                    			break;
                    	}
                    	break;
                     case 'modal_register_form':
                        switch(error){
                            case 1:
                                message='';
                            	break;
                            case 2:
                                message = '';
                                break;
                            case 100:
                            	$.la.modalbox.ldapOpenCloseLoginBoxRegistered('ldapRegisterBoxAccess');
                            	message = 'L\'adresse email existe prise. Veuillez en choisir une autre.';
                                break;
                        }
                        break;
                     case 'modal_activation_login_form':
                         switch(error){
                             case 1:
                            	 message = 'Le pseudo et le mot de passe ne correspondent pas. <a href="javascript:void(0);" onclick="jQuery.la.modalbox.call(\'/action/login/Modal\', {title: \'\', width: \'670px\'})" >Cliquez ici pour recevoir vos codes d\'acc&egrave;s</a>';
                                 break;
                             case 2:
                            	 message = 'Le pseudo et le mot de passe ne correspondent pas. Cliquez sur le lien Mot de passe oubli&eacute; afin de recevoir un nouveau mot de passe';
                                 break;
                         }
                         break;                        
                        
                    default:message = 'default';
                }
                return message;
            },
      
            gotoStep:function(id_form,step){
            	
            	//ne desactive pas les champs valid
                //for (var i=0; i< step; i++){
                //    for (var j=0; j<$.la.ajaxForm.settings[id_form].step[i].fields.length; j++){
                //        $('[name=' + $.la.ajaxForm.settings[id_form].step[i].fields[j]+ ']').attr('class','');
                //    }
                //}
                switch(id_form){
                   
                    case 'modal_register_form':{
                        switch(step) {
                            case 0:{
                            		$.la.modalbox.ldapOpenCloseLoginBoxRegistered('ldapRegisterBoxInfos');
                                break;
                            }
                            case 1:{
                            		$.la.modalbox.ldapOpenCloseLoginBoxRegistered('ldapRegisterBoxAccess');
                                break;
                            }
                            case 2:{
                                $.la.modalbox.ldapOpenCloseLoginBoxRegistered('ldapRegisterBoxNewsletters');
                                break;
                            }
                            case 3:{
                                $.la.modalbox.ldapOpenCloseLoginBoxRegistered('ldapRegisterBoxCgu');
                                break;
                            }
                            case 4:{
                                $.la.ajaxForm.validateForm(id_form);
                                break;
                            }
                        }
                        break;
                    }
                }
            }
		}
        /* FIN FORM */
    });
})(jQuery);

