PageSourceSearch

http://www.redemptionplus.com/QuickOrder/QuickOrder.js?571.6364

js redemptionplus.com collected 2026-09-30 23:09:03 UTC 23,984 bytes, 662 lines download raw bytes

1var g_assistHeight = 150;
2var g_processQueue = new Array();
3var g_textAssistantHash = new Array();
4var g_timeoutId;
5var g_isKeyDown = false;
6var g_count = 0;
7var g_quickOrderUid = '';
8var g_isMessageBoxVisible = false;
9var g_isCtrlDown = false;
10var g_isLoggedIn = false;
11var g_mbTimeoutId = 0;
12var g_totalQuantity = 0;
13var g_isRewardBoard = false;
14//+ Binds a text box to Text Assistant
15function BindTextBoxToTextAssist(textBoxId, assistDivId, assistType, minChar, dependencies, keyUpHandler) {
16	try {
17		g_textAssistantHash[textBoxId] = new TextAssistant(textBoxId, assistDivId);
18		$('#' + textBoxId).bind('focus', function() {
19			if (g_processQueue.length > 0) {
20				g_processQueue.pop();
21			}
22			g_processQueue.push(new Array(textBoxId, assistDivId, assistType, minChar, dependencies));
23			g_timeoutId = setTimeout(ProcessQueue, 500);
24		});
25		$('#' + textBoxId).bind('blur', function() {
26			if ($('#' + assistDivId).css('display') == 'block') {
27				setTimeout(function() { HideAssistDiv(assistDivId); }, 250);
28			}
29			if (g_processQueue.length > 0) {
30				g_processQueue.pop();
31			}
32			clearTimeout(g_timeoutId);
33		});
34		$('#' + textBoxId).bind('keyup', function(e) {
35			if (e.which == 17) {
36				g_isCtrlDown = false;
37			}
38			if ((e.which != 38) && (e.which != 40) && (e.which != 13)) {
39				if (keyUpHandler) {
40					if (keyUpHandler(textBoxId, e.which) == true) {
41						g_isKeyDown = true;
42					}
43				} else {
44					g_isKeyDown = true;
45				}
46			}
47		});
48		$('#' + textBoxId).keydown(function(e) {
49			return TextAssistant_KeyDownHandler(textBoxId, e);
50		});
51	} catch (e) {
52	}
53}
54
55function ProcessQueue() {
56	if (g_processQueue.length == 0) {
57		return;
58	}
59	g_count++;
60	if (g_isKeyDown == true) {
61		TextAssistHandler(g_processQueue[0][0], g_processQueue[0][1], g_processQueue[0][2], g_processQueue[0][3], g_processQueue[0][4]);
62		g_isKeyDown = false;
63	}
64	g_timeoutId = setTimeout(ProcessQueue, 500);
65}
66
67function TextAssistHandler(id, divId, type, minLength, dependencies) {
68	var assistUrl = '/QuickOrder/TextAssist.asp';
69	var text = document.getElementById(id).value;
70	var isDivVisible = ($('#' + divId).css('display') == 'block') ? true : false;
71	var textAssist = g_textAssistantHash[id];
72	//+
73	if (text.length < minLength) {
74		if (isDivVisible == true) {
75			HideAssistDiv(divId);
76		}
77		return;
78	}
79	var url = assistUrl;
80	url += '?Type=' + escape(type) + '&Text=' + escape(text) + '&IdS=' + g_idS;
81	if (IsArray(dependencies) == true) {
82		var dependenciesList = '';
83		for (var i = 0; i < dependencies.length; i++) {
84			url += '&' + dependencies[i] + '=' + escape(document.getElementById(dependencies[i]).value)
85		}
86	}
87	document.getElementById(divId).innerHTML = '';
88	if (textAssist.request != null) {
89		textAssist.request.abort();
90		textAssist.request = null;
91	}
92	textAssist.request = $.ajax({
93		type: "GET",
94		url: url,
95		complete: function() {
96			textAssist.request = null;
97		},
98		success: function(data) {
99			if (data.length > 0) {
100				var items = data.split('|');
101				textAssist.clear();
102				for (var i = 0; i < items.length; i++) {
103					textAssist.addItem(items[i]);
104				}
105				textAssist.updateDiv();
106				if (isDivVisible == false) {
107					ShowAssistDiv(divId, id);
108				}
109			} else {
110				if (isDivVisible == true) {
111					HideAssistDiv(divId);
112				}
113			}
114		}
115	});
116}
117
118function SetTextValue(id, value) {
119	document.getElementById(id).value = value;
120	g_isKeyDown = true;
121	if ((id == 'ProductName') || (id == 'Sku')) {
122		SetItemInfo();
123	}
124	if (id == 'AccountContact') {
125		SetAccountInfo();
126	}
127	document.getElementById(id).focus();
128}
129
130function SetItemInfo(callBack) {
131	if ((document.getElementById('Sku').value == '') && (document.getElementById('ProductName').value == '')) {
132		return;
133	}
134	document.getElementById('PhotoPreviewDiv').style.display = 'none';
135	document.getElementById('QuickOrderLoadingDiv').style.display = 'block';
136	$.get('/QuickOrder/Data.asp?Request=GetProductInfo&Sku=' + escape(document.getElementById('Sku').value) + '&Name=' + escape(document.getElementById('ProductName').value) + '&IdS=' + g_idS, function(data) {
137		document.getElementById('QuickOrderLoadingDiv').style.display = 'none';
138		if (data.length > 0) {
139			var info = data.split('|');
140			document.getElementById('Sku').value = info[0];
141			document.getElementById('ProductName').value = info[1];
142			document.getElementById('InStockStatusDiv').innerHTML = info[2];
143			document.getElementById('ProductImageDiv').style.display = 'block';
144			var isInactive = (info[11] == '0');
145			if (isInactive) {
146				MessageBox('The product you\'ve entered is no longer active.', 10000);
147				return;
148			}
149			var height = 0;
150			try {
151				var image = new Image();
152				image.src = '/_Sku/' + info[0] + 't.jpg';
153				height = image.height;
154			} catch (e) {
155			}
156			document.getElementById('ProductImageDiv').innerHTML = '<a href="/QuickOrder/Data.asp?Request=ProductImage&Sku=' + info[0] + '&height=500&~=" id="ProductImage" class="jTip" name="Product Image"><img src="/_Sku/' + info[0] + 't.jpg" border="0" style="margin-top:' + (Math.round(((75 - height) / 2))) + 'px;" /></a>';
157			document.getElementById('Qty_Each').style.display = (info[3] == 0) ? 'none' : '';
158			document.getElementById('Qty_Inner').style.display = (info[4] == 0) ? 'none' : '';
159			document.getElementById('Qty_Case').style.display = (info[5] == 0) ? 'none' : '';
160			document.getElementById('Qty_Each_Label').style.display = (info[3] == 0) ? 'none' : '';
161			document.getElementById('Qty_Inner_Label').style.display = (info[4] == 0) ? 'none' : '';
162			document.getElementById('Qty_Case_Label').style.display = (info[5] == 0) ? 'none' : '';
163			document.getElementById('EachUnitPrice').innerHTML = (info[3] == 0) ? '' : info[7];
164			document.getElementById('InnerUnitPrice').innerHTML = (info[4] == 0) ? '' : info[8];
165			document.getElementById('CaseUnitPrice').innerHTML = (info[5] == 0) ? '' : info[9];
166			document.getElementById('CurrencyExchange').innerHTML = info[10];
167			JT_init();
168			$('#ProductImage').click(function(e) {
169				ProductPopup('', info[6]);
170				return false;
171			});
172			//+
173			var id = '';
174			if (g_isRewardBoard == true) {
175				id = 'Student';
176			} else if (info[3] == 1) {
177				id = 'Qty_Each';
178			} else if (info[4] == 1) {
179				id = 'Qty_Inner';
180			} else if (info[5] == 1) {
181				id = 'Qty_Case';
182			}
183			if (id != '') {
184				document.getElementById(id).focus();
185			}
186			$('#Qty_Each, #Qty_Inner, #Qty_Case').bind('keydown', function(event) {
187				return qtyKeyDown(event);
188			});
189		} else {
190			document.getElementById('InStockStatusDiv').innerHTML = '';
191			document.getElementById('ProductImageDiv').innerHTML = '';
192			document.getElementById('CurrencyExchange').innerHTML = '';
193			document.getElementById('PhotoPreviewDiv').style.display = 'block';
194			document.getElementById('Sku').focus();
195			document.getElementById('Sku').setSelectionRange(0, document.getElementById('Sku').value.length);
196		}
197		if (callBack) {
198			callBack();
199		}
200	});
201}
202
203function SetAccountInfo(callBack) {
204	$.get('/QuickOrder/Data.asp?Request=GetAccountInfo&Account=' + escape(document.getElementById('Account').value) + '&AccountContact=' + escape(document.getElementById('AccountContact').value) + '&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
205		if (data.length > 0) {
206			var info = data.split('|');
207			document.getElementById('Account').value = info[0];
208			document.getElementById('AccountContact').value = info[1];
209			if (g_quickOrderUid == '') {
210				if (info[2] == 'E') {
211					MessageBox('Error while trying to create your quick order. Please try again later.');
212					if (document.getElementById('LauncCartActionDiv').style.display != 'none') {
213						$('#LaunchCartActionDiv').slideUp(250);
214					}
215				} else {
216					g_quickOrderUid = info[3];
217					$('#LaunchCartActionDiv').slideDown(250);
218				}
219			}
220		}
221		if (callBack) {
222			callBack();
223		}
224	});
225}
226
227function HideAssistDiv(id) {
228	$('#' + id).animate({ height: '0px' }, 250, function() {
229		$('#' + id).css({ height: '0px', display: 'none' });
230	});
231}
232
233function ShowAssistDiv(id, textId) {
234	var height = (g_textAssistantHash[textId].divHeight > g_assistHeight) ? g_assistHeight : g_textAssistantHash[textId].divHeight;
235	$('#' + id).css({ display: 'none' });
236	$('#' + id).animate({ height: height + 'px' }, 250, function() {
237		$('#' + id).css({ height: 'auto', display: 'block' });
238		$('#' + id).css({ height: height + 'px', display: 'block' });
239		if (g_textAssistantHash[textId].divHeight > g_assistHeight) {
240			$('#' + id).css({ overflow: 'scroll' });
241		} else {
242			$('#' + id).css({ overflow: 'visible' });
243		}
244	});
245}
246
247function IsArray() {
248	if (arguments[0] == null) {
249		return false;
250	}
251	if (typeof arguments[0] == 'object') {
252		var criterion = arguments[0].constructor.toString().match(/array/i);
253		return (criterion != null);
254	}
255	return false;
256}
257
258function ClearProductEntryForm() {
259	document.getElementById('Sku').value = '';
260	document.getElementById('ProductName').value = '';
261	document.getElementById('Qty_Each').value = '';
262	document.getElementById('Qty_Inner').value = '';
263	document.getElementById('Qty_Case').value = '';
264	document.getElementById('InStockStatusDiv').innerHTML = '';
265	document.getElementById('ProductImageDiv').innerHTML = '';
266	$('#Qty_Each').unbind('keydown');
267	$('#Qty_Inner').unbind('keydown');
268	$('#Qty_Case').unbind('keydown');
269	document.getElementById('Qty_Each_Label').style.display = 'none';
270	document.getElementById('Qty_Inner_Label').style.display = 'none';
271	document.getElementById('Qty_Case_Label').style.display = 'none';
272	document.getElementById('Qty_Each').style.display = 'none';
273	document.getElementById('Qty_Inner').style.display = 'none';
274	document.getElementById('Qty_Case').style.display = 'none';
275	document.getElementById('Qty_Each').value = '';
276	document.getElementById('Qty_Inner').value = '';
277	document.getElementById('Qty_Case').value = '';
278	document.getElementById('EachUnitPrice').innerHTML = '';
279	document.getElementById('InnerUnitPrice').innerHTML = '';
280	document.getElementById('CaseUnitPrice').innerHTML = '';
281	document.getElementById('PhotoPreviewDiv').style.display = 'block';
282	document.getElementById('CurrencyExchange').innerHTML = '';
283	if (g_isRewardBoard == true) {
284		document.getElementById('Student').value = '';
285	}
286}
287
288function ClearForm() {
289	ClearProductEntryForm();
290	g_quickOrderUid = '';
291	document.getElementById('Account').value = '';
292	document.getElementById('AccountContact').value = '';
293	if (document.getElementById('LauncCartActionDiv').style.display != 'none') {
294		$('#LauncCartActionDiv').slideUp(250);
295	}
296	UpdateItemList();
297}
298
299function AddProduct() {
300	if (g_quickOrderUid == '') {
301		MessageBox('You have not created a quick order header yet. Please make sure the account data is filled in correctly above.');
302		return;
303	}
304	if (document.getElementById('Sku').value == '') {
305		MessageBox('You have not selected a product to add.', 2000);
306		return;
307	}
308	if ((g_isRewardBoard == true) && (document.getElementById('Student').value == '')) {
309		MessageBox('You have not entered a student name.', 2000);
310		return;
311	}
312	var studentName = ((g_isRewardBoard == true) ? document.getElementById('Student').value : '');
313	$.get('/QuickOrder/Data.asp?Request=AddProduct&Sku=' + escape(document.getElementById('Sku').value) + '&QtyEach=' + escape(document.getElementById('Qty_Each').value) + '&QtyInner=' + escape(document.getElementById('Qty_Inner').value) + '&QtyCase=' + escape(document.getElementById('Qty_Case').value) + '&Student=' + studentName + '&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
314		if (data.length > 0) {
315			var response = data.split('|');
316			if (response[0] == 'E') {
317				MessageBox('Error: ' + response[1]);
318				if (document.getElementById('Qty_Case').style.display != 'none') {
319				document.getElementById('Qty_Case').focus();
320			} else {
321				document.getElementById('Sku').focus();
322				}
323			} else {
324				document.getElementById('Sku').focus();
325				MessageBox('Product successfully added. Just a moment...');
326				ClearProductEntryForm();
327				UpdateItemList(function() {
328				});
329			}
330		}
331	});
332}
333
334function EditProduct(sku, student) {
335	ClearProductEntryForm();
336	document.getElementById('PhotoPreviewDiv').style.display = 'none';
337	document.getElementById('QuickOrderLoadingDiv').style.display = 'block';
338	$.get('/QuickOrder/Data.asp?Request=EditProduct&Sku=' + escape(sku) + '&Student=' + escape(student) + '&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
339		if (data.length > 0) {
340			document.getElementById('AddProductActionDiv').style.display = 'none';
341			document.getElementById('UpdateProductActionDiv').style.display = '';
342			var info = data.split('|');
343			var height = 0;
344			try {
345				var image = new Image();
346				image.src = '/_Sku/' + info[0] + 't.jpg';
347				height = image.height;
348			} catch (e) {
349			}
350			document.getElementById('Sku').value = info[0];
351			document.getElementById('ProductName').value = info[1];
352			document.getElementById('InStockStatusDiv').innerHTML = info[2];
353			document.getElementById('ProductImageDiv').style.display = 'block';
354			document.getElementById('ProductImageDiv').innerHTML = '<a href="/QuickOrder/Data.asp?Request=ProductImage&Sku=' + info[0] + '&height=500&~=" id="ProductImage" class="jTip" name="Product Image"><img src="/_Sku/' + info[0] + 't.jpg" border="0" style="margin-top:' + (Math.round(((75 - height) / 2))) + 'px;" /></a>';
355			document.getElementById('Qty_Each').style.display = (info[3] == 0) ? 'none' : '';
356			document.getElementById('Qty_Inner').style.display = (info[4] == 0) ? 'none' : '';
357			document.getElementById('Qty_Case').style.display = (info[5] == 0) ? 'none' : '';
358			document.getElementById('Qty_Each_Label').style.display = (info[3] == 0) ? 'none' : '';
359			document.getElementById('Qty_Inner_Label').style.display = (info[4] == 0) ? 'none' : '';
360			document.getElementById('Qty_Case_Label').style.display = (info[5] == 0) ? 'none' : '';
361			document.getElementById('EachUnitPrice').innerHTML = (info[3] == 0) ? '' : info[10];
362			document.getElementById('InnerUnitPrice').innerHTML = (info[4] == 0) ? '' : info[11];
363			document.getElementById('CaseUnitPrice').innerHTML = (info[5] == 0) ? '' : info[12];
364			document.getElementById('CurrencyExchange').innerHTML = info[13];
365			if (g_isRewardBoard == true) {
366				document.getElementById('Student').value = info[14];
367				document.getElementById('Student').disabled = true;
368			}
369			document.getElementById('Sku').disabled = true;
370			document.getElementById('ProductName').disabled = true;
371			JT_init();
372			$('#ProductImage').click(function(e) {
373				ProductPopup('', info[6]);
374				return false;
375			});
376			//+
377			var id = '';
378			if (info[3] == 1) {
379				id = 'Qty_Each';
380			} else if (info[4] == 1) {
381				id = 'Qty_Inner';
382			} else if (info[5] == 1) {
383				id = 'Qty_Case';
384			}
385			$('#Qty_Each, #Qty_Inner, #Qty_Case').bind('keydown', function(event) {
386				return qtyUpdateKeyDown(event);
387			});
388			//+ 7-9
389			document.getElementById('Qty_Each').value = info[7];
390			document.getElementById('Qty_Inner').value = info[8];
391			document.getElementById('Qty_Case').value = info[9];
392			if (id != '') {
393				document.getElementById(id).focus();
394			}
395		} else {
396			document.getElementById('InStockStatusDiv').innerHTML = '';
397			document.getElementById('ProductImageDiv').innerHTML = '';
398			document.getElementById('PhotoPreviewDiv').style.display = 'block';
399		}
400		document.getElementById('QuickOrderLoadingDiv').style.display = 'none';
401	});
402}
403
404function UpdateProduct() {
405	if (g_quickOrderUid == '') {
406		MessageBox('You have not created a quick order header yet. Please make sure the account data is filled in correctly above.');
407		return;
408	}
409	var studentName = ((g_isRewardBoard == true) ? document.getElementById('Student').value : '');
410	$.get('/QuickOrder/Data.asp?Request=UpdateProduct&Sku=' + escape(document.getElementById('Sku').value) + '&QtyEach=' + escape(document.getElementById('Qty_Each').value) + '&QtyInner=' + escape(document.getElementById('Qty_Inner').value) + '&QtyCase=' + escape(document.getElementById('Qty_Case').value) + '&Student=' + escape(studentName) + '&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
411		if (data.length > 0) {
412			var response = data.split('|');
413			if (response[0] == 'E') {
414				MessageBox('Error: ' + response[1]);
415				document.getElementById('Qty_Case').focus();
416			} else {
417				MessageBox('Item Updated');
418				ClearProductEntryForm();
419				document.getElementById('AddProductActionDiv').style.display = '';
420				document.getElementById('UpdateProductActionDiv').style.display = 'none';
421				document.getElementById('Sku').disabled = false;
422				document.getElementById('ProductName').disabled = false;
423				if (g_isRewardBoard == true) {
424					document.getElementById('Student').disabled = false;
425				}
426				document.getElementById('Sku').focus();
427				UpdateItemList(function() {
428				});
429			}
430		}
431	});
432}
433
434function RemoveProduct(sku, student) {
435	$.get('/QuickOrder/Data.asp?Request=RemoveProduct&Sku=' + escape(sku) + '&Student=' + escape(student) + '&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
436		UpdateItemList();
437	});
438}
439
440function UpdateItemList(callBack) {
441	$('#ItemList').slideUp(250, function() {
442	$.get('/QuickOrder/Data.asp?Request=ItemList&Uid=' + g_quickOrderUid + '&IdS=' + g_idS, function(data) {
443			var pos = data.indexOf('TotalQty:');
444			var posEnd = data.indexOf(' ', pos + 11);
445			var qty = data.substring(pos + 10, posEnd)
446			g_totalQuantity = parseInt(qty);
447			document.getElementById('ItemList').innerHTML = data;
448			JT_init();
449			$('#ItemList').slideDown(250, function() {
450				if (callBack) {
451					callBack();
452				}
453			});
454		});
455	});
456}
457
458function SetDebug(value) {
459	document.getElementById('debug').innerHTML = value;
460}
461
462function MessageBox(msg, delay) {
463	if (g_isMessageBoxVisible == true) {
464		return;
465	}
466	document.getElementById('MessageBoxDiv_Content').innerHTML = msg;
467	try {
468		g_isMessageBoxVisible = true;
469		var wndSize = GetWindowSize();
470		var offsetY = ScrollOffset();
471		var posX = ($(document).width() / 2) - ($('#MessageBoxDiv').width() / 2);
472		var posY = ((wndSize.height) / 2) - ($('#MessageBoxDiv').height() / 2) + offsetY;
473		$('#MessageBoxDiv').css({ top: posY + 'px', left: posX + 'px' });
474		ShowOverlay('MessageBoxDiv', function() {
475			$(document).bind('click', CloseMessageBox);
476			g_mbTimeoutId = setTimeout(function() {
477				CloseMessageBox();
478			}, (delay) ? delay : 2000);
479		});
480	} catch (e) {
481	}
482}
483
484function CloseMessageBox() {
485	window.clearTimeout(g_mbTimeoutId);
486	$(document).unbind('click', CloseMessageBox);
487	HideOverlay('MessageBoxDiv');
488	g_isMessageBoxVisible = false;
489}
490
491function GetWindowSize() {
492	var width = 0;
493	var height = 0;
494	if (typeof (window.innerWidth) == 'number') {
495		//+ Not IE
496		width = window.innerWidth;
497		height = window.innerHeight;
498	} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
499		//+ IE 6+ in 'standards compliant mode'
500		width = document.documentElement.clientWidth;
501		height = document.documentElement.clientHeight;
502	} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
503		//+ IE 4 compatible
504		width = document.body.clientWidth;
505		height = document.body.clientHeight;
506	}
507	return { width: width, height: height };
508}
509
510function Product_KeyUpHandler(id, keyCode) {
511	switch (keyCode) {
512		//+ Backspace 
513		case 8:
514			//+ Del
515		case 46:
516			if (document.getElementById(id).value == '') {
517				ClearProductEntryForm();
518			}
519			break;
520		//+ Left 
521		case 37:
522			document.getElementById('Sku').focus();
523			return false;
524			//+ Right
525		case 39:
526			document.getElementById('ProductName').focus();
527			return false;
528	}
529	return true;
530}
531
532function CompleteQuickOrder() {
533	if (g_isLoggedIn == false) {
534		MessageBox("Ooops! You need to login to an account to perform this function. Please login, then try again.", 4000);
535		return;
536	}
537	//+ to prevent beforeunload dialog
538	g_totalQuantity = 0;
539	var o = document.Form_Engine;
540	o.Action.value = 'Checkout';
541	o.submit();
542}
543
544//- TextAssistant -//
545function TextAssistant_KeyDownHandler(id, e) {
546	var textAssist = g_textAssistantHash[id];
547	var keyCode = e.which;
548	switch (keyCode) {
549		//+ Ctrl 
550		case 17:
551			g_isCtrlDown = true;
552			return true;
553			//+ Up
554		case 38:
555			if (textAssist.selectedIndex > 0) {
556				textAssist.selectedIndex -= 1;
557				textAssist.updateDiv();
558			}
559			return false;
560			//+ Down
561		case 40:
562			if (textAssist.selectedIndex < textAssist.items.length - 1) {
563				textAssist.selectedIndex += 1;
564				textAssist.updateDiv();
565			}
566			return false;
567		case 9:
568			if (textAssist.selectedIndex > -1) {
569				textAssist.setItem();
570			}
571			return true;
572			//+ Enter
573		case 13:
574			if (g_isCtrlDown == false) {
575				textAssist.setItem();
576			} else {
577				if (confirm('Are you really sure you would like to add these items to your cart?') == true) {
578					CompleteQuickOrder();
579				}
580			}
581			return false;
582	}
583	return true;
584}
585
586function TextAssistant(id, divId) {
587	this.id = id;
588	this.divId = divId;
589	this.selectedIndex = -1;
590	this.items = new Array();
591	this.divHeight = 0;
592	this.request = null;
593}
594
595TextAssistant.prototype.clear = function() {
596	this.items.length = 0;
597	this.selectedIndex = -1;
598}
599
600TextAssistant.prototype.updateDiv = function() {
601	if ((this.items.length == 1) && (document.getElementById(this.id).value == '')) {
602		this.selectedIndex = 0;
603		this.setItem();
604		return;
605	}
606	var html = '';
607	for (var i = 0; i < this.items.length; i++) {
608		html += '<a href="#" onclick="SetTextValue(\'' + this.id + '\', \'' + this.items[i] + '\'); return false;" id="' + this.divId + '_' + i + '" class="TextAssistEntry' + ((this.selectedIndex == i) ? 'Selected' : ((i % 2 == 0) ? 'Alt' : '')) + '">' + this.items[i] + '</a>';
609	}
610	var div = document.getElementById(this.divId);
611	$('#ItemList').append('<div id="' + this.divId + '_Temp" style=""position: absolute; display: none;""></div>');
612	$('#' + this.divId + '_Temp').css({ width: ($('#' + this.id).width()) + 'px' });
613	document.getElementById(this.divId + '_Temp').innerHTML = html;
614	this.divHeight = parseInt($('#' + this.divId + '_Temp').height());
615	var divHeight = this.divHeight;
616	$('#' + this.divId + '_Temp').remove();
617	div.innerHTML = html;
618	var padding = (this.divHeight > g_assistHeight) ? 20 : 0;
619	$(div).css({ width: ($('#' + this.id).width() + padding) + 'px' });
620	var height = (divHeight > g_assistHeight) ? g_assistHeight : divHeight;
621	if (height != $(div).height()) {
622		$(div).animate({ height: height + 'px' }, 250, function() {
623			$(div).css({ height: height + 'px', display: 'block' });
624			if (divHeight >= g_assistHeight) {
625				$(div).css({ overflow: 'scroll' });
626			} else {
627				$(div).css({ overflow: 'visible' });
628			}
629		});
630	}
631	if (this.selectedIndex > -1) {
632		var entry = document.getElementById(this.divId + '_' + this.selectedIndex);
633		var newHeight = $(div).height() - 20;
634		var scrollPos = div.scrollTop;
635		var offset = entry.offsetTop;
636		if (offset < scrollPos) {
637			div.scrollTop = offset;
638		}
639		if (offset > scrollPos + newHeight) {
640			div.scrollTop = (offset + $(entry).height()) - newHeight;
641		}
642	}
643}
644
645TextAssistant.prototype.addItem = function(value) {
646	this.items.push(value);
647}
648
649TextAssistant.prototype.setItem = function() {
650	if (this.selectedIndex == -1) {
651		return;
652	}
653	SetTextValue(this.id, this.items[this.selectedIndex]);
654	this.clear();
655}
656
657function QuickOrder_OnBeforeUnLoad(event) {
658	if (g_totalQuantity == 0) {
659		return;
660	}
661	return 'Your Quick Order Form will be cleared.';
662}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.