
var COOKIE_NAME="ajax-cart-name";
var COOKIE_CART="ajax-cart-count";

function initRequest() {
       if (window.XMLHttpRequest) {
           return new XMLHttpRequest();
       } else if (window.ActiveXObject) {
           isIE = true;
           return new ActiveXObject("Microsoft.XMLHTTP");
       }
   }

function loadMostRecent(){
	
	 var url = "/ShoppingBasket?action=info";

	var req = initRequest();
           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200 & req.responseXML != null) {					  
                       parseMessages(req.responseXML);
                   } else if (req.status == 204 | req.responseXML == null){
                       clearTable();
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);
}

function dologin(){
	var password=(document.getElementById("password").value);
	var email=document.getElementById("email").value
	 var url = "/ajaxlogin?email="+email+"&password="+password+ 
		"&action=login&rnd="+Math.random();

	var req = initRequest();
           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {	
					  // alert(req.responseText);
                       parseLoginResponse(req.responseXML,true);
                   } else if (req.status == 204){
                       
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);		   
}

function checkLoggedIn(){
	 var url = "/ajaxlogin?action=checklogin&rnd="+Math.random();
	var loginFound=false;
	var req = initRequest();

           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {
						loginFound=true
                       parseLoginResponse(req.responseXML,false);

                   } else if (req.status == 204){
                 
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);	
		  // if(!loginFound)
			   parseCookieValues();
		//getBasketCount();
}

function parseLoginResponse(responseXML,isLoginAttempt){
	var user = responseXML.getElementsByTagName('user').item(0);

	if (user.childNodes.length > 0) {
	   //completeTable.setAttribute("bordercolor", "black");
	   //completeTable.setAttribute("border", "1");
	} else {
	   clearTable();
	}
	//var item=getChildNode(basket)
	var userID= getChildNodeByName(user,'userID')
	if(userID!='0'){
		var firstname = getChildNodeByName(user,'firstname')
		var lastname=getChildNodeByName(user,'lastname')
		var count=getChildNodeByName(user,'count')
		var logout=document.createElement('a');
		logout.setAttribute('href', '/logout.jsp');
		logout.setAttribute('id','logoutlink');

		var myaccount=document.createElement('a');
		myaccount.setAttribute('href', '/members/home.do');
		myaccount.setAttribute('id','myaccount');
		myaccount.innerHTML="my account";
				
setCookie(COOKIE_CART,count);
document.getElementById("viewCartBottomLeft").innerHTML="You have "+count+" item(s) in your cart:";
		document.getElementById("loginarea").innerHTML="Welcome, "+firstname+" - ";	
		document.getElementById("loginarea").appendChild(logout);	
		document.getElementById("logoutlink").innerHTML="logout";
		//document.getElementById("loginarea").innerHTML=document.getElementById("loginarea").innerHTML+" | ";
		document.getElementById("logoutareatop").innerHTML="";
		document.getElementById("loginareatop").innherHTML="sdfsdf";
		//document.getElementById("myaccount").innerHTML="my account";
		document.getElementById("logoutareatop").appendChild(myaccount)
	
	}else{
		if(isLoginAttempt)
			document.getElementById("logoutarea").innerHTML="<font color=red>login not found</font>";
	}
}


   function addToCart(index,productID) {
	  
	   var numItems=document.forms[index].quantity;
		var schedule=document.forms[index].schedule;
		var customSchedule="";
		var scheduleValue="";

		//alert(schedule)
		try{
		    if (schedule != null){
			    if(escape(schedule.value)=='customPurchase' || escape(schedule.value)=='customNotify'){
					    customSchedule=escape(document.forms[index].customTime.value)+' '+escape(document.forms[index].customType.value)
    				
			    }else
				    customSchedule=escape(document.forms[index].time.value);
		    }
		}catch(e){}
		if(schedule==null)
			scheduleValue="";
		else
			scheduleValue=escape(schedule.value);
		if(customSchedule==null)
			customSchedule="";
		//if (numItems.value == "") {
        //   clearTable();
      // } else { 
		  
           var url = "/ShoppingBasket?action=add&quantity=" + 
                   escape(numItems.value)+"&productID="+productID+
			   "&schedule="+scheduleValue+"&custom="+customSchedule+"&random="+Math.random();
		 
           var req = initRequest();
           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {
					  
                       parseMessages(req.responseXML);
                   } else if (req.status == 204){
                       clearTable();
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);
     //  }
     
     window.location.hash="cartdetails"; 

   }

function clearTable(){
    setInnerHTML("cartRightTop", "");      
    setInnerHTML("cartRightTop2", "0 item(s) in your cart:"); 
                    
    setInnerHTML("cartTotal", "$0.00");  
    setInnerHTML("cartEstTotal", "$0.00");  
    setInnerHTML("recentItemTitle", "");  

    setInnerHTML("recentItemSubtitle", "");                                      
    setImageSource("recentItemImage", "/images/transparent.gif");
    setInnerHTML("justadded", "");
}

function getChildNode(node){
	
	for(var i=0;i<node.childNodes.length;i++){
		if(node.childNodes.item(i).nodeType==1)
			return node.childNodes.item(i);
		
	}
	return null;
}

function getChildNodeByName(node,name){
	if(!node)
		return null;
	for(var i=0;i<node.childNodes.length;i++){
		if(node.childNodes.item(i).nodeType==1 && node.childNodes.item(i).nodeName==name && node.childNodes.item(i).firstChild != null)
			return node.childNodes.item(i).childNodes.item(0).data;
	}
	
		return null;
}
   function parseMessages(responseXML) {

       clearTable();
       
       if (responseXML != null){
           
           if (responseXML.getElementsByTagName('basket').length > 0){
                   
                   var basket = responseXML.getElementsByTagName('basket').item(0);
                   if (basket.childNodes.length > 0) {
                       //completeTable.setAttribute("bordercolor", "black");
                       //completeTable.setAttribute("border", "1");
                   } else {
                       clearTable();
                   }
            	
		            var item=getChildNode(basket)
		            var title = getChildNodeByName(item,'title')

		            var count=getChildNodeByName(item,'count')
		            var total=getChildNodeByName(item,'total')
		            var image=getChildNodeByName(item,'thumbnail')
		            var subtitle;
		            try{
			            subtitle=getChildNodeByName(item,'subtitle')
		            }catch(e){}

                    document.getElementById("cartRightTop2").innerHTML=count+" item(s) in your cart:";
                    //document.getElementById("viewCartBottomLeft").innerHTML="You have "+count+" item(s) in your cart:";

                    document.getElementById("cartTotal").innerHTML="$"+total;
                    document.getElementById("cartEstTotal").innerHTML="$"+total;
                    document.getElementById("recentItemTitle").innerHTML=title;
                    
                    //document.getElementById("recentItemSubtitle").innerHTML=subtitle;
                    setInnerHTML("recentItemSubtitle", subtitle);
                  
                    
                    var imgTmp = new Image();
                    imgTmp.src = "/images/cart/"+image
                    var imgTmpHeight = imgTmp.height;
                    var imgTmpWidth = imgTmp.width;
                    
                    var imgWidth = 100;
                    var imgHeight = imgTmpHeight/imgTmpWidth * 100;
                    
                    
                    
                    document.getElementById("recentItemImage").src=imgTmp.src;
                    document.getElementById("recentItemImage").height=imgTmp.height;
                    document.getElementById("recentItemImage").width=imgWidth;
                    document.getElementById("recentItemImage").height=imgHeight;
                    
                    document.getElementById("justadded").innerHTML="Just added to your cart";

                    setCookie(COOKIE_CART,count);
                          // }
	        } //checks that basket exists
        }
   }
function getBasketCount(){
	
	var url = "/ShoppingBasket?action=count&rnd="+Math.random();
	var basketFound=false;
	var req = initRequest();

           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {
						var item=getChildNode(req.responseXML)
						var count=getChildNodeByName(item,'count')
						document.getElementById("viewCartBottomLeft").innerHTML="You have "+count+" item(s) in your cart:";

                   } else if (req.status == 204){
                 
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);	
		  
}
function setCookie ( cookieName, value ,secure)
{
  var cookie_string = cookieName + "=" + escape ( value );
cookie_string += "; path=/";
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

function deleteCookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function getCookie ( cookie_name )
{
  var results = document.cookie.match ( cookie_name + '=(.*?)(;|$)' );

  if ( results ){
	 
    return ( unescape ( results[1] ) );
  }else
    return null;
}
function parseCookieValues(){

	var count=getCookie(COOKIE_CART);

	if(count==null || count=='null' || isNaN(count))
		count="0";
//alert("You have "+count+" item(s) in your cart")

    if (document.getElementsByTagName('viewCartBottomLeft').length > 0){
        document.getElementById("viewCartBottomLeft").innerHTML="You have "+count+" item(s) in your cart";
    }
}

function setInnerHTML(strElement, strValue)
{
    var objTmp = document.getElementById(strElement);
    
    if (objTmp != null){
        objTmp.innerHTML = strValue;
    }
}

function setImageSource(strElement, strURL)
{
    var objTmp = document.getElementById(strElement);
    
    if (objTmp != null){
        objTmp.src = strURL;
        objTmp.height = 2;
    }
}