var objDetailCurrent;
var cartVisible = false;
var domainBase = window.location.hostname.lastIndexOf('mrmealdeal');
domainBase = window.location.hostname.substring(domainBase);

preloadImage1 = new Image(184, 70); 
preloadImage1.src = "/images/clipped.gif"; 
preloadImage2 = new Image(184, 70); 
preloadImage2.src = "/images/clippedAlt.gif"; 
preloadImage3 = new Image(184, 70); 
preloadImage3.src = "/images/clippedHighlight.gif"; 
preloadImage4 = new Image(184, 70); 
preloadImage4.src = "/images/clippedEEF.gif"; 

function setDetailBox(idDetailNext){
	var objDetailNext = document.getElementById(idDetailNext);
	if(objDetailNext){
		if(!objDetailCurrent){
			if(document.getElementById('detailFirst')){
				objDetailCurrent = document.getElementById('detailFirst').firstChild;
				if(objDetailNext != objDetailCurrent){
					objDetailCurrent.style.visibility = 'hidden';
					objDetailNext.style.visibility = 'visible';
					objDetailCurrent = objDetailNext;
				}
			}
			else{
				objDetailNext.style.visibility = 'visible';
				objDetailCurrent = objDetailNext;
			}
		}
		else if(objDetailNext != objDetailCurrent){
			objDetailCurrent.style.visibility = 'hidden';
			objDetailNext.style.visibility = 'visible';
			objDetailCurrent = objDetailNext;
		}
	}
}

function notEmpty(objLink){
	if(!arrCart.length){
		alert('Your cart is currently empty.');
	}
	else{
		var popup = window.open(objLink.href, 'popup');
		if(window.focus) popup.focus();
	}
	return false;
}

function trOver(objRow, cid){
	setDetailBox(cid);
}

function trOut(e, objRow){
	if(!e) var e = window.event;
	var toElement = e.relatedTarget || e.toElement;
	var objButtons = objRow.getElementsByTagName('span');
	if(toElement != objButtons[1] && toElement != objButtons[1].parentNode){
		var objCartContents = document.getElementById('cartContents');
		if(!cartVisible && objCartContents.offsetWidth > 0 && objCartContents.offsetHeight > 0){
			objCartContents.style.display = 'none';
			document.getElementById('buttonCartView').innerHTML = '&#9660; <em>O</em>pen';
		}
	}
}

function divOver(objRow){
	setDetailBox('c' + objRow.id.substring(1));
}

function divOut(objRow){
}

function labelOver(objLabel){
	setDetailBox('h' + objLabel.id.substr(4, 1));
}

function labelOut(objLabel){
}

function mobileOver(e){
	if(!e) var e = window.event;
	setDetailBox('hMobile');
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
}

function toggleCart(objButton){
	cartSync();
	var objCartContents = document.getElementById('cartContents');
	if(objCartContents.offsetWidth > 0 && objCartContents.offsetHeight > 0){
		objCartContents.style.display = 'none';
		objButton.innerHTML = '&#9660; <em>O</em>pen';
		cartVisible = false;
	}
	else{
		objCartContents.style.display = 'block';
		objButton.innerHTML = '&#9650; Cl<em>o</em>se';
		cartVisible = true;
	}
	return false;
}

function cartPack64(){
	var digits64 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
	var cart64 = digits64.charAt((qtySize << 4) | cartRemainder) + cartEnd;
	var tempValue = Math.max(0, didSize - 4);
	var tempSize = 4;
	for(var i = 0; i < arrCart.length; i++){
		tempValue = (((arrCart[i].did << qtySize) | (arrCart[i].qty & ~(-1 << qtySize))) << tempSize) | tempValue;
		tempSize += didSize + qtySize;
		while(tempSize >= 6){
			cart64 = digits64.charAt(tempValue & 63) + cart64;
			tempValue = tempValue >> 6;
			tempSize -= 6;
		}
	}
	if(tempSize > 0) cart64 = digits64.charAt(tempValue) + cart64;
	return cart64;
}

function cartRemove(objButton){
	toggleDeal(objButton.parentNode.id.substring(1));
}

function qtyPlus(objButton){
	cartSync();
	var did = objButton.parentNode.parentNode.id.substring(1);
	if(arrCartMap[did] >= 0){
		var qty = arrCart[arrCartMap[did]].qty;
		if(qty < 4){
			qty++;
			arrCart[arrCartMap[did]].qty = qty;
			objButton.parentNode.childNodes[1].innerHTML = 'Qty:' + qty;
			if(qty == 4){
				qtySize = 3;
			}
			else if(qty == 3 || qty == 2){
				qtySize = Math.max(qtySize, 2);
			}
			else if(qtySize == 1){
				qtySize = arrCart[0].qty;
				for(var i = 1; i < arrCart.length; i++) qtySize = Math.min(qtySize, arrCart[i].qty);
				qtySize = (qtySize + 1) % 2;
			}
			cart64 = cartPack64();
			var dateExp = new Date();
			dateExp.setFullYear(dateExp.getFullYear() + 10);
			setCookie('cart', cart64, dateExp, '/', '.' + domainBase);
		}
	}
}

function qtyMinus(objButton){
	cartSync();
	var did = objButton.parentNode.parentNode.id.substring(1);
	if(arrCartMap[did] >= 0){
		var qty = arrCart[arrCartMap[did]].qty;
		if(qty > 0){
			qty--;
			arrCart[arrCartMap[did]].qty = qty;
			objButton.parentNode.childNodes[1].innerHTML = 'Qty:' + qty;
			if(qty == 0){
				qtySize = Math.max(qtySize, 1);
			}
			else if(qtySize < 3 || qty < 3){
				qtySize = arrCart[0].qty;
				var qtySizeMin = qtySize;
				for(var i = 1; i < arrCart.length; i++){
					qtySize = Math.max(qtySize, arrCart[i].qty);
					qtySizeMin = Math.min(qtySizeMin, arrCart[i].qty);
				}
				if(qtySize == 1){
					qtySize = (qtySizeMin + 1) % 2;
				}
				else if(qtySize == 4){
					qtySize = 3;
				}
				else{
					qtySize = 2;
				}
			}
			cart64 = cartPack64();
			var dateExp = new Date();
			dateExp.setFullYear(dateExp.getFullYear() + 10);
			setCookie('cart', cart64, dateExp, '/', '.' + domainBase);
		}
	}
}

function getCookie(name){
	if(!name) return null;
	var arrCookie = document.cookie.split(';');
	for(var i= arrCookie.length - 1; i >= 0; i--){
		var nameValue = arrCookie[i];
		while(nameValue.charAt(0) == ' ') nameValue = nameValue.substr(1);
		if(nameValue.indexOf(name + '=') == 0) return nameValue.substr(name.length + 1);
	}
	return null;
}

function setCookie(name, value, expires, path, domain, secure){
	if(!name) return;
	var cookieString = name + '=' + ((value) ? value : '');
	if(expires) cookieString += '; expires=' + expires.toGMTString();
	if(path) cookieString += '; path=' + path;
	if(domain) cookieString += '; domain=' + domain;
	if(secure) cookieString += '; secure';
	document.cookie = cookieString;
}

function itemCreate(did, qty, objCartContents, objAnchor, objButton){
	var strRestaurant, strDeal;
	if(typeof qty != 'number') qty = 1;
	if(!objCartContents) objCartContents = document.getElementById('cartContents');
	if(!objAnchor) objAnchor = document.getElementById('a' + did);
	if(objAnchor){
		if(!objButton) objButton = objAnchor.getElementsByTagName('span')[0];
		objAnchor.parentNode.className = 'colDLclipped';
		objButton.innerHTML = '- Unclip';
		var spans = objAnchor.parentNode.parentNode.getElementsByTagName('span');
		strRestaurant = spans[0].childNodes[0].nodeValue;
		strDeal = objAnchor.childNodes[0].nodeValue;
	}
	else{
		strRestaurant = 'Deal #' + did;
		strDeal = '(refresh page to see info)';
	}
	var objItem = document.getElementById('cartItemClone');
	objItem = objItem.cloneNode(true);
	objItem.id = 'k' + did;
	objItem.childNodes[0].innerHTML = strRestaurant;
	objItem.childNodes[1].innerHTML = strDeal;
	if(qty != 1) objItem.childNodes[3].childNodes[1].innerHTML = 'Qty:' + qty;
	objCartContents.appendChild(objItem);
}

function toggleDeal(did){
	cartSync();
	var cntDeals;
	var objCartDisplay = document.getElementById('cartDisplay');
	var objCartContents = document.getElementById('cartContents');
	var objAnchor = document.getElementById('a' + did);
	var buttons = objAnchor ? objAnchor.getElementsByTagName('span') : null;
	if(objAnchor && objAnchor.parentNode.parentNode.className.substr(3, 1) == '2'){
		var popup = window.open(objAnchor.href, 'popup');
		if(window.focus) popup.focus();
		return false;
	}
	else if(arrCartMap[did] >= 0){
		var objRemove = document.getElementById('k' + did);
		if(objRemove) objCartContents.removeChild(objRemove);
		if(objAnchor){
			objAnchor.parentNode.className = 'colDL';
			buttons[0].innerHTML = '+ Clip';
		}
		arrCart.splice(arrCartMap[did], 1);
		cntDeals = arrCart.length;
		if(cntDeals == 0) document.getElementById('k0').style.display = 'block';
		objCartContents.style.display = 'block';
		objCartDisplay.innerHTML = cntDeals==1 ? '1 Deal Clipped' : cntDeals + ' Deals Clipped';
		arrCartMap.length = 0;
		if(cntDeals == 0){
			qtySize = 0;
			didSize = 4;
		}
		else{
			didSize = arrCart[0].did;
			qtySize = arrCart[0].qty;
			var qtySizeMin = qtySize;
			arrCartMap[didSize] = 0;
			for(var i = 1; i < arrCart.length; i++){
				arrCartMap[arrCart[i].did] = i;
				didSize = Math.max(didSize, arrCart[i].did);
				qtySize = Math.max(qtySize, arrCart[i].qty);
				qtySizeMin = Math.min(qtySizeMin, arrCart[i].qty);
			}
			didSize = Math.ceil(Math.log(didSize + 1)/Math.log(2));
			if(qtySize == 1){
				qtySize = (qtySizeMin + 1) % 2;
			}
			else if(qtySize == 4){
				qtySize = 3;
			}
			else{
				qtySize = 2;
			}
		}
	}
	else{
		document.getElementById('buttonCartView').innerHTML = '&#9650; Cl<em>o</em>se';
		itemCreate(did, 1, objCartContents, objAnchor, buttons[0]);
		document.getElementById('k0').style.display = 'none';
		objCartContents.style.display = 'block';
		arrCartMap[did] = arrCart.length;
		arrCart[arrCart.length] = {did:did, qty:1};
		cntDeals = arrCart.length;
		objCartDisplay.innerHTML = (cntDeals == 1) ? '1 Deal Clipped' : cntDeals + ' Deals Clipped';
		didSize = Math.max(didSize, Math.ceil(Math.log(did + 1)/Math.log(2)));
	}
	cart64 = cartPack64();
	var dateExp = new Date();
	dateExp.setFullYear(dateExp.getFullYear() + 10);
	setCookie('cart', cart64, dateExp, '/', '.' + domainBase);
	return false;
}

function itemUnpack(objTemp, arrCartOld, arrCartMapOld, objCartContents){
	var did = (objTemp.v >> qtySize) & ~(-1 << didSize);
	if(did > 0){
		var qty = qtySize ? objTemp.v & ~(-1 << qtySize) : 1;
		arrCartMap[did] = arrCart.length;
		arrCart[arrCart.length] = {did:did, qty:qty};
		if(arrCartMapOld[did] >= 0){
			var objItem = arrCartOld[arrCartMapOld[did]].node;
			objItem.childNodes[3].childNodes[1].innerHTML = 'Qty:' + qty;
			objCartContents.appendChild(objItem);
			arrCartOld[arrCartMapOld[did]].did = 0;
		}
		else{
			itemCreate(did, qty, objCartContents);
		}
		objTemp.v = objTemp.v >> (qtySize + didSize);
		objTemp.s -= qtySize + didSize;
	}
}

function cartSync(){
	var cart64Cookie = getCookie('cart');
	if(cart64Cookie != cart64){
		var arrCartOld = [];
		var arrCartMapOld = [];
		var objCartContents = document.getElementById('cartContents');
		for(var i = 0; i < arrCart.length; i++){
			objItem = document.getElementById('k' + arrCart[i].did);
			arrCartOld[i] = {did:arrCart[i].did, qty:arrCart[i].qty, node:objItem.cloneNode(true)};
			arrCartMapOld[arrCart[i].did] = i;
			objCartContents.removeChild(objItem);
		}
		var digits64 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
		arrCart.length = 0;
		arrCartMap.length = 0;
		cart64 = cart64Cookie;
		cart64Length = cart64.length;
		if(cart64Length <= 9){
			qtySize = 0;
			didSize = 4;
			cartRemainder = cart64Length==9 ? digits64.indexOf(cart64.charAt(0)) & 15 : 0;
		}
		else{
			var idx64 = cart64Length - 11;
			var sixBits = digits64.indexOf(cart64.charAt(idx64 + 2));
			cartRemainder = sixBits & 15;
			qtySize = sixBits >> 4;
			sixBits = digits64.indexOf(cart64.charAt(idx64 + 1));
			didSize = (sixBits & 15) + 4;
			var objTemp = {v:sixBits>>4, s:2};
			while(idx64 >= 0){
				sixBits = digits64.indexOf(cart64.charAt(idx64));
				objTemp.v = (sixBits << objTemp.s) | objTemp.v;
				objTemp.s += 6;
				if(objTemp.s >= qtySize + didSize) itemUnpack(objTemp, arrCartOld, arrCartMapOld, objCartContents);
				idx64--;
			}
			if(objTemp.s > qtySize) itemUnpack(objTemp, arrCartOld, arrCartMapOld, objCartContents);
		}
		var objAnchor, buttons;
		for(i = 0; i < arrCartOld.length; i++){
			if(arrCartOld[i].did > 0){
				objAnchor = document.getElementById('a' + arrCartOld[i].did);
				if(objAnchor){
					buttons = objAnchor.getElementsByTagName('span');
					objAnchor.parentNode.className = 'colDL';
					buttons[0].innerHTML = '+ Clip';
				}
			}
		}
		var cntDeals = arrCart.length;
		document.getElementById('k0').style.display = (cntDeals > 0) ? 'none' : 'block';
		if(cntDeals != arrCartOld.length){
			document.getElementById('cartDisplay').innerHTML = (cntDeals == 1) ? '1 Deal Clipped' : cntDeals + ' Deals Clipped';
		}
	}
}

function goMap(){
	var objForm = document.getElementById('searchForm');
	objForm.action = '/my_location.php';
	objForm.submit();
	return false;
}

function init(){
	var strP = 'Pho';
	var strE = '<';
	var objP = document.getElementById('tmpP');
	var objE = document.getElementById('tmpE');
	strP += 'ne: (8';
	strE += 'a href="ma';
	strP += '08) 7';
	strE += 'ilto:info&#6';
	strP += '7';
	strE += '4;mrmealdeal&#4';
	strP += '2';
	strE += '6;co';
	strP += '-';
	strE += 'm">E';
	strP += '8';
	strE += 'mai';
	strP += '9';
	strE += 'l U';
	strP += '0';
	strE += 's<';
	strP += '4';
	strE += '/a>';
	objP.innerHTML = strP;
	objE.innerHTML = strE;
}

