
var notifTimer;
var notifs = true;

$(document).ready(
	function() {

		getNotifs();

		if($.browser.msie) {
			$(document).focusin(toggleNotifs).focusout(toggleNotifs);
		} else {
			$(window).focus(toggleNotifs).blur(toggleNotifs);
		}

		notifTimer = setInterval(getNotifs, 5000);

	}
);

function toggleNotifs(event) {

	if(event.type == 'focus' || event.type == 'focusin')
		notifs = true;
	else
		notifs = false;

}

function getNotifs() {

	if(!notifs) return;

	$.ajax(
		{
			url: approot+'notifications?'+Math.random(0, 10000),
			dataType: 'text',
			success: function(data) {

				var res = data.split('|');
				if(res.length == 2) {

					var count = res[1];
					
					var el = $('li#user-info > span > a');
					
					if(el.length) {
						
						if((el.html() == "&nbsp;" && parseInt(count) > 0) || parseInt(el.text()) < parseInt(count)) {
							
							var nalert = $('div#notification-alert');
							var pos = el.position();
							var pos2 = el.parent().position();
							var pos3 = el.parent().parent().position();
							
							nalert.css('left', ((pos.left+pos2.left+pos3.left+(el.outerWidth()/2))-(nalert.width()/2)+7)+'px');
							
							flashNotifs();
						
						}

						$('li#user-info > span > a').html((count > 0 ? count : "&nbsp;"));

					} else {

						$('li#user-info > span').append('<a href="'+approot+'notifications">'+(count > 0 ? count : "&nbsp;")+'</a>');

					}

					if(parseInt(count) == 0) $('li#user-info > span > a').removeClass('active');
					else $('li#user-info > span > a').addClass('active');
				}

			}
		}
	);

}

function flashNotifs() {

	if($('div#notification-alert').css('display') == 'none') {
		
		
		
		$('div#notification-alert').show(
			0,
			function(){

				$('div#notification-alert').effect('pulsate', {times: 1}, 300).delay(5000).fadeOut(1000);

			}
		);

	}

}

function getProjUsers(uid) {
	
	var proj_select = $('#TaskProjectId');
	
	var proj_users = $('div.user-select');
	
	$('div.checkbox', proj_users).remove();
	
	if(proj_select.val()) {
		
		$.ajax(
			{
				url: approot+'projects/users/'+proj_select.val()+'.json',
				type: 'GET',
				dataType: 'json',
				success: function(d) {
					var d;
					if(d.User.length > 0) {
						
						for(i in d.User) {
							proj_users.each(
								function() {
									var obj = $(this);
									obj.append('<div class="checkbox"><input type="checkbox" name="'+(obj.hasClass('watchers') ? 'data[Watcher][Watcher][]' : 'data[User][User][]')+'" value="'+d.User[i].id+'" id="'+(obj.hasClass('watchers') ? 'WatcherWatcher' : 'UserUser')+d.User[i].id+'" /><label for="'+(obj.hasClass('watchers') ? 'WatcherWatcher' : 'UserUser')+d.User[i].id+'">'+d.User[i].uname+'</label></div>');
								}
							);
						}
						
						if(uid)
							$('#WatcherWatcher'+uid).attr('checked', 'checked');
						
					} else {
						proj_users.each(
							function() {
								var obj = $(this);
								obj.append('<div class="checkbox"><p>'+(obj.hasClass('watchers') ? 'No users watching this task.' : 'No users for this project.')+'</p></div>');
							}
						);
					}
				},
				error: function(err, txt, stat) {
					alert(txt);
				}
			}
		);
		
	} else {
		
		proj_users.each(
			function() {
				var obj = $(this);
				obj.append('<div class="checkbox"><p>'+(obj.hasClass('watchers') ? 'No users watching this task.' : 'No users for this project.')+'</p></div>');
			}
		);
		
	}
	
}
