
    var userFromLink = '';
      function loginFBUser(){
      			//hideDivs("fbSignIn");
				var session = FB.Facebook.apiClient.get_session();
				var uid = session.uid;
				var sessionid = session.session_key;
		       	setCookie("login_source", "facebook", 1);
	  			UserManager.loginFBUser(uid, sessionid, checkLoginHandlerFB);
      }

	function loginFB(fromLink){
		userFromLink = fromLink;
		//SNG_closeFancyBox();
	      FB.Bootstrap.ensureInit(function () {
	      	FB.Connect.requireSession();	      	
	      	FB.Facebook.get_sessionState().waitUntilReady(function() { 
				loginFBUser();
			});
	  	  });
	}
	
	function checkSessionState(){
		var sessionWaitable = FB.Facebook.get_sessionWaitable();
		if (sessionWaitable.get_isReady() && sessionWaitable.result) {
			loginFBUser();
		}	
	}

	function closeWindow(win_name){
		hideDivs(win_name);
		closeFBPopMainDiv();
	}
	
	function closeFBPopMainDiv(){
			_$id('fbPopupMainDiv').style.display='none';
	}
	
	function showFBPopMainDiv(){

		if(userFromLink=='signIn'){ // User comming from signin page
			hideAllSignInUPPops();
			$('#fbSignUpPopup').show();
			SNG_resizeFancyBox();
		}else{//user clicked sign in using facebook
			$('#whichLink').val('Facebook');
			$('a#signinlink').click();
		}
	}
	
	//function showFBRegistrationForm(){
	//			_$id('mainDiv_fb').style.zIndex = "55";
	//			showDivs('tbl_registration_fb');
	//}

	function registerFBUser(){
				var session = FB.Facebook.apiClient.get_session();
				var uid= session.uid;
				var sessionid= session.session_key;
		        setCookie("login_source", "facebook", 1);
		        var remFlag = false;
		        
		        var nickName = $('#nickName_fb').val();
		        var emailId = $('#email_fb').val();
		        var postCode = $('#postcode_fb').val();
		        var termsChecked =  $('#signupfb_termsAndConditions').is(':checked');
				
				
		        if(trim(emailId) == "" || emailId == SIN_EMAIL){
		        	SNG_displayLoginError($('#email_fb'), 'Please enter your email address to sign up');
		        }else if(!(checkEmail(emailId))){
		        	SNG_displayLoginError($('#email_fb'), 'Please enter a valid email address');
		        }else if(trim(postCode) == '' || postCode == SUP_POSTCODE){
		        	SNG_displayLoginError($('#postcode_fb'), 'Please enter your postcode');
		        }else if(!validatePostCode(postCode) || postCode == SUP_POSTCODE){
		        	SNG_displayLoginError($('#postcode_fb'), 'Please enter a valid postcode');
		        }else if(trim(nickName) == '' || nickName == SUP_NICKNAME){
		        	SNG_displayLoginError($('#nickName_fb'), 'Please enter a Nickname');
		        }else if(!termsChecked){
		        	SNG_displayLoginError($('#termsAndConditionsFB'), 'Please read and agree to the woZZon Terms & Conditions');
		        }else{
					var productServicesChkBox = $('#signupfb_productServices');
					
					if(productServicesChkBox.length> 0 && productServicesChkBox.is(':checked')){
					remFlag = true;
					}else{remFlag = false;}
					
		        	UserManager.registerFBUser(remFlag, postCode, emailId, nickName, uid, sessionid, registerationHandlerFB);
		        }
		        
		        /*
		        if(trim((_$id('nickName_fb').value))!=""){
		        	
		       		if(checkEmail(_$id('email_fb').value)){
				        _$id('registerationError_fb').innerHTML="";
						UserManager.registerFBUser(_$id('postcode_fb').value, _$id('email_fb').value, _$id('nickName_fb').value, uid, sessionid, registerationHandlerFB);
						
					}else{
						_$id('registerationError_fb').innerHTML="Please enter valid email address.";
					}
				}else{
						_$id('registerationError_fb').innerHTML="Please enter nick name.";
				}
				*/

	}
	
	function hideLoginTableFB() {
		hideDivs('tbl_registration_fb');
		hideDivs('tbl_showNickHelp_fb');
	}

	function checkLoginHandlerFB(source) {
		//var obj = _$id("loginError");
		//var div = "";
		//div = "loginError";
		//document.getElementById('loginError').style.display = '';
		var cntx = document.getElementById('cntx');
		if(cntx == null) cntx = "";
		else cntx = cntx.value;
				
	     if( source == "error" ) 
			displayMsg(div,"Error processing your request.");	
		  else if( source == "Inactive")   
			displayMsg(div,"Please activate your account");   
		  else if( source == "Invalid") {
			displayMsg(div,"The email address or password you provided does not match our records");			
		  }
		  else if (source == "errorLoginFBUser"){
			  displayMsg(div,"Error while sign in using Facebook");			
		  }else if (source == "deleteduser"){
			  //showFBPopMainDiv();
			  //showDivs('deletedUserPopup');
			  if(userFromLink=='signIn'){
				  SNG_closeFancyBox();
			  }
			  SNG_messagePopup('reactivateFBAccount');
			  
		  }else if (source == "errorRegisterFBUser"){
			  displayMsg(div,"Error while registering user");			
	      }else if(source == "fbUserNotUpdated"){
		     var fbSession = FB.Facebook.apiClient.get_session();
  			 var uid= fbSession.uid;	
		     //clearRegistrationWindow('true');
		     showFBProfile();
		     UserManager.getFacebookUserName(uid, fillFBUserNameHandler);
		     showFBPopMainDiv();
	      	 //showFBRegistrationForm();
			 
	      }else {  
			//hideDivs('tbl_login');
	    	 if(!(userFromLink && userFromLink == 'FBSignUp')){
	    		 SNG_closeFancyBox(); 
	    	 }
	    	  
			if(_$id('welcomenote')&& source != 'UserLogged') {	
			var fbSession = FB.Facebook.apiClient.get_session();
				var uid= fbSession.uid;	
				source =  " <span><fb:name useyou='false' uid='"+ uid + "'></fb:name></span>"
				_$id("welcomenote").innerHTML = _$id("welcomenote").innerHTML = "Welcome:  "+ source; 

				_$id('welcomenote').style.display = "";
				reRenderXFBMLTags();
				askExtendedPermission();
				if(_$id('isUserLogged')) _$id('isUserLogged').value ='Yes';
				
			} else if(_$id('welcomenote_mapView')&& source != 'UserLogged') {
				_$id("welcomenote_mapView").innerHTML = _$id("welcomenote_mapView").innerHTML = "Welcome "+ source;
				_$id('welcomenote_mapView').style.display = "";
				if(_$id('isUserLogged')) _$id('isUserLogged').value ='Yes';
			}
		
			_$id("wozzon_header_logStatus").style.display = '';
			if(_$id("wozzon_header_logStatus") != null)  {
				$('.SNG_topSection ul').css('width','300px');
				//$('#welcomenote').css('width','480px');
				hideDivs('wozzon_header_signup');
				hideDivs('wozzon_header_facebook');
				_$id('wozzon_header_myWozzonStatus').innerHTML = "<a id='id_myWozzon' href='"+cntx+"controller.web?method=myWozzon' >My woZZon</a>" ;
				_$id("wozzon_header_logStatus").innerHTML ="<a href='javascript:logout(1)'>Sign out</a>";
			}
		
			window.setTimeout("SNG_checkLoginHandler('UserLogged')", 1500);
		 }	
	}
	
	function activateFBUser(){
		UserManager.activateFBUser(activationHandlerFB);
	}
	
	function activationHandlerFB(source){
		
		var cntx = document.getElementById('cntx');
		if(cntx == null) cntx = "";
		else cntx = cntx.value;
			
		SNG_closeMessage();
		
	     if( source == "error" ){ 
		    SNG_alert("Error processing your request.");
	      }else if( source == "Inactive")  {
		 	SNG_alert("Please activate your account");
		  }else if( source == "Invalid") {
			  SNG_alert("Facebook id or session key is invalid, please relogin.");
		  }else if (source == "errorActivatingFBUser"){
			  SNG_alert("Error while activating using Facebook account");
		  }else {  
				//closeFBPopMainDiv();
				var isreviewEvent = _$id('isReviewEvent')
				var isreview =_$id('isReview')
				
				if( !( (isreview && isreview.value == "Yes") ||  (isreviewEvent && isreviewEvent.value == "Yes") || 
							  ( _$id('whichLink').value == "showSubmitChanges" ) )  ) {		
				   
				}
				SNG_messagePopup('registerationSuccess');
				checkLoginHandlerFB(_$id('nickName_fb').value);
		 }	
	}
	
	function askExtendedPermission(){
		FB.Bootstrap.ensureInit(function () {
	          // Check if user has permission, if not invoke dialog.
	         var permission = 'publish_stream';
	       	 FB.Connect.requireSession(function(){
	            //check is user already granted for this permission or not
	            var hasPermission = 'false';
	            FB.Facebook.apiClient.users_hasAppPermission(permission,
	            function(hasPerm) {
	                // prompt offline permission
	                if (hasPerm == 0) {
	                    // render the permission dialog
	                    FB.Connect.showPermissionDialog(permission,
	                    function(result){
	                        if (null == result || result == ''){
	                            hasPermission = 'false';
	                        }else{
   	                            hasPermission = 'true';
	                        }
	                        UserManager.saveExtendedPermission('publish_stream', hasPermission, function(data){});
	                    }, false, null);
	                } else {
	                    hasPermission = 'true';
	                    UserManager.saveExtendedPermission('publish_stream', hasPermission, function(data){});
	                }
	            });
	            
	        });
	    });
	}

	function fillFBUserNameHandler(data){
		 var userName = replaceAll(data.toLowerCase(),' ','');
		 _$id('nickName_fb').value = userName;

	}
	
	function showFBProfile(){
		var fbSession = FB.Facebook.apiClient.get_session();
  		var uid= fbSession.uid;	
		$('.fbImage').html("<fb:profile-pic uid='" + uid + "' facebook-logo='true' width='52' height='52' ></fb:profile-pic>");
		$('.fbUserNickname').html("<fb:name useyou='false' linked='false' uid='"+ uid + "'></fb:name>");
		reRenderXFBMLTags();
	}
	
	 function registerationHandlerFB(source) {	
		var obj = _$id("registerationError_fb");
		var div = "";
		div = "registerationError_fb";	
		showDivs(div);	
		if( source == "1" ){ 
			//var msg = "<b>This email address has already been taken.</b> Do you have woZZon account with this email? <br/>" +
			//	"Yes! Then login with <b>I ALREADY HAVE WOZZON ACCOUNT</b> to sync your woZZon and Facebook Account <b>OR</b> " +
			//	 "Login with woZZon Account"; 
			//displayMsg(div,msg);
			//alert(msg);
			SNG_displayLoginError($('#email_fb'), 'This email address has already been taken.');
		}else if(source == "2")  SNG_displayLoginError($('#nickName_fb'), "Nickname already in use, please enter another Nickname"); //displayMsg(div,"Nickname already in use, please select another Nickname");
		else if( source == "3") SNG_alert("Error registering user"); //displayMsg(div,"Error registering user");
		else if(source == "4")	SNG_displayLoginError($('#nickName_fb'), 'Please enter a Nickname'); //displayMsg(div,"Please enter nick name.");
	    else if(source == "5" ) SNG_alert("Please enter password."); //displayMsg(div,"Please enter password.");
	    else if(source == "6" ) SNG_displayLoginError($('#email_fb'), 'Please enter your email address to sign up'); //displayMsg(div,"Please enter  email address.");
		else if(source == "ReRegistered")  {	
				//hideLoginTable();
				_$id('tbl_reRegister').style.display = '';
			}
	    else if(source == "Registered")  {		
		  	//closeFBPopMainDiv();
		  	//hideDivs('tbl_registration_fb');			
			var isreviewEvent = _$id('isReviewEvent')
			var isreview =_$id('isReview')
			
			if( !( (isreview && isreview.value == "Yes") ||  (isreviewEvent && isreviewEvent.value == "Yes") || 
						  ( _$id('whichLink').value == "showSubmitChanges" ) )  ) {		
			  
			}
			userFromLink = "FBSignUp";
			hideAllSignInUPPops();
			$('.successUserNickname').html($('#nickName_fb').val());
			$('#signUpSuccess').show();
			SNG_resizeFancyBox();
			checkLoginHandlerFB(_$id('nickName_fb').value);
		 } else  {          
		  	obj.innerHTML = source;
		}
	}
	
	function loginWithWozzon(){
		//hideDivs("tbl_registration_fb");
		//showDivs("tbl_existing_account");
		showFBProfile();
	}
	
	//function hideExistingAccTbl(){
	//	hideDivs("tbl_existing_account");
	//}
	
	
	function loginExistingAccount(){
		var emailValue;
		var passwordValue;
		
		emailValue = $('#email_exst_woz').val();
		passwordValue = $('#password_exst_woz').val();
		
		if(trim(emailValue) == "" || emailValue == SIN_EMAIL){
        	SNG_displayLoginError($('#email_exst_woz'), 'Please enter your existing woZZon account details');
        }else if(!(checkEmail(emailValue))){
        	SNG_displayLoginError($('#email_exst_woz'), 'Please enter a valid email address');
        }else if(trim(passwordValue) == '' || passwordValue == SIN_PASSWORD){
        	SNG_displayLoginError($('#password_exst_woz'), 'Please enter your existing woZZon password');
        	$('#password_exst_woz_text').focus();
        }else{
		   	 var fbSession = FB.Facebook.apiClient.get_session();
			 var uid= fbSession.uid;
			 var sessionid = fbSession.session_key;
			 UserManager.alreadyHaveWozzonLogin(emailValue, passwordValue, uid, sessionid, existingAccountHandler);
        }
		
	    /*    
		if(emailValue!='' && checkEmail(emailValue) && passwordValue!=''){
			//$('#login_email').val(emailValue);
			//$('#login_password').val(passwordValue);
			 var fbSession = FB.Facebook.apiClient.get_session();
			 var uid= fbSession.uid;
			 var sessionid = fbSession.session_key;
			 UserManager.alreadyHaveWozzonLogin(emailValue, passwordValue, uid, sessionid, existingAccountHandler);
			
		}else{
			_$id('exisitingAccountError_fb').innerHTML= 'Please provide a correct email and password.';
		}
		*/
	}
	
	function existingAccountHandler(source){
		if(source=='alreadySync'){
			//_$id('exisitingAccountError_fb').innerHTML="OOPS! This account is already sync. If you have any question or comment, please send us your feedback.";
			$('#password_exst_woz').val('');
			$('#email_exst_woz').val(SIN_EMAIL);
			SNG_displayLoginError($('#email_exst_woz'), 'This woZZon account is already associated with another Facebook account');
		}else if(source=='userNotExists'){
			//_$id('exisitingAccountError_fb').innerHTML="Please provide correct email/password.";
			$('#password_exst_woz').val('');
			SNG_passwordOnBlur(_$id('password_exst_woz'));
			$('#email_fb').val($('#email_exst_woz').val())
			SNG_displayLoginError($('#email_exst_woz'), "Email address not recognised, would you like to create a new account?");
		}else if(source=='Invalid'){
			//_$id('exisitingAccountError_fb').innerHTML= "The email address or password you provided does not match our records";
			$('#password_exst_woz').val('');
			SNG_displayLoginError($('#password_exst_woz'), "The password you have entered is incorrect");
		}else if(source=='error'){
			//_$id('exisitingAccountError_fb').innerHTML= "Error.";
			SNG_alert("Error.");
		}else if(source!='error'){
			//hideDivs("tbl_existing_account");
			//showDivs('tbl_sync_success');
			//TODO:show success new popup;
			userFromLink="Linked";
			SNG_loginAjax(1);
			$('#login_email').val(emailValue = $('#email_exst_woz').val());
			$('#login_password').val(passwordValue = $('#password_exst_woz').val());
			
      	}
	}

	//function backWindow(hideWindow,showWindow){
	//	hideDivs(hideWindow);
	//	showDivs(showWindow);
	//}
	
	function reRenderXFBMLTags(){
		FB.XFBML.Host.parseDomTree(); 
	}

	function showSuccessMessage(messageBody){
		showDivs("tbl_confirmation_message");
		_$id("tbl_confirmation_message_content").innerHTML(messageBody);
		
	}

	//Incomplete
	function removeSyncPanel(){
		//setCookie("remove_sync_panel", "true", 1);
		hideDivs('syncAccount');
		UserManager.removeSyncPanel();		
	}
	
	
	//function clearAlreadyWozzonWindow(){
	//	_$id('exisitingAccountError_fb').innerHTML = "";
	//	document.getElementById('existing_account_form_fb').email_exst_woz.value = "";
	//	document.getElementById('existing_account_form_fb').password_exst_woz.value = "";
	//}
	
	//function clearRegistrationWindow(clearAll){
	//	_$id('registerationError_fb').innerHTML = "";
	//	if(clearAll=='true'){
	//		_$id('nickName_fb').value="";
	//		_$id('email_fb').value="";
	//		_$id('postcode_fb').value="";
	//	}
	//}

	/* Shaheer */
	
	function loginForWozzon() {
		var loginEmail = _$id('loginEmail').value;
		var loginPassword = _$id('loginPassword').value;
		var loginRemember = _$id('loginRemember').value;
		UserManager.login(loginEmail, loginPassword, loginRemember, checkLoginForWozzonHandler);
	}
	
	function checkLoginForWozzonHandler(source) {
		if (source == "Invalid") {
			displayErrorMessage("Invalid username or password");
		} else {		
			setCookie("login_source", "whitelabel", 1);
			//_$id('welcomenote').innerHTML = source;		
			_$id('fbSignIn').style.display = 'none';
			checkLoginHandler(source);
			//hideDivs('fbSignIn');
		}
	}
	
	function fbSignIn() {
		_$id('fbSignIn').style.display = '';
		hideDivs('tbl_registration_fb');
	}
	
	
	/* Related to Synchronizing from Web, from Wozzon*/
		function getFacebookID(){
	      FB.Bootstrap.ensureInit(function () {
	      	FB.Connect.requireSession();	      	
	      	FB.Facebook.get_sessionState().waitUntilReady(function() {
	      		syncWithFacebook();
			});
	  	  });
	}
	
	    
      function syncWithFacebook(){
      		var session = FB.Facebook.apiClient.get_session();
			var uid = session.uid;
			var sessionid = session.session_key;
			document.getElementById('fb_user_info_div_permission_window').innerHTML = "<fb:profile-pic uid='" + uid + "' facebook-logo='true' size='thumb' ></fb:profile-pic>" +
									  "<b><fb:name useyou='false' linked='false' uid='"+ uid + "'></fb:name></b>";
									  
			showDivs('tbl_permission_fb');
			_$id('permissionError_fb').innerHTML='';
			showDivs('continueWithSyncDiv');
			showFBPopMainDiv();
			reRenderXFBMLTags();
      }
      
      function continueWithSync(){
		    var session = FB.Facebook.apiClient.get_session();
			var uid = session.uid;
        	UserManager.syncWozzonWithFB(uid, checkWozzonSyncHandler);
      }
      
      function checkWozzonSyncHandler(source){
      	if(source=='Success'){
      		showDivs('tbl_sync_success');
      		hideDivs('tbl_permission_fb');
      		removeSyncPanel();
      	}else if(source=='fbAlreadySync') {
      		_$id('permissionError_fb').innerHTML= 'Facebook account is already sync with some woZZon ID. Please try different Facebook Account';
      		hideDivs('continueWithSyncDiv');
      	}else if(source=='alreadySync') {
      		_$id('permissionError_fb').innerHTML= 'Your woZZon account is already sync with some Facebook Account.';
      		hideDivs('continueWithSyncDiv');
      		removeSyncPanel();
      	}
      }
	/* end */

