var DDSPEED = 10;
var DDTIMER = 15;
var expandedfull = false;

function preloadImages() {

	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=preloadImages.arguments;
	for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0) {
			d.MM_p[j]=new Image;
			d.MM_p[j++].src=a[i] + ".gif";
			d.MM_p[j]=new Image;
			d.MM_p[j++].src=a[i] + "_down.gif";

		}
	}
}


// main function to handle the mouse events //
function ddMenu(id,d) {
  
	if (expandedfull)
		return;

	var h = document.getElementById(id + '-ddheader');
	var c = document.getElementById(id + '-ddcontent');
	clearInterval(c.timer);
	
	if (d == 1) {
		clearTimeout(h.timer);
		if (c.maxh && c.maxh <= c.offsetHeight){return}
		else if (!c.maxh) {
			c.style.display = 'block';
			c.style.height = 'auto';  // IE bug
			c.maxh = c.offsetHeight;
			c.style.height = '1px';   // IE bug
		}

		if (h.style.backgroundImage.indexOf("_down") == -1)
			h.style.backgroundImage = h.style.backgroundImage.replace('.gif', '_down.gif');

		c.timer = setInterval(function(){ddSlide(c,1)}, DDTIMER);
	}
	else {
		h.timer = setTimeout(function(){ddCollapse(c, h)}, 50);
	}
}

// collapse the menu //
function ddCollapse(c, h) {
	h.style.backgroundImage = h.style.backgroundImage.replace('_down.gif', '.gif');
	c.timer = setInterval(function(){ddSlide(c,-1)}, DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id) {
	if (expandedfull)
		return;

	var h = document.getElementById(id + '-ddheader');
	var c = document.getElementById(id + '-ddcontent');

	clearTimeout(h.timer);
	clearInterval(c.timer);
	
	if(c.offsetHeight < c.maxh) {
		c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
	}
}

// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(c,d) {

	var currh = c.offsetHeight;
	var dist;

	if (currh == 0 & d == -1)
		return;

	if(d == 1) {
		dist = (Math.round((c.maxh - currh) / DDSPEED));
	}
	else {
		dist = (Math.round(currh / DDSPEED));
	}

	if (dist <= 1) {
		dist = 1;
	}

	c.style.height = currh + (dist * d) + 'px';
	c.style.opacity = currh / c.maxh;
	c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
	if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)) {
		clearInterval(c.timer);
	}
}

function expandFull() {

	if (expandedfull == true) {

		h1 = document.getElementById('one-ddheader');
		h2 = document.getElementById('two-ddheader');
		h3 = document.getElementById('three-ddheader');
		h4 = document.getElementById('four-ddheader');

		c1 = document.getElementById('one-ddcontent');
		c2 = document.getElementById('two-ddcontent');
		c3 = document.getElementById('three-ddcontent');
		c4 = document.getElementById('four-ddcontent');

		f1 = document.getElementById('one-ddfooter');
		f2 = document.getElementById('two-ddfooter');
		f3 = document.getElementById('three-ddfooter');
		f4 = document.getElementById('four-ddfooter');


		h1.style.backgroundImage = h1.style.backgroundImage.replace('_exp.gif', '.gif');
		h2.style.backgroundImage = h2.style.backgroundImage.replace('_exp.gif', '.gif');
		h3.style.backgroundImage = h3.style.backgroundImage.replace('_exp.gif', '.gif');
		h4.style.backgroundImage = h4.style.backgroundImage.replace('_exp.gif', '.gif');

		c1.style.height = '0px';
		c2.style.height = '0px';
		c3.style.height = '0px';
		c4.style.height = '0px';
		
		f1.style.display = 'block';
		f2.style.display = 'block';
		f3.style.display = 'block';
		f4.style.display = 'block';


		eb = document.getElementById('expandblock');
		eb.style.height = '4px';

		e1 = document.getElementById('expander');
		e1.src = 'http://www.photographyreview.com/channels/photographyreview/images/header/plus.gif';
		
		expandedfull = false;
		
		createCookie('menustate','',-1);

	}
	else {

		h1 = document.getElementById('one-ddheader');

		h1 = document.getElementById('one-ddheader');
		h2 = document.getElementById('two-ddheader');
		h3 = document.getElementById('three-ddheader');
		h4 = document.getElementById('four-ddheader');

		c1 = document.getElementById('one-ddcontent');
		c2 = document.getElementById('two-ddcontent');
		c3 = document.getElementById('three-ddcontent');
		c4 = document.getElementById('four-ddcontent');

		f1 = document.getElementById('one-ddfooter');
		f2 = document.getElementById('two-ddfooter');
		f3 = document.getElementById('three-ddfooter');
		f4 = document.getElementById('four-ddfooter');

		
		clearInterval(c1.timer);
		clearInterval(c2.timer);
		clearInterval(c3.timer);
		clearInterval(c4.timer);

		if (h1.style.backgroundImage.indexOf("_exp") == -1)
			h1.style.backgroundImage = h1.style.backgroundImage.replace('.gif', '_exp.gif');

		if (h2.style.backgroundImage.indexOf("_exp") == -1)
			h2.style.backgroundImage = h2.style.backgroundImage.replace('.gif', '_exp.gif');

		if (h3.style.backgroundImage.indexOf("_exp") == -1)
			h3.style.backgroundImage = h3.style.backgroundImage.replace('.gif', '_exp.gif');

		if (h4.style.backgroundImage.indexOf("_exp") == -1)
			h4.style.backgroundImage = h4.style.backgroundImage.replace('.gif', '_exp.gif');



		c1.style.height = '140px';
		c1.style.filter = 'alpha(opacity=100)';
		c1.style.opacity = 1;
		c1.style.display = 'block';

		c2.style.height = '140px';
		c2.style.filter = 'alpha(opacity=100)';
		c2.style.opacity = 1;
		c2.style.display = 'block';

		c3.style.height = '140px';
		c3.style.filter = 'alpha(opacity=100)';
		c3.style.opacity = 1;
		c3.style.display = 'block';

		c4.style.height = '140px';
		c4.style.filter = 'alpha(opacity=100)';
		c4.style.opacity = 1;
		c4.style.display = 'block';

		f1.style.display = 'none';
		f2.style.display = 'none';
		f3.style.display = 'none';
		f4.style.display = 'none';

		eb = document.getElementById('expandblock');
		eb.style.height = '140px';

		e1 = document.getElementById('expander');
		e1.src = 'http://www.photographyreview.com/channels/photographyreview/images/header/minus.gif';
		expandedfull = true;
		
		createCookie('menustate','1',100);

	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(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;
}
