var thewidget = null;
var siteConfig = function () {
    var h = window.location.host;
    conf = {
	gocitykidsHost: 'gocitykids.parentsconnect.com',
	communityHost: 'community.parentsconnect.com',
	mainHost: 'www.parentsconnect.com',
	babynamesHost: 'babynames.parentsconnect.com'
    };
    if(h.match(/parentsconnect-d.mtvi.com/)){
	conf.gocitykidsHost = 'gocitykids.parentsconnect-d.mtvi.com';
	conf.communityHost = 'community.parentsconnect-d.mtvi.com';
	conf.mainHost = 'www.parentsconnect-d.mtvi.com';
	conf.babynamesHost = 'babynamesworld.parentsconnect-d.mtvi.com';
    } 
    if (h.match(/parentsconnect-q.mtvi.com/)){
	conf.gocitykidsHost = 'gocitykids.parentsconnect-q.mtvi.com';
	conf.communityHost = 'community.parentsconnect-q.mtvi.com';
	conf.mainHost = 'www.parentsconnect-q.mtvi.com';
	conf.babynamesHost = 'babynamesworld.parentsconnect-q.mtvi.com';
    }
    return conf;
} ();

var authenticationWidget = {
 customParams: { 
  containerId: null,
  fluxHosted: true, 
  customSignupPage: 'http://' + siteConfig.communityHost + '/Overlays/SignUp.aspx?returnPath=' + escape(window.location), 
     customSigninPage: 'http://' + siteConfig.communityHost + '/Overlays/LogIn.aspx?returnPath=' +  escape(window.location) 
 },
 make: function (callback, params) { 
    var extParams = this.customParams;
    jQuery.extend(extParams, params);
    Flux.createWidget('Authentication', extParams, function (widget) { callback(widget); });
  },
 createSignInWidget: function() { this.make(function(widget) { widget.showSignInForm(); setTransparency("authenticationFrame"); });},
 createSignUpWidget: function() { this.make(function(widget) { widget.showSignUpForm(); setTransparency("authenticationFrame"); });},
 roadblockFunction: function(roadblocked, shouldReloadOnLogin) {
    roadblocked = (typeof roadblocked == 'undefined') ? null : roadblocked;
    shouldReloadOnLogin = (typeof shouldReloadOnLogin == 'undefined') ? true : shouldReloadOnLogin;    
    this.make(function (widget) { 
	if(widget.performRoadBlockerCheck()){
		  if(!roadblocked || shouldReloadOnLogin){ roadblocked = function() {  }; }
	    roadblocked();
	} else {
	   Flux.loadContext(function(context) {
		context.onSignIn = roadblocked;
	   });
	}
    });
    
    setTransparency("authenticationFrame");
    
 },
 createQuickSignUpWidget: function(params) { this.make(function(widget) {widget.showSignUpForm(); setTransparency("authenticationFrame"); }, params);},
 createInterimWidget: function() { this.make(function(widget) {widget.showInterimForm(); setTransparency("authenticationFrame"); });},
 checkPopRegistrationQueryString: function() { if (document.location.search.match(/[&?]register=true/) != null) { this.createSignUpWidget() } },
 signOut: function signOut() {
    Flux.loadContext(function(context) {
	if (siteConfig.mainHost.indexOf("www.") == -1) {
		siteConfig.mainHost = "www." + siteConfig.mainHost;
	}
	if(context.user) {
	  context.onSignOut = function () { authenticationWidget.killBNWFavoriteNamesCookie(); window.location.href = "http://" + siteConfig.mainHost; };
	  context.signOut(false, function(error) {
	      switch (error.id) {
              case $error.readOnlyMode:
		window.location.href = "http://" + siteConfig.mainHost;
		break;
              default:
		window.location.href = "http://" + siteConfig.mainHost;
                break;
	      }
	    });
	}
      }); 
  },
 extractUserLoginName: function (u) { 
    var username = u.userProfileUrl.split('/').reverse()[0];
    return (username === ('0'+u.ucid))?null:username;
  },
 isUserValid: function (u) {
       return (u && u.acceptedCommunityTerms && u.acceptedFluxTerms && u.communityMember && this.extractUserLoginName(u));
  },
 shouldForceAcceptTerms: function (u) { return u && !(u.acceptedCommunityTerms && u.acceptedFluxTerms) && u.communityMember; },
  killBNWFavoriteNamesCookie: function () {
		var name = 'bnw_favorite_names';
		var value = '';
		var cdays = -7;
		var domain = window.location.host.toString().substring(window.location.host.toString().indexOf('.'));
		var path = '/';
		var expire = new Date();
		expire.setTime(expire.getTime() + (3600000 * 24 * cdays));
		document.cookie = name + "=" + escape(value) + 
				((expire == null) ? "" : "; expires=" + expire.toGMTString()) +
				((path == null)   ? "" : "; path=" + path) +
				((domain == null) ? "" : "; domain=" + domain);
 }  
}

function setTransparency(id){
	jQuery("embed").hide();
	setTimeout( function(){
		var ele = document.getElementById(id);
		if (ele){
			ele.allowTransparency = true;
		} 
		jQuery(".closeButton").click( function(){
			jQuery("embed").show();
		});
		
	},	4500); 
};
function registerFinalCrossDomainCallback(){
	 var curTop = parseInt($(".authentication > div").css('top'));
	 $(document).scrollTop(curTop);
	parent.document.getElementById("authenticationFrame").style.height = "730px";
 	$(".closeButton").click(function(event){
 		window.location.reload();
 	});
 }
function registerFinalDoneCrossDomainCallback(){
	registerFinalCrossDomainCallback();
	parent.document.getElementById("authenticationFrame").style.height = "200px";
}

function registerFinalIncreaseHeight(){
	var curFrameHeight = parseInt(parent.document.getElementById("authenticationFrame").style.height);
	var newHeight = curFrameHeight + 40;
	parent.document.getElementById("authenticationFrame").style.height = newHeight + "px";
}

var fluxcontext;
var widget;
jQuery(document).ready(function(){
    Flux.loadContext(function(ctx){
	fluxcontext = ctx;
	if (!ctx.onSignIn) ctx.onSignIn = function (){ window.location.reload(); };
	if(ctx.user == null){
          jQuery("#loggedOutNametag").css("display", "block");
	  authenticationWidget.checkPopRegistrationQueryString();
	} else {
	  var username;
	  try {
	    username= authenticationWidget.extractUserLoginName(ctx.user);
	    if(!username){
	      authenticationWidget.roadblockFunction();
	    }
	  } catch (err){
	    if(ctx.user != null){
	      username = ctx.user.displayName;
	    } else {
	      authenticationWidget.roadblockFunction();
	    }
	  }
	  var u = ctx.user;
	  var isValidUser = authenticationWidget.isUserValid(ctx.user);

	  jQuery("#nametagUsernameLink").html(username);
          if (siteConfig.mainHost.indexOf("www.") == -1) {
		siteConfig.mainHost = "www." + siteConfig.mainHost;
 	  }

	  if(!isValidUser) {
	    mePageCall=function() {authenticationWidget.createInterimWidget();};
	    jQuery('#profile-link').text('join');
	    authenticationWidget.checkPopRegistrationQueryString();
	  } else {
            mePageCall = function() { window.location = 'http://' + siteConfig.mainHost + '/me/index'; };
	  }
          jQuery('#profile-link').click(mePageCall);
	  jQuery("#nametagUsernameLink").click(mePageCall);
	  jQuery("#nametagUsernameLink2").click(mePageCall);

	  var avatarSrc = ctx.user.avatarUrls['70x70'];
	  jQuery("#avatarImgTag").replaceWith('<img height="56" title="' + username + '" s' + 'rc="' + avatarSrc + '" alt="' + username + '"align="center" border="0"/>');

	  jQuery("#loggedInNametag").css("display", "block"); 

	  if(authenticationWidget.shouldForceAcceptTerms(ctx.user)){
	      authenticationWidget.roadblockFunction();
	  }
	}
      }
      );
  }
  );

if (siteConfig.mainHost.indexOf("www.") == -1) {
	siteConfig.mainHost = "www." + siteConfig.mainHost;
}

var mePage = 'http://' + siteConfig.mainHost + '/me/index';

jQuery("#nametagContainer").html('<div id="loggedInNametag" style="display: none;">  <div id="left-column" class="clearfix">    <div id="welcome">welcome back</div>    <div id="username">      <a id="nametagUsernameLink" href="' + mePage + '">FAIL</a>    </div>    <div class="profile-menu">      <a class="link" id="profile-link">profile</a>      <a class="link" id="logoutHref" onclick="authenticationWidget.signOut()">logout</a>    </div>  </div>  <div id="right-column" class="clearfix">    <a id="nametagUsernameLink2" href="' + mePage + '" rel="nofollow">      <div class="avatar-image-housing">	<div class="circle-cut-out"></div>	<img id="avatarImgTag" height="56" src="/assets/avatars/60/avatar3.jpg" align="center" border="0"/>      </div>    </a>  </div></div><div id="loggedOutNametag"  style="display: none;">  <div id="left-column" class="clearfix">    <div id="already-a-member">already a member?</div>    <div id="login-link"><a href="javascript:authenticationWidget.createSignInWidget()">Log in!</a></div>  </div>  <div id="right-column" class="clearfix">    <a href="javascript:authenticationWidget.createSignUpWidget();" id="sign-up-link">sign up!</a>  </div></div>');


