var _ThE_uRl_FoR_lOgGiNg_In_AnD_sIgNiNg_Up = "/Global/Templates/Pages/Login.aspx";
var _logoutUrl = "/community/af/logoutredirect.aspx";
var _displayName;
var _userName;
var _seed;
var previousLink;
var firstTime = true;
var redirect = false;
var redirectTo = "";

function userAuthenticated(userId, displayName, seed) {
	closeLogin();
    _userName = userId;
	_displayName = displayName;
	_seed = seed.replace(/^\s*/, "").replace(/\s*$/, "");
	//if this isn't the home page, we only only load log in/logout controls.  
	if (document.getElementById('MyCBNWallFeed'))
	{
		if (userIsAuthenticated())
		{
			document.getElementById('friendActivityLink').onclick = swapActivities;
			document.getElementById('selfActivityLink').onclick = swapActivities;
			GetDashboard(userId, seed);
			$("#featureTabs").tabs("select",3);
		}
	}
	document.getElementById('myCBN').innerHTML = "<img src='/redesign-prototype/images/myCBNLogoSm.gif' width='57' height='14' align='middle' /> &nbsp; <a href='"+_logoutUrl+"'>Log Out</a>";
	if (redirect)
	{
		window.location.href = redirectTo;
	}
}
function userIsAuthenticated()
{
	if (typeof(_userName)=="undefined")
	{
		return false;
	}
	if (typeof(_seed)=="undefined")
	{
		return false;
	}
	if(!_userName)
	{
		return false;
	}
	if(!_seed)
	{
		return false;
	}
	if ((_userName !="") && (_seed!=""))
	{
		return true;
	}
	return false;
}

$(document).ready(function(){

	anchors = document.links; 
	logInSet = false;
	signUpSet = false;
	for(var i =0 ; i < anchors.length; i++)
	{
		if (anchors[i].innerHTML =="Log In")
		{
			anchors[i].onclick = openLogin;
			logInSet = true;
		}
		if (anchors[i].innerHTML =="Sign Up")
		{
			anchors[i].onclick = openSignUp;
			signUpSet = true;
		}
		if (signUpSet&&logInSet)
		{
			break;
		}
	}
	if (userIsAuthenticated())
	{
		if (document.getElementById('MyCBNWallFeed'))
		{
			document.getElementById('friendActivityLink').onclick = swapActivities;
			document.getElementById('selfActivityLink').onclick = swapActivities;
			GetDashboard(_userName, _seed);
		}
	}
	loginLinks = document.getElementsByClassName("LoginRequired");
	for( var i =0; i< loginLinks.length; i++)
	{
		loginLinks[i].onclick=loginToResource;
	}
	 
});
function loginToResource()
{
	if (userIsAuthenticated())
	{
		return true;
	}
	var resource = this.href;
	redirectTo = resource;
	redirect = true;
	
	openLogin();
	return false;
}

document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
}; 

function openLogin()
{

	if (firstTime)
	{
		firstTime = false;
		
		loginDialog = document.createElement("div");
		loginDialog.id = "loginDialog";
		loginDialog.title = "Login";

		document.body.insertBefore(loginDialog,document.body.firstChild);

		$("#loginDialog").append("<iframe id=\"loginFrame\" name='loginFrame' src=\"" + _ThE_uRl_FoR_lOgGiNg_In_AnD_sIgNiNg_Up + "\" height=\"190\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" style=\"display: none; width: auto;\"></iframe>");

	    $("#loginFrame").show();


		$("#loginDialog").dialog({ zIndex: 501, closeText: 'x'});
		$("#loginDialog").dialog('close');

		
	}
	//$("#loginFrame").src = _ThE_uRl_FoR_lOgGiNg_In_AnD_sIgNiNg_Up;
	if (window.frames.loginFrame && window.frames.loginFrame.__doPostBack) {
		if (window.frames.loginFrame.document.links[0].innerHTML == "Terms of Service")
		{
			window.frames.loginFrame.__doPostBack('login$lnkLogin','');
		}
	}
	$("#loginFrame").show();
	firstTime = false;
	$("#loginDialog").dialog('open');
	setActiveView("Login");
	return false;
}
function openSignUp()
{

	if (firstTime)
	{
		
		loginDialog = document.createElement("div");
		loginDialog.id = "loginDialog";
		loginDialog.title = "Login";

		document.body.insertBefore(loginDialog,document.body.firstChild);

		$("#loginDialog").append("<iframe id=\"loginFrame\" name='loginFrame' height=\"190\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" style=\"display: none; width: auto;\"></iframe>");

		$('#loginFrame').load(
			function(){
				if(firstTime)
				{
					openSignUp2();
				}
				//callback(this);
			}
		);
		$("#loginFrame").attr('src', _ThE_uRl_FoR_lOgGiNg_In_AnD_sIgNiNg_Up);

	    $("#loginFrame").show();


		$("#loginDialog").dialog({ zIndex: 501, closeText: 'x'});
		$("#loginDialog").dialog('close');

		
	}
	else
	{
		openSignUp2();
	}
	return false;
}
function openSignUp2(){
	firstTime = false;
	//$("#loginFrame").src = _ThE_uRl_FoR_lOgGiNg_In_AnD_sIgNiNg_Up;
	if (window.frames.loginFrame && window.frames.loginFrame.__doPostBack) {
		if (window.frames.loginFrame.document.links[0].innerHTML == "Sign Up")
		{
			window.frames.loginFrame.__doPostBack('login$lnkRegisterTop','');
		}
	}
	
	$("#loginFrame").show();
	firstTime = false;
	$("#loginDialog").dialog('open');
	setActiveView("Register");
		
}
function closeLogin()
{
	$("#loginDialog").dialog('close');
}


function GetDashboard(userName, hash) {
	previousLink = '<p><a class="back" href="/homepagedata.php?key='+userName+'&code='+hash+'&offset=5">&laquo; Previous</a> </p>';
    $.ajax({
        type: "POST",
        url: "/Global/WebServices/Dashboard.asmx/GetDashboard",
        data: "{'userName':'" + userName + "', 'hash':'" + hash.replace(/^\s*/, "").replace(/\s*$/, "") + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 50000,
        success: function(result) { OnGetDashboardSuccess(result, userName, hash); },
        error: function(xhr) { OnGetDashboardFailed(xhr); }
    });
}

function OnGetDashboardSuccess(result, userName, hash) {
    if (result.d != null) {
        _recordCount = result.d.RecordCount;

		$("#friendFeed").html(result.d.friendFeed.replace(previousLink,''));
		$("#selfFeed").html(result.d.selfFeed.replace(previousLink,''));
		$("#mailLink").html(result.d.mailLink.replace('&nbsp;','[0]').replace('[','Messages ['));
		$("#friendsLink").html(result.d.friendsLink.replace("["," ["));
		linkHTML = "<table class='DashboardGroupTable>'";
		for (var i =0; i< result.d.groups.length; i++)
		{
			linkHTML += "<tr class='DashboardGroup'><td><a title='"+result.d.groups[i].desc+"' class = 'DashboardGroupImageLink' href='"+result.d.groups[i].url+"'><img class = 'DashboardGroupImage' src='"+result.d.groups[i].icon+"'/></a></td>" + "<td><a class = 'DashboardGroupLink' title='"+result.d.groups[i].desc+"' href='"+result.d.groups[i].url+"'>"+result.d.groups[i].name+"</a></td></tr>";
		}
		linkHTML += "</table>"
		discussionHTML = "";
		for (var i =0; i< result.d.discussions.length; i++)
		{
			discussionHTML += "<li class='MyCBNDiscussionListItem'>" + result.d.discussions[i] + "</li>";
		}
		discussionHTML = "<ul class = 'MyCBNDiscussionList'>" + discussionHTML + "</ul>";
		document.getElementById("userIcon").src = result.d.userIcon;
		document.getElementById("userIcon").style.height="auto";
		document.getElementById("userIcon").style.width="auto";
		document.getElementById("MyCBNImageLink").href = "http://my.cbn.com/";
		document.getElementById("MyCBNFeaturedGroups").style.display='none';
		document.getElementById("MyCBNWallFeed").style.display='inline';
		document.getElementById("FreeResources").style.display='none';
		document.getElementById("MyCBNFeatures").style.display='inline';
		document.getElementById("joinMyCBNLink").style.display='none';
		$("#groupArea").html(linkHTML);
		$("#discussionArea").html(discussionHTML);
		setTimeout("GetDashboard('"+userName+"','"+hash+"');",60000);
    }
    else {
		//alert("null result");
    }

}

function OnGetDashboardFailed(error) {
	//alert("System Error: Failed to Retrieve Dashboard information");
    //alert(error.responseText);
}
function swapActivities(){
	if (this.id=="selfActivityLink")
	{
		document.getElementById('friendActivityLink').style.textDecoration = 'none';
		document.getElementById('selfActivityLink').style.textDecoration = 'underline';
		document.getElementById('friendFeed').style.display = 'none';
		document.getElementById('selfFeed').style.display = 'inline';
	}
	if (this.id=="friendActivityLink")
	{
		document.getElementById('selfActivityLink').style.textDecoration = 'none';
		document.getElementById('friendActivityLink').style.textDecoration = 'underline';
		document.getElementById('selfFeed').style.display = 'none';
		document.getElementById('friendFeed').style.display = 'inline';
	}
}


function setActiveView(activeViewName) {
	var title;
	var height;
	var width;
	switch (activeViewName) {
		case "Login":
			title = "Login";
			height = 250;
			width = 340;
			break;
		case "Register":
			title = "Sign Up";
			height = 375;
			width = 340;
			break;
		case "Password":
			title = "Forgot Password";
			height = 200;
			width = 340;
			break;
	}

	$("#loginDialog").dialog("option", "title", title);

	$("#loginDialog").dialog("option", "height", height);
	$("#loginDialog").dialog("option", "width", width);

	$(".ui-dialog-content").height(height-50 + "px");
	$(".ui-dialog-content").width("auto");

	resizeIframe();
}

function resizeIframe() {
    $("#loginFrame").height($("#loginDialog").height());
}
