/*COPYRIGHT DREW WALLER - fizzstream 2007 - 2008*/


       var showDetail=false;var isIE=false;

   var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);
  // var globalShippingDiscount=true,globalProductCost=0,globalShippingCutOff=50;
  var adjustedCutOff=0;
  //  GBP=1;EUR=1.62;USD=1.71;
    GBPsym="&pound;";
    EURsym="&euro;";
    USDsym="$";
    currfactor=1;
    currsym=GBPsym;
    currcode="GBP";
    shipvalue=0;
   // discfactor=1;

	/* Order constructor */
	function LineItem(desc,price,qty,suid,ship,currency,discfactor) {
 		this.desc = desc;
 		this.price = price;
 		this.qty = qty;
 		this.suid = suid;
 		this.unitprice = price;
		this.ship = ship;
		this.unitship = ship;
		this.currency = currency;
		this.discount=discfactor;
	};

	/* define Order() constructor */
	function Order() {
		this.orders = new Array(arguments.length);
		for(i=0;i<arguments.length;i++){
   		    this.orders[i] = arguments[i];
		}
 	/* Order total method */
 	     this.totalPrice = function(n) {
		adjustedCutOff=globalShippingCutOff*currfactor;		
		var domstr="",totalQty=0;
   		var totalCost = new Number(0.00);
   		for(var i=0;i<this.orders.length;i++){
		   if (this.orders[i].currency != currcode || this.orders[i].discount != discfactor) {
			this.orders[i].price=Math.abs((((this.orders[i].unitprice * currfactor) * discfactor) * this.orders[i].qty).toFixed(2));
			this.orders[i].currency = currcode;
			this.orders[i].discount = discfactor;
		   }
		   if ( n=="ship" ) {
		      totalQty += this.orders[i].qty;
		      if ((globalProductCost > adjustedCutOff) && globalShippingDiscount) {
			this.orders[i].ship=0;shipvalue=0;
		      } else {
			this.orders[i].ship=Math.abs(((this.orders[i].unitship * currfactor) * this.orders[i].qty).toFixed(2));
		      }
		   }  
		    var itemNum=i+1;
		    var qtystr=this.orders[i].qty>1?" ("+this.orders[i].qty+")":"";
		    var desc=thisOrder.orders[i].desc+"<strong>"+qtystr+"</strong>";
		    domstr+=OrderDisplay(desc,itemNum,this.orders[i].price.toFixed(2));	
    
     		totalCost += (n=="price"?this.orders[i].price:this.orders[i].ship);
   		}
		totalCost=totalCost.toFixed(2);
		globalProductCost=(n=="price"?totalCost:globalProductCost);
		   if ( n=="ship" ) {
		        document.getElementById("ticket").innerHTML=domstr;
			var thisQuant=initialiseTabTotals(totalQty);
			document.getElementById("totals").innerHTML=thisQuant;
		        	document.getElementById("totalright").innerHTML=thisQuant;
		   }
 		return totalCost;
	     } ;

	/* remove item method (by desc[ription] comparison */
  	     this.removeItem = function(toRemove) {
       		var num=Math.abs(toRemove)-1;
      		for (var j=0; j < this.orders.length; j++) {
            		     if ( j == num) {
		        this.orders[j].qty--;
		        this.orders[j].price-=Math.abs(((this.orders[j].unitprice * currfactor) * discfactor).toFixed(2));
		        if (this.orders[j].qty==0) {
                		this.orders.splice(j, 1);
		        }
            		     }
        		}
  	     };
	/* add item method
	*/
 	this.addLineItem = function(obj) {
		var lineIndex=null;
		       if (obj.suid !=null ) {
		          for (var i=0; i<this.orders.length;i++) {
			if (obj.suid==this.orders[i].suid) {
			   this.orders[i].qty++;
			   this.orders[i].price+=Math.abs(((obj.price * currfactor) * discfactor).toFixed(2));
			   this.orders[i].currency=obj.currency;
			   lineIndex=i;
			   break;
		       	} 
		           }
			if (lineIndex==null) {
			   this.orders.push(obj);
			   lineIndex=this.orders.length-1;
			   this.orders[lineIndex].price=Math.abs(((obj.price * currfactor) * discfactor).toFixed(2));
			   this.orders[lineIndex].currency=obj.currency;
		       	}
		       } else {
			this.orders.push(obj);
			lineIndex=this.orders.length-1;
			this.orders[lineIndex].price=Math.abs(((obj.price * currfactor) * discfactor).toFixed(2));
			this.orders[lineIndex].currency=obj.currency;
		       }
	     return lineIndex;
	     };

	/* utility methods */
  	    this.length = new Function("return this.orders.length");
  	    this.averagePrice = new Function("return this.totalPrice()/this.orders.length");
	};

	/* Instantiate Order -  IN persist.js window.onload*/
	thisOrder=new Order();


	function initialiseTabTotals(tqty) {
		plural=tqty > 1?"s":"";
		return("<span style=\"padding-left:15px;\">Checkout "+tqty+" item"+plural+" </span>");
	};

	function OrderAdd(s,n,id,c) {
		n=Math.abs(n);
		c=Math.abs(c);
		objS=new LineItem(s,n,1,id,c,currcode,discfactor);
		var itemNum=thisOrder.addLineItem(objS);
		objS=null;
		showOrderTotal();
		return true;
	};

	function OrderDisplay(txt,num,amt) {
		var domstr="<table class=\"lister\">"
			+"<tr>"
			+"<td class=\"txt\">"+txt
			+"</td><td class=\"currency\"><strong> "+currsym+amt+"</strong>"
			+"</td><td class=\"small\"><div class=\"orderItem\" id=\""+num+"\">"
			+"<img src=\"assets/cross.gif\" alt=\"Delete item\" onclick=\"OrderRemove(this)\" "
			+"class=\"clearoff\" title=\"Delete\"/></div></td></tr></table>";
		return domstr;
	};

	function OrderRemove(t) {
	    thisOrder.removeItem(t.parentNode.id);
	    showOrderTotal();
	    return true;
	} ;

	function showOrderTotal() {
	    var tmp=thisOrder.totalPrice("price");
	    shipvalue=Math.abs(thisOrder.totalPrice("ship"));
	    var minShip=1*currfactor;
	//    var tmpShip=shipvalue==0?0:Math.max(minShip,shipvalue);
	    var tmpShip=shipvalue==0?0:shipvalue;

	    tmpTotal=(Math.abs(tmp)+Math.abs(tmpShip)).toFixed(2);
	    generateCartCookie();
	    document.getElementById("ticket").innerHTML+=finaliseOrders(tmp,tmpShip,tmpTotal);
	     if ( tmpTotal==0 ) {
	           document.getElementById("totals").innerHTML="Cart Empty";tp1.showPanel(0);
	           	document.getElementById("totalright").innerHTML="<span style=\"padding-left:15px;\">Cart Empty</span>";
		document.getElementById("ticket").innerHTML="";
		shipvalue=0;
		eraseCookie("fs_cart");
	     } else { 
	//	document.getElementById("totals").innerHTML+="Order Total: &pound;"+tmpTotal;
	           	document.getElementById("totalright").innerHTML+="<p>Order Total: "+currsym+tmpTotal+"<\p>\r\n \
						<div>\r\n \
						      <a href=\"#\" onclick=\"tp1.showPanel(2)\">Go To Checkout</a>\r\n \
						</div>";
	     }
	};

	function finaliseOrders(tmp,tmpShip,tmpTotal) {
	var hilite=discfactor==1?"black":"red";
	var showmsg=discfactor==0.8?"Armed Forces Discount":discfactor==0.9?"Member Discount Applied":"";
	var enabler=discfactor==1?"":"disabled=\"disabled\"";
	var domstr="";
	tmpShip=Math.abs(tmpShip).toFixed(2);
	 if(tmp== 0) {
//		document.getElementById("ticket").innerHTML="";
//		cp1.close();
	  } else {

		domstr+="<div style=\"text-align:right;margin-right:25px;margin-top:10px;font-weight:bold;\">Shipping: "+currsym+tmpShip+"</div>";
		domstr+="<div id=\"cartTotal\" style=\"text-align:right;margin-right:25px;margin-top:10px;font-weight:bold;color:"+hilite+";\">Total: "+currsym+tmpTotal+"</div>";
		domstr+="<div id=\"instruct\" style=\"margin-top:10px;\"><strong>Click the <img src=\"assets/cross.gif\" /> cross box alongside the price to remove an item.<br/>Clicking the 'Payment' button below, will link to our "
			+"<span style=\"color:red;\">SECURE</span> PayPal payment page. "
			+"There, you can login to your PayPal account or pay by any major credit card.</strong></div>";

		//domstr+="<div class=\"OrderBtn\">Click to checkout<br/>(Demo only - disconnected)<br/><img style=\"cursor:pointer;\" src=\"assets/bnr_paymentsBy_150x60.gif\" onclick=\"tmpDB()\"/></div>";
		domstr+="<div class=\"OrderBtn\">Click to checkout<br/><img style=\"cursor:pointer;\" src=\"assets/bnr_paymentsBy_150x60.gif\" onclick=\"doPayPal()\"/></div>";
	  }
	   return domstr;
	};

	function setDisc(t) 	{
		if ( /^[a-z0-9]{4,5}$/i.test(t.value)) {
			discfactor=dfMember;
			document.cookie = "fs_status=" + discfactor;
			document.cookie = "fs_code=" + t.value;
			showOrderTotal();
		} else if (/^ARMED FORCES$/i.test(t.value)) {
			discfactor=dfMilitary;
			document.cookie = "fs_status=" + discfactor;
			document.cookie = "fs_code=" + t.value;
			showOrderTotal();
		}
		//document.getElementById('dcode').value="No Discount";	
		//alert(re.test(t.value));
	};

	function tmpDB(){
		var sb=""
		sb+=Spry.Utils.serializeObject(thisOrder.orders);
		document.getElementById('dbug').innerHTML=sb;
	};
	function generateCartCookie() {
		var sb=""
		sb+=escape(Spry.Utils.serializeObject(thisOrder.orders));
		document.cookie = "fs_cart=" + sb;
	};

	function formatMoney(fp) { 
		return fp.toFixed(2);
	};

/* PayPal */
	function doPayPal(){
		var discCode=getCookie("fs_code");
		if (discfactor == 1 || discCode.length == 0) {
			discCode="";
		}
		var r="http://www.wickedequestrian.co.uk/thankyou.html" ;  
		var cr="http://www.wickedequestrian.co.uk/index.html" ;  
		var u=self.location.href
		var ustr=u.substr(0,u.lastIndexOf("/"));
		var uniqueID=new Date().getTime();
		//var currcode="GBP";

		//sform="<form id='ppform' action='http://www.wickedequestrian.co.uk/pptest.asp' method='POST' target='_blank'>"
		sform="<form id='ppform' action='https://www.paypal.com/cgi-bin/webscr' method='POST' target='_self'>"
		  +"<input type='hidden' name='cmd' value='_cart'/>"
		  +"<input type='hidden' name='business' value='sales@wickedequestrian.co.uk'/>"
		  +"<input type='hidden' name='item_name' value='"+uniqueID+"'/>"
		  +"<input type='hidden' name='currency_code' value='"+currcode+"'/>"
		  +"<input type='hidden' name='custom' value='"+discCode+"'>"
		  +"<input type='hidden' name='return' value='"+r+"'/>"
		  +"<input type='hidden' name='cancel_return' value='"+cr+"'/>"
		  +"<input type='image' name='submit' src='mybutt.gif' style='visibilty:hidden;' onerror='return false;'/>"
		  +"<input type='hidden' name='upload' value='1'/>";
		sform+=getBasketContent();

		sform+="</form>";
		document.getElementById("payForm").innerHTML=sform;
		document.getElementById("ppform").submit();
		document.getElementById("payForm").innerHTML="";

		//sform.submit();
	};


	function getBasketContent() {
		var ship=0;
	    	var minShip=1*currfactor;
		var x="",cnt=0;
		for (var i=0;i < thisOrder.length();i++) {
		     cnt=i+1;
		     var qty=thisOrder.orders[i].qty;
		     if (shipvalue < minShip) {
		           if (i==0) {
		//	ship=minShip.toFixed(2);
		        	ship=thisOrder.orders[i].ship.toFixed(2); 
		           } else {
			ship="0.00";
		           }
		     } else {
		        ship=thisOrder.orders[i].ship.toFixed(2); 
		     }
		     var desc=thisOrder.orders[i].desc;
		     var price=((thisOrder.orders[i].unitprice *currfactor) * discfactor).toFixed(2);
		     x+="<input type=\"hidden\" name=\"quantity_"+cnt+"\" value=\""+qty+"\"/> \
		            <input type=\"hidden\" name=\"shipping_"+cnt+"\" value=\""+ship+"\"/> \
		            <input type=\"hidden\" name=\"item_name_"+cnt+"\" value=\""+desc+"\"/> \
		            <input type=\"hidden\" name=\"amount_"+cnt+"\" value=\""+price+"\"/>";
		}
	  return x;
	};
	
	function swapCurrency(evt,nc){ /* not used this implement */
	  currcode=nc;
	  currfactor=eval(nc);
	  currsym=eval(nc+"sym");
	   if(evt=="click" && thisOrder.orders.length > 0 ) {
	     showOrderTotal();
	   }
	};


 
	function getPayPalHelp(){
		var src_url="https://www.paypal.com/cgi-bin/webscr?cmd=_help-ext&source_page=_home";
		newWindow = window.open(src_url,"newWindow","menubar=1,scrollbars=1,resizable=1,status=1,location=1,width=720,height=500,left=40,top=20");  
	};

function getCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return "";
};

function createCookie(name,value,mins) { /*days) {*/
	//if (days) {
	if (mins) {

		var date = new Date();
		//date.setTime(date.getTime()+(days*24*60*60*1000));
		date.setTime(date.getTime()+(mins*60*1000));

		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+";"; /*path=/";*/
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
};



