/***********************************************************************
*
* getCartItem		-	Gets the Actinic Cart Value & No of Items
*
* Input: nIndex	-	Cart item index to retrieve
*							1 = TOTAL_VALUE
*							3 = CART_COUNT
*
* Returns:				Requested cart item or 0 (zero) if not found
*
************************************************************************/

//CART_CONTENT = Cookie name
//1 = TOTAL_VALUE
//3 = CART_COUNT

function getCartItem(nIndex)
	{
	var act_cart= getCookie("CART_CONTENT")
	var sTemp =(act_cart != null) ? sTemp=act_cart.split("\t"):0;
	return (sTemp.length > 0) ? sTemp[nIndex] : 0;
	}
	
/***********************************************************************
*
* win	- calls up the WUP window
*
* Input   - None
* Returns - None
************************************************************************/

function win()
	{
	var sMsg = window.open("paycash1.htm","","height = 507, width = 400, left = 378, top = 40");
	}

/***********************************************************************
*
* GotoAnchor - JS for jumping to an anchor - some user agents don't handle
*				anchors correctly if BASE HREF is present
*
* Input: 				sAnchor
*
* Returns:				nothing
*
************************************************************************/

function GotoAnchor(sAnchor)
	{
	window.location.hash = sAnchor;
	}

/***********************************************************************
*
* format		-	formats user input
*
* Graham Bradley 2006
* Comments & bug reports to web@gbradley.co.uk
*
*
************************************************************************/

function format(el,f){
if (!el.value){
	return false;
	}
if (f=="upper"){
	el.value=el.value.toUpperCase();
	}
else if (f=="postcode"){
	el.value=(el.value.split(" ")).join("");
	el.value=el.value.substring(0,(el.value.length-3))+" "+el.value.substring((el.value.length-3),el.value.length)
	el.value=el.value.toUpperCase();
	}
else if (f=="lower"){
	el.value=el.value.toLowerCase();
	}
else if (f=="capitals"){
	el.value=el.value.toLowerCase();
	var re=/(^.|\s.)/gi;
	var arr=el.value.match(re);
	for (i=0;i<arr.length;i++){
		el.value=el.value.replace(arr[i],arr[i].toUpperCase());
		}
	var re=/(Mc(.)|Mac(.)|O'(.))/g;
	var arr=el.value.match(re);
	if (arr){
		for (i=0;i<arr.length;i++){
			el.value=el.value.replace(arr[i],arr[i].substring(0,arr[i].length-1)+(arr[i].substring(arr[i].length-1,arr[i].length)).toUpperCase());
			}
		}
	}
}

/***********************************************************************
*
* getFullCart		-	fetches cart content summary
*
* Returns:		-	HTML string for summary display
*
* Graham Bradley 2006
* 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 getFullCart(){

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 inc. VAT</b></td><td align='right'><b>VAR:TOTAL</b></td></tr>"
var tableClose="</table>"
var emptyLine="<b>Your cart is empty.</b>";

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));
	total=total+=(match[5]/100);
	}
if (match[4] > 0){
	str+=vatLine.replace("VAR:VAT",match[1]+(match[4]/100));
	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;
}

// multiimage support, Cetechuk.net 2006

/******************************************************************
Usage: Create 4 CUSTOMVARS IMG1 -> IMG4
Set properties to image name minus extension|width|height|alt&title
text.
Can use upto 4 images. Script will build table accordingly.
pop_win uses same window name as Act_Pop up
*******************************************************************/

function displayImages(img1,img2,img3,img4){
 // set unset parameters
var imgcnt=0;

if (img1=="" && img2=="" && img3=="" && img4==""){
    imgcnt++;
}

if (imgcnt==0){ //only display images if we've been passed some by Actinic

var Imgarr = new Array(img1,img2,img3,img4);
  
  document.write('<p class="actxsmall"><b>More images :</b></p><table border="0" cellpadding="0" cellspacing="4" align="left"><tr>');
  
    for(i=0;i<Imgarr.length;i++){
    var imgars = Imgarr[i].split("|");
    if(Imgarr[i]!=""){ // don't print empty cells for non-passed params
            document.write('<td><a href="javascript:ShowPopUp(\'pop_win.php?img_id='+imgars[0]+'\',840,640);"><img class="imgna" src="'+imgars[0]+'_tnl.jpg" border="0" width="'+imgars[1]+'" height="'+imgars[2]+'" alt="'+imgars[3]+'" title="'+imgars[3]+'" /></a></td>');
        }
    }
    
    
    document.write('</tr></table><br style="clear: both" /><p class="newcat"><b>Click thumbnail to zoom</b></p>');
 }
}