function showDropdown(objId, hideId){
	if (objId && hideId){
		document.getElementById(objId).style.top = '23em';
		document.getElementById(objId).style.left = '0px';
		document.getElementById(hideId).style.top = '-1000px';
		document.getElementById(hideId).style.left = '-1000px';
	}
}

// add .hasJS class to html tag
document.documentElement.className="hasJS";

/* author mike foskett - 04/08/2009

Extend a menu with secondary hidden menu with a delayed remove.

Expects:	menu structure in li's
					li containing secondary menu indicated by user defined class (e.g. "extendMenu")
					first contained link activates flyout on mouse over or on focus
					flyout menu to be a ul structure adjacent to the activating link
*/
var extendedMenu = function(){

	var hoverClass,delay,extendClass,z;

	/* author: Simon Willisons - http://simonwillison.net/2004/May/26/addLoadEvent/ */
	function addLoadEvent(f){var o=window.onload;if(typeof window.onload!='function'){window.onload=f;}else{window.onload=function(){if(o){o();}f();};}}

	/* author: Steffen Rusitschka - http://www.ruzee.com/blog/2006/07/retrieving-css-styles-via-javascript/ */
	function hyphenToCamel(s){for(var exp=/-([a-z])/;exp.test(s);s=s.replace(exp,RegExp.$1.toUpperCase())){}return s;}
	// This function is not 100% generic for all css properties
	function getStyleProperty(obj,property){var value='';if(window.getComputedStyle){value=window.getComputedStyle(obj,null).getPropertyValue(property);}else{if(obj.currentStyle){value=obj.currentStyle[hyphenToCamel(property)];}}return value;}

	function setOpacity(obj,op){obj.style.opacity=op/100;obj.style.MozOpacity=op/100;obj.style.KhtmlOpacity=op/100;obj.style.filter="alpha(opacity="+op+")";}

	function init(extendClassName,hClass,offDelay){
		if (extendClassName && hClass && offDelay){
			extendClass=extendClassName;
			hoverClass=hClass;
			delay=offDelay;
			addLoadEvent(setup);
		}else{
			alert('parameter missing');
		}
	}

	function setup(){
		var lis=document.getElementsByTagName('li');
		for(var i=lis.length-1;i>-0;i--){
			if (lis[i].className.match(extendClass)){
				// get original z-index from styles (doesn't work in IE)
				z=getStyleProperty(lis[i].getElementsByTagName('ul')[0],'z-index');
				// initialise timer variable
				lis[i].t=null;
				// activate secondary menu
				lis[i].onmouseover=hoverLi;
				// make keyboard friendly
				var as=lis[i].getElementsByTagName('a');
				for (var j=0; j<as.length; j++){
					as[j].onfocus=focusLink;
					as[j].onblur=blurLink;
				}
			}
		}
	}

	function linkContainer(o){
		// returns containing object whichever link is focused
		return o.parentNode.className.match(extendClass) ? o.parentNode : o.parentNode.parentNode.parentNode;
	}

	function blurLink(){
		// remove secondary menu
		var obj=linkContainer(this);
		obj.t=setTimeout(function(){
					obj.className=obj.className.replace(obj.className.match(' '+hoverClass)?' '+hoverClass:hoverClass,'');
				},20);
	}

	function focusLink(){
		// add secondary menu
		var obj=linkContainer(this);
		clearTimeout(obj.t);
		// add class to overall container
		if (!obj.className.match(hoverClass)){
			obj.className=obj.className?obj.className+" "+hoverClass:hoverClass;
		}
	}

	function hoverLi(){

			function out(){
				obj.t=setTimeout(function(){
								setOpacity(obj.getElementsByTagName('ul')[0],75);
								setTimeout(function(){setOpacity(obj.getElementsByTagName('ul')[0],50);},70);
								setTimeout(function(){setOpacity(obj.getElementsByTagName('ul')[0],25);},140);
								setTimeout(function(){
										obj.className=obj.className.replace(obj.className.match(' '+hoverClass)?' '+hoverClass:hoverClass,'');
										setOpacity(obj.getElementsByTagName('ul')[0],100);
								},210);
							},delay);
			}

		var obj=this;
		clearTimeout(obj.t);
		if (!obj.className.match(hoverClass)){
			obj.className=obj.className?obj.className+" "+hoverClass:hoverClass;
			obj.getElementsByTagName('ul')[0].style.zIndex=z++;
			obj.onmouseout=out;
		}
	}

	return{ // public functions
		init:init
	};

}();

// parameters: extend li class name, applied hover class, switch off delay (ms)
extendedMenu.init('extendMenu','over','300');



/* author mike foskett - 05/08/2009

Show multiple partner rewards in one stamp area

*/
multiRewards = function(){

	/* author: Simon Willisons - http://simonwillison.net/2004/May/26/addLoadEvent/ */
	function addLoadEvent(f){var o=window.onload;if(typeof window.onload!='function'){window.onload=f;}else{window.onload=function(){if(o){o();}f();};}}

	function scrollRight(bID,sID,sClass){
		var lis=document.getElementById(bID).getElementsByTagName('li');
		var totalRewards=document.getElementById(sID).getElementsByTagName('span')[1];
		if (totalRewards){
			totalRewards.innerHTML=lis.length;
		}
		for (var i=0;i<lis.length;i++){
			if (lis[i].className.match(sClass)){
				lis[i].className=lis[i].className.replace(' '+sClass,'').replace(sClass,'');
				var nextShow=i+1;
				nextShow=(nextShow==lis.length)?0:nextShow;
				lis[nextShow].className+=' '+sClass;
				var currentReward=document.getElementById(sID).getElementsByTagName('span')[0];
				if (currentReward){
					currentReward.innerHTML=nextShow+1;
				}
				return false;
	}	}	}

	function scrollLeft(bID,sID,sClass){
		var lis=document.getElementById(bID).getElementsByTagName('li');
		var totalRewards=document.getElementById(sID).getElementsByTagName('span')[1];
		if (totalRewards){
			totalRewards.innerHTML=lis.length;
		}
		for (var i=0;i<lis.length;i++){
			if (lis[i].className.match(sClass)){

				// calculate next
				var nextShow=i-1;
				nextShow=(nextShow<0)?lis.length-1:nextShow;

				// switch off current
				lis[i].className=lis[i].className.replace(' '+sClass,'').replace(sClass,'');
				// switch on next
				lis[nextShow].className=lis[nextShow].className+' '+sClass;

				// update report
				var currentReward=document.getElementById(sID).getElementsByTagName('span')[0];
				if (currentReward){
					currentReward.innerHTML=nextShow+1;
				}
				return false;
	}	}	}

	function setup(columnID,multiRewardClass,showClass){
		addLoadEvent(function(){
			var divs=document.getElementById(columnID).getElementsByTagName('div');
			for (var i=0;i<divs.length;i++){
				if (divs[i].className.match(multiRewardClass)){
					divs[i].id=divs[i].id?divs[i].id:"multiReward"+i;
					divs[i].showClass=showClass;
					divs[i].scrollID="scroll"+i;
					var box=divs[i].getElementsByTagName('div')[0];
					if (box){
						box.innerHTML+='<div class="scrollClass" id="scroll'+i+'"><a class="sLeft img" href="#" onclick="return multiRewards.scrollLeft(\''+divs[i].id+'\',\''+divs[i].scrollID+'\',\''+divs[i].showClass+'\');"><img src="/clubcard/clubcard/img/deals/button.scrollLeft.png" width="28" height="20" title="" alt="Previous reward" /></a>  <span>1</span> of <span>4</span> <a class="sRight img" href="#" onclick="return multiRewards.scrollRight(\''+divs[i].id+'\',\''+divs[i].scrollID+'\',\''+divs[i].showClass+'\');"><img src="/clubcard/clubcard/img/deals/button.scrollRight.png" width="28" height="20" title="" alt="Next reward" /></a></div>';
			}	}	}
		});
	}

	return{ // public functions
		init:setup,
		scrollRight:scrollRight,
		scrollLeft:scrollLeft
	};

}();

// parameters: column id, block class, display class
multiRewards.init('rewards_updates','multiRewards','show');
