
/*Add to cart functions*/

var request;
var queryString;
var theFormID;
var doFade;

function formFixer() {
  var forms = document.forms;
  for (var i = 0; i < forms.length; i++) {
    if (forms[i].name && forms[i].name.indexOf("ATC") != -1) {
      var theAction = forms[i].action;
      forms[i].action = "javascript:void%200";
      forms[i].setAttribute("rel", theAction);
      forms[i].onsubmit = function() {
        return false;
      }
    }
  }
}

/*if (window.attachEvent) { 
  window.attachEvent("onload", formFixer); 
} 
else {  
  window.addEventListener("load", formFixer, false); 
}*/

function addToCart(theFormName) {
  var iboxATC = document.getElementById("ibox_content");
  if (iboxATC) {
     var theForm = iboxATC.getElementsByTagName("form")[theFormName];
     if (theForm) {
        sendData(theForm, theForm.getAttribute("rel"));
     }
  }
}

function sendData(theForm, theAction) {
  setLoaderVisible(true);
  setQueryString(theForm);
  httpRequest("POST", theAction, true);
}

function setLoaderVisible(visible) {
  var iboxATC = document.getElementById("ibox_content");
  if (iboxATC) {
     iboxATC.innerHTML = "<div align='center'><br>Please wait while your cart is updated...<br><br><img src='addingToCart.gif' /></div>";
  }
}

function showCartSummaryInIbox() {
  var iboxATC = document.getElementById("ibox_content");
  var cart = document.getElementById("cart");
  var closeLink = document.getElementById("ibox_close_a");
  if (iboxATC && cart && closeLink) {
    closeLink.innerHTML = "OK";
    iboxATC.innerHTML = "<div id='success'><br><img src='tick.jpg' align='absmiddle' /> Product added to cart<br>" + cart.innerHTML + "</div>";
  }
}

function showErrorInIbox() {
  var iboxATC = document.getElementById("ibox_content");
  var closeLink = document.getElementById("ibox_close_a");
  if (iboxATC && closeLink) {
    iboxATC.innerHTML = "<br>The product was not added to cart. Please ensure that you complete all required fields.";
    closeLink.innerHTML = "OK";
  }
}

function setQueryString(theForm) {
  queryString = "";
  var elementCount = theForm.elements.length;
  for (var i = 0; i < elementCount; i++) {
      queryString += theForm.elements[i].name + "=" + encodeURIComponent(theForm.elements[i].value);
      if (i < elementCount - 1) queryString += "&";
  }
}

function httpRequest(reqType, url, asynch) {
  //Mozilla
  if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
  }
  //Microsoft
  else if (window.ActiveXObject) {
    request = new ActiveXObject("Msxml2.XMLHTTP");
    if (!request) request = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (request) {
    initReq(reqType, url, asynch);
  }
  else {
    window.alert("Your browser does not support AJAX!");
  }
}

function initReq(reqType, url, asynch) {
  request.onreadystatechange = handleResponse;
  try {
    request.open(reqType, url, asynch);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    request.send(queryString);
  }
  catch (e) {
    alert(e);
  }
}

function handleResponse() {
//alert("Ready state:" + request.readyState);
  if (request.readyState == 4) {
//alert("Status:" +request.status);
    if (request.status == 200) {
      if (request.responseText.indexOf("<!--ATCERROR-->") == -1) {
        loadShoppingCartSummary();
        showCartSummaryInIbox();
      }
      else {
        showErrorInIbox();
      }
    }
    else {
      window.alert("XMLHttpRequest failed!");
    }
  }
}

function loadShoppingCartSummary() {
  var theSummary = document.getElementById("cart");
  var items = getCartItem(3);
  if (items == 0) theSummary.style.display = "none";
  else {
     var newHTML = "<br><h3 style='margin:0px 0px 6px 0px;padding:0px;font-size:14px;'>Shopping Basket</h3>";
     newHTML += "<div style='margin-bottom:6px'>Items: " + items;
     newHTML += "; Value: " + getCartItem(1) + "</div>";
     theSummary.innerHTML = newHTML + document.getElementById("cartlinks").innerHTML;
     theSummary.style.display = "block";
  }
}

function showCartMessage(content) {
  var msgDiv = document.getElementById("atcmsg" + theFormID);
  if (msgDiv) {
    var msgSpan = msgDiv.getElementsByTagName("span")[0];
    if (msgSpan) {
      msgSpan.innerHTML = content;
    }
    msgDiv.style.display = "block";
  }
}

/*Home page beverage scroller*/

function BeverageScroller(beverage) {
	var getImg = document.getElementById(beverage).getElementsByTagName("IMG");
	var getLi = document.getElementById(beverage).getElementsByTagName("LI");

	for (var i=0; i<getImg.length; i++) {
			getImg[i].onclick=function() {
			if ((this.className.indexOf('left'))!=-1) {
				for (var x=getLi.length-1; x>0; x--) {
					if ((getLi[x].className.indexOf('chosen'))!=-1)	{
						getLi[x].className = "";
						x--;
						if (x>-1) {

							getLi[x].className="chosen";
								if (x>-1 && x<getLi.length-6){
									if ((getLi[x+6].className.indexOf('hide'))==-1)
									{
										getLi[x+6].className="hide";
									}
								}
							}
						}
					}
				}

            /*if (this.className.indexOf('left') != -1)
			{
				for (var x = getLi.length-1; x > 0; x--)
				{
					//if (getLi.length - x > 7) break;
					alert(getLi[x].className);
					
					if (getLi[x].className.indexOf('chosen') != -1)
					{
					   getLi[x].className = "hide";
					   getLi[--x].className = "chosen";
					   for (var y = 6; y > 0; y++)
						{
						  getLi[x+y].className = "";
						}
					}
				}
			}*/

			if (this.className.indexOf('right') != -1)
			{
				for (var x = 0; x < getLi.length; x++)
				{
			    if (getLi.length - x < 7)
			    {
			       break;
			    }
				  if (getLi[x].className.indexOf('chosen') != -1 && x != getLi.length)
				  {
					  getLi[x].className = "hide";
						getLi[++x].className = "chosen";
						for (var y = 1; y < 6; y++)
						{
						  getLi[x+y].className = "";
						}
					}
					
						}
					}
				}
			}
		


		for (var i=0; i<getLi.length; i++) {
			getLi[i].onclick=function() {
				for (var x=0; x<getLi.length; x++) {
					if ((getLi[x].className.indexOf('chosen'))!=-1)	{
						getLi[x].className=getLi[x].className.replace("chosen", "");
					}
				}
			this.className+="chosen";		
			}
		}
	}
	
/*search*/

function Beverage(type) {
   this.beverageType = type;
   this.length = 50;
   this.counter = 0;
}

var searchTea = new Beverage('Tea');;
var searchCoffee = new Beverage('Coffee');

Beverage.prototype.addType = function(type) {
   for (var i = 0; i < this.counter; i++) {
      if (this[i] == type) return;
   }
   this[this.counter++] = type;
}

Beverage.prototype.validate = function() {
   this.length = this.counter;
}

function resortTypeList(beverageType) {
   var typeList = document.getElementById("TypeList");
   if (!typeList) return;
   
   removeInvalidOptions(typeList);
   var selectedBeverage = beverageType == "Tea" ? searchTea : searchCoffee;
   for (var i = 0; i < selectedBeverage.length; i++) {
        var newElement = document.createElement("option");
        newElement.setAttribute("value", selectedBeverage[i]);
        newElement.innerHTML = selectedBeverage[i];
        typeList.appendChild(newElement);
   }
}

function removeInvalidOptions(list) {
  if (list.hasChildNodes()) {
    while (list.childNodes.length > 1) {
      list.removeChild(list.childNodes[list.childNodes.length-1]);
    }
  }
}

function checkForm(obj) {
   if (obj == null) return false;
   var msg = "";
   var elems = obj.childNodes;
   for (var i = 0; i < elems.length; i++) {
	  if (elems[i].type == "text" && !elems[i].value) {
	      msg += "\n'" + elems[i].name + "' must be supplied.";
	  }
   }
   if (msg != "") {
      window.alert("The following items must be fixed before the form can be submitted.\n" + msg + "\n");
	  return false;
   }
   return true;
}
