/*********** wslogin                   ***********************************************/
/*********** Version 1.0               ***********************************************/
/*********** Author Yoann Phung Van    ***********************************************/
/*********** Ouverture d'une popin d'identification sur tous les liens du site *******/

var wslogin = {

	start:function(){
		wslogin.logIn.start();	
	},
	
	logIn:{
	
		start:function(){
			wslogin.logIn.chkToSign();
		},
		
		chkToSign:function(){
            // Ajout de la fonction sign-in sur tous les liens sauf sur ceux ayant la classe popin-open (permettant d'afficher une popin)
            // ou ayant l'attribut onclick pour eviter d'interferer avec les appels de fontions javascript
            var toSign = $("a").not($("a.popin-open")).not($("a[onclick]"));
            if(!toSign ){return;}
            // Test si l'utilisateur est logue en utilisant les webservices
            var userIsLogged = false;
            var customer = new Customer(null,false);
            customer.GetUserInfo.call();
            // Si appel ajax termine
            $("").ajaxComplete(function(ev, xhr, s) {
                // Et qu'il s'est bien deroule
                if(xhr.status == 200 && s.url.indexOf("GetUserInfo")>-1){
                    // Si l'utilisateur n'est pas logue
                    if(customer.GetUserInfo.getInfo("Email").replace(/(?:^\s+|\s+$)/g, "")==""){
                        for(var i=0,toSignI;toSignI=toSign[i];i++){
                            // On teste tous les liens
                            toSign[i].onclick = function(){
                                // Si le contenu est dans la partie signee on ouvre une popin d'identification
                                if($(this).attr('href').indexOf("javascript")==-1){
                                    if($(this).attr('href').indexOf("member/signed/")>-1){
                                        wslogin.popIn.signIn($(this).attr('href'));
										return false;
                                    }else{
                                        //window.location.href = $(this).attr('href');
                                    }
                                }
                            }
                        }
                        // Ajout de la fonction sign in sur tous les liens qui contiennentt la classe sign-in (exclusion des class popin-open pour ne pas interferer)
                        toSign = $("a.sign-in").not($("a.popin-open"));
                        if(!toSign){ return;}
                        for(var i=0,toSignI;toSignI=toSign[i];i++){
                            toSign[i].onclick = function(){
                                wslogin.popIn.signIn(document.location.href);
                                if($(this).hasClass("top")){
                                    // If a 'top' class was found the page scroll to top, to be used in page with scrolling
                                    window.scrollTo(0,0);
                                }
                                return false;
                            }
                        }
                    }
                }
            });
        },
        chkToSignFructis:function(url_redirect)
        {
            // Ajout de la fonction sign-in sur tous les liens sauf sur ceux ayant la classe popin-open (permettant d'afficher une popin)
			// ou ayant l'attribut onclick pour eviter d'interferer avec les appels de fontions javascript	
			// Test si l'utilisateur est logue en utilisant les webservices
			var userIsLogged = false;
			var customer = new Customer(null,false);
			customer.GetUserInfo.call();
			// Si appel ajax termine
			$("").ajaxComplete(function(ev, xhr, s) {				
				// Et qu'il s'est bien deroule
				if(xhr.status == 200 && s.url.indexOf("GetUserInfo")>-1){
					// Si l'utilisateur n'est pas logue
					if(customer.GetUserInfo.getInfo("Email").replace(/(?:^\s+|\s+$)/g, "")==""){	                            
						wslogin.popIn.signIn(url_redirect); 
					}
					else
					{
						document.location= url_redirect;
					}					
				}
			});
		}
	},
	
	popIn:{
	
		signIn:function(url_redirect){
		
			var docHeight = $(document).height();
			// ouverture de la popin d'identification
			$("").popin({
				width:620,
				height:($.browser.msie) ? 270 : 250,				
				url: "/_it/_it/register/ajax/signin.aspx?url_redirection="+escape(url_redirect)
			});	
			$("").ajaxComplete(function(ev, xhr, s) {
				if(xhr.status == 200 && s.url.indexOf("/ajax/signin.aspx")>-1){
					$("").rememberme({
						loginClass : "loginrememberme",
						passwordClass : "passwordrememberme",
						submitClass : "submitrememberme",
						checkboxClass : "checkboxrememberme",
						expiration : 365						
					});
				}					
			});	
		},
		
		checkEmail:function(email){
		
			var at="@";
			var dot=".";
			var lat=email.indexOf(at);
			var lstr=email.length;
			var ldot=email.indexOf(dot);
			if (email.indexOf(at)==-1){
			   return false;
			}
			if (email.indexOf(at)==-1 || email.indexOf(at)==0 || email.indexOf(at)==lstr){
			   return false;
			}
			if (email.indexOf(dot)==-1 || email.indexOf(dot)==0 || email.indexOf(dot)==lstr){
				return false;
			}
			if (email.indexOf(at,(lat+1))!=-1){
				return false;
			}
			if (email.substring(lat-1,lat)==dot || email.substring(lat+1,lat+2)==dot){
				return false;
			}
			if (email.indexOf(dot,(lat+2))==-1){
				return false;
			}
			if (email.indexOf(" ")!=-1){
				return false;
			}
			return true;					
		},
		
		connect:function(url_redirect){
			
			var login = document.getElementById('login_ajax');
			var password = document.getElementById('password_ajax');
			var error_message = document.getElementById('form_errors');
			
			if(!this.checkEmail(login.value)){
				login.style.border = '1px darkred solid';
				password.style.border = '1px darkred solid';
				error_message.innerHTML = "Formato e-mail errato";
				return false;
			}

			var customerlogin = new Customer(null,false);
			customerlogin.CustomerLogin.call(login.value, password.value);
			// Si appel ajax termine
			$("").ajaxComplete(function(ev, xhr, s) {	
				// Et qu'il s'est bien deroule
				if(xhr.status == 200 && s.url.indexOf("CustomerLogin")>-1){
					// Si le webservice renvoie une erreur
					if(customerlogin.CustomerLogin.getError()!=""){	
						login.style.border = '1px darkred solid';
						password.style.border = '1px darkred solid';
						error_message.innerHTML = "Controlla indirizzo e-mail e password";
					}else{
						//window.location.replace(window.location);
						if(url_redirect != "" && url_redirect.length > 0){
							if(url_redirect.substring(0,1) == "#" || url_redirect.indexOf("#") >= 1){
                                location.reload(true);
                            } else {
								window.location.href = url_redirect;
							}
						}else{
                            var sURL = unescape(window.location.pathname);
                            window.location.href = sURL;
						}
					}
				}
			});			
		
		}	
	
	}

};

$(document).ready(function(){wslogin.start();});