var profileTimeout = 7; 			// 7 day persistence for session cookie if remember me NOT checked at log in
var profileExtendedTimeout = 31; 	// 31 day persistence for session cookie if remember me checked at log in
var profileLocked = true;			// default the profile to be locked unless logged in is valid
// global dashboard values
var totalNewReplies = 0;
var totalComments = 0;
var totalSubscriptions = 0;
var totalInterests = 0;
var totalProfileComplete = 0;	
// total number of days to show comment history for.
var commentDuration = 120;
// global holder for comments data to allow sorting.
var arrData = [];
var profilesLocked = true;
/* MODAL FUNCTIONS */

var profileEvents = {
	login: 'nzhLogIn',
	logout: 'nzhLogOut'
};

var networks = [{id:1, network:'fb', name:'Facebook'}];

function openlogin(flow,verified,message){
	if(!cookiesEnabled()){
		$.jsonp({
	        url: '/profile/no-cookies.cfm?callback=?',
	        cache: false,
	        async: true,
	        success: function(data) {
				//console.log(data);
				$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
	    	},
	        type: 'get'
	    });
		return false;
	} else {
		var _url = '/profile/login.cfm?login=true';
		
		if(flow) {
			var _flow = flow;
			$.cookie('flow', flow, {path:'/', expires:1, domain:BaseDomain});
		}
		if(typeof(verified)!='undefined'){
			_url += '&verified='+ verified;
		}
		if(typeof(message)!='undefined'){
			_url += '&message='+ message;
		}
		_url += '&callback=?';
		$.jsonp({
	        url: _url,
	        cache: false,
	        async: true,
	        success: function(data) {
				$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
				//$.fancybox.resize();
	    	},
	        type: 'get'
	    });
		return false;
	}
}

function openregister(){
	if(!cookiesEnabled()){
		$.jsonp({
	        url: '/profile/no-cookies.cfm?callback=?',
	        cache: false,
	        async: true,
	        success: function(data) {
				$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
	    	},
	        type: 'get'
	    });
		return false;
	} else {
	    $.jsonp({
	        url: '/profile/register.cfm?callback=?',
	        cache: false,
	        async: true,
	        success: function(data) {
				$.fancybox(data.HTML, {padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
	    	},
	        type: 'get'
	    });						
		return false;
	}
}
	
function openlogout(){
    $.jsonp({
        url: '/profile/logout.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });						
	return false;
}
function openregisterthanks(){
	$.jsonp({
        url: '/profile/register-thanks.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function openresend(email){
	var sEmail = '';
	if (typeof(email)!='undefined') {sEmail=email;}
	$.jsonp({
        url: '/profile/register-resend.cfm?callback=?&email='+sEmail,
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function resendEmail() {
	resendVerificationEmail();	
}

function resendVerificationEmail() {
	$.jsonp({
        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
        cache: false,
        async: true,
        type: 'get',
        data: {
        	method: 'resendVerificationEmail',
			email: $('#resend_Email').val()
        },
         beforeSend: function() {
			return validateResend();
  		},
        success: function(response) {	
    		if(response.SUCCESS){
	    		renderMsg('resend', ['You have been sent an email, please check your inbox.'], 'success'); 
    		} else {
				renderMsg('resend', [response.ERRORS[0].ERROR], 'error');
    		}
    	}, 
    	error: function(a,b,c){
    		renderMsg('register', [b], 'error');
    	}
    });	
}

function commentsLogin(flow,verified,message){
	var _url = '/profile/login.cfm?commentsLogin=true';
	_url += '&flow=commentsLogin&callback=?';
	$.cookie('flow', 'commentsLogin', {path:'/', expires:1, domain:BaseDomain});

	$.jsonp({
        url: _url,
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function commentsRegister(params){
	//console.log(params);
	var _url = '/profile/register.cfm?' + params;
	_url += '&=commentsRegister&callback=?';
	
	$.cookie('flow', 'commentsRegister', {path:'/', expires:1, domain:BaseDomain});
	
	$.jsonp({
        url: _url,
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}



function profileLogin() {
	// check to see if they are have come from the verification email link, the key url param should be available.
	var _key = getURLParamByName('key');
	var _tab = getURLParamByName('tab');
	var _email = getURLParamByName('email');

	/*if(_key == '') { */ // they are not coming from the email verify link
		if(isLoggedInToNZH()) { // if cookie.csess is available then logged in, show home.cfm and unlock the profile.
			
			$.jsonp({
				url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
				cache: false,
				async: true,
				type: 'get',
				data: {
					method: 'checkUserSession',
					sessionid: $.cookie('csess'),
					useruuid: $.cookie('cui')					
				},
				success: function(response) {
					if(response.SUCCESS && response.DATA.AUTHENTICATED) {
						// Authenticated successfully
						profileLocked = false;
						loadStatic('home.cfm');							
					} else {
						/*
						clearProfileCookies();
						buildLoginControls();
						profileLocked = true;
						loadStatic('home.cfm');
						openlogin();
						*/
						dologout();
					}
				}
			});	
			
			
		} else { // if cookie.csess is NOT available then user is not logged in, show home.cfm, keep the profile locked and open login modal.
			profileLocked = true;
			loadStatic('home.cfm', function() {				
				if (_key!='') {
					
					$.jsonp({
						url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
						cache: false,
						async: true,
						type: 'get',
						data: {
							method: 'confirmRegistration',
							email: getURLParamByName('email'),
							key: getURLParamByName('key'),
							storyid: getURLParamByName('storyid'),
							app: getURLParamByName('app')
						},
						success: function(response) {
							if(response.SUCCESS) {
								//if (_tab=='') {_tab='dashboard';} // Taking this out so that page doesnt refresh after email registration
								openlogin(flow=_tab,verified=true); // open the login modal with 'verified success' message
							} else {
								$.cookie('cu', getURLParamByName('email'), {path:'/', expires:365, domain:BaseDomain} );
								openlogin(flow='',verified=false, message=response.ERRORS[0].ERROR); // open the login modal with 'verified failed' message
							}
						}
					});
					
				} /*else {
					openlogin();
				}*/
			});
		}
	/*} else { // user has come from the email verification link
		$.jsonp({
			url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
			cache: false,
			async: true,
			type: 'get',
			data: {
				method: 'confirmRegistration',
				email: getURLParamByName('email'),
				key: getURLParamByName('key'),
				storyid: getURLParamByName('storyid'),
				app: getURLParamByName('app')
			},
			success: function(response) {
				if(response.SUCCESS) {
					if (_tab=='') {_tab='dashboard';}
					openlogin(flow=_tab,verified=true); // open the login modal with 'verified success' message
				} else {
					openlogin(flow='',verified=false, message=response.ERRORS[0].ERROR); // open the login modal with 'verified failed' message
				}
			}
		});
	}*/
}

function profileRegister() {
	loadStatic('register.cfm');
}

/*  
*	PROFILE ACTIONS
*/
function dologin(social_uid, social_email){	
	var sSocialUID = '';
	var sSocialEmail = '';

	if (typeof(social_uid) != 'undefined') {
		sSocialUID	= social_uid;
	}
	if (typeof(social_uid) != 'undefined') {
		sSocialEmail	= social_email;
	}
	//console.log(sSocialUID);
	$.jsonp({
        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
        cache: false,
        async: true,
        type: 'get',
        data: {
        	method: 'login',
        	email: $('#login_Email').val(),
        	password: $('#login_Password').val(),
        	social_userid: sSocialUID,
        	social_email: sSocialEmail
        },
        beforeSend: function() {
			return validateLogin();
  		},
        success: function(response) {
    		if(response.SUCCESS){    			
    			// clear errors as flashing up when success
				$("form#login #login_Email").removeClass('error');
				$('form#login #login_Password').removeClass("error");
				var remember_me = $('#login_rememberme').is(':checked');

				handle_login(response,remember_me);
				
				$(window).trigger(profileEvents.login);
				
    		} else {
    			renderMsg('login', [response.ERRORS[0].ERROR], 'error'); 
    		}
    		
    	},
    	error: function(a,b,c){
    		renderMsg('register', [b], 'error');
    	}
    });	
    return false;
}

function handle_login(response,remember_me) {
	$.cookie('cu', response.COOKIES.CU, {path:'/', expires:365, domain:BaseDomain} );
	$.cookie('cun', response.COOKIES.CUN, {path:'/', expires:365, domain:BaseDomain});
	$.cookie('cui', response.COOKIES.CUI, {path:'/', expires:365, domain:BaseDomain});
	$.cookie('cuid', response.COOKIES.CUID, {path:'/', expires:365, domain:BaseDomain});
	$.cookie('last_login', response.COOKIES.LAST_LOGIN, {path:'/', expires:365, domain:BaseDomain});
	// check for remember me checkbox, if set then make cookie expire after 31 days else 1 day.
	if (typeof(remember_me)!='undefined' && remember_me) {
		$.cookie('csess', response.COOKIES.CSESS, {path:'/', expires:profileExtendedTimeout, domain:BaseDomain});	
		$.cookie('cpersist', '31days', {path: '/', expires:profileExtendedTimeout, domain:BaseDomain});
	} else {
		$.cookie('csess', response.COOKIES.CSESS, {path:'/', expires:profileTimeout, domain:BaseDomain});
		$.cookie('cpersist', '7days', {path:'/', expires:profileTimeout, domain:BaseDomain});
	}
	if($.cookie('flow')) {
		if($.cookie('flow') == 'commentsRegister' || $.cookie('flow') == 'commentsLogin'){
			buildLoginControls();						
			updateCommentBox();
			$.fancybox.close();
		} else if ($.cookie('flow') == 'resetPassword') {						
			redirect('dashboard');
		} else if ($.cookie('flow') == 'newsletters') {
			openregisterthanks();
		} else {
			// redirect based on flow
			redirect($.cookie('flow'));
		}
		$.cookie('flow', null, {path:'/', domain:BaseDomain});
	} else {

		FB.getLoginStatus(function(info) {
			// redraw the profile header bar
			buildLoginControls();
			updateCommentBox();
			// If we're in the profile area, load the profile data
			if (window.location.pathname.indexOf('/profile/') > -1) {
				updateLoginStatus();
				$('#overlay').remove();
			}
			if (typeof(info.status)!='undefined' && info.status=='connected' && !response.CONNECTED && !response.DONT_CONNECT) {				
				open_connect_accounts();
			} else {
				$.fancybox.close();
			}
		});		
	}
}

function updateCommentBox(){	
	//update the comment-box.cfm template to show logged in.
	if ($.cookie('cu') && $.cookie('csess')){
		//console.log('showing member strap!!');
		//console.log($('div#memberWelcome'));
		$('div#memberWelcome').html('Welcome back <a href="/profile/">' + $.cookie('cun') + '</a>.');			    	
		$('div#memberStrap').show();
	} else {
		$('div#memberStrap').hide();
	}	
}

function updateLoginStatus(){
	
	// Add the click event to our tabs.
	if($.cookie('csess')){
		$("#profile-tabs ul li a")								
			.click(function(){
				ptab_selectcontent($(this).parent());
				return false;
			});

		// LOAD COMMENTS	
		getCommentsJSON();
		// LOAD USER DETAILS
		loadUserDetails();		
		// LOAD INTERESTS
		getInterestsJSON();
		// LOAD SUBSCRIPTIONS
		getSubscriptionsJSON();
		// LOAD SUBSCRIPTIONS
		getSocialNetworksJSON();
		
		
		// open tab relevant to tab url param if available
		var _tab = getURLParamByName('tab');
		if(_tab != ''){
			switch (_tab){
				case 'dashboard':
				ptab_selectcontent($("#profile-tabs ul li:eq(0)"));	
				return true;
				case 'comments':
				ptab_selectcontent($("#profile-tabs ul li:eq(1)"));	
				return true;
				case 'newsletters':
				ptab_selectcontent($("#profile-tabs ul li:eq(2)"));	
				return true;
				case 'profile':
				ptab_selectcontent($("#profile-tabs ul li:eq(4)"));	
				return true;
				case 'social':
				ptab_selectcontent($("#profile-tabs ul li:eq(5)"));	
				return true;
			}
		} else {
			// otherwise show dashboard tab
			ptab_selectcontent($("#profile-tabs ul li:first"));	
		}
	} else {
		// cover dashboard with overlay to force login.
		var overlay = $('<div id="overlay"><div class="window"><p>You are not currently logged in. <a href="javascript:void(0);" onClick="openlogin();">Login</a></p>');
	    $('#dashboard').append(overlay);
		
		$('#overlay').bind('click',function() {
			openlogin();
		});
		
		// Activate our tabs
		ptab_selectcontent($("#profile-tabs ul li:first"));	
	}
};

function open_forgotpw(){
	$.jsonp({
        url: '/profile/forgotpw.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function doforgotpw(){
    $.jsonp({
        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
        cache: false,
        async: true,
        type: 'get',
        data: {
        	method: 'forgotpassword',
        	email: $('#forgotpw_Email').val()
        },
        beforeSend: function() {
			return validateForgotPW();
  		},
        success: function(response) {				    	
    		if(response.DATA.STATUS){
    			$("form#forgotpw #forgotpw_Email").removeClass('error');
	    		renderMsg('forgotpw', ['An email has been sent.  Please check your inbox.'], 'success'); 
    		} else {
    			renderMsg('forgotpw', [response.ERRORS[0].ERROR], 'error');
    		}
    	},
    	error: function(a,b,c){
    		renderMsg('register', [b], 'error');
    	}
    });	
    return false;
}

function doregister(){
		// set local variables
		var email_template = ''
		var _flow = '';		
		// if there is a cookie.flow
		if($.cookie('flow')){
			_flow = $.cookie('flow');			
		}
		
		var oData 	= {	method: 		'register',
				       	first_name: 	$('#register_Firstname').val(),
				       	last_name: 		$('#register_Surname').val(),
				       	nick_name: 		$('#register_Nickname').val(),
				       	email: 			$('#register_EmailAddress').val(),
				       	password: 		$('#register_Password').val(),
				       	promo: 			$('#register_Promotions').is(':checked'),
				       	register_from_comments:	$('#register_from_comments').val(),
				       	email_template: email_template
				       }

		if ($('#social_register').val()=='true') {
			
			oData 	= {	method: 		'socialregister',
				       	first_name: 	$('#register_Firstname').val(),
				       	last_name: 		$('#register_Surname').val(),
				       	nick_name: 		$('#register_Nickname').val(),
				       	email: 			$('#register_EmailAddress').val(),
				       	promo: 			$('#register_Promotions').is(':checked'),
				       	social_userid:	$('#social_userid').val(),
				       	social_email:	$('#social_email').val()
				       }
		}

	    $.jsonp({
	        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
	        cache: false,
	        async: true, 
	        type: 'post',
	        data: oData,
			beforeSend: function() {				
				return validateRegistration();
  			},
	        success: function(response) { 				    	
	    		if(response.SUCCESS){
	    		// clear validation	
				$("form#register input#register_Firstname").removeClass('error');
				$("form#register input#register_Surname").removeClass('error');
				$("form#register input#register_EmailAddress").removeClass('error');
				$("form#register input#register_Nickname").removeClass('error');
				$('form#register input#register_Password').removeClass("error");
				$('form#register input#register_PasswordConfirm').removeClass("error");
				
				if ($('#social_register').val()=='false') {
					openregisterthanks();					
				} else {
					handle_login(response);	
				}

				// if registering as part of a comments flow then save comment
				if($('#register_cmnts').val() != ''){
					 $.jsonp({
					        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
					        cache: false,
					        async: true,
					        type: 'get',
					        data: {
					        	method: 'saveComment',
					        	useruuid: response.COOKIES.CUI,
								comment: $('#register_cmnts').val(),
								oid: $('#register_oid').val()
					        },
					        success: function(response) {	
								$.fancybox.close();								
								$('#commentEntry').fadeOut(300,function(){									
									$('#commentActionBoxRegisteredPending').fadeIn(600);
								});
								
								//openregisterthanks();	
								return true;
					    	},
					    	error: function(a,b,c){}
					    });						
				} 
				
				/*else {
					// if cookie.flow is available then redirect to that value 
					// otherwise close modal
					if(_flow && !_flow == '') {
						switch(_flow){
							 case 'newsletters':
								 openregisterthanks();	
								 return true;
							 break;
							 case 'social_register' :
							 	// do nothing
							 	return true;
							 break;
						}
						//reset the cookie
						$.cookie('flow', null, {path:'/', domain:BaseDomain});
					} else {
	    				openregisterthanks();	
					}
				}*/
    		} else {
    			renderMsg('register', [response.ERRORS[0].ERROR], 'error');
	    	}
	    },
	    error: function(a,b,c){
	    	renderMsg('register', [b], 'error');
	    }
	   
	 });	
    return false;
}

function clearProfileCookies() {
	$.cookie('cu', null, {path:'/', domain:BaseDomain});
	$.cookie('fn', null, {path:'/', domain:BaseDomain});
	$.cookie('cun', null, {path:'/', domain:BaseDomain});
	$.cookie('cui', null, {path:'/', domain:BaseDomain});
	$.cookie('cuid', null, {path:'/', domain:BaseDomain});	
	$.cookie('csess', null, {path:'/', domain:BaseDomain});	
}

function dologout(){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 'logout',
			useruuid: $.cookie('cui')
		},
		success: function(response) {				    	
			
			if(response.SUCCESS){

				clearProfileCookies();
				$.fancybox.close();
				
				if (isLoggedInToFB()) {
					logout_from_fb();
				} else {
					// If we've logged out from within the profiles area, refresh the page to reset the tabs etc.
					if (window.location.pathname.indexOf('/profile/') > -1) {
						redirect('dashboard');
					} else {
						buildLoginControls();	
					}					
				}

				//var pathname = window.location.pathname;
				//window.location = pathname + window.location.search;
				if (typeof memberStrap != "undefined") memberStrap();
				//reset the cookie
				$.cookie('flow', null, {path:'/', domain:BaseDomain});		
				
				$(window).trigger(profileEvents.logout);
				
			} else {
				renderMsg('logout', response.ERRORS[0].ERROR, 'error');
			}
		},
		error: function(a,b,c){
			renderMsg('logout', b, 'error'); 
		}
	});	
	return false;
}

function handle_logout() {
	$.cookie('fb_uid', null, {path:'/', expires:0, domain:BaseDomain});
	buildLoginControls();
	if (window.location.pathname.indexOf('/profile') > -1) {
		redirect('dashboard');
	}
}

function loginChkAndRedirect(flow){ 
	// use this link to check if user is logged in 
	// before redirecting. profiles.js must be loaded.
	var _flow = '';
	if($.cookie('csess')){
		if(flow){
			redirect(flow);
		} else {
			redirect();
		}
	} else {
		if(!flow) {
			if($.cookie('flow')){
				_flow = $.cookie('flow');
				redirect(_flow);
			} else {
				openlogin();		
			}
		} else {
			_flow = flow;
			openlogin(_flow);
		}
		//openlogin(flow);
	}
}

function redirect(flow){
		// if cookie.flow is available then redirect to that value 
		// otherwise close modal
		var _flow = flow;		
		switch(_flow){
			case 'dashboard':
				window.location = '/profile/?tab=dashboard';
				break;			 	
			case 'newsletters':
				window.location = '/profile/?tab=newsletters';
				break;
			case 'comments':
				window.location = '/profile/?tab=comments';
				break;
			case 'profile':
				window.location = '/profile/?tab=profile';
				break;
		}
		//reset the cookie
		$.cookie('flow', null, {path:'/', domain:BaseDomain});
		return true;
}

function validateLogin() {
	var state = true;
	var errorArr = [];
	// Clear errors
	$("form#login #login_Email").removeClass('error');
	$('form#login #login_Password').removeClass("error");
	// Required Fields
	errorArr = $("form#login #login_Email").getValidationErrorArray("Your email address is required.",errorArr,true);
	
	if ( $('form#login #login_Password').val()== '') {		
		errorArr.push('You must enter a password.');
		$('form#login #login_Password').addClass("error").val('');			
	} else {
		$('form#login #login_Password').removeClass("error");	
	}
	if (errorArr.length > 0) {
		renderMsg('login', [errorArr], 'error'); 
		return false;
	} else{ 
		return true;
	}
}

function validateForgotPW() {
	var state = true;
	var errorArr = [];
	// Clear errors
	$("#forgotpw #forgotpw_Email").removeClass('error');
	// Required Fields
	errorArr = $("#forgotpw_Email").addClass("error").getValidationErrorArray("Your email address is required.",errorArr,true);
	if (errorArr.length > 0) {
		renderMsg('forgotpw', [errorArr], 'error'); 
		return false;
	} else {
		return true;
	} 
}

function validateResend() {
	var state = true;
	var errorArr = [];
	// Clear errors
	$("#resend_Email").removeClass('error');
	// Required Fields
	errorArr = $("#resend_Email").addClass("error").getValidationErrorArray("Your email address is required.",errorArr,true);
	if (errorArr.length > 0) {
		renderMsg('resend', [errorArr], 'error'); 
		return false;
	} else {
		return true;
	} 
}


function validateRegistration() {
	var state = true;
	var errorArr = [];
	// Clear errors
	$("form#register input#register_Firstname").removeClass('error');
	$("form#register input#register_Surname").removeClass('error');
	$("form#register input#register_EmailAddress").removeClass('error');
	$("form#register input#register_Nickname").removeClass('error');	
	$('form#register input#register_Password').removeClass("error");
	$('form#register input#register_PasswordConfirm').removeClass("error");
	// Check required fields
	errorArr = $("form#register #register_Firstname").addClass('error').getValidationErrorArray("Your first name is required.",errorArr,true);
	errorArr = $("form#register #register_Surname").addClass('error').getValidationErrorArray("Your last name is required.",errorArr,true);		
	errorArr = $("form#register #register_Nickname").addClass('error').getValidationErrorArray("A display name is required or invalid.",errorArr,true);		
	errorArr = $("form#register #register_EmailAddress").addClass('error').getValidationErrorArray("Your email address is required or invalid.",errorArr,true,isEmail);		
	
	// If this is not the social registration form, validate the usual fields
	if ($('#social_register').val()=='false') {
		errorArr = $("form#register #register_Password").addClass('error').getValidationErrorArray("Your password is required (must be longer than five characters).<br />",errorArr,true,isPasswordGood);
		
		if ( $('input#register_Password').val() != $('input#register_PasswordConfirm').val() ) {		
			$('#register_Password').addClass("error").val('');
			$('#register_PasswordConfirm').addClass("error").val('');
			errorArr.push('Your passwords need to match');
		} else {
			$('input#register_PasswordConfirm').removeClass("error");
		}
	}

	if (errorArr.length > 0) {
		renderMsg('register', [errorArr], 'error'); 
		return false;
	} else {
		return true;
	}
}

function clearErrors(form){
	$("div#" + form + "msg").empty();
	//$("form#" + form).removeClass('error');	
}

function renderMsg(form, msgArr, status, append) {
	//console.log(form + '-' + msgArr);
	if (msgArr.length > 0) {
		var msgText = '<ol>';
		$.each(msgArr, function(n, val) {
			msgText += "<li>" + val + "</li>";
		});
		msgText += '</ol>';
		$("div#"+form+"msg").empty(); 
		$('<div/>').addClass(status + 'Messages').hide().html(msgText).appendTo("div#"+form+"msg").fadeToggle("slow", "linear");
	} else 	{
		$("div#"+form+"msg").fadeToggle("slow", "linear").empty();		
	}
}

function isEmail(email) {
	var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (regex.test(email)) return true;
	else return false;
}

function isPasswordGood(password) {	
	if (password.length < 5) return false;
	else return true;	
}

function isLoggedInToNZH(){
	if($.cookie('csess') != null && $.cookie('cui') != null) {
		return true;
	} else {
		return false;
	}	
}

function isLoggedInToFB() {	
	if ($.cookie('fb_uid') != null) {
		return true;
	} else {
		return false;
	}
}

function buildLoginControls(){
	$('.loginRegister').empty();
	if (isLoggedInToNZH()) {
		var picture = '';
		var diaplay_name = '';

		FB.api('/me', function(info) {
			$('.loginRegister').empty(); // this is also needed here to stop the double login controls showing
			if(typeof(info.error)=='undefined') {
				picture = '<img src="http://graph.facebook.com/' + info.id + '/picture" width="18" height="18"/>';
				diaplay_name = info.name;
				$('<span>Welcome back</span>&nbsp;'+picture+'<a href="/profile/">'+diaplay_name+'</a>|<a href="/profile/?tab=profile">Edit profile</a> | <a href="javascript:void(0)" onclick="openlogout();">Log out</a>').appendTo('.loginRegister');					
			} else {
				diaplay_name = $.cookie('cun');
				$('<span>Welcome back</span>&nbsp;<a href="/profile/">'+diaplay_name+'</a>|<a href="/profile/?tab=profile">Edit profile</a> | <a href="javascript:void(0)" onclick="openlogout();">Log out</a>').appendTo('.loginRegister');
			}
	    });		
		
	} else {
		$('<a href="javascript:void(0)" onclick="openlogin()">Log in</a>|<a href="javascript:void(0)" onclick="openregister()">Register</a>').appendTo('.loginRegister');
	}
}

// Loads a cachable template into secondary box
function loadStatic(template,callback,params) {
	if (!params) params = '';
	$.jsonp({
		url: '/profile/' + template + '?callback=?' + params,		
		cache: false,
		success: function(data){boxTransition(data.HTML, callback);}
	});
}

// animate the secondary box out and then back in with new content
function boxTransition(newHTML,callback) {
	$("form#profile-form").hide(function(){ 
		$("form#profile-form").html(newHTML);
		if (callback) callback();
		$("form#profile-form").show();
	});
}

function getURLParamByName(name){
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.href);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

// default the fields to example text
function showDefaultFieldText(){
	$('#fld_dob_day').inputDefault({ defaultText: $('#fld_dob_day').attr("title"), defaultClass: "fieldDefault"});
	$('#fld_dob_month').inputDefault({ defaultText: $('#fld_dob_month').attr("title"), defaultClass: "fieldDefault"});
	$('#fld_dob_year').inputDefault({ defaultText: $('#fld_dob_year').attr("title"), defaultClass: "fieldDefault"});
	$('#fld_phone').inputDefault({ defaultText: $('#fld_phone').attr("title"), defaultClass: "fieldDefault"});
}

function loadLocationBox(c,a,cc,s) {
	$.jsonp({
		url: '/profile/utils/location-selector.cfm?callback=?',
		data: {					 
				c: c,
				a: a,
				cc: cc,
				s: s
		},
		cache: true,
		success: function (data) { 
			$('div.location-box').html(data.HTML);
			toggleAddressFields();
		}		
	});	
}

function updateLocationBox() {
	$.jsonp({
		url: '/profile/utils/location-selector.cfm?callback=?',
		data: {					 
				c: $('select[name=c]').val(),
				a: $('select[name=a]').val(),
				cc: $('select[name=cc]').val(),
				s: $('select[name=s]').val()
		},
		cache: true,
		success: function (data) { 
			toggleAddressFields();
			$('div.location-box').html(data.HTML) 
		}		
	});	
}	

function toggleAddressFields(){
	if($('#cmnt_Register_Country').val() != 71){
		$('#streetname_row').fadeOut(300);
		$('#flatnumber_row').fadeOut(300);
		$('#postcode_row').fadeOut(300);
	} else {
		$('#streetname_row').fadeIn(300);
		$('#flatnumber_row').fadeIn(300);
		$('#postcode_row').fadeIn(300);					
	} 
}

function getCommentsJSON(sort, direction){
	var sorted_data = '';
	// default comment sorting
	var sort_by = 'latest_sort';
	if(sort == null) {
		sort = sort_by;
	} 
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 	'getProfileArticles',
			useruuid: 	$.cookie('cui'),
			last_login: $.cookie('last_login'),
			duration: 	commentDuration
		},
		beforeSend: function(){
		   $('<h3>Loading comments....</h3>')
			.prependTo('ol#articleList')
		   	.show();
		},
		complete: function(){		    	
		   $("div.preloader").hide().remove();
		},
		success: function(response) {				    	
			if (response.SUCCESS) {
				arrData = response.DATA;
				$('span#totalComments').html(response.NUM_TOTAL_COMMENTS_MADE); // update the dashboard
				buildComments('latest_sort'); // check if there any comments, if not show the message for no comments
			}
		},
		error: function(a,b,c){}
	});	
}

function buildComments(sort){
	$('ol#articleList').empty();
	if(arrData.length <= 0){
		$('#noComments').show();
		$('#ordering').hide();
		return false;
	}
	try {
		switch (sort) {
			case "latest_sort":
					arrData.sort(function(m1,p1){
						var m = (''+m1.date_sort.toString());
						var p = (''+p1.date_sort.toString());
						if (m > p) return -1;
						if (m < p) return 1;
						return 0;
					});
				break;
			case "comments_sort":
					arrData.sort(function(m1, p1){
						var m = (''+m1.comments_sort.toString());
						var	p = (''+p1.comments_sort.toString());
						if (m > p) return -1;
						if (m < p) return 1;
						return 0;
					});
				break;
			case "my_comments_sort":
					arrData.sort(function(m1, p1){
						var m = (''+m1.my_comments_sort.toString());
						var	p = (''+p1.my_comments_sort.toString());
						if (m > p) return -1;
						if (m < p) return 1;
						return 0;
					});
				break;
			};	
		}
	catch(e){
		var str = '';
		for(i in e){
			str = str + i + e[i] + '\r\n';				
		}
	}
						
		for(i in arrData) {
			var myli = $('<li>');
			var mynumnewreplies = $('<span class="new">'+arrData[i].num_comments_since_last_login+'‌ new replies</span>');
			var myheadline	= $('<li>\
					<div href="javascript:void(0);" class="articlewrapper">\
						<div class="headline" id="headline_'+arrData[i].content_id+'" >\
							<a href="/index.cfm?objectid='+arrData[i].content_id+'">' + arrData[i].headline + '</a>\
							<span class="publishdate">' + arrData[i].created + '</span>\
						</div>\
						<div class="commentcount">\
							<span class="count">'+arrData[i].num_total_comments_for_article+'</span>\
							<span class="label">Comments</span>\
						</div>\
						<div class="replycount">\
							<span class="count">'+arrData[i].num_total_comments_you_have_made_for_article+'</span>\
							<span class="label">My Comments</span>\
						</div>\
						<div class="clearBoth"><!-- --></div>\
						<a href="javascript:void(0);" class="detail" id="article_'+arrData[i].content_id+'">show my comments</a>\
						<div class="clearBoth"><!-- --></div>\
					</div>\
					<ol style="display: none;" class="myCommentList" id="myCommentList_'+arrData[i].content_id+'"><!-- --></ol>\
			');
			if(arrData[i].num_comments_since_last_login > 0){
				myheadline.find('div.headline').prepend(mynumnewreplies);
			}				

			var showlink = $('<a href="javascript:void(0);" class="detail" id="article_'+arrData[i].content_id+'">show my comments</a>');
			var myclosetags = $('</div><div class="clearBoth"><!-- --></div></li>');								
			var myarticlecomments = $('<ol style="display: none;" class="myCommentList" id="myCommentList_'+arrData[i].content_id+'"><!-- --></ol></div>');
			myheadline.appendTo($('ol#articleList'));
		}
		$("#articleList a.detail")
			.each(function(){
				$(this).data("loaded", "false");
			})
			.click(function(){
				var _a = 	$(this);							// The link.
				var _li = 	$(this).closest("li");				// Find this items associated LI.
				var _list =	_li.find("ol.myCommentList");		// Find this items commentList.
				var contentid = $(_list).attr('id').replace("myCommentList_", "");
				
				if (_list.is(":visible")) {
					_list.slideUp(250);
					_a.text("show my comments");
				} else {
					// TODO: only enable the JSON call if not loaded already, phase 1 should load each time.
					getArticleCommentsJSON(contentid);
					_list.slideDown(250);						// Show this items detail.
					_a.text("hide my comments");
				}
				return false;
			});

}

function getArticleCommentsJSON(contentid){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 'getArticleComments',
			useruuid: $.cookie('cui'),
			contentid: contentid,
			last_login: $.cookie('last_login')
		},
		beforeSend: function(){
		   $('<img src="/themes/0/images/preloader_transbg.gif" class="preloader_'+contentid+' preloader" width="24" height="24"/>')
			.appendTo('div#headline_' + contentid)
		   	.show();		    	
		},
		complete: function(){
		   $("img.preloader_" + contentid).hide().remove();			    	
		},
		success: function(response) {	
			if(response.SUCCESS){
				$('ol#myCommentList_' + contentid).empty();
				var total_comments_made = 0;
				for(var i in response.DATA){
					numlikes = response.DATA[i].num_likes;
					var numlikephrase = '';
					if(numlikes == 1) numlikephrase = '&nbsp;like';
					if(numlikes > 1)  numlikephrase = '&nbsp;likes';
					if(numlikes == 0) numlikephrase = '&nbsp;likes';
					$('<li>\
							<div class="comment">\
								<p>'+response.DATA[i].published_comment + '</p>\
								<div class="clearBoth"><!-- --></div>\
								<span class="likes"><span class="icon"><!-- --></span>'+response.DATA[i].num_likes + numlikephrase+'</span>\
							</div>\
							<div class="replycount">\
								<span class="count">'+response.DATA[i].num_replies+'</span> <span class="label">Replies</span>\
							</div>\
							<div class="clearBoth"><!-- --></div>\
							<ol class="myReplies" id="myReplies_'+response.DATA[i].comment_id+'"><!-- --></ol>\
						</li>').appendTo($('ol#myCommentList_' + contentid));
						
						
						// add replies to comments
						$('ol#myReplies_' + response.DATA[i].comment_id).empty();
						//if(response.DATA[i].num_replies >= 0){
							for (var a in response.DATA[i].replies) {
								$('<li>\
									<div class="comment">\
									<p><span class="nickname">'+response.DATA[i].replies[a].nick_name+'</span><br/>'+response.DATA[i].replies[a].published_comment+'<a href="/'+response.DATA[i].replies[a].reply_url+'&replyto=true" class="reply">Reply to this</a></p>\
									<div class="clearBoth"><!-- --></div>\
										<span class="publishdate">'+response.DATA[i].replies[a].moderated_date+'</span>\
									</div>\
								</li>').appendTo($('ol#myReplies_' + response.DATA[i].comment_id));
							}
						//}
						total_comments_made = response.DATA[i].num_total_comments_made;
				}
				
			} else {
				// no records found
			}
		},
		error: function(a,b,c){}
	});	
}


function loadUserDetails(callback) {
	getUserDetailsJSON(function(response){
		if(response.SUCCESS){
			updateForm(response.USERPROFILE);
			showDefaultFieldText();
		}		
	});
}


function getUserDetailsJSON(callback){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 'getUserProfile',
			useruuid: $.cookie('cui')
		},
		success: callback,
		error: function(a,b,c){}
	});	
}

function getInterestsJSON(){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 'getInterests',
			useruuid: $.cookie('cui')
		},
		success: function(response) {				    	
			if(response.SUCCESS){
				var sorted_data = response.DATA;
				for (var i in sorted_data){
					$('<li />')
					.append('<input type="checkbox" value="'+ sorted_data[i].interest_id +'" name="interest" id="interest_'+sorted_data[i].interest_id+'" /><label for="interest_'+sorted_data[i].interest_id+'">'+sorted_data[i].interest_name+'</label></li>')
					.appendTo('ul#interestsHolder');
					
					if(sorted_data[i].checked){
						$('#interest_' + sorted_data[i].interest_id).attr('checked', 'checked');
					}
				}
				$('span#totalInterests').html(response.TOTALSELECTED); // update dashboard value to show number of interests stored for this user
				totalInterests = response.TOTALSELECTED;
				updateDashboard();
			}
		},
		error: function(a,b,c){}
	});	
}

function getSubscriptionsJSON(){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 'getSubscriptions',
			useruuid: $.cookie('cui')
		},
		success: function(response) {				    	
			if(response.SUCCESS){
				for (var i in response.DATA){
					$('<li><input type="checkbox" value="'+ response.DATA[i].templateid +'" name="subscription" id="subscription_'+i+'"/><label for="subscription_'+i+'">'+response.DATA[i].name+'</label></li><p>'+response.DATA[i].description+'</p>').appendTo('.subscriptionsHolder');
					if(response.DATA[i].checked){
						$('#subscription_' + i).attr('checked', 'checked');
					}
				}
				$('span#totalSubscriptions').html(response.TOTALSELECTED); // update the dashboard with the total value of selected newsletters chosen by the user
			}
		},
		error: function(a,b,c){
		}
	});	
}

function getSocialNetworksJSON(){
	$.jsonp({
		url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		cache: false,
		async: true,
		type: 'get',
		data: {
			method: 	'getSocialNetworks',
			useruuid: 	$.cookie('cui')
		},
		success: function(response) {			
		
			for (var j=0; j<response.DATA.length; j++) {						
				if (response.DATA[j].SOCIAL_CONNECT == 'y') {
					$('#social_network_'+response.DATA[j].SOCIAL_NETWORK_ID+'_connect_msg').hide();
					$('#social_network_'+response.DATA[j].SOCIAL_NETWORK_ID+'_disconnect_msg').show();
				}
			}
			
			$('#socialNetworkHolder').show();
		},
		error: function(a,b,c){}
	});
}

function updateForm(data){
	// PERSONAL
	$('#fld_first_name').val(data.STBASIC.FIRST_NAME);
	$('#fld_last_name').val(data.STBASIC.LAST_NAME);
	$('#profilename').html(data.STBASIC.FIRST_NAME + ' ' + data.STBASIC.LAST_NAME);
	$('#fld_display_name').val(data.STBASIC.NICK_NAME);
	$('#fld_email').val(data.STBASIC.EMAIL);
	if(data.STBASIC.DOB_DAY!='') $('#fld_dob_day').val(data.STBASIC.DOB_DAY);	
	if(data.STBASIC.DOB_MONTH!='') $('#fld_dob_month').val(data.STBASIC.DOB_MONTH);	
	if(data.STBASIC.DOB_YEAR!='') $('#fld_dob_year').val(data.STBASIC.DOB_YEAR);		
	// GENDER	
	if(data.STBASIC.GENDER == 'm'){$('#fld_gender_male').attr('checked', 'checked')};
	if(data.STBASIC.GENDER == 'f'){$('#fld_gender_female').attr('checked', 'checked')};
	// ADDRESS
	$('#fld_flatnumber').val(data.STADDRESS.FLATNUMBER);
	$('#fld_streetname').val(data.STADDRESS.STREETNAME);
	$('#fld_suburb').val(data.STADDRESS.LID_SUBURB);
	$('#fld_city').val(data.STADDRESS.LID_CITY);
	$('#fld_postcode').val(data.STADDRESS.POSTCODE);
	if(data.STADDRESS.PHONE!='') $('#fld_phone').val(data.STADDRESS.PHONE);
	loadLocationBox(data.STADDRESS.LID_COUNTRY,data.STADDRESS.LID_AREA,data.STADDRESS.LID_CITY,data.STADDRESS.LID_SUBURB);
	if (data.STADDRESS.PROMO == 1) {
		$('#fld_promo').attr('checked', 'checked');
	} else {
		$('#fld_promo').attr('checked', '');
	}	
	updateDashboard();
}

function validateAccount() {
	var state = true;
	var errorArr = [];
	// Clear errors
	$('#fld_first_name').removeClass('error');
	$('#fld_last_name').removeClass('error');
	$('#fld_display_name').removeClass('error');
	$('#fld_email').removeClass('error');
	// Check required fields
	errorArr = $("#fld_first_name").addClass('error').getValidationErrorArray("Your first name is required.",errorArr,true);
	errorArr = $("#fld_last_name").addClass('error').getValidationErrorArray("Your last name is required.",errorArr,true);		
	errorArr = $("#fld_display_name").addClass('error').getValidationErrorArray("A display name is required or invalid.",errorArr,true);		
	errorArr = $("#fld_email").addClass('error').getValidationErrorArray("Your email address is required or invalid.",errorArr,true,isEmail);		
	if (errorArr.length > 0) {
		renderMsg('userDetails', errorArr, 'error'); 
		return false;
	} else {
		return true;
	}
}

function updateDashboard(){
	var totalCount = 0;
	var objectArray = [
		{ field: 'fld_streetname', percentage: 10, type:'text' },
		{ field: 'fld_postcode', percentage: 10, type:'text'},
		{ field: 'fld_phone', percentage: 25, type:'text'},
		{ field: 'fld_gender', percentage: 20, type:'radio'},		
		{ field: 'fld_dob_day', percentage: 5, type:'text'},
		{ field: 'fld_dob_month', percentage: 5, type:'text'},
		{ field: 'fld_dob_year', percentage: 5, type:'text'}
	];
	//calculate the percentage complete
	for(key in objectArray){
		
		if (objectArray[key].type == 'text') {			
			if($('#'+ objectArray[key].field).val() != '' && $('#'+ objectArray[key].field).val() != $('#'+ objectArray[key].field).attr('title')){
				totalCount = (totalCount + objectArray[key].percentage);
			};			
		} else if (objectArray[key].type == 'radio') {
			if($('input[name='+objectArray[key].field+']:radio:checked').val() != undefined){
				totalCount = (totalCount + objectArray[key].percentage);				
			};			
		}
		
	}
	if(totalInterests > 0){
		totalCount = totalCount + 20;
	}
	$('span#totalProfileComplete').html(totalCount + '%');
	return true;
}

function padDigits(n, totalDigits) 
{ 
    n = n.toString(); 
    var pd = ''; 
    if (totalDigits > n.length) 
    { 
        for (i=0; i < (totalDigits-n.length); i++) 
        { 
            pd += '0'; 
        } 
    } 
    return pd + n.toString(); 
} 

function sortObject(o) {
    var sorted = {},key, a = [];
    for (key in o) {
        if (o.hasOwnProperty(key)) {
            a.push(key);
        }
    }
    a.sort();
    for (key = 0; key < a.length; key++) {
        sorted[a[key]] = o[a[key]];
    }
    return sorted;
}


function cookiesEnabled(modal) {
    var persist = true;
    do {
        var c= 'gCStest='+Math.floor(Math.random()*100000000);
        document.cookie= persist? c+';expires=Tue, 01-Jan-2100 00:00:00 GMT' : c;
        if (document.cookie.indexOf(c)!==-1) {
            document.cookie= c+';expires=Sat, 18-Sep-1972 00:00:00 GMT';
            return persist;
        }
    } while (!(persist= !persist));
    return false;
}

function connect_accounts(network_id) {
	FB.getLoginStatus(function(info) {
		if (typeof(info.status)!='undefined' && info.status=='connected') {
			do_connect_accounts('y',getSocialNetworksJSON);
		} else {
			login_to_fb(false);
		}
	});
}



function open_connect_accounts(){
	$.jsonp({
        url: '/profile/connect-accounts-ask.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function do_connect_accounts(option,callback) {
	if (isLoggedInToNZH() && isLoggedInToFB()) {	
		
		FB.api('/me', function(info) {
			if (option == 'y') {

				$.jsonp({
			        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
			        cache: false,
			        async: true,
			        type: 'get',
			        data: {
			        	method: 'connectSocialAccount',
			        	sessionid: $.cookie('csess'),
			        	useruuid: $.cookie('cui'),
			        	social_userid: info.id,
			        	social_email: info.email
			        },
			        success: function(response) {		        	
			        	open_connect_accounts_done();			        	
			        	if (typeof callback == 'function') {			        		
			        		callback();
			        	}
			    	},
			    	error: function(a,b,c){}
			    });		    

			} else if (option == 'n') {

				$.jsonp({
			        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
			        cache: false,
			        async: true,
			        type: 'get',
			        data: {
			        	method: 'connectSocialAccountOptOut',
			        	sessionid: $.cookie('csess'),
			        	useruuid: $.cookie('cui'),
			        	social_userid: info.id
			        },
			        success: function(response) {		        	
			        	$.fancybox.close();
			    	},
			    	error: function(a,b,c){}
			    });

			}
       	});	
	}	
}

function open_connect_accounts_done(){
	$.jsonp({
        url: '/profile/connect-accounts-done.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}

function open_connect_register_login(){
	$.jsonp({
        url: '/profile/connect-register-login.cfm?callback=?',
        cache: false,
        async: true,
        success: function(data) {
			$.fancybox(data.HTML,{padding:20, overlayOpacity: 0.6, overlayColor: '#FFF', centerOnScroll: 'true'});
    	},
        type: 'get'
    });
	return false;
}


function login_via_facebook() {
	FB.getLoginStatus(function(info) {
		if (typeof(info.status)!='undefined' && info.status=='connected') {
			do_login_via_facebook(true);
		} else {
			login_to_fb(true);
		}
	});
}

function do_login_via_facebook(prompt_register) {
	if (isLoggedInToFB()) {
		FB.api('/me', function(info) {
			$.jsonp({
		        url: thisSecureDynamicDomain + '/community/cfcs/ssoremote.cfc?callback=C',
		        cache: false,
		        async: true,
		        type: 'get',
		        data: {
		        	method: 'loginViaSocialNetwork',
		        	social_userid: info.id
		        },
		        success: function(response) {		        	
		        	if (response.CONNECTED) {
			        	handle_login(response,false);			        	
			        	$.fancybox.close();
		        	} else {
		        		if (typeof(prompt_register)!='undefined' && prompt_register) {
			        		/*This is when a user's facebook account is not connected to any nzh account*/
			        		// open the register/login modal here
			        		open_connect_register_login();
			        		//$.fancybox.close();		        			
		        		}
		        	}
		    	},
		    	error: function(a,b,c){}
		    });
		});
	}

}

// for the facebook connect panels.
$('#connectMenuYes').live("click", function(event){
	event.preventDefault();
	$(this).addClass('selected');
	$('#connectMenuNo').removeClass('selected');
	$('#connectCreateAccount').animate({opacity:0},300, function() {
		$(this).slideUp(300);
		$('#connectLogin').slideDown(300, function(){
			$(this).animate({opacity:1},300);
			$.fancybox.resize();
			$('#login_Email').focus();
		});
	});
});

$('#connectMenuNo').live("click", function(event){
	event.preventDefault();
	$(this).addClass('selected');
	$('#connectMenuYes').removeClass('selected');
	$('#connectLogin').animate({opacity:0},300, function() {
		$(this).slideUp(300);
		$('#connectCreateAccount').slideDown(300, function(){
			$(this).animate({opacity:1},300);
			$.fancybox.resize();
			$('#register_Register').focus();
		});
	});
});

