/***********************************************************************
*
* getMiniCart - fetches cart content summary
*
* Returns: - HTML string for summary display
*
* Graham Bradley 2007
* Comments & bug reports to web@gbradley.co.uk
*
* To make editing the output HTML easier, output code has been split into
* nine 'template' strings.
*
* tableOpen - the opening table code
* itemLine - repeated for each item in the cart
* shippingLine - for displaying shipping charges (if any)
* vatLine - for displaying VAT on items & shipping (if any)
* discountLine - for displaying discount total (if any)
* surchargeLine - for displaying surcharge total (if any)
* totalLine - for displaying the cart total
* tableClose - the closing table code
* emptyLine - displayed when cart is empty
*
* Within these templates, you can use variables to insert values into
* the summary, similar to variables in Actinic:
*
* VAR:QUANTITY - The quantity of item in cart
* VAR:TITLE - Abbreviated name of item
* VAR:LINK - URL of item via the cgi-bin
* VAR:PRICE - Formatted price of item
* VAR:SHIPPING - Total of shipping applied
* VAR:VAT - Total VAT on cart items & shipping
* VAR:DISCOUNT - Total of discounts applied
* VAR:SURCHARGE - Total of surcharges applied
* VAR:TOTAL - Grand total
*
* Variables can only be used in the templates in which they are found.
*
************************************************************************/

function getMiniCart(){

var tableOpen="<table width='100%'>";
var itemLine="<tr><td valign='top'>VAR:QUANTITYx </td><td><a href='VAR:LINK'>VAR:TITLE...</a></td><td align='right' valign='top'>VAR:PRICE</td></tr>"
var shippingLine="<tr><td colspan='2'>Shipping</td><td align='right'>VAR:SHIPPING</td></tr>"
var vatLine="<tr><td colspan='2'>VAT</td><td align='right'>VAR:VAT</td></tr>"
var discountLine="<tr><td colspan='2'>Discounts</td><td align='right'>VAR:DISCOUNT</td></tr>"
var surchargeLine="<tr><td colspan='2'>Surcharges</td><td align='right'>VAR:SURCHARGE</td></tr>"
var totalLine="</table><table width='100%'><tr><td><b>Total</b></td><td align='right'><b>VAR:TOTAL</b></td></tr>"
var tableClose="</table>"
var emptyLine="<div style='height: 0;'></div>"; // Was Your basket is empty

var cookie=getCartItem(4);

if (!cookie){
return emptyLine;
}
var re=new Array();
var match=new Array();
var total=0;
var str;
re[1]=/cur=([^&]*)&!/g;
re[2]=/&!(.*)/g;
re[3]=/ss=(.*)cur=/i;
re[4]=/tx=(.*)sh=/i;
re[5]=/sh=(.*)ss=/i;
for (i=1;i<re.length;i++){
match[i]=re[i].exec(cookie);
match[i]=match[i][1];
}
lines=match[2].split("&!");
store=new Array();
re[0]=/^(\d*)x/;
re[1]=/x([^>]*)>/;
re[2]=/>([^>]*)>/;
re[3]=/>([^>]*)$/;
str=tableOpen;
for (i=0;i<lines.length;i++){
for (j=0;j<re.length-2;j++){
detail=lines[i].match(re[j]);
store[j]=detail[1];
}
str+=itemLine.replace("VAR:QUANTITY",store[0]).replace("VAR:LINK",match[3]+"?PRODREF="+store[1]+"&NOLOGIN=1").replace("VAR:TITLE",store[2]).replace("VAR:PRICE",match[1]+((store[3]*1).toFixed(2)));
total+=(store[3]*1);
}
if (match[5] > 0){
str+=shippingLine.replace("VAR:SHIPPING",match[1]+(match[5]/100).toFixed(2));
total=total+=(match[5]/100);
}
if (match[4] > 0){
str+=vatLine.replace("VAR:VAT",match[1]+(match[4]/100).toFixed(2));
total=total+=(match[4]/100);
}
gTotal=getCartItem(1);
var r=/&#(\d*);/gi;
var m=new Array();
var f=new Array();
while((m = r.exec(gTotal))!=null){
f[f.length]=m[1];
}
for (i=0;i<f.length;i++){
gTotal=gTotal.replace("&#"+f[i]+";","");
}
total=total.toFixed(2);
gTotal=(gTotal/100).toFixed(2);
if (total>gTotal){
str=str+=discountLine.replace("VAR:DISCOUNT","-"+match[1]+(total-gTotal).toFixed(2));
}
else if (total<gTotal){
str=str+=surchargeLine.replace("VAR:SURCHARGE",match[1]+(gTotal-total).toFixed(2));
}
str+=totalLine.replace("VAR:TOTAL",match[1]+(gTotal));
str+=tableClose;
return str;
} 
