Skip to content

Instantly share code, notes, and snippets.

@jeswin
Created January 19, 2021 11:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeswin/0b217f670732f895f725af7d68422083 to your computer and use it in GitHub Desktop.
Save jeswin/0b217f670732f895f725af7d68422083 to your computer and use it in GitHub Desktop.
calicutshop-topframe.js
// Copyright Pristine Initiatives, 2000. No part of this may be -
// copied without written consent from Pristine Initiatives.
// Please send all bug reports, comments to jeswin@eudoramail.com
// 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>&nbsp;</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>&nbsp;</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 &quot;update&quot; 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">&nbsp;</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 &quot;Finish Shopping&quot; 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>&nbsp;</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>&nbsp;</p><p>&nbsp;</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>&nbsp;</p> <p>&nbsp;</p> </td> </tr></table><p align="center">&nbsp;</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