slideToggle once on first page load, not again

I have two DIVs on my page:

<div id="main">This shows all the time</div>
<div id="expanded">This shows when toggled open</div>

Open in new window


My related CSS is:

#main
{
	background: #000099;
	color: #FFF;
	width: 960px;
	height: 60px;
	margin-top: 20px;
}
#expanded
{
	background: #FFF;
	width: 958px;
	height: 300px;
	border: 1px solid #000099;
	display: none;
}

Open in new window


What I want is for my page to load and display the main div, then slowly toggleSlide the expanded div, wait a few seconds, toggleSlide the expanded div closed again, and then after that point, the user can click on the main div to re-expand it. I HAVE this piece working using the following javascript:

<script type="text/javascript">
	$(document).ready(function () {
		$('#expanded').delay(1000).slideToggle(1400); 
		$('#expanded').delay(5000).slideToggle(1000);

		$("#main").click(function () {
			$(this).next("#expanded").slideToggle(1000); 
		});
	});
</script>

Open in new window


The part I'm unsure how to do is that I only one the automatic slideToggle to happen the first time the user comes to the page (the homepage) if they're browsing around the site and come back to the homepage again, I don't want it to slideToggle automatically every single time. So I'm thinking I need to set a cookie or session variable...? How would I do something like this? It would be OK if they left the site and came back later and it automatically did the slideToggle again, but not on a single session visiting the site.
mandi224Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

elliottbenzleCommented:
You'll need to set a cookie which sets when the home page is loaded, and then check for it when the user returns.

http://www.w3schools.com/js/js_cookies.asp
mandi224Author Commented:
Ok thanks for pointing me in the right direction. I decided to use jquery.cookie.js

I modified my code to look like this:

<script type="text/javascript">
	$(document).ready(function () {
		$('#expanded').delay(1000).slideToggle(1500);
		$('#expanded').delay(5000).slideToggle(1500); 
		$.cookie("mypromo", "true", { expires: 2 }); 

		$("#main").click(function () {
			$(this).next("#expanded").slideToggle(1000);
		});
	});
</script>

Open in new window


This works, and is setting the cookie properly, however, I'm unsure how to check for the cookie. This is what I tried, and it is not working. (Please forgive me; I'm not very good with javascript/jquery.)

<script type="text/javascript">
	$(document).ready(function () {
		if ($.cookie("mypromo") == null) {
			$('#expanded').delay(1000).slideToggle(1500);
			$('#expanded').delay(5000).slideToggle(1500); 
			$.cookie("mypromo", "true", { expires: 2 }); 
		}

		$("#main").click(function () {
			$(this).next("#expanded").slideToggle(1000);
		});
	});
</script>

Open in new window


With this on the page, and my cookies cleared, it doesn't execute the toggle or set the cookie.
mandi224Author Commented:
Nevermind ... figured it out:

<script type="text/javascript">
	$(document).ready(function () {
		if ($.cookie("mypromo") != "true") {
			$('#expanded').delay(1000).slideToggle(1500);
			$('#expanded').delay(5000).slideToggle(1500); 
			$.cookie("mypromo", "true", { expires: 2 }); 
		}

		$("#main").click(function () {
			$(this).next("#expanded").slideToggle(1000);
		});
	});
</script>
           

Open in new window


This seems to work!

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mandi224Author Commented:
User pointed me in the right direction but did not provide specific code.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
jQuery

From novice to tech pro — start learning today.