$(document).ready(function() {
	var cookie_name = 'bookmarks';
	var cookie_name_2 = 'bookmarks_2';
	var cookie_expires = 365;
	var cookie_path = '/';

	var cookieList = function(cookieName) {
		var cookie = $.cookie(cookieName);
		
		var items = cookie ? cookie.split('||') : new Array();
		
		return {
			"add" : function(val) {
				var index = $.inArray(val, items);

				if (index < 0) {
					items.push(val);

					$.cookie(cookieName, items.join('||'), {
						expires : cookie_expires,
						path : cookie_path
					});
				}
			},
			"overwrite" : function(val) {
				$.cookie(cookieName, val, {
					expires : cookie_expires,
					path : cookie_path
				});
			},
			"del" : function(val) {
				var index = $.inArray(val, items);

				if (index > -1) {
					items.splice(index, 1);

					$.cookie(cookieName, items.join('||'), {
						expires : cookie_expires,
						path : cookie_path
					});
				}
			},
			"search" : function(val) {
				var index = $.inArray(val, items);

				if (index > -1) {
					return true;
				} else {
					return false;
				}
			},
			"clear" : function() {
				items = null;
				
				$.cookie(cookieName, null, {
					expires : cookie_expires,
					path : cookie_path
				});
			},
			"items" : function() {
				return items;
			}
		}
	}

	function update_db_bookmarks(to_del) {
		if (to_del === undefined) {
			to_del = '';
		}

		$.get('/themes/third_party/thanet_college/cookie.php', {
			del: to_del
		}, function(data) {
			var list = new cookieList(cookie_name);
			var list_2 = new cookieList(cookie_name_2);

			if (data) {
				list.overwrite(data.bookmarks);
				list_2.overwrite(data.bookmarks_2);
			}

			update_bookmarks();
			manage_bookmarks();
		}, 'json');
	}

	function update_bookmarks() {
		if ($('#bookmark_links').length > 0) {
			var list = new cookieList(cookie_name);
			var list_2 = new cookieList(cookie_name_2);

			if ($('#bookmark_this').length > 0) {
				if (list.search($('#bookmark_this').val())) {
					$('#bookmark_this').attr('checked', 'checked');
				}
			}

			if (list.items().length < 1) {
				$('#bookmark_links').html('<p>No bookmarks available.</p>');
				$('#bookmark_count').html('0');
				$('.create_prospectus').css('display', 'none');
			} else {
				var num_bookmarks = list.items().length;
				var bookmark_links = '';

				var bookmark_arr = list.items().reverse().splice(0, 3);
				var bookmark_arr_2 = list_2.items().reverse().splice(0, 3);

				$.each(bookmark_arr, function(key, value) {
					bookmark_links += '<div class="bookmarked_item_link"><a href="/course_guides/course_page/all/bookmark/' + value + '" title="' + bookmark_arr_2[key] + '">' + bookmark_arr_2[key] + '</a></div>';
				});

				$('#bookmark_links').html(bookmark_links);
				$('#bookmark_count').html(num_bookmarks);
				$('.create_prospectus').css('display', 'block');
			}
		}
	}

	function manage_bookmarks() {
		if ($('#account_bookmarks').length > 0) {
			var list = new cookieList(cookie_name);
			var list_2 = new cookieList(cookie_name_2);

			if (list.items().length < 1) {
				$('#account_bookmarks').html('<p><strong>No bookmarks available.</strong></p>');
				$('.create_brochure').css('display', 'none');
			} else {
				var bookmark_links = '';

				var bookmark_arr = list.items().reverse();
				var bookmark_arr_2 = list_2.items().reverse();

				$.each(bookmark_arr, function(key, value) {
					bookmark_links += '<div class="acc_bmark">';
					bookmark_links += '<div class="acc_bmark_delete"><a id="b' + value + '" class="delete_bookmark" href="#">Delete<img src="/theme_images/generic_body/cross1.jpg" alt="delete" /></a></div>';
					bookmark_links += '<div class="acc_bmark_title"><a href="/course_guides/course_page/all/bookmark/' + value + '" title="' + bookmark_arr_2[key] + '">' + bookmark_arr_2[key] + '</a></div>';
					bookmark_links += '</div>';
				});

				$('#account_bookmarks').html(bookmark_links);

				$('.create_brochure').css('display', 'block');
			}
		}
	}

	if (logged_in) {
		$('#bookmark_links').html('<p>Please wait...</p>');
		$('#bookmark_count').html('0');
		$('.create_prospectus').css('display', 'none');

		update_db_bookmarks();
	}
	else {
		update_bookmarks();
		manage_bookmarks();
	}

	$('.delete_bookmark').live('click', function() {
		var list = new cookieList(cookie_name);
		var list_2 = new cookieList(cookie_name_2);

		var to_del = $(this).attr('id');

		var substr = to_del.substring(1);

		var index = $.inArray(substr, list.items());

		list.del(substr);

		var tmp_arr = list_2.items();

		list_2.del(tmp_arr[index]);

		if (logged_in) {
			update_db_bookmarks(substr);
		}

		manage_bookmarks();
		update_bookmarks();

		return false;
	});

	$('#bookmark_this').click(function() {
		var list = new cookieList(cookie_name);
		var list_2 = new cookieList(cookie_name_2);

		if ($('#bookmark_this').is(':checked')) {
			if (logged_in) {
				list.add($('#bookmark_this').val());
				list_2.add($('#course_name').val());

				update_db_bookmarks();
			}
			else
			{
				if (list.items().length <= 9) {
					list.add($('#bookmark_this').val());
					list_2.add($('#course_name').val());

					if (list.items().length == 10) {
						alert("You have now reached the maximum number of bookmarks allowed. To add more, please open an account by clicking [My Account] at the top of the page.");
					}
				} else {
					alert("You have reached the maximum number of bookmarks allowed. To add more, please open an account by clicking [My Account] at the top of the page.");

					$(this).attr('checked', false);
				}
			}
		} else {
			list.del($('#bookmark_this').val());
			list_2.del($('#course_name').val());

			if (logged_in) {
				update_db_bookmarks($('#bookmark_this').val());
			}
		}

		update_bookmarks();
	});

	$('#forgot_password').click(function() {
		$('#forgot_password_form').toggle('slow');

		return false;
	});

	$('.logout').click(function() {
		var list = new cookieList(cookie_name);
		var list_2 = new cookieList(cookie_name_2);

		list.clear();
		list_2.clear();
	});
});
