Created
January 19, 2021 11:28
-
-
Save jeswin/0b217f670732f895f725af7d68422083 to your computer and use it in GitHub Desktop.
calicutshop-topframe.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright Pristine Initiatives, 2000. No part of this may be - | |
// copied without written consent from Pristine Initiatives. | |
// Please send all bug reports, comments to [email protected] | |
// upd : 12/27/00 m/d/y | |
//globals | |
/* | |
todo : | |
imp >> on uploading change the root to / instead of CalicutShop/ : done | |
*/ | |
var task_status = ""; | |
var task_args = new Array(); | |
var daemia = 0; //total fields in cart | |
var wait = 0; | |
var items_saved = 0; | |
var current_page = "default"; | |
var item = new Array(2000); //dont shop beyond! | |
var help_file = "index.htm"; | |
var help_path = "/help/"; | |
var help_category = ""; | |
var confirm_add_to_cart = 0; | |
var browser_name = ""; | |
var str_login = ""; | |
var str_password = ""; | |
var str_script_begin = "<scri" + 'pt language="JavaScript">'; //ie wouldnt take <scr...> | |
var str_script_end = "</scri" + "pt>"; | |
window.setTimeout("StatusCheck();", 1000); | |
var new_item_added = 1; | |
function StartUp() { | |
browser_name = navigator.appName; | |
if (window.top.use.document.URL.indexOf("/wait_loading.htm", 0) != -1) | |
LoadPage("/main-down.htm", "use"); | |
} | |
function CheckType(datafrm, a) { | |
//OK! | |
if (a == datafrm.data_type.value) return 1; | |
return 0; | |
} | |
function ClearCart() { | |
items_saved = 0; | |
daemia = 0; | |
} | |
function ViewBasket() { | |
var var_name = "", | |
var_val = ""; | |
var i_n, i_c, i_p, i_q, i_u; | |
var vb_qty = 0, | |
vb_price = 0; | |
var new_item = 0; | |
var i = 0, | |
j = 0, | |
k = 0; //temp variables | |
var basket_item_num = 0; | |
var total_amt = 0; | |
var is_empty = 0; | |
var comment_num = 0; | |
var is_compound = 0; | |
var compound_item_num = 0; | |
var compound_num = 0; | |
var is_waiting_remote_info = 0; | |
doc = open("", "use"); | |
dd = doc.document; | |
dd.writeln( | |
'<html><head><title>View Basket</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">' | |
); | |
dd.writeln( | |
'</head><body onLoad="register_page();" bgcolor="#EBEBD8" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#FFFFFF" vlink="#FFFFFF" alink="#CC9900">' | |
); | |
dd.writeln(str_script_begin); | |
dd.writeln(" function register_page()"); | |
dd.writeln(" { arr_data=new Array();"); | |
dd.writeln(' str_shopname="View Cart";'); | |
dd.writeln(' arr_data[0]="help_file_name=h-cart.htm";'); | |
dd.writeln(' arr_data[1]="help_category=View Cart";'); | |
dd.writeln(" window.top.nav.Register(str_shopname,arr_data); }"); | |
dd.writeln(str_script_end); | |
dd.writeln('<table width="100%" border="0" cellspacing="0" cellpadding="0">'); | |
dd.writeln( | |
' <tr bgcolor="#F7B800"> <td> <div align="right"><img src="/images/dynamic/view_cart.gif" width="196" height="40"></div>' | |
); | |
dd.writeln(" </td> </tr></table>"); | |
dd.writeln('<form name="dataform" method="post" action="">'); | |
dd.writeln('<input type="hidden" name="unused1" value="">'); | |
dd.writeln('<input type="hidden" name="unused2" value="">'); | |
dd.writeln('<input type="hidden" name="data_type" value="basket">'); | |
dd.writeln('<input type="hidden" name="unused4" value="">'); | |
if (daemia == 0) { | |
is_empty = 1; | |
dd.writeln("<blockquote>"); | |
dd.writeln(" <p> </p>"); | |
dd.writeln( | |
' <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Your Cart is currently empty.</b></font> </p>' | |
); | |
dd.writeln("</blockquote>"); | |
} | |
if (is_empty == 0) { | |
dd.writeln( | |
'<table width="90%" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" align="center">' | |
); | |
dd.writeln( | |
'<TR><TD width="10%"></TD><TD width="45%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Item Name</b></font></TD>' | |
); | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Price</b></font></TD>' | |
); | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Quantity</b></font></TD>' | |
); | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Unit</b></font></TD>' | |
); | |
dd.writeln('<TD width="15%"></TD></TR></table>'); | |
for (i = 0; i < daemia; i++) { | |
var var_name = "", | |
var_val = ""; | |
//check if its a comment | |
var_name = GetVarName(item[i]); | |
var_val = GetVarValue(item[i]); | |
if (var_name == "comment_field") { | |
comment_num++; | |
dd.writeln( | |
'<table width="90%" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" align="center"><TR><TD width="10%"><input type="checkbox" name="comment_checkbox" value="checkbox" checked onclick="window.top.nav.SetValueEx(document.dataform,' + | |
comment_num + | |
",'comment_field','');\"></TD>" | |
); | |
dd.writeln( | |
'<TD width="90%"> <textarea name="comment_field" cols="50" rows="3">' + | |
var_val + | |
"</textarea></TD></TR></table>" | |
); | |
} | |
if (var_name == "c_s_i") { | |
is_compound = 1; | |
compound_num++; | |
compound_item_num = 0; | |
} | |
if (var_name == "c_e_i") { | |
is_compound = 0; | |
} | |
if (var_name == "s_i") { | |
if (is_compound == 1) compound_item_num++; | |
new_item = 1; | |
is_waiting_remote_info = 0; | |
basket_item_num++; | |
dd.writeln("<TR>"); | |
var_name = "s_i"; | |
dd.writeln( | |
'<table width="90%" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" align="center">' | |
); | |
if (is_compound == 1 && compound_item_num == 1) | |
dd.writeln( | |
'<TD width="10%"><input type="checkbox" name="checkbox" value="checkbox" checked onclick="window.top.nav.SetValueEx(document.dataform,' + | |
compound_num + | |
",'c_s_i','clear');\"></TD>" | |
); | |
if (is_compound == 1 && compound_item_num != 1) | |
dd.writeln('<TD width="10%"></TD>'); | |
if (is_compound == 0) | |
dd.writeln( | |
'<TD width="10%"><input type="checkbox" name="checkbox" value="checkbox" checked onclick="window.top.nav.SetValue(document.dataform,' + | |
basket_item_num + | |
",'i_q',0);\"></TD>" | |
); | |
dd.writeln('<input type="hidden" name="s_i">'); | |
} | |
if (var_name == "e_i") { | |
//write total amount for single item; | |
var_name = "e_i"; | |
new_item = 0; | |
dd.writeln( | |
'<TD width="45%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">' + | |
i_n + | |
"</font></TD>" | |
); | |
if (is_waiting_remote_info != 1) { | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">' + | |
i_p + | |
"</font></TD>" | |
); | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><center><input type="text" name="i_q" value="' + | |
i_q + | |
'" size="3" ></center></font></TD>' | |
); | |
dd.writeln( | |
'<TD width="10%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">' + | |
i_u + | |
"</font></TD>" | |
); | |
dd.writeln( | |
'<TD width="15%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">' + | |
RoundNum(vb_qty * vb_price, 1) + | |
"</font></TD>" | |
); | |
} else { | |
dd.writeln( | |
'<TD width="45%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Awaiting Data from Server...</font></TD>' | |
); | |
dd.writeln('<input type="hidden" name="i_q" value="' + i_q + '">'); | |
} | |
dd.writeln("</TR></table>"); | |
dd.writeln('<input type="hidden" name="e_i">'); | |
total_amt = total_amt + RoundNum(vb_price * vb_qty, 1); | |
} | |
if (new_item == 1 && var_name != "s_i") { | |
if (var_name == "i_data") { | |
i_n = int_Get_VarVal(var_val, "i_n"); | |
i_p = int_Get_VarVal(var_val, "i_p"); | |
i_c = int_Get_VarVal(var_val, "i_c"); | |
i_u = int_Get_VarVal(var_val, "i_u"); | |
if (i_p == -1) { | |
is_waiting_remote_info = 1; | |
i_p = 0; | |
} | |
vb_price = i_p; | |
} | |
if (var_name == "i_q") { | |
i_q = var_val; | |
vb_qty = i_q; | |
} | |
} | |
if ( | |
var_name != "i_q" && | |
var_name != "comment_field" && | |
var_name != "e_i" && | |
var_name != "s_i" | |
) | |
dd.writeln( | |
'<input type="hidden" name="' + | |
var_name + | |
'" value="' + | |
var_val + | |
'">' | |
); | |
} | |
dd.writeln( | |
'<table width="90%" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" align="center"><TR><TD width="10%"></TD><TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Total Amount : Rs.' + | |
total_amt + | |
"</b></font></TD></TR></table>" | |
); | |
} //is_empty==0? | |
dd.writeln('<input type="hidden" name="end_data" value="end_data">'); | |
dd.writeln("</form>"); | |
dd.writeln( | |
'<p> </p><table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">' | |
); | |
dd.writeln( | |
' <tr> <td> <div align="center"><a href="javascript:window.top.nav.ClickBack();"><img src="/images/buttons/activeset/button_back.gif" width="100" height="25" alt="Back"></a></div>' | |
); | |
dd.writeln( | |
' </td> <td> <div align="center"><a href="javascript:window.top.nav.ClickUpdateBasket(document.dataform);"><img src="/images/buttons/activeset/button_update.gif" width="100" height="25" alt="Update Cart"></div>' | |
); | |
dd.writeln( | |
' </td><td><div align="center"><a href="javascript:window.top.nav.FinishShopping();"><img src="/images/buttons/activeset/ctrl-finish-shopping.gif" width="100" height="25" alt="Finish Shopping"></a></div></td> </tr></table><blockquote> <p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#000000">Note:</font> ' | |
); | |
dd.writeln( | |
" If you have made any changes here, you have to press the "update" button to effect those changes.</b></font></p>" | |
); | |
dd.writeln(" </blockquote><p></p></body></html>"); | |
dd.close(); | |
WriteInfo("These are the contents of your cart"); | |
} | |
function DisplayMessage(message_type, msg_pvt) { | |
var i = 0; | |
doc = open("", "use"); | |
dd = doc.document; | |
dd.writeln( | |
'<html><head><title>Message</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">' | |
); | |
dd.writeln("</head>"); | |
dd.writeln(str_script_begin); | |
dd.writeln(" function register_page()"); | |
dd.writeln(" { arr_data=new Array();"); | |
dd.writeln(' str_shopname="Error Page";'); | |
dd.writeln(' arr_data[0]="help_file_name=index.htm";'); | |
dd.writeln(' arr_data[1]="help_category=Error Messages";'); | |
dd.writeln(" window.top.nav.Register(str_shopname,arr_data); }"); | |
dd.writeln(str_script_end); | |
dd.writeln( | |
'<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#FFFFFF" vlink="#FFFFFF" alink="#CC9900"><table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FD1029">' | |
); | |
dd.writeln( | |
' <tr> <td width="79%"> <div align="left"><img src="/images/dynamic/err_msg_X.gif" width="40" height="40"></div>' | |
); | |
dd.writeln( | |
' </td> <td width="21%"> <div align="right"><img src="/images/dynamic/err_msg_top.gif" width="133" height="40"></div>' | |
); | |
dd.writeln( | |
' </td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="39%" height="190" rowspan="2" valign="top"> ' | |
); | |
dd.writeln( | |
' <br> <p align="justify"> </p> <blockquote> <p align="justify"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">CalicutShop.com ' | |
); | |
dd.writeln( | |
" responds to user queries within a few hours. If you encounter an error you cannot handle, do mail us the complete details of how you encountered " | |
); | |
dd.writeln( | |
" the error. Before doing so, please make sure that the problem is not documented in the 'Help' pages. The 'Help' contains almost all the resources " | |
); | |
dd.writeln( | |
' needed to use CalicutShop.com. </font></p> </blockquote> <table width="100%" border="0" cellspacing="5" cellpadding="5">' | |
); | |
dd.writeln( | |
' <tr bgcolor="#CC3366"> <td> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Useful ' | |
); | |
dd.writeln( | |
' Resources </font></b></div> </td> </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> ' | |
); | |
dd.writeln( | |
' <p align="justify"><a href="/help/index.htm"><font color="#0000FF"><b>Help</b></font></a> - The help documentation is comprehensive, covering all aspects about the usage of the site.</p>' | |
); | |
dd.writeln( | |
' </font></td> </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> ' | |
); | |
dd.writeln( | |
' <p align="justify"><a href="/docs/documentation.htm"><font color="#0000FF"><b>Other documentation</b></font></a> - You will find more advanced topics here, ranging from limitations ' | |
); | |
dd.writeln( | |
" of the site to reasons behind its design.</p> </font></td> </tr> <tr> " | |
); | |
dd.writeln( | |
' <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <p align="justify"><a href="/services/contact_us/contact_us.htm"><font color="#0000FF"><b>Mail Us</b></font></a> - Mail ' | |
); | |
dd.writeln( | |
" us if you cannot solve the problem yourself. Please do mail bug-reports too.</p>" | |
); | |
dd.writeln( | |
' </font></td> </tr> </table> <p> </td> <td width="61%" height="96"> ' | |
); | |
dd.writeln( | |
' <blockquote> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>The last action you performed resulted in the following errors. Read them ' | |
); | |
dd.writeln( | |
" carefully and press the back button to correct the error.</b></font></p> </blockquote>" | |
); | |
dd.writeln(' </td> </tr> <tr> <td width="61%" height="124" valign="top">'); | |
while (i < msg_pvt.length) { | |
if (msg_pvt[i] == "error_end") break; | |
dd.writeln( | |
'<table width="75%" border="0" cellspacing="5" cellpadding="5" align="center" bgcolor="#FD1029"><tr bgcolor="#FFCCCC"> <td> <div align="left"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#990000">' | |
); | |
dd.writeln(msg_pvt[i]); | |
dd.writeln("</font></b></div> </td> </tr> </table> <br>"); | |
i++; | |
} | |
dd.writeln( | |
'</td> </tr></table><hr><p align="center"><b><a href="javascript:window.top.nav.ClickBack();"><img src="/images/buttons/activeset/button_back.gif" width="100" height="25" alt="Back"></a></b></p><p></p>' | |
); | |
dd.writeln("</body></html>"); | |
dd.close(); | |
} | |
function SetValue(datafrm, item_num, str_name, new_value) { | |
var loc = 0; | |
loc = LocateItem(item_num, str_name, datafrm); | |
SetElementValue(datafrm, loc, new_value); | |
} | |
function SetValueEx(datafrm, num, str_name, new_value) { | |
var i = 0; | |
var loc = 0; | |
if (str_name == "c_s_i" && new_value == "clear") { | |
i = LocateItemEx(num, "c_s_i", datafrm); | |
while (datafrm.elements[i].name != "c_e_i") { | |
if (datafrm.elements[i].name == "i_q") SetElementValue(datafrm, i, 0); | |
i++; | |
} | |
} else { | |
loc = LocateItemEx(num, str_name, datafrm); | |
SetElementValue(datafrm, loc, new_value); | |
} | |
} | |
function VarSetValue(str_varname, new_value) { | |
if (str_varname == "str_login") str_login = new_value; | |
if (str_varname == "str_password") str_password = new_value; | |
} | |
function VarGetValue(str_varname) { | |
if (str_varname == "str_login") return str_login; | |
if (str_varname == "str_password") return str_password; | |
} | |
function AddToBasket(datafrm) { | |
var i = 0; | |
var curr_item_num = 0; | |
var is_compound = 0; | |
var compound_item_num; | |
var ret_val = 0; | |
var is_empty = 0; | |
var is_newitem = 0; | |
arr_remote_data_name = new Array(); | |
arr_remote_data_value = new Array(); | |
var remote_data_num = 0; | |
if (!CheckType(datafrm, "list") && !CheckType(datafrm, "basket")) { | |
WriteInfo("You cannot use this button now."); | |
return 0; | |
} | |
if (CheckType(datafrm, "basket")) ClearCart(); | |
while (datafrm.elements[i].name != "end_data") { | |
if (datafrm.elements[i].name == "c_s_i") { | |
is_compound = 1; | |
compound_item_num = 0; | |
} | |
if (datafrm.elements[i].name == "c_e_i") { | |
if (is_compound == 1 && compound_item_num > 0) { | |
item[daemia] = "c_e_i"; | |
daemia++; | |
} | |
is_compound = 0; | |
} | |
if (datafrm.elements[i].name == "s_i") { | |
i++; | |
is_newitem = 1; | |
curr_item_num++; | |
//check if empty! | |
is_empty = 0; | |
if (LocateItem(curr_item_num, "i_data", datafrm) == -1) is_empty = 1; | |
else if ( | |
GetElementValue( | |
datafrm, | |
LocateItem(curr_item_num, "i_data", datafrm) | |
) == "" | |
) | |
is_empty = 1; | |
ret_val = LocateItem(curr_item_num, "i_q", datafrm); | |
if (ret_val == -1) is_empty = 1; | |
else if (parseFloat(0 + GetElementValue(datafrm, ret_val)) <= 0) | |
is_empty = 1; //coz parseFloat(0+"")=0, pF("")=NaN! | |
if (is_empty == 1) i = ret_val; | |
else if (is_compound == 1) compound_item_num++; | |
} | |
if (is_empty != 1 && is_newitem == 1) { | |
if (is_compound == 1 && compound_item_num == 1) { | |
item[daemia] = "c_s_i"; | |
daemia++; | |
} | |
item[daemia] = "s_i"; | |
daemia++; | |
items_saved++; | |
i_data = ""; | |
while (datafrm.elements[i].name != "e_i") { | |
if ( | |
datafrm.elements[i].name == "i_spec" && | |
GetElementValue(datafrm, i) != "" | |
) { | |
arr_i_spec_data = new Array(); | |
arr_i_spec_data = GetElementValue(datafrm, i).split("~"); | |
var tmp_count = 0; | |
var i_data_pos = 0; | |
i_data_pos = LocateItem(curr_item_num, "i_data", datafrm); | |
if (i_data == "") i_data = GetElementValue(datafrm, i_data_pos); | |
while (tmp_count < arr_i_spec_data.length) { | |
i_spec_var_name = GetVarName(arr_i_spec_data[tmp_count]); | |
i_spec_var_val = GetVarValue(arr_i_spec_data[tmp_count]); | |
if (i_spec_var_val != "") { | |
if (i_spec_var_val.indexOf("[change]") == -1) { | |
if (i_spec_var_name == "i_c") | |
i_data = int_Set_VarVal( | |
i_data, | |
"i_c", | |
"add", | |
";" + i_spec_var_val | |
); | |
if (i_spec_var_name == "i_p") { | |
if ( | |
i_spec_var_val == -1 || | |
int_Get_VarVal(i_data, "i_p") == -1 | |
) | |
i_data = int_Set_VarVal(i_data, "i_p", "change", "-1"); | |
else | |
i_data = int_Set_VarVal( | |
i_data, | |
"i_p", | |
"add", | |
i_spec_var_val | |
); | |
} | |
if (i_spec_var_name != "i_p" && i_spec_var_name != "i_c") | |
i_data = int_Set_VarVal( | |
i_data, | |
i_spec_var_name, | |
"add", | |
i_spec_var_val | |
); | |
} else | |
i_data = int_Set_VarVal( | |
i_data, | |
i_spec_var_name, | |
"change", | |
i_spec_var_val.substring( | |
i_spec_var_val.indexOf("[change]") + 8, | |
i_spec_var_val.length | |
) | |
); | |
} //oops. take ()s very seriously. | |
tmp_count++; | |
} | |
item[VarLocateItem(items_saved, "i_data")] = "i_data=" + i_data; | |
} | |
if (datafrm.elements[i].name != "i_spec") { | |
item[daemia] = | |
datafrm.elements[i].name + "=" + GetElementValue(datafrm, i); | |
daemia++; | |
} | |
i++; | |
} | |
if ( | |
int_Get_VarVal( | |
GetVarValue(item[VarLocateItem(items_saved, "i_data")]), | |
"i_p" | |
) == -1 | |
) { | |
arr_remote_data_name[remote_data_num] = "i_data"; | |
arr_remote_data_value[remote_data_num] = | |
"i_c=" + | |
int_Get_VarVal( | |
GetVarValue(item[VarLocateItem(items_saved, "i_data")]), | |
"i_c" | |
) + | |
"~i_p"; | |
remote_data_num++; | |
} | |
item[daemia] = "e_i"; | |
daemia++; | |
is_newitem = 0; | |
} | |
if ( | |
datafrm.elements[i].name == "comment_field" && | |
GetElementValue(datafrm, i) != "" | |
) { | |
item[daemia] = "comment_field=" + GetElementValue(datafrm, i); | |
daemia++; | |
} | |
i++; | |
} | |
if (remote_data_num > 0 && new_item_added == 1) | |
window.setTimeout( | |
'GetRemoteInfo(arr_remote_data_name,arr_remote_data_value,"/cgi-bin/getremotedata.pl")', | |
250 | |
); | |
if (current_page != "View Cart") { | |
i = 0; | |
ret_val = 0; | |
for (i = 1; i <= curr_item_num; i++) { | |
ret_val = LocateItem(i, "i_q", datafrm); | |
if (datafrm.elements[ret_val].type == "checkbox") { | |
if (datafrm.elements[ret_val].checked) | |
datafrm.elements[ret_val].click(); | |
} else { | |
if ( | |
datafrm.elements[ret_val].type != "hidden" && | |
GetElementValue(datafrm, ret_val) > 0 | |
) | |
SetElementValue(datafrm, ret_val, 0); | |
} | |
} | |
} | |
if (confirm_add_to_cart == 1) | |
window.alert("The selected items have been added to your shopping cart."); | |
WriteInfo("Selections added to shopping cart."); | |
} | |
function GetVarName(str_var) { | |
//proc dat typ "name=value" | |
eq_pos = str_var.indexOf("=", 0); | |
if (eq_pos <= 0) return str_var; | |
if (eq_pos > 0) return str_var.substring(0, eq_pos); | |
} | |
function GetVarValue(str_var) { | |
//proc dat typ "name=value" | |
var len_var = str_var.length; | |
var my_null = ""; | |
eq_pos = str_var.indexOf("=", 0); | |
if (eq_pos <= 0) return my_null; | |
if (eq_pos > 0) return str_var.substring(eq_pos + 1, len_var); | |
} | |
function SetElementValue(datafrm, target, new_value) { | |
var i = 0; | |
var type = datafrm.elements[target].type; | |
if (type != "select-one") datafrm.elements[target].value = new_value; | |
else { | |
while (i < datafrm.elements[target].options.length) { | |
if (datafrm.elements[target].options[i].value == new_value) { | |
datafrm.elements[target].options[i].selected = "true"; | |
break; | |
} | |
i++; | |
} | |
} | |
} | |
function GetElementValue(datafrm, target) { | |
var i = 0; | |
var type = datafrm.elements[target].type; | |
var name = datafrm.elements[target].name; | |
var return_val = ""; //r_v+=""+null >> r_v!=null | |
if (type != "select-one" && type != "checkbox") | |
return_val += datafrm.elements[target].value; | |
if (type == "checkbox" && datafrm.elements[target].checked) | |
return_val += datafrm.elements[target].value; | |
if (type == "select-one") { | |
while (i < datafrm.elements[target].options.length) { | |
if (datafrm.elements[target].options[i].selected) | |
return_val += datafrm.elements[target].options[i].value; | |
i++; | |
} | |
} | |
return return_val; | |
} | |
function int_Set_VarVal(str_var, str_valname, str_oper, new_value) { | |
//proc dat typ "n1=v1~n2=v2~..." | |
var i = 0; | |
var var_name, var_val; | |
arr_var = new Array(); | |
arr_var = str_var.split("~"); | |
while (i < arr_var.length) { | |
var_name = GetVarName(arr_var[i]); | |
var_val = GetVarValue(arr_var[i]); | |
if (var_name == str_valname) break; | |
i++; | |
} | |
if (var_name != str_valname) { | |
arr_var[i] = str_valname + "=" + new_value; | |
return arr_var.join("~"); | |
} | |
if (str_oper == "change") arr_var[i] = var_name + "=" + new_value; | |
if (str_oper == "add") { | |
if (!isNaN(var_val) && !isNaN(new_value)) | |
arr_var[i] = | |
var_name + "=" + (parseFloat(var_val) + parseFloat(new_value)); | |
else arr_var[i] = var_name + "=" + var_val + new_value; | |
} | |
return arr_var.join("~"); | |
} | |
function int_Get_VarVal(str_var, str_valname) { | |
//proc dat typ "n=n1=v1~n2=v2~..." | |
var i = 0; | |
var var_name, var_val; | |
arr_var = new Array(); | |
arr_var = str_var.split("~"); | |
while (i < arr_var.length) { | |
var_name = GetVarName(arr_var[i]); | |
var_val = GetVarValue(arr_var[i]); | |
if (var_name == str_valname) return var_val; | |
i++; | |
} | |
return -1; | |
} | |
function GetRemoteInfo(arr_name, arr_value, str_remote_source) { | |
//to do - add glob var if waiting rem data | |
//if waiting postpone current request | |
//set glob var to not waiting iff the data has arrived frm server | |
//may process the next request after that! | |
//test rigorously! behaviour can be unpredictable! | |
var i = 0; | |
doc = open("", "special"); | |
dd = doc.document; | |
dd.writeln( | |
'<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">' | |
); | |
dd.writeln("</head>"); | |
dd.writeln( | |
' <body bgcolor="#FFFFFF"><form method="post" action="' + | |
str_remote_source + | |
'" name="dataform" target="special">' | |
); | |
while (i < arr_name.length) { | |
dd.writeln( | |
'<input type="hidden" name="' + | |
arr_name[i] + | |
'" value="' + | |
arr_value[i] + | |
'">' | |
); | |
i++; | |
} | |
dd.writeln('<input type="hidden" name="end_data">'); | |
dd.writeln(" </form></body></html>"); | |
dd.close(); | |
window.top.special.document.dataform.submit(); | |
} | |
function CancelShopping() { | |
ClearCart(); | |
window.alert("All items in your shopping cart have been discarded!"); | |
LoadPage("/main-down.htm", "use"); | |
} | |
function ClickBack() { | |
window.top.use.history.back(); | |
} | |
function ClickRefresh() { | |
if (current_page == "View Cart") { | |
AddToBasket(window.top.use.document.dataform); | |
ViewBasket(); | |
} else window.top.use.document.location.reload(); | |
} | |
function ClickUpdateBasket(datafrm) { | |
new_item_added = 0; //nothing new is added, do not contact server for info | |
AddToBasket(datafrm); | |
ViewBasket(); | |
new_item_added = 1; | |
} | |
function ClickAddToCart(datafrm) { | |
var a = daemia; | |
AddToBasket(datafrm); | |
if (a < daemia) window.alert("Items added to your Shopping Cart."); | |
} | |
function OnRemoteDataArrive(datafrm) { | |
var i = 0, | |
j = 0; | |
while (datafrm.elements[i].name != "end_data") { | |
remote_var_name = datafrm.elements[i].name; | |
remote_var_val = datafrm.elements[i].value; | |
if (current_page != "View Cart") { | |
for (j = 0; j < daemia; j++) { | |
var_name = GetVarName(item[j]); | |
var_val = GetVarValue(item[j]); | |
if ( | |
var_name == "i_data" && | |
remote_var_name == "i_data" && | |
int_Get_VarVal(remote_var_val, "i_c") == | |
int_Get_VarVal(var_val, "i_c") | |
) { | |
//window.alert("hullo dr.watson!"); | |
if (int_Get_VarVal(remote_var_val, "i_p") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_p", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_p") | |
); | |
if (int_Get_VarVal(remote_var_val, "i_u") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_u", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_u") | |
); | |
if (int_Get_VarVal(remote_var_val, "i_n") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_n", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_n") | |
); | |
item[j] = var_name + "=" + var_val; | |
} | |
} | |
} else { | |
cartform = window.top.use.document.dataform; | |
while (cartform.elements[j].name != "end_data") { | |
var_name = cartform.elements[j].name; | |
var_val = cartform.elements[j].value; | |
if ( | |
var_name == "i_data" && | |
remote_var_name == "i_data" && | |
int_Get_VarVal(remote_var_val, "i_c") == | |
int_Get_VarVal(var_val, "i_c") | |
) { | |
//window.alert("hullo dr.watson! this is elemental!"); | |
if (int_Get_VarVal(remote_var_val, "i_p") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_p", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_p") | |
); | |
if (int_Get_VarVal(remote_var_val, "i_u") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_u", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_u") | |
); | |
if (int_Get_VarVal(remote_var_val, "i_n") != -1) | |
var_val = int_Set_VarVal( | |
var_val, | |
"i_n", | |
"change", | |
int_Get_VarVal(remote_var_val, "i_n") | |
); | |
new_info_applied = 1; | |
cartform.elements[j].value = var_val; | |
} | |
j++; | |
} | |
AddToBasket(cartform); | |
ViewBasket(); | |
} | |
i++; | |
} | |
} | |
function FinishShopping() { | |
var i = 0; | |
if (!AssertValid()) return 1; //dbg code : rem on rel | |
if (daemia == 0) { | |
ViewBasket(); | |
} else { | |
//this whole thing | |
doc = open("", "use"); | |
dd = doc.document; | |
dd.writeln( | |
'<html><head><title>Finish Shopping</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">' | |
); | |
dd.writeln( | |
'</head><body onLoad="register_page();" bgcolor="#F3F3F3" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#FFFFFF" vlink="#FFFFFF" alink="#CC9900"><table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FD1029">' | |
); | |
dd.writeln(str_script_begin); | |
dd.writeln(" function register_page()"); | |
dd.writeln(" { arr_data=new Array();"); | |
dd.writeln(' str_shopname="Finish Shopping";'); | |
dd.writeln(' arr_data[0]="help_file_name=index.htm";'); | |
dd.writeln(' arr_data[1]="help_category=Finish Shopping";'); | |
dd.writeln(" window.top.nav.Register(str_shopname,arr_data); }"); | |
dd.writeln(" function click_submit_shopping()"); | |
dd.writeln( | |
' { window.top.nav.VarSetValue("str_login",window.top.use.document.dataform.loginfield.value);' | |
); | |
dd.writeln( | |
' window.top.nav.VarSetValue("str_password",window.top.use.document.dataform.passwordfield.value);' | |
); | |
dd.writeln(" window.top.use.document.dataform.submit(); }"); | |
dd.writeln(str_script_end); | |
dd.writeln( | |
'<form name="dataform" method="post" action="/cgi-bin/bills/bill.pl">' | |
); | |
for (i = 0; i < daemia; i++) { | |
var_name = GetVarName(item[i]); | |
var_value = GetVarValue(item[i]); | |
if (eq_pos <= 0) { | |
var_name = item[i]; | |
var_value = ""; | |
} | |
dd.writeln( | |
'<input type="hidden" name="' + | |
var_name + | |
'" value="' + | |
var_value + | |
'">' | |
); | |
} | |
dd.writeln('<input type="hidden" name="end_data">'); | |
dd.writeln( | |
' <tr bgcolor="#FDAE00"> <td colspan="2" bgcolor="#FDAE00" height="23"> <div align="right"><img src="/images/dynamic/finish_shopping.gif" width="266" height="40"></div>' | |
); | |
dd.writeln( | |
' </td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="39%" height="290"> ' | |
); | |
dd.writeln( | |
' <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="#993300"> ' | |
); | |
dd.writeln( | |
' <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Instructions</font></b></font></td>' | |
); | |
dd.writeln( | |
' </tr> </table> <table width="100%" border="2" cellspacing="0" cellpadding="0" bordercolor="#993300">' | |
); | |
dd.writeln( | |
' <tr> <td height="114"> <blockquote> <table width="90%" border="0" cellspacing="5" cellpadding="5">' | |
); | |
dd.writeln( | |
' <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Enter ' | |
); | |
dd.writeln( | |
" your 'Login' and 'Password' and click the 'Submit Shopping' button to finish your shopping. </font></td>" | |
); | |
dd.writeln( | |
' </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">To ' | |
); | |
dd.writeln( | |
" view the contents of your cart, click on 'View Cart'. You can edit your shopping there. </font></td>" | |
); | |
dd.writeln( | |
' </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Press ' | |
); | |
dd.writeln( | |
" the 'Cancel Shopping' button if you wish to cancel your shopping. Your entire shopping will be cancelled. </font></td>" | |
); | |
dd.writeln(" </tr> </table> </blockquote> </td> </tr>"); | |
dd.writeln( | |
' </table> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="#993300"> ' | |
); | |
dd.writeln( | |
' <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#FFFFFF">Help</font></b></font></td>' | |
); | |
dd.writeln( | |
' </tr> </table> <table width="100%" border="2" cellspacing="0" cellpadding="0" bordercolor="#990000">' | |
); | |
dd.writeln( | |
' <tr> <td height="59"> <blockquote> <table width="90%" border="0" cellspacing="5" cellpadding="5">' | |
); | |
dd.writeln( | |
' <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="javascript:window.top.nav.Help(\'\');"><font color="#0000FF"><b>Help</b></font></a> ' | |
); | |
dd.writeln( | |
" - If you have any doubts regarding the "Finish Shopping" section you can read the Help pages. Documentation on this " | |
); | |
dd.writeln( | |
' section is comprehensive.</font></td> </tr> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="/services/contact_us/contact_us.htm" target="use"><font color="#0000FF"><b>Mail ' | |
); | |
dd.writeln( | |
" Us</b></font></a> - Click here to send us mail regarding this section.</font></td> </tr>" | |
); | |
dd.writeln(" </table> </blockquote> </td> </tr> </table>"); | |
dd.writeln( | |
' <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="#F3F3F3"> ' | |
); | |
dd.writeln( | |
' <td> </td> </tr> </table> </td> <td width="39%" height="290" bgcolor="#F3F3F3"> ' | |
); | |
dd.writeln( | |
' <table width="80%" border="0" cellspacing="5" cellpadding="5" align="center"> <tr> ' | |
); | |
dd.writeln( | |
' <td width="38%"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Login</font></b></td>' | |
); | |
dd.writeln( | |
' <td width="62%"> <input type="text" name="loginfield"> </td> </tr>' | |
); | |
dd.writeln( | |
' <tr> <td width="38%"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Password</font></b></td>' | |
); | |
dd.writeln( | |
' <td width="62%"> <input type="password" name="passwordfield"> </td>' | |
); | |
dd.writeln( | |
' </tr> </table> <blockquote> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">If you have not signed up, <a href="/services/sign_up/signup.htm"><font color="#0000FF"><b>Click Here to Sign Up</b></font></a>.</font></p></blockquote>' | |
); | |
dd.writeln( | |
'<p> </p><p> </p> <table width="73%" border="0" cellspacing="0" cellpadding="5" align="center">' | |
); | |
dd.writeln( | |
' <tr> <td width="35%"><a href="javascript:window.top.nav.ViewBasket();"><img src="/images/buttons/activeset/button_final_view_cart.gif" width="100" height="25" alt="View Cart"></a></td>' | |
); | |
dd.writeln( | |
' <td width="8%"><a href="javascript:window.top.use.click_submit_shopping();"><img src="/images/buttons/activeset/button_final_submit_shopping.gif" width="100" height="25" alt="Submit Shopping"></a></td>' | |
); | |
dd.writeln( | |
' <td width="57%"><a href="javascript:window.top.nav.CancelShopping();"><img src="/images/buttons/activeset/button_final_cancel_shopping.gif" width="100" height="25" alt="Cancel Shopping"></a></td>' | |
); | |
dd.writeln( | |
' </tr> </table> <p> </p> <p> </p> </td> </tr></table><p align="center"> </p>' | |
); | |
dd.writeln("<hr>"); | |
dd.writeln("</form>"); | |
dd.writeln(" </body></html>"); | |
dd.close(); | |
WriteInfo( | |
"This is your final bill. Press Cancel if you dont want to submit the list now." | |
); | |
} | |
} | |
function AssertValid() { | |
//remove on release | |
return 1; | |
} | |
function RoundNum(num, digits) { | |
var i = 0; | |
for (i = 0; i < digits; i++) num = num * 10; | |
num = parseInt(num); | |
for (i = 0; i < digits; i++) num = num / 10; | |
return num; | |
} | |
function Register(str_shopname, arr_data) { | |
// to content dev : call window.top.nav on dyn frame content change | |
var i = 0; | |
var var_name, var_val; | |
//set defaults | |
current_page = "default"; | |
help_file = "index.htm"; | |
help_path = "/help/"; | |
help_category = ""; | |
if (str_shopname != "") current_page = str_shopname; | |
while (i < arr_data.length) { | |
var_name = GetVarName(arr_data[i]); | |
var_val = GetVarValue(arr_data[i]); | |
if (var_name == "help_file_name") help_file = var_val; | |
if (var_name == "help_path") help_path = var_val; | |
if (var_name == "help_category") help_category = var_val; | |
i++; | |
} | |
//other actions | |
WriteInfo(""); | |
if (browser_name == "Microsoft Internet Explorer") { | |
if (help_category != "") | |
window.top.nav.bhelp.alt = "Help on " + help_category; | |
else window.top.nav.bhelp.alt = "Help"; | |
} | |
} | |
function WriteInfo(msg) { | |
//status bar | |
self.status = msg; | |
return 1; | |
} | |
function LocateItem(n, field_name, datafrm) { | |
var i = 0, | |
j = 0; | |
while (datafrm.elements[i].name != "end_data") { | |
if (datafrm.elements[i].name == "s_i") { | |
j++; | |
if (j == n) { | |
while (datafrm.elements[i].name != "e_i") { | |
if (datafrm.elements[i].name == field_name) return i; | |
i++; | |
} | |
return -1; | |
} | |
} | |
i++; | |
} | |
return -1; | |
} | |
function LocateItemEx(n, field_name, datafrm) { | |
var i = 0; | |
j = 0; | |
while (datafrm.elements[i].name != "end_data") { | |
if (datafrm.elements[i].name == field_name) j++; | |
if (j == n) return i; | |
i++; | |
} | |
return -1; | |
} | |
function VarLocateItem(n, field_name) { | |
var i = 0, | |
j = 0, | |
var_name; | |
while (i < daemia) { | |
if (item[i] == "s_i") j++; | |
var_name = GetVarName(item[i]); | |
if (j == n && var_name == field_name) return i; | |
i++; | |
} | |
return -1; | |
} | |
function VarLocateItemEx(n, field_name) { | |
//OK! | |
var i = 0, | |
j = 0, | |
var_name; | |
while (i < daemia) { | |
var_name = GetVarName(item[i]); | |
if (var_name == field_name) j++; | |
if (j == n) return i; | |
i++; | |
} | |
return -1; | |
} | |
function StatusCheck() { | |
//OK! | |
if (task_status == "finish_shopping") { | |
FinishShopping(); | |
task_status = ""; | |
} | |
if (task_status == "display_error") { | |
DisplayMessage(1, task_args); | |
task_status = ""; | |
} | |
if (task_status == "view_basket") { | |
ViewBasket(); | |
task_status = ""; | |
} | |
window.setTimeout("StatusCheck();", 500); | |
} | |
function SetQueue(str_task, arr_task_args) { | |
//OK! | |
task_status = str_task; | |
task_args = arr_task_args; | |
} | |
function Help(str_help_file) { | |
//OK! | |
if (str_help_file != "") LoadPage(str_help_file, "use"); | |
else LoadPage(help_path + help_file, "use"); | |
} | |
function LoadPage(file_name, frame_name) { | |
//OK! | |
window.open(file_name, frame_name); | |
} | |
function getCookieVal(offset) { | |
//OK! | |
var endstr = document.cookie.indexOf(";", offset); | |
if (endstr == -1) endstr = document.cookie.length; | |
return unescape(document.cookie.substring(offset, endstr)); | |
} | |
function GetCookie(name) { | |
//OK! | |
var arg = name + "="; | |
var alen = arg.length; | |
var clen = document.cookie.length; | |
var i = 0; | |
while (i < clen) { | |
var j = i + alen; | |
if (document.cookie.substring(i, j) == arg) return getCookieVal(j); | |
i = document.cookie.indexOf(" ", i) + 1; | |
if (i == 0) break; | |
} | |
return null; | |
} | |
function SetCookie(name, value) { | |
//OK! | |
var argv = SetCookie.arguments; | |
var argc = SetCookie.arguments.length; | |
var expires = argc > 2 ? argv[2] : null; | |
var path = argc > 3 ? argv[3] : null; | |
var domain = argc > 4 ? argv[4] : null; | |
var secure = argc > 5 ? argv[5] : false; | |
document.cookie = | |
name + | |
"=" + | |
escape(value) + | |
(expires == null ? "" : "; expires=" + expires.toGMTString()) + | |
(path == null ? "" : "; path=" + path) + | |
(domain == null ? "" : "; domain=" + domain) + | |
(secure == true ? "; secure" : ""); | |
} | |
function DeleteCookie(name) { | |
//OK! | |
var exp = new Date(); | |
exp.setTime(exp.getTime() - 1); // This cookie is history | |
var cval = GetCookie(name); | |
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment