jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

(
	function($)
	{
		$.fn.extend(
			{
				home: function()
				{
					return this.each(
						function()
						{
							var $this = $(this);
							var $a = $(".column .article .header");
							var speed = 300;
							
							
						
							
						$(".column .article .header h2").each(
										function(i)
										{
											var $this = $(this);
											setTimeout(
												function()
												{
													$this.fadeIn(speed);
												},
												100 * i
											);
										}
										
									);
									
							
							
						}
					);
				},
				menu: function(settings)
				{
					settings = $.extend(
					{
						selected: null,
						closed: false
					}
					, settings);
					return this.each(
						function()
							{
								var $this = $(this);
								var speed = 500;
								$("a", this).each(
									function()
									{
										var $a = $(this);
										var $li = $a.parent();
										var $ul = $(">ul", $li);
										var $settings = $a.parent().parent();
										
										var key = "menu_" + $.trim($li.attr("class").split(" ")[0]);
										var cookie = $.cookie(key);
										if(!settings.closed) {
											
										
											if(cookie == "open") {
												$settings.data(
													"selected",
													$ul
												);
												//settings.selected = $ul;
												$ul.css("display", "block");
											} else {
												$ul.css("display", "none");
											}
										}
										if($ul.length > 0) {
											$a.bind(
												"click",
												function(e)
												{
													e.preventDefault();
													
													var prev = $settings.data("selected");//settings.selected;
													if($ul.css("display") == "none") {
														$settings.data(
															"selected",
															$ul
														);
														$.cookie(key, "open", {path: '/'});
														$ul.slideDown(speed);

														
													} else {
														$settings.data(
															"selected",
															null
														);
														prev = null;
														$.cookie(key, "closed", {path: '/'});
														$ul.slideUp(speed);	
														
														
													}
													if(prev != null) {
														
														$.cookie("menu_" + $.trim(prev.closest("li").attr("class").split(" ")[0]), "closed", {path: '/'});
														setTimeout(
															function()
															{
																prev.slideUp(speed);
															},
															200
														);
													}
												}
											);
											
										}
										
										
									}
								);
							
							}
					);
				}
		
			}
		);
	}
)(jQuery);


(function($)
	{
		$(
			function()
			{	
				var closed = false;
				if(!isNaN(pageDesc)) {
					pageDesc = "_" + pageDesc;
				}
				if(pageDesc == "home" ||
					pageDesc == "contact" || 
					pageDesc == "publications"
				) {
					closed = true;
				}
				$("#main-nav").menu(
					{
						closed: closed
					}
				);
				
				var $li = $("." + pageDesc);
				$li.parents("li").andSelf().addClass("selected");
				
				$("body#home").home();
				
				$("body#publications-item .article .header .nav a").bind(
					"mouseenter",
					function(e)
					{
						e.preventDefault();
					
						$this = $(this);
						var href = $this.attr("href");
						$(".article .header>img").attr("src", href);
					}
				).bind(
					"click",
					function(e)
					{
						e.preventDefault();
					}
				);
				
			}
		);
	}
)(jQuery.noConflict());


