var maxChars = 500;
var usa_debugFlag = true;
var usaTwitterPopup;

/* menu */
var usa_staticMenuOpen = '';
var usa_level2Active = false;
var usa_t;

function usa_showStaticMenu(id)
{
	//usa_debug('show: ' + id);
	if (usa_staticMenuOpen == id)
	{
		usa_hideStaticMenu(id);
	}
	else
	{
		usa_hideStaticMenuAll();
		$('#' + id).fadeIn('fast');
		usa_staticMenuOpen = id;

		usa_t = setTimeout("$('body').bind('click', usa_setMainClose);", 1000);
	}
}

function usa_hideStaticMenuAll()
{
	clearTimeout(usa_t);
	//usa_debug('hide all');
	usa_staticMenuOpen = '';
	$('#honoreesContainer').css('display', 'none');
	$('#blogNavContainer').css('display', 'none');
	$('#pressContainer').css('display', 'none');

	$('body').unbind('click', usa_setMainClose);
}

function usa_hideStaticMenu(id)
{
	//usa_debug('hide: ' + id);
	if (usa_staticMenuOpen != '' && !usa_level2Active)
	{
		$('#' + id).fadeOut('fast');
		usa_staticMenuOpen = '';
		$('body').unbind('click', usa_setMainClose);
	}
}

function usa_setOpenMenu(id)
{
	usa_staticMenuOpen = id;
}

function usa_beginHideStaticMenu(id)
{
	usa_t = setTimeout("usa_hideStaticMenu(\'" + id + "\')", 1000);
}

function usa_setLevel2Active(value)
{
	usa_level2Active = value;
}

var usa_setMainClose = function ()
{
	if (usa_staticMenuOpen != '')
	{
		$('#' + usa_staticMenuOpen).fadeOut('fast');
		usa_staticMenuOpen = '';
	}
	else
	{
		$('body').unbind('click', usa_setMainClose);
	}
};

function usa_signInWithTwitter()
{
	var width = 815;
    var height = 365;
    var left = parseInt((screen.availWidth - width) / 2);
    var top = parseInt((screen.availHeight - height) / 2);
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,scrollbars=yes,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
    usaTwitterPopup = window.open('/app/twitter/redirect.php?config=characterapproved', "usa_signInWithTwitter", windowFeatures);
}

function usa_debug(msg)
{
	if (usa_debugFlag)
	{
		if (typeof console != "undefined")
		{
			console.log (msg);
		}
	}
}

function usa_showTwitterSignOut()
{
	var width = 815;
    var height = 365;
    var left = parseInt((screen.availWidth - width) / 2);
    var top = parseInt((screen.availHeight - height) / 2);
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,scrollbars=yes,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
    usaTwitterPopup = window.open('/app/twitter/clear-sessions.php?config=characterapproved', "usa_signInWithTwitter", windowFeatures);
}

function usa_twitterSignOut()
{
	$('#twitterButton').css('display', 'block');
	$('#twitterUser').css('display', 'none');
	$('input[name="twitter"]').removeAttr('checked');
	$('input[name="twitter"]').attr('disabled', 'disabled');
}

function usa_facebookLogin()
{
	FB.login(usa_facebookLoginCallback, {perms:'email,user_birthday,user_location,publish_stream'});
}

function usa_facebookSignOut()
{
	FB.getLoginStatus(function(response)
	{
		if (response.session)
		{
			FB.logout(function(response) { 
				$('#facebookButton').css('display', 'block');
				$('#facebookUser').css('display', 'none');
				$('input[name="fb"]').removeAttr('checked');
				$('input[name="fb"]').attr('disabled', 'disabled');
			});
		}
	});
}

function usa_facebookLoginCallback(response)
{
	usa_debug('fn: usa_facebookLoginCallback');
	if (response.perms)
	{		
		if (response.perms == '[]')
		{
			// no permissions granted, show message
			usa_debug('no permissions granted');
		}
		else
		{
			// user granted some permissions.
			// perms is a comma separated list of granted permissions
			if (response.session)
			{
				usa_debug('user connected succesfully');
				usa_checkFacebook();
				/*FB.api('/me', function(response) {
					usa_setupFacebook(response);
				});*/
			}
			else
			{
			    // user is not logged in, lost session?
				usa_debug('user is not logged in, lost session');
			}
		}
    }
	else
	{
		// no permissions granted, show message
		usa_debug('no permissions granted');
	}
}

function usa_postCharacterApproved()
{
	$.ajax({
		type: "POST",
		dataType: 'json',
		url: 'post.php',
		data: 'name=' + $('input[name="name"]').val() + 
				'&myapproved=' + encodeURIComponent($('textarea[name="myapproved"]').val()) +
				'&fb=' + (typeof $('input[name="fb"]:checked').val() != "undefined" ? $('input[name="fb"]:checked').val() : '0') +
				'&twitter=' + (typeof $('input[name="twitter"]:checked').val() != "undefined" ? $('input[name="twitter"]:checked').val() : '0') +
				'&sweeps=' + (typeof $('input[name="sweeps"]:checked').val() != "undefined" ? $('input[name="sweeps"]:checked').val() : '0') + 
				'&email=' + $('input[name="email"]').val() + 
				'&zip=' + $('input[name="zip"]').val() + 
				'&dobMon=' + $('input[name="dobMon"]').val() + 
				'&dobDay=' + $('input[name="dobDay"]').val() + 
				'&dobYear=' + $('input[name="dobYear"]').val() +
				'&emailOptIn=' + (typeof $('input[name="emailOptIn"]:checked').val() != "undefined" ? $('input[name="emailOptIn"]:checked').val() : '0'),
		success: function (response) {
			if (response.success == 1)
			{
				$('#msgContent').html('Thanks for your submission!');
				$('#msg').css('display', 'block');
				document.getElementById('entriesIframe').src = 'entries.php?page=1&refresh=1';
				document.forms[0].reset();
			}
			else
			{
				var responseText = 'There was an error with your submission:';
				for (var i=0; i<response.errors.length ; i++)
				{
					responseText += '<li>'+response.errors[i]+'</li>';
				}
				
				$('#msgContent').html(responseText);
				$('#msg').css('display', 'block');
			}
		}
	});
}

if (typeof usa_readCookie == 'undefined')
{
	usa_readCookie = function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
}

function usa_emailOptIn()
{
	if (typeof $('input[name="emailOptIn"]:checked').val() != "undefined")
	{
		// checked
		$('#emailContainer').css('display', 'block');
	}
	else
	{
		// unchecked
		if (typeof $('input[name="sweeps"]:checked').val() == "undefined")
		{
			$('#emailContainer').css('display', 'none');
		}
	}
}

function usa_sweepsFields()
{
	if (typeof $('input[name="sweeps"]:checked').val() != "undefined")
	{
		// checked
		$('#emailContainer').css('display', 'block');
		$('#zipContainer').css('display', 'block');
		$('#dobContainer').css('display', 'block');
	}
	else
	{
		// unchecked
		if (typeof $('input[name="emailOptIn"]:checked').val() == "undefined")
		{
			$('#emailContainer').css('display', 'none');
		}
		$('#zipContainer').css('display', 'none');
		$('#dobContainer').css('display', 'none');
	}
}

function usa_displayFacebookConnected(id, name)
{
	var html = '<div id="connectedFacebookAvatar"><fb:profile-pic linked="false" width="30" size="square" facebook-logo="true" uid="'+id+'" style="width: 30px;"></fb:profile-pic></div><div id="connectedFacebookUser">Welcome, '+name+'.</div><div id="connectedFacebookLogout"><a href="javascript:usa_facebookSignOut();">Sign-out</a></div>';
	$('#facebookUser').html(html);
	FB.XFBML.parse();
	$('#facebookButton').css('display', 'none');
	$('#facebookUser').css('display', 'block');
}

function usa_displayTwitterConnected(avatar, name)
{
	var html = '<div id="connectedTwitterAvatar"><img src="'+avatar+'" /></div><div id="connectedTwitterUser">Welcome, '+name+'.</div><div id="connectedTwitterLogout"><a href="javascript:usa_showTwitterSignOut();">Sign-out</a></div>';
	$('#twitterUser').html(html);
	$('#twitterButton').css('display', 'none');
	$('#twitterUser').css('display', 'block');
}

function usa_setupFacebook(meObject)
{
	if (typeof meObject.birthday != 'undefined')
	{
		var dob = meObject.birthday.split('/');
		
		if (dob.length == 3)
		{
			$('input[name="dobMon"]').val(dob[0]);
			$('input[name="dobDay"]').val(dob[1]);
			$('input[name="dobYear"]').val(dob[2]);
		}
	}
	
	if (typeof meObject.name != 'undefined')
	{
		$('input[name="name"]').val(meObject.name);
	}
	
	if (typeof meObject.email != 'undefined')
	{
		$('input[name="email"]').val(meObject.email);
	}
	
	usa_displayFacebookConnected(meObject.id, meObject.name);
}

function usa_checkFacebook()
{
	FB.getLoginStatus(function(response) {
		if (response.session) {
			// logged in and connected user, someone you know
			$('input[name="fb"]').removeAttr('disabled');
			FB.api('/me', function(response) {
				usa_setupFacebook(response);
			});
		} else {
			// no user session available, someone you dont know
			$('input[name="fb"]').attr('disabled', 'disabled');
 		}
	});
	usa_updateCharsRemaining();
}

function usa_setupTwitter(avatar, username, name)
{
	$('input[name="name"]').val(name);
	usa_checkTwitter();
	usa_displayTwitterConnected(avatar, name);
}

function usa_updateCharsRemaining()
{
	if (typeof $('input[name="twitter"]:checked').val() != "undefined")
	{
		maxChars = 101;
	}
	else
	{
		maxChars = 500;
	}

	$('#charsRemaining').text(String(maxChars-parseInt($('textarea[name="myapproved"]').val().length)));
}

function usa_checkTwitter()
{
	if (usa_readCookie('usa_twitter_token'))
	{
		$('input[name="twitter"]').removeAttr('disabled');
		if (typeof $('input[name="twitter"]:checked').val() != "undefined")
		{
			// checked
			$('#hashTag').css('visibility', 'visible');
		}
		else
		{
			// unchecked
			$('#hashTag').css('visibility', 'hidden');
		}
	}
	else
	{
		$('#hashTag').css('visibility', 'hidden');
		$('input[name="twitter"]').attr('disabled', 'disabled');
	}
	usa_updateCharsRemaining();
}



