// ############################################################################
// shopping_basket                        Version 2                           #
// Copyright 1999-2003 PongKen Software   pongken@loxinfo.co.th               #
// Created 04/01/1999                     Last Modified  01/17/2003           #
// ############################################################################
// COPYRIGHT NOTICE                                                           #
// Copyright 1999-2003 PongKen Software  All Rights Reserved.                 #
//                                                                            #
// Use of this software is by permission only from PongKen Software.	      #
// Permission can be obtained via email from pongken@loxinfo.co.th            #
//                                                                            #
// shopping_basket may be used by anyone with permission, so long as this     #
// copyright notice and the comments above remain intact.                     #
// Removal or deletion of copyright notices in the following code of add.js   #
// is also expressly forbidden.                                               #
//                                                                            #
// By using this code you agree to indemnify PongKen Software and its         #
// principals from any liability that might arise from its use.               #
//                                                                            #
// Selling the code for this program without prior written consent is         #
// expressly forbidden.  In other words, please ask first before you try and  #
// make money off of our program.                                             #
//                                                                            #
// Obtain permission before redistributing this software over the Internet or #
// in any other medium.	In all cases copyright and header must remain intact. #
// ############################################################################

// shopping_basket release 2 by PongKen Software 
// © copyright PongKen Software 1999-2003
// All rights reserved.     

function pre_init()
{
	// if (popup.closed == 0) popup.close();
   	popup_open = 0;
	var doc = self.document;
	doc.writeln('<form name="required_first_form">');
	doc.writeln('<input type="hidden" name="product" value="">');
	doc.writeln('<input type="hidden" name="price" value=0>');
	doc.writeln('<input type="hidden" name="quantity" value=0>');
	doc.writeln('<input type="hidden" name="completed" value=0>');
	doc.writeln('</form>');
	if (top.basket == null) intercept();
}

function intercept()
{
	target = self.location.href;
	host = self.location.hostname;
	target = "http://" + host + "/cgi/redirect.pl?" + target;
	top.location.href = target;
}

function init(x,y)  
{ 	
	if (popup_open) return;     	 	
	var doc = self.document;
	doc.forms[0].completed.value = 0; 		 	
	doc.forms[0].quantity.value = 0; 	 	
	doc.forms[0].product.value = x; 	 	
	doc.forms[0].price.value = y;

 	bskt = top.basket.document.basket;

	var len = bskt.elements.length;   
	var counter = bskt.elements[0].value;  	 	 	

	if (counter != len) add_to_basket(); 	 	
	else basket_full_error();  
}    

function add_to_basket()  
{     
	// jump off point for future functionality
	var stall_for_time = how_many();  
}    

function how_many()  
{          	
	me = self.document.forms[0];          	
	popup = null;          	
	nam = popup;  	
	popuphm=window.open("howmany.html",nam,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=350,height=220,left=300,top=180');   
	popup_open = 1;
	k = 0;          	
	first_time = 1;          	
	interval = setInterval("check_if_completed()", 250); 
    	return "synchronize";  
}    

function check_if_completed()  
{            
	k++;     	
	var completed = me.completed.value;      	
	if ((popuphm.closed == 1) && (completed != 1)) {
		clearInterval(interval); 			
		k=0; 	
		popup_open = 0;		
		return;    
	}       	
	if ((completed == 1) && (first_time == 1)) {                  	
		clearInterval(interval);
    		not_closed(popuphm);
		if (me.elements[2].value != 0) { 
			var t = bskt.elements[0].value; 	 	
			bskt.elements[t].value = me.elements[0].value;
			qval = me.elements[2].value; 
			me.elements[2].value =  0;           	
			t++;          	
			bskt.elements[t].value = fp_kludge(me.elements[1].value);          
			t++;          	
			bskt.elements[t].value = qval;    
  		t++;        	
			bskt.elements[t].value = fp_kludge(me.elements[1].value*qval);        
			t++;          	
			bskt.elements[0].value = t; 
                         
			timeout = setTimeout("confirm_addition()",100);
			first_time = 0;  			 	
			var len = bskt.elements.length;			 
			var counter = bskt.elements[0].value; 	              
			if (counter == len)  timeout = setTimeout("basket_full_warning()",7500);                   			
		}          	
	}          	
	if (k >= 80) {                 			
		clearInterval(interval); 		 		   
		if (completed == 0 )  {        		
			not_closed(popuphm); 		 		
			timeout = setTimeout("perhaps()",100);
			k=0;      				
		}    	
	}  
}
 
function perhaps()
{
	popup = window.open("",nam,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=350,height=220,left=300,top=180');  
	popup_open = 1;  
	var pop = popup.document;
  					 
	pop.writeln('<title>s h o p p i n g _ b a s k e t </title>'); 
	pop.writeln('<body bgcolor="#ffeeb0">');              
	pop.writeln('<p><br><br><center><font size=3 color="#000000">Perhaps you have changed your mind about adding this<br><br> to your shopping basket.</font></center></p>');  					
	pop.writeln('<br><br><br><center><font face="Helvetica" size=2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software</font></center>');
	pop.writeln('<br></body>');              	
	timeout = setTimeout("not_closed(popup)",5000);           
}

function confirm_addition()  
{          	           
	popup = window.open("",nam,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=500,height=160,left=100,top=200');  
	popup_open = 1;
	var pop = popup.document;
   	pop.writeln('<title>s h o p p i n g _ b a s k e t </title>'); 	
	pop.writeln('<body bgcolor="#ffeeb0">');        	
	pop.writeln('<br><center><font size=3 color="#000000"><b> ' + qval + ' ' + me.product.value + ' </b><br><br>added to your shopping basket.</font></center><br>');           	
	pop.writeln('<center><font face="Helvetica" size = 2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software</font></center>'); 	
	pop.writeln('<br></body>');           	
	timeout = setTimeout("not_closed(popup)",5000);           
	qval = 0;  
}  

function basket_full_warning()  
{  	
	popup = window.open("",nam,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=350,height=220,left=300,top=180'); 
	popup_open = 1;
	var pop = popup.document;		
 	 	
	pop.writeln('<title>s h o p p i n g _ b a s k e t </title>'); 	
	pop.writeln('<body bgcolor="#ffeeb0">');   	
	pop.writeln('<p><br><center><font size=3 color="#000000">Your shopping basket is now full.<br><br>Please go to Order Desk to empty your shopping basket and place your order.</font></center></p>'); 	 	
	pop.writeln('<br><br><center><font face="Helvetica" size = 2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software</font></center>'); 	
	pop.writeln('<br></body>');    	
	timeout = setTimeout("not_closed(popup)",5000);   
}    

function basket_full_error()  
{ 	 
	popup_err = null;          	
	nam_err = popup_err;  	
	popup_err = window.open("",nam_err,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=350,height=220,left=300,top=180'); 	 
	popup_open = 1; 
	var pop = popup_err.document;	

	pop.writeln('<title>s h o p p i n g _ b a s k e t </title>'); 	
	pop.writeln('<body bgcolor="#ffeeb0">');   	
	pop.writeln('<p><br><center><font size=3 color="#000000">Sorry, your shopping basket is still full.<br><br>Please go to Order Desk to empty your shopping basket and place your order.</font></center></p>'); 	 	
	pop.writeln('<br><br><center><font face="Helvetica" size=2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software</font></center>'); 	
	pop.writeln('<br></body>');    	
	timeout = setTimeout("not_closed(popup_err)",5000);   
}             

function not_closed(win) 
{ 	
	if (win.closed == 0) win.close(); 	
	popup_open = 0;
	return; 
}  

function fp_kludge(z)
{
	var x = z*100;
	x = Math.round(x);
        x = parseInt(x);
	x = x/100;
	x = tz_kludge(x);
	return x;
} 
 
function tz_kludge(x)
{
	var str = new String(x);
	var res = str.indexOf(".");
	if (res == -1) {
		str = str + ".00";
		return (str);
	}
	var len = str.length;
	res = len - res;
	if (res == 3) return (str);
	else return (str + "0");
}

function invoice() 
{
	if (top.basket == null) { intercept();return; }
	document.writeln('<br>These items are in your shopping basket:<br><br>');         
	document.writeln('<center><table bgcolor="#ffeeb0" fgcolor="#000000" border width=100%><tr>');         
	document.writeln('<th width=70%>Item<th width=10%>Price<th width=10%>Quantity<th width=10%>Total</tr>');           

 	var bskt = top.basket.document.basket;
	var i =  6;         
	var k = 0;         
	var len = bskt.elements.length;         
	var h = (len - 6) / 4;         
	var j = i;      
	for (k=0;k<h;k++) {              
		j++; 					 
		j++;          
		var third = parseInt(bskt.elements[j].value*1);               
		if (third > 0) {                      
			document.writeln("<tr><td>" + bskt.elements[i++].value);                    
			document.writeln("<td align=right>" + bskt.elements[i++].value);                    
			document.writeln("<td align=right>" + bskt.elements[i++].value);                    
			document.writeln("<td align=right>" + bskt.elements[i++].value);                         
			j = i;                 
		}        
		else {
			i = (i + 4)*1;
			j = i; 
		}
	}         
	i = 9;         
	var total = 0;         
	for (k=0;k<h;k++) {               
		if ((bskt.elements[i].value*1) >= 0) {                 
			total =  total*1 + bskt.elements[i].value*1;          
			i = (i*1) + 4;                
		}          
	}
     
	total = fp_kludge(total);
 
	document.writeln('</tr><tr><th colspan=3 align=right>Total<td align=right>' + total + '</tr>');         
	document.writeln('<tr><td colspan=4><font face="Helvetica" size=2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software,   email: pongken@loxinfo.co.th</font></tr>');	         
	document.writeln('</table></center>');      

	bskt.elements[4].value = total;                
}  

function bag_it() 
{ 
	if (top.basket == null) return; 
 	var bskt = top.basket.document.basket;		
	var i = 6;  
	var k = 0;     
	var len = bskt.elements.length;         
	var h = (len - 6) / 4; 
	var j = i;           
	for (k=0;k<h;k++) {                 
		j++; 		
		j++;                 
		var third = bskt.elements[j].value;                 
		if (third > 0) {                     
			var m = k;                    
			m++;  
			var n = m;
			if (n < 10) n = "0" + n;                   
			document.writeln('<input type ="hidden" name="#' + n + '_item" value = ' + bskt.elements[i++].value + '>');                    
			document.writeln('<input type ="hidden" name="#' + n + '_price" value = ' + bskt.elements[i++].value + '>');              
			document.writeln('<input type ="hidden" name="#' + n + '_quantity" value = ' + bskt.elements[i++].value + '>');           
			document.writeln('<input type ="hidden" name="#' + n + '_total" value = ' + eval('bskt.elements[i++].value') + '>');      
			j = i;
		}
		else {
			i = (i + 4)*1;
			j = i; 
		}         
	}                    
	document.writeln('<input type="hidden" name=order_item_total value= ' + bskt.elements[4].value + ' >');                      
}              

function update()
{ 
	if (top.basket == null) { intercept();return; }
	document.writeln('<form>');
	document.writeln('<br>These items are currently in your shopping basket.<br>');
	document.writeln('<br>You need only change those quantities that are incorrect.');
	document.writeln('  The quantities that are correct require no update.<br><br>');
	document.writeln('<center><table bgcolor="#ffeeb0" fgcolor="#000000" border width=100%><tr>');         
	document.writeln('<th width=70%>Item<th width=10%>Price<th width=10%>Old Quantity<th width=10%>New Quantity</tr>');           

 	var bskt = top.basket.document.basket;
	var i =  6;         
	var k = 0;         
	var len = bskt.elements[0].value;         
	var h = (len - 6) / 4;         
	var j = i;      
	for (k=0;k<h;k++) {              
		j++; 					 
		j++;            
		var third = bskt.elements[j].value;                           
		if (third >= 0) {                      
			document.writeln("<tr><td>" + bskt.elements[i++].value);                    
			document.writeln("<td align=right>" + bskt.elements[i++].value);                    
			document.writeln("<td align=right>" + bskt.elements[i++].value);                    
			document.writeln('<td align=center><input type="text" name="" value="" size="6"></tr>');   
			i++;                      
			j=i;                 
		}    
		else {
			i = (i + 4)*1;
			j = i; 
		}     
	}    
	document.writeln('<tr><td colspan=4><font face="Helvetica" size=2 color="#0000ff">shopping_basket © 1999-2003 PongKen Software,   email: pongken@loxinfo.co.th</font></tr>');
	document.writeln('</table></center>');
	document.writeln('<br><br><center><input type="button" value="Update my basket contents" onClick=update_contents()></center>');   
	document.writeln('</form>');
}            

function update_contents()
{	
        var bskt = top.basket.document.basket;
	var r = document.forms[0].elements.length;
	var n = 0;
	r--;
	for (n = 0;n < r;n++) {
	      	var q = (n*4 + 8)*1;	
		var p = q-1;
		var t = q+1;
	      	var quantity = parseInt(document.forms[0].elements[n].value);
		if (quantity >= 0) {
	      		bskt.elements[q].value = quantity*1;
			bskt.elements[t].value = fp_kludge(bskt.elements[p].value*quantity);
		}
	}
	clean_basket(r);
}

function clean_basket(r)
{
        var bskt = top.basket.document.basket;
	var counter = bskt.elements[0].value;
	var new_index = 6;
	var old_index = 6;
	var j = 0;
	var n = 0;
	var z = 0;
	for (n = 0;n < r;n++) {
		var k = (n*4 + 8)*1;
		var third = bskt.elements[k].value*1;  
		if (third == 0) z++;
		else if (third > 0) {
			old_index = (old_index + 4*z)*1;
			z = 0;
			for (j=0;j < 4;j++) {
				bskt.elements[new_index++].value = bskt.elements[old_index++].value;
			}
		} 	  	
	}
	bskt.elements[0].value = new_index*1;
	var n = 0;
	var r  = (counter - new_index)/4;
	for (n = 0;n < r;n++) {
		for (j = 0;j < 4;j++) {
			bskt.elements[new_index++].value = 0;
		}
	}
	go_back();
}	

function go_back()
{
	self.history.back();

}
