//Global Variables
var openlist;

/* basketAdd - Description:
		Adds a coupon to the basket.
		Updates the basket count per session (client & server).
		Renders html on the fly to reflect updated counts.
 */
function basketAdd(context,img,couponSlugID,contentZoneID,cat,page) {
	//Generate random number for img update
	var randomNumber = Math.random();	
	url = new Image();
	if (document.getElementById) {
		//Load variables with hidden form values
		var couponCount = document.counter.count.value;
		var addressID = document.getElementById("id"+couponSlugID).value;
		//Browse pages - address not selected
		if (page == 'browseUnselected') openList(couponSlugID);
		else {
			//Update server for selected coupon
			url.src = context+ "addBasket.do?number=" +randomNumber+ "&couponSlugId=" +couponSlugID+ "&contentZoneId=" +contentZoneID+ "&action=add";
			//Render html on the fly
			var s = "s";
			couponCount++;
			document.counter.count.value = couponCount;
			if (couponCount == 1)
				s = "";
			//Change view basket (top & bottom) to link and update count
			document.getElementById("vbTop").innerHTML = '<a onclick="dcsExec(\'VP_click=ViewBasket\');" href="' +context+ 'viewBasket.do"><img alt="View Basket" src="' +img+ 'bar/' +cat+ 'view_basket.gif" /><div class="vbc">contains ' +couponCount+ ' coupon' +s+ '</div></a>';
			document.getElementById("vbBtm").innerHTML = '<a onclick="dcsExec(\'VP_click=ViewBasket\');" href="' +context+ 'viewBasket.do"><img alt="View Basket" src="' +img+ 'bar/' +cat+ 'view_basket.gif" /><div class="vbc">contains ' +couponCount+ ' coupon' +s+ '</div></a>';
			//Change print basket (top & bottom) to link
			if (document.getElementById("pbTop"))
				document.getElementById("pbTop").innerHTML = '<a href="javascript:dcsExec(\'VP_click=PrintBasketCoupons\');printBasket(\'' +context+ 'printBasket.do?action=print\');"><img alt="Print Coupons in Basket" src="' +img+ 'bar/' +cat+ 'print_coupons.gif" /></a>';
			if (document.getElementById("pbBtm"))
				document.getElementById("pbBtm").innerHTML = '<a href="javascript:dcsExec(\'VP_click=PrintBasketCoupons\');printBasket(\'' +context+ 'printBasket.do?action=print\');"><img alt="Print Coupons in Basket" src="' +img+ 'bar/' +cat+ 'print_coupons.gif" /></a>';
			//Change add to basket link to view basket link in Browse pages
			if (page == "browse")
				document.getElementById("button"+couponSlugID).innerHTML = '<a onclick="dcsExec(\'VP_click=ViewBasket\');" href="' +context+ 'viewBasket.do">View Basket</a>';
			else
				//Change add to basket button to view basket button in Slug pages
				document.getElementById("button"+couponSlugID).innerHTML = '<a onclick="dcsExec(\'VP_click=ViewBasket\');" href="' +context+ 'viewBasket.do"><img alt="view basket" class="btns" src="' +img+ 'btn_view_basket.gif" /></a>';
		}
	}
}

/* basketEmpty - Description:
		Empties the basket.
 */
function basketEmpty(context) {
	//Generate random number for img update
	var randomNumber = Math.random();
	var url = new Image();
	//Empty basket
	url.src = context+ "emptyBasket.do?number=" +randomNumber;
	if (document.counter)
		document.counter.count.value = 0;
}

/* addressSelect - Description:
		Controls the Multi-address select list.
		Updates the address per session (client & server).
		Renders html on the fly.
 */
function addressSelect(context,img,couponSlugID,addressID,address,contentZoneID,page,md) {
	//Generate random number for img update
	var randomNumber = Math.random();	
	url = new Image();
	if (document.getElementById) {
		if (page != 'browse') {
			//Update hidden form field with selected address
			document.getElementById("id"+couponSlugID).value = addressID;
		}
		//Update server with selected address
		url.src = context+ "selectAddress.do?number=" +randomNumber+ "&couponSlugId=" +couponSlugID+ "&addressId=" +addressID;
		if (page != 'browse') {
			//Display selected address
			document.getElementById("address"+couponSlugID).innerHTML = address;
			//Show/Hide map and directions links
			if (md == 'showMD')
				document.getElementById("md"+couponSlugID).style.display = 'inline';
			if (md == 'hideMD')
				document.getElementById("md"+couponSlugID).style.display = 'none';
			//Reset phone arrow image
			var pi = document.getElementById("pi"+couponSlugID);
			if (pi != null) pi.src = img+ 'closed.gif';
		}
		//Activate basketAdd function
		if (page == 'browse')
			basketAdd(context,img,couponSlugID,contentZoneID,'',page);
	}
}

/* openList - Description:
		Controls "droplist/arrow" open/close.
 */
function openList(couponSlugID,img) {
	//Check if another droplist is open
	if (openlist != "" && openlist != null) {
		//close previous droplist
		document.getElementById("alc"+openlist).style.overflow = 'hidden';
		setVisibility("alc"+openlist,'hidden');
		if (document.getElementById("si"+openlist))
			document.getElementById("si"+openlist).src = img+ "closed.gif";
	}
	//Store current ID for next use of function
	openlist = couponSlugID;
	//Open current droplist
	document.getElementById("alc"+couponSlugID).style.overflow = 'auto';
	setVisibility("alc"+couponSlugID,'visible');
	if (document.getElementById("si"+couponSlugID))
		document.getElementById("si"+couponSlugID).src = img+ "opendown.gif";
}

/* redo/remove/remover - Description:
		Controls "droplist" layer timing.
 */
function redo(e,couponSlugID,img) {
	var delay_hide = 1000;
	var menuobj = document.getElementById("alc"+couponSlugID);
	if ((document.all && !menuobj.contains(e.toElement)) || document.getElementById)
		delayhide = setTimeout("remover('"+couponSlugID+"','"+img+"')",delay_hide)
}
function remove() {
	if (window.delayhide) clearTimeout(delayhide)
}
function remover(couponSlugID,img) {
	document.getElementById("alc"+couponSlugID).style.overflow = 'hidden';
	setVisibility("alc"+couponSlugID,'hidden');
	if (document.getElementById("si"+couponSlugID))
		document.getElementById("si"+couponSlugID).src = img+ "closed.gif";
}

/* toggleDetails - Description:
		Open and close layers above or below.
 */
function toggleDetails(img,objectID,picID,d) {
	if (document.getElementById) {
		var obj1 = document.getElementById(objectID+"1").style;
		if (document.getElementById(objectID+"2") != null)
			var obj2 = document.getElementById(objectID+"2").style;
		if (document.getElementById(objectID+"3") != null)
			var obj3 = document.getElementById(objectID+"3").style;
		if (obj1.display == 'block') {
			obj1.display = 'none';
			if (obj2 != null)
				obj2.display = 'none';
			if (obj3 != null)
				obj3.display = 'none';
			if (picID != null)
				document.getElementById(picID).src = img+ "closed.gif";
		}
		else {
			obj1.display = 'block';
			if (obj2 != null)
				obj2.display = 'block';
			if (obj3 != null)
				obj3.display = 'block';
			if (picID != null)
				if (d == "up") document.getElementById(picID).src = img+ "openup.gif";
				if (d == "down") document.getElementById(picID).src = img+ "opendown.gif";
		}
	}
}

/* toggle - Description:
		Open and close layers above or below.
 */
function toggle(img,objectID,picID,d) {
	if (document.getElementById) {
		var obj = document.getElementById(objectID).style;
		if (obj.display == 'block') {
			obj.display = 'none';
			if (picID != null)
				document.getElementById(picID).src = img+ "closed.gif";
		}
		else {
			obj.display = 'block';
			if (picID != null)
				if (d == "up") document.getElementById(picID).src = img+ "openup.gif";
				if (d == "down") document.getElementById(picID).src = img+ "opendown.gif";
		}
	}
}

/* openPMD - Description:
		Controls phone,map,directions links.
 */
function openPMD(context,img,couponSlugID,addressID,zoneMapId,contentZoneId,caller,merchant) {
	if (document.getElementById) {
		if (document.getElementById("id"+couponSlugID) != null) {
			//Load variable with hidden form value
			var addressID = document.getElementById("id"+couponSlugID).value;
		}
		else {
			var addressID = addressID;
		}
		//Open/Close Phone
		if (caller == "phone") {
			//Only record dcs hit & featureTrack on open
			if (document.getElementById('phone'+couponSlugID).style.display != 'block') {
				dcsExec('VP_click=couponSlugID'+couponSlugID+'PhoneClick');
				featureTrack(context,contentZoneId,zoneMapId,253);
			}
			toggle(img,'phone'+couponSlugID,'pi'+couponSlugID,'up');
		}
		//Generate Map Link
		if (caller == "map") {
			openWindow(context+ "generateMap.do?couponSlugAddressId=" +addressID+ "&zoneMapId=" +zoneMapId+ "&contentZoneId=" +contentZoneId+ "&merchant=" +merchant,'md',657,570);
		}
		//Generate Directions Link
		if (caller == "directions"){
			openWindow(context+ "generateDirections.do?couponSlugAddressId=" +addressID+ "&zoneMapId=" +zoneMapId+ "&contentZoneId=" +contentZoneId+ "&merchant=" +merchant,'md',657,570);
		}
	}
}

/* visitSite - Description:
		Controls Visit Website button.
 */
function visitSite(img,couponSlugID) {
	if (document.getElementById) {
		//Change visit website button to visited website button
		document.getElementById("sitebutton"+couponSlugID).src = img+ 'btn_visited_website.gif';
	}
}

/* printNowTip - Description:
		Displays message if user selects "Print Now" 3 times.
 */
function printNowTip() {
		tip('<p><b>You Can Print More Than One Coupon Per Page And Save Paper.</b></p><p>For your convenience, we now have an easier to use Coupon Basket.<br /> Just add your coupons to your basket.<br /> Click View Basket at the top of the list of coupons.<br /> Then print coupons.</p><p>Approximately 3 coupons will print per page. It will help you save paper and make it easy to review your coupons before you print them.</p>','',410);
}

/* printBasket - Description:
		Prints contents of basket.
 */
function printBasket(url) {
	document.location = url;
}