var g_Partition = 'CED';

/* -----------------9/15/2009 3:46PM-----------------
Page Load function
 --------------------------------------------------*/
$(function() {
	// intiating routines
	setMenuWidth();

	var $dialogs = $('.popup_dialog');
	$dialogs.each( function() {
		$(this).draggable();
	} );

	// check for any local initialization
	if ( typeof localInitialize == 'function' ) {
		localInitialize();
	}
});

/* -------------------------------------------------
 JS to manage popup browser windows
 --------------------------------------------------*/
function popup(url, winname, width, height)
{
  var Win = window.open(url,
                        winname,
                        'width=' + width +
                        ',height=' + height +
                        ',location=no,menubar=no,status=no,toolbar=no,scrollbars=1,resizable=1,left=50,top=50');
}

function popup_help(url, winname, width, height)
{
  var Win = window.open(url,
                        winname,
                        'width=' + width +
                        ',height=' + height +
                        ',location=yes,menubar=yes,status=no,toolbar=yes,scrollbars=1,resizable=1,left=50,top=50');
}

function openWindow(url, winname, width, height, left, top)
{
  var Win = window.open(url,
                        winname,
                        'width=' + width +
                        ',height=' + height +
                        ',location=no,menubar=yes,status=no,toolbar=no,scrollbars=1,resizable=1,' +
                        'left=' + left +
                        ',top=' + top);
}

function fullWindow(url, winname, width, height, left, top)
{
  var Win = window.open(url,
                        winname,
                        'width=' + width +
                        ',height=' + height +
                        ',location=yes,menubar=yes,status=yes,toolbar=yes,scrollbars=1,resizable=1,' +
                        'left=' + left +
                        ',top=' + top);
}

function do_redirect(sURL)
{
	window.location = sURL;
}

/* -------------------------------------------------
 Show a help page
 --------------------------------------------------*/
function showHelp(s_TOC)
{

	var s_Link = 'echelp.php';

	if ( s_TOC === undefined ) {
		s_TOC = '';
	}

	if ( s_TOC != '' ) {
		s_Link += '#' + s_TOC;
	}

	popup_help(s_Link, '_echelp', 900, 650, 0, 0);

}



/* -------------------------------------------------
 JS to hide and show divisions and submit forms
 --------------------------------------------------*/
function showDiv(s_div, s_html)
{
	if ( s_html !== undefined ) {
		$('#' + s_div).html(s_html);
	}
	$('#' + s_div).show();
}

function hideDiv(s_div)
{
	$('#' + s_div).hide();
}

function showCommonImage(sdiv, simage)
{
	$('#' + sdiv).html('<img src="' + simage + '" alt="' + simage + '" />');
	$('#' + sdiv).show();
}

function doSubmit( sForm )
{
	$('#' + sForm).submit();
}

function showQtyExplanation()
{
	showDiv('qty_explanation');
}

function hideQtyExplanation()
{
	hideDiv('qty_explanation');
}

function showHomeBanner(s_div, s_li)
{
	hideHomeBanners();
	showDiv(s_div);
	$('#' + s_li).css('background-color', '#555');
}

function hideHomeBanners()
{
	hideDiv('corp_gf_lpage');
	hideDiv('corp_gf_special');
	hideDiv('corp_gf_about');
	hideDiv('corp_gf_contact');
	hideDiv('corp_gf_service');
	hideDiv('corp_gf_brands');
	hideDiv('corp_gf_newsletter');
	hideDiv('corp_gf_boxes');
	hideDiv('corp_gf_dashboard');
	$('.hl_element').css('background-color', '#aaa');
}


/* -------------------------------------------------
 hideMenu / showMenu - Hide and show menus
 --------------------------------------------------*/
function hideMenu(sDiv)
{
	$('#' + sDiv).width('15px');
	$('#' + sDiv + '_ctl').html('<img class="menu_hide" src="images/menu_max.gif" alt="Show Menu" title="Show Menu" onclick="showMenu(\'' + sDiv + '\');" />');
	setBodyWidth();
	document.cookie = 'ec_menu_min=Y';
}

function showMenu(sDiv)
{
	$('#' + sDiv).width('16em');
	$('#' + sDiv + '_ctl').html('<img class="menu_hide" src="images/menu_min.gif" alt="Hide Menu" title="Hide Menu" onclick="hideMenu(\'' + sDiv + '\');" />');
	setBodyWidth();
	document.cookie = 'ec_menu_min=N';
}

function setBodyWidth()
{

	var nWidth = $(window).width();
	if ( $('#tabMenu') ) {
		nWidth -= $('#tabMenu').width();
	}
	$('#pageBody').width(nWidth - 40);

}

function setMenuWidth()
{

	var sMin = getCookie('ec_menu_min');
	if ( sMin == 'Y' ) {
		hideMenu('pageSubMenu');
	}	else {
		setBodyWidth();
	}

}


/* -------------------------------------------------
 getCookie - Get a cookie value
 --------------------------------------------------*/
function getCookie(sName)
{
	if (document.cookie.length > 0) {
	  nStart = document.cookie.indexOf( sName + "=" );
	  if (nStart != -1) {
	    nStart = nStart + sName.length + 1;
	    nEnd = document.cookie.indexOf(";", nStart);
	    if ( nEnd == -1 )
				nEnd = document.cookie.length;
	    return unescape(document.cookie.substring(nStart,nEnd) );
		}
  }
	return "";
}

/*****************************************************************
	formatCurrency
*****************************************************************/

function formatCurrency(num)
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	cents = num % 100;
	num = Math.floor(num / 100).toString();
	if(cents < 10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

/*****************************************************************
	buildGetString
*****************************************************************/

function buildGetString( aIn )
{
	var sOut = '';
	var sTemp = new String();
	var bFirst = true;

	for ( var i in aIn ) {
		if ( !bFirst ) {
			sOut += '&';
		}
		sTemp = String(aIn[i]);
		sOut += i + '=' + sTemp.replace('&', '%26');
		bFirst = false;
	}

	return sOut;

}

/*****************************************************************
	reportAjaxError
*****************************************************************/

function reportAjaxError( XMLHttpRequest, textStatus, errorThrown )
{
	if ( textStatus ) {
		alert(textStatus + ': ' + XMLHttpRequest.responseText);
	}
	if ( errorThrown ) {
		alert('Error Thrown - ' + errorThrown + ': ' + XMLHttpRequest.responseText);
	}
}

/*****************************************************************
	popupMessage - Show a Popup Error/Warning
	s_Type values: Ok - show a simple information box
				  			 Error - show an error box
								 YesNo - show a dialogue with Yes and No buttons
*****************************************************************/
function popupMessage( s_Err, s_Title, s_Type, n_Width )
{
	if ( s_Type === undefined ) {
		s_Type = 'Ok';
	}
	if ( s_Title === undefined ) {
		s_Title = '';
	}
	if ( n_Width === undefined ) {
		n_Width = 30;
	}

	var b_exists = true;
	if ( $('#global_error').length == 0 ) {
		b_exists = false;
	}

	s_HTML = '';

	if ( !b_exists ) {
		s_HTML += '<div id="global_error" class="popup_dialogue" style="padding-bottom: 1em;"></div>';
		$(s_HTML).appendTo('#pageBody');
		$('#global_error').draggable();
		s_HTML = '';
	}

	if ( s_Title == '' ) {
		switch(s_Type) //set the variables based on the calendar mode
		{
			case 'Ok': //popup options
				s_Title = 'Information Message';
				break;
			case 'Error':
				s_Title = 'Error Message';
				break;
			case 'YesNo':
				s_Title = 'Question?';
				break;
		}
	}

	s_HTML += popupTitle(s_Title, 'global_error');

	s_HTML += '<div class="popup_text" id="global_error_text">';
	s_HTML += s_Err;
	s_HTML += '</div>';

	s_HTML += '<div class="popup_buttons">';
	s_HTML += '<input type="button" class="form_button" value="Ok" onclick="hideDiv(\'global_error\')" />';
  s_HTML += '</div>';

	$('#global_error').width( n_Width + 'em' );
	$('#global_error').html(s_HTML);

	$('#global_error').css('left', (($(window).width() / 2) - ($('#global_error').width() / 2)));
	$('#global_error').css('top', (($(window).height() / 2) - ($('#global_error').height())));

	showDiv('global_error');

}



/*****************************************************************
	popupTitle - return HTML for a popup dialogue title
*****************************************************************/
function popupTitle( s_title, s_div )
{
	s_HTML = '';

	s_HTML += '<div class="popup_title">';
	s_HTML += s_title;
  s_HTML += '<img class="popup_close" src="images/delete_w.gif" alt="Close Window" onclick="hideDiv(\'' + s_div + '\');" />';
  s_HTML += '</div>';

	return s_HTML;
}

function popupButtons( s_title, s_div )
{
	s_HTML = '';

	s_HTML += '<div class="popup_buttons">';
	s_HTML += '<input type="submit" class="form_button" value="' + s_title + '" />';
	s_HTML += '<input type="button" class="form_button" value="Cancel" onclick="hideDiv(\'' + s_div + '\')" />';
  s_HTML += '</div>';

	return s_HTML;
}

function popupErrorMessage( s_id )
{
	s_HTML = '';

	if ( s_id === undefined ) {
		s_id = 'ec_dialog_error';
	}

	s_HTML += '<div class="popup_error" id="' + s_id + '">';
  s_HTML += '</div>';

	return s_HTML;
}

function popupShowError( s_err, s_id )
{

	if ( s_id === undefined ) {
		s_id = 'ec_dialog_error';
	}

	$('#' + s_id).html( s_err );

}

/*****************************************************************
	keyEnter - Intercept the Enter Key submit the form
	s_div - optionally contains the division containing the form
	        if present, ESC will close the division
*****************************************************************/
function keyEnter( evt, frm, s_div ) {

	var key_code = null;

	if( evt.which ) {
		// handles Firefox
		key_code = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		key_code = evt.keyCode;
	}

	if( 27 == key_code ) {
		if ( s_div !== undefined ) {
			hideDiv(s_div);
		}
		return false;
	}

	if( 13 == key_code ) {
		// Note that the frm must be wrapped in a jquery collar
		// in order to trigger the validate methods.
		// frm.submit(), while valid JS, won't validate
		$(frm).submit();
		return false;
	}

	return true;
}

/*****************************************************************
	keyEnter - Intercept the Enter Key and tab to s_tab as Field
	s_div is the division containing the form
*****************************************************************/
function keyTab( evt, o_this, s_div, s_tab ) {

	var key_code = null;

	if( evt.which ) {
		// handles Firefox
		key_code = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		key_code = evt.keyCode;
	}

	if( 27 == key_code ) {
		if ( s_div !== undefined ) {
			hideDiv(s_div);
		}
		return false;
	}

	if( 13 == key_code ) {
		if ( s_tab !== undefined ) {
			$('#' + s_tab).focus();
		} else {
//			var fields = $(o_this).parents('form:eq(0),body').find('button,input,textarea,select');
			var fields = $(o_this).parents('form').find('button,input,textarea,select');
      var index = fields.index( o_this );
      if ( index > -1 && ( index + 1 ) < fields.length ) {
				if ((fields.eq( index + 1 ).attr('type') == 'submit') || (fields.eq( index + 1 ).attr('type') == 'button')) {
        	fields.eq( index + 1 ).focus();
				} else {
        	fields.eq( index + 1 ).select();
				}
      } else {
       	fields.eq( 0 ).select();
      }
		}
		return false;
	}

	return true;
}

/* -----------------02/20/2009 10:00AM---------------
 toggleShowAll
 --------------------------------------------------*/
function toggleShowAll(sTarget) {

	var sContract = getCookie('contract_only');
	if ( sContract == undefined ) {
		sContract = 'N';
	}
	if ( sContract == '' ) {
		sContract = 'N';
	}

	if ( sContract == 'Y' ) {
		document.cookie = 'contract_only=N';
	} else {
		document.cookie = 'contract_only=Y';
	}

	window.location = sTarget;

}

/* -----------------12/14/2007 10:00AM---------------
 showItemBreak
 --------------------------------------------------*/
function showItemBreak(sStockno) {

	hideDiv('QP' + sStockno);
	showDiv('QB' + sStockno);

}

/* -------------------------------------------------
 Ajax Routines
 --------------------------------------------------*/

/* -------------------------------------------------
 addFav - Add Item to Favourites
 --------------------------------------------------*/
function addFav(sKey, sField, sStockno) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC011',
								 FUN: 'EC011FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 X_FUNC: 'A'
							 }

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(msg){
				toggleFav(sKey, sField, sStockno, true);
			}
		});
}

/* -----------------12/14/2007 10:00AM---------------
 toggleFav
 --------------------------------------------------*/
function toggleFav(sKey, sField, sStockno, bAdd) {
	var sHTML = '';

	if ( bAdd ) {
    sHTML += '<a href="javascript:delFav(' + sKey + ', \'' + sField + '\', \'' + sStockno + '\')"><img src="images/favdel.gif" class="normal" alt="Remove from Favourites" title="Remove From Your Favourites" /></a>';
	} else {
    sHTML += '<a href="javascript:addFav(' + sKey + ', \'' + sField + '\', \'' + sStockno + '\')"><img src="images/favadd.gif" class="normal" alt="Add to Favourites" title="Add to Your Favourites" /></a>';
	}

	$("#" + sField ).html(sHTML);
}

/* -----------------12/14/2007 10:00AM---------------
 delFav - Delete Item From Favourites
 --------------------------------------------------*/
function delFav(sKey, sField, sStockno) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC011',
								 FUN: 'EC011FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 X_FUNC: 'D'
							 }

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(msg){
				toggleFav(sKey, sField, sStockno, false);
			}
		});

}

/* -----------------12/14/2007 10:00AM---------------
 linkSKU
 --------------------------------------------------*/
function linkSKU(sStockno) {

	$("#sku_adder_title").html('Link to GF Stock No. ' + sStockno);
	$("#sku_adder_gfstockno").html(sStockno);

	$("#sku_adder_stockno").val(sStockno);
	$("#sku_function").val('A');
	$("#sku_adder_custprdno").val('');
	$("#sku_adder_venddesc").val('');
	$("#sku_adder_error").val('');

	showDiv('sku_adder');
	$("#sku_adder_custprdno").focus();

}

/* -----------------12/14/2007 10:00AM---------------
 linkChange
 --------------------------------------------------*/
function linkChange(sStockno, sKey) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC012',
								 FUN: 'EC012FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 X_FUNC: 'R'
							 }

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				if ( oWAM.W_ERR != 'E' ) {
					$("#sku_adder_title").html('Change Your Link to GF Stock No. ' + sStockno);
					$("#sku_adder_gfstockno").html(sStockno);

					$("#sku_adder_stockno").val(sStockno);
					$("#sku_function").val('U');
					$("#sku_adder_custprdno").val(oWAM.CUSTPRDNO);
					$("#sku_adder_venddesc").val(oWAM.VENDDESC);
					$("#sku_adder_error").val('');

					showDiv('sku_adder');
					$("#sku_adder_custprdno").focus();
				}
			}
		});

}

/* -----------------12/14/2007 10:00AM---------------
 acceptSKUChange - Accept a field change
 --------------------------------------------------*/
function acceptSKUChange( evt, frm, sKey ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if( 27 == keyCode ) {
		hideDiv('sku_adder');
		return false;
	}

	if( 13 == keyCode ) {
		postSKUChange(sKey);
		return false;
	}

	return true;
}

/* -----------------12/14/2007 10:00AM---------------
 linkSKU
 --------------------------------------------------*/
function postSKUChange(sKey) {

	var sStockno = $('#sku_adder_stockno').val();
	var sCustprdno = $('#sku_adder_custprdno').val();
	var sVenddesc = $('#sku_adder_venddesc').val();
	var sFunction = $('#sku_function').val();

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC012',
								 FUN: 'EC012FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 CUSTPRDNO: sCustprdno,
								 VENDDESC: sVenddesc,
								 X_FUNC: sFunction
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				if ( oWAM.W_ERR == 'E' ) {
					$('#sku_adder_error').html(oWAM.W_ERRMSG);
				} else {
					hideDiv('sku_adder');
					if ( sCustprdno == '' ) {
				    $('#SKU' + sStockno).html('&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:linkSKU(\'' + sStockno + '\')"><img src="images/yoursku.gif" class="centered" alt="Link Your SKU" title="Link Your SKU to this Item" /></a>');
					} else {
  					$('#SKU' + sStockno).html('<em><a href="javascript:linkChange(\'' + sStockno + '\', ' + sKey + ')">' + sCustprdno + '</a></em>');
					}
				}
			}
		});
}


/* -----------------12/14/2007 10:00AM---------------
 refreshCart - Show contents of cart
 --------------------------------------------------*/
function refreshCart(sKey, sField, sStockno, nThisQty, bAnimate, sAnimateTarget) {

	var bQtyOk = true;
	var bCalledFromSpec = true;
	var bUpdateOnly = true;

	if ( nThisQty == undefined ) {
		nThisQty = 0;
	}
	if ( nThisQty == '' ) {
		nThisQty = 0;
	}

	if ( bAnimate == undefined ) {
		bAnimate = false;
	}
	if ( sAnimateTarget == undefined ) {
		sAnimateTarget = sStockno;
		bCalledFromSpec = false;
	}

	var url = 'ec_forward.php';

	var nQty = nThisQty;

	if ($('#eccart').val() !== undefined)
		bUpdateOnly = false;

	if ( nQty == 0 ) {
		nQty = $('#' + sField).val()
		if ( nQty == '' ) {
			nQty = 0;
		}
	}

	var params = {
								 APP: 'EC021',
								 FUN: 'EC021FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 ORDQTY: nQty,
								 X_DELETE: 'N'
							 }

	var bErr = false;


	if ( isNaN(nQty) ) {
		bErr = true;
		alert("The quantity ordered (" + nQty +  ") must be a number.");
	}

	if ( !bErr ) {
		if ( bAnimate ) {
//			fireBullet(sAnimateTarget);
		}
		new $.ajax({
				url: url,
				type: 'POST',
				data: buildGetString(params),
				dataType: 'json',
				error: function(XMLHttpRequest, textStatus, errorThrown)  {
					if ( errorThrown ) {
						reportAjaxError( XMLHttpRequest, textStatus, errorThrown );
					}
				},
				success: function(oWAM){
					if ( oWAM.W_ERR == 'R' ) {
						alert('Your order quantity must be a multiple of the minimum order qty.');
						$('#' + sField).val('');
					} else {
						if ( bUpdateOnly ) {
							updateCart(oWAM, sField, sKey, bCalledFromSpec);
						} else {
							showCart(oWAM, sField, sKey, bCalledFromSpec);
						}
					}
				}
			});
	}

}

/* -----------------12/14/2007 10:00AM---------------
 updateCart - Displays the cart
 --------------------------------------------------*/
function updateCart(oWAM, sField, sKey, bCalledFromSpec) {
	var sHTML = '';
	var sTotal = formatCurrency(oWAM.W_TOTAL);
	var sItems = oWAM.W_ITEMS;
	var sBtn = 'B' + sField;

//	if ($("#" + sField).length == 0){
//		return;
//	}

	if ( bCalledFromSpec == undefined ) {
		bCalledFromSpec = false;
	}

//	if ( sField != '' ) {
//		$('#' + sField).val('');
//	}

	if ( $('#' + sField).val() == '0' ) {
		$('#' + sField).val('');
	}

	if ( $('#' + sField).val() == '' ) {
		$('#' + sBtn).val('Add to Order');
		$('#' + sField).removeClass('in_order');
		$('#' + sBtn).removeClass('order_button_chg');
	} else {
		$('#' + sBtn).val('Apply Change');
		$('#' + sBtn).addClass('order_button_chg');
		$('#' + sField).addClass('in_order');
	}

	sHTML = sItems + ' item(s)<br />' + sTotal;

	$('#ec_cart_h_qty').html(sItems);
	$('#ec_cart_h_val').html(sTotal);
	$('#ec_cart_f_qty').html(sItems);
	$('#ec_cart_f_val').html(sTotal);

	$('#pageHeadCart_cont').effect("highlight", {}, 500);

	document.cookie = 'cart_items=' + sItems;
	document.cookie = 'cart_total=' + sTotal;

}

/* -----------------12/14/2007 10:00AM---------------
 showCart - Displays the cart
 --------------------------------------------------*/
function showCart(oWAM, sField, sKey, bCalledFromSpec) {
	var nMax = oWAM._array.length;
	var bOddRow = false;
	var sQty = '';
	var nQtyOrd = 0;
	var nQtyAvail = 0;

	var sHTML = '';
	var sTotal = formatCurrency(oWAM.W_TOTAL);
	var sItems = oWAM.W_ITEMS;

	var nQty = 0;
	var sSub = formatCurrency(oWAM.W_TOTAL);

	var sCartTxt = '<p>Your shopping cart is currently empty.</p>';
	var sShortTxt = '';

	var bQtyOk = true;
	var sQtyError = '';

	if ( bCalledFromSpec == undefined ) {
		bCalledFromSpec = false;
	}

	if ( nMax != 0 ) {
  	sCartTxt = '<form id="eccart" action="ecreview.php">';
		sCartTxt += '<table><thead>';
		sCartTxt += '<tr><th>Stock No.</th><th>Description</th><th>Price</th><th>Qty</th><th>&nbsp;</th><th>Extension</th><th>&nbsp;</th></tr></thead><tbody>';
		for ( var nCount = 0; nCount < nMax; nCount++ ) {
			if ( bOddRow ) {
				sCartTxt += '<tr class="oddrow">';
				bOddRow = false;
			} else {
				sCartTxt += '<tr>';
				bOddRow = true;
			}
      sCartTxt += '<td>';
      sCartTxt += oWAM._array[nCount].STOCKNO;
      if ( oWAM._array[nCount].CUSTPRDNO != '' ) {
        sCartTxt += '<br /><em>' + oWAM._array[nCount].CUSTPRDNO + '</em>';
      }
      sCartTxt += '</td>';
			sCartTxt += '<td class="venddesc">';
			sCartTxt += oWAM._array[nCount].VENDDESC + sQtyError;
      sCartTxt += '<br />' + oWAM._array[nCount].PACKAGING;
      if (oWAM._array[nCount].BUDUNITS > 1) {
        sCartTxt += '&nbsp;&nbsp;Min. Order Qty: ' + oWAM._array[nCount].BUDUNITS;
      }
			sCartTxt += '</td>';
			sCartTxt += '<td class="currency">';
			sCartTxt += formatCurrency(oWAM._array[nCount].D_PRICE);
			if ( oWAM._array[nCount].D_FACTOR > 1  ) {
				sCartTxt += '/' + oWAM._array[nCount].D_FACTOR;
			} else {
				if ( oWAM._array[nCount].DPUNIT == 'EA'  ) {
				} else {
					sCartTxt += '/' + oWAM._array[nCount].DPUNIT;
				}
			}
			if ( oWAM._array[nCount].D_CHANGED == 'Y' ) {
				sCartTxt += '<br /><em>';
				sCartTxt += formatCurrency(oWAM._array[nCount].PRICE01);
				if ( oWAM._array[nCount].PRFACTOR > 1  ) {
					sCartTxt += '/' + oWAM._array[nCount].PRFACTOR;
				} else {
					if ( oWAM._array[nCount].UNIT == 'EA'  ) {
					} else {
						sCartTxt += '/' + oWAM._array[nCount].UNIT;
					}
				}
				sCartTxt += '</em>';
			}
			sCartTxt += '</td>';
			sCartTxt += '<td class="quantity"><span id="R' + oWAM._array[nCount].STOCKNO + '"><a href="javascript:showChange(' + sKey + ', \''  + oWAM._array[nCount].STOCKNO + '\')">' + oWAM._array[nCount].D_ORDQTY + '</a></span>';
      sCartTxt += '<span id="C' + oWAM._array[nCount].STOCKNO + '" style="display: none"><input type="text" name="V' + oWAM._array[nCount].STOCKNO + '" id="V' + oWAM._array[nCount].STOCKNO + '" size="3" maxlength="7" value="' + oWAM._array[nCount].D_ORDQTY + '" onkeypress="return acceptChange(event, this.form, ' + sKey + ', \'' + oWAM._array[nCount].STOCKNO + '\')" onblur="return handleChange(' + sKey + ', \'' + oWAM._array[nCount].STOCKNO + '\')" /></span>';
			if ( oWAM._array[nCount].D_CHANGED == 'Y' ) {
        sCartTxt += '<br /><em>' + oWAM._array[nCount].ORDQTY + '</em>';
			}
			sCartTxt += '</td>';
      sCartTxt += '<td class="symbol"><a href="javascript:showChange(' + sKey + ', \'' + oWAM._array[nCount].STOCKNO + '\')"><img src="images/change.gif" class="centered" alt="Change Qty" title="Change Quantity" /></a></td>';
			sCartTxt += '<td class="currency">' + formatCurrency(oWAM._array[nCount].NETSALES) + '</td>';
			sCartTxt += '<td class="symbol"><a href="javascript:deleteLine(' + sKey + ', \''  + oWAM._array[nCount].STOCKNO + '\')"><img src="images/delete.gif" class="centered" alt="Delete This Line" title="Delete This Line" /></a></td>';
			sCartTxt += '</tr>';
		}
		if ( bOddRow ) {
			sCartTxt += '<tr class="oddrow">';
			bOddRow = false;
		} else {
			sCartTxt += '<tr>';
			bOddRow = true;
		}
		sCartTxt += '<td>&nbsp;</td>';
		sCartTxt += '<td class="venddesc"><strong>Total</strong></td>';
		sCartTxt += '<td class="currency">&nbsp;</td>';
		sCartTxt += '<td class="quantity">&nbsp;</td>';
		sCartTxt += '<td class="currency">&nbsp;</td>';
		sCartTxt += '<td class="currency"><strong>' + formatCurrency(oWAM.W_TOTAL) + '</strong></td>';
		sCartTxt += '<td class="quantity">&nbsp;</td>';
		sCartTxt += '</tr>';
		sCartTxt += '</tbody></table>';
		sCartTxt += '</form>';
	}

	$("#shop_cart_contents").html(sCartTxt);

	$('#ec_cart_h_qty').html(sItems);
	$('#ec_cart_h_val').html(sTotal);
	$('#ec_cart_f_qty').html(sItems);
	$('#ec_cart_f_val').html(sTotal);

	document.cookie = 'cart_items=' + sItems;
	document.cookie = 'cart_total=' + sTotal;

	if ( sItems == '0' ) {
		$('#cart_submit').attr('disabled', true);
	}


}

/* -----------------12/14/2007 10:00AM---------------
 deleteLine - Delete Line from Cart
 --------------------------------------------------*/
function deleteLine(sKey, sStockno) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC021',
								 FUN: 'EC021FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 STOCKNO: sStockno,
								 ORDQTY: 0,
								 X_DELETE: 'Y'
							 }

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				showCart(oWAM, '', sKey);
			}
		});

}


/* -----------------12/14/2007 10:00AM---------------
 showChange - Show a field to change
 --------------------------------------------------*/
function showChange(sKey, sStockno) {

	$('#R' + sStockno).hide();
	$('#C' + sStockno).show();
	$('#V' + sStockno).focus();

}


/* -----------------12/14/2007 10:00AM---------------
 acceptOrderQty - Process a stock order
 --------------------------------------------------*/
function acceptOrderQty( evt, sKey, sStockno, bFromSpec ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if ( bFromSpec == undefined ) {
		bFromSpec = false;
	}

	if( 13 == keyCode ) {
		if ( bFromSpec ) {
			refreshCart(sKey, 'I' + sStockno, sStockno, 0, true, 'PD' + sStockno);
		} else {
			refreshCart(sKey, 'I' + sStockno, sStockno, 0, true);
		}
		return false;
	}

	if( keyCode < 48 || keyCode > 57 ) {
		switch (keyCode) {
			case 8:
				// Backspace
				break;
			case 9:
				// Tab
				break;
			case 27:
				// Escape
				break;
			case 35:
				// End
				break;
			case 36:
				// Home
				break;
			case 37:
				// Arrow left
				break;
			case 39:
				// Arrow right
				break;
			case 46:
				// Delete
				break;
			default:
				return false;
				break;
		}
	}

	return true;
}


/* -----------------12/14/2007 10:00AM---------------
 hideChange - Hide a field change
 --------------------------------------------------*/
function hideChange(sStockno) {

	$('#C' + sStockno).hide();
	$('#R' + sStockno).show();

}

/* -----------------12/14/2007 10:00AM---------------
 acceptChange - Accept a field change
 --------------------------------------------------*/
function acceptChange( evt, frm, sKey, sStockno ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if( 27 == keyCode ) {
		hideChange(sStockno);
		return false;
	}

	if( 13 == keyCode ) {
		handleChange(sKey, sStockno);
		return false;
	}

	return true;
}

/* -----------------12/14/2007 10:00AM---------------
 handleChange - Process a field change
 --------------------------------------------------*/
function handleChange(sKey, sStockno) {

	var nQty = 0;

	if ($('#V' + sStockno).val() !== undefined)
		nQty = $('#V' + sStockno).val();

	if ( nQty != 0 ) {
		refreshCart(sKey, '', sStockno, nQty);
	}

	return false;
}

/* -----------------12/14/2007 10:00AM---------------
 quickPost
 --------------------------------------------------*/
function quickPost() {

	if ($('#quick_poster').val() !== undefined) {
	  showDiv('quick_poster');
		$('#quick_poster_custprdno').focus();
	}

}

/* -----------------12/14/2007 10:00AM---------------
 acceptQuickPost - Accept a field change
 --------------------------------------------------*/
function acceptQuickPost( evt, frm, sKey ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if( 27 == keyCode ) {
		hideDiv('quick_post');
		return false;
	}

	if( 13 == keyCode ) {
		postQuick(sKey);
		return false;
	}

	return true;
}

/* -----------------12/14/2007 10:00AM---------------
 tabQuickPost - Make Enter work like Tab
 --------------------------------------------------*/
function tabQuickPost( evt, frm, sKey ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if( 27 == keyCode ) {
		hideDiv('quick_post');
		return false;
	}

	if( 13 == keyCode ) {
		document.forms['quick_poster_form'].elements['quick_poster_quantity'].focus();
		return false;
	}

	return true;
}


/* -----------------12/14/2007 10:00AM---------------
 postQuick
 --------------------------------------------------*/
function postQuick(sKey) {

	var sCustprdno = $('#quick_poster_custprdno').val();
	var sQty = $('#quick_poster_quantity').val();

	if ( isNaN(sQty) ) {
		$('#quick_poster_error').html('Your quantity must be a number greater than 0.');
		return;
	}

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC021',
								 FUN: 'EC021FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 CUSTPRDNO: sCustprdno,
								 STOCKNO: '',
								 ORDQTY: sQty,
								 X_DELETE: 'N'
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				var sErr = '';
				switch (oWAM.W_ERR) {
					case 'R':
						sErr = 'Your order quantity must be a multiple of the minimum order qty: ' + oWAM.W_MINQTY;
						break;
					case 'M':
						sErr = 'The SKU you entered is not in our system';
						break;
					case 'I':
						sErr = 'This item is not currently available for online orders';
						break;
					default:
						break;
  			}
				$('#quick_poster_error').html(sErr);
				if ( sErr != '' ) {
				} else {
					showCart(oWAM, '', sKey, false);
					$('#cart_submit').attr('disabled', false);
					$('#quick_poster_custprdno').val('');
					$('#quick_poster_quantity').val('');
					$('#quick_poster_custprdno').focus();
				}
			}
		});

}

/* -----------------12/14/2007 10:00AM---------------
 delTemplateItem - Delete a Template Item
 --------------------------------------------------*/
function delTemplateItem(sKey, nTpl, sStockno) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC033',
								 FUN: 'EC033FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 ECSAVHKEY: nTpl,
								 STOCKNO: sStockno,
								 X_FUNC: 'X'
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				refreshTemplate(nTpl);
			}
		});


}

/* -----------------12/14/2007 10:00AM---------------
 refreshTemplate
 --------------------------------------------------*/
function refreshTemplate(nTpl) {

	sTarget = 'ecsavedord.php?p_template=' + nTpl;

	window.location = sTarget;

}

/* -----------------12/14/2007 10:00AM---------------
 toggleOpenItemSelect
 --------------------------------------------------*/
function toggleOpenItemSelect(s_key, s_oikey) {

	if ($('#sel' + s_oikey).attr('checked')) {
		$('#S' + s_oikey).css('display', 'block');
// The following causes odd javascript side-effect errors
// Not sure why
//		$('#val' + s_oikey).select();

		if ( isNaN( $('#val' + s_oikey).val()) ) {
		//Delete from total
			updateCCPayment('U', s_key, s_oikey, 0);
		} else {
		//Add to total
			updateCCPayment('U', s_key, s_oikey, $('#val' + s_oikey).val());
		}
	} else {
		$('#S' + s_oikey).css('display', 'none');
		//Delete from total
		updateCCPayment('U', s_key, s_oikey, 0);
	}

}

/* -----------------12/14/2007 10:00AM---------------
 changeOpenItemPayment
 --------------------------------------------------*/
function changeOpenItemPayment(s_key, s_oikey) {

	if ( isNaN( $('#val' + s_oikey).val()) ) {
		alert('Your payment amount must be a number.');
//		$('#val' + s_oikey).val('0');
	} else {
		if ( $('#val' + s_oikey).val() == '0' ) {
			$('#sel' + s_oikey).attr('checked', false);
			$('#S' + s_oikey).css('display', 'none');
			//Delete from total
			updateCCPayment('U', s_key, s_oikey, 0);
		} else {
			updateCCPayment('U', s_key, s_oikey, $('#val' + s_oikey).val());
		}
	}
}

/* -----------------12/14/2007 10:00AM---------------
 updateCCPayment
 --------------------------------------------------*/
function updateCCPayment(s_func, s_key, s_oikey, n_amt) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC046',
								 FUN: 'EC046FN01',
								 PART: g_Partition,
								 ECSESSKEY: s_key,
								 REFERE001: s_oikey,
								 BALANCE: n_amt,
								 X_FUNC: s_func
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				$('#spay_total').html(oWAM.T_BALANCE);
				if ( n_amt == 0 ) {
					$('#val' + s_oikey).val(oWAM.BALANCE.replace(',', ''));
				}
			}
		});


}

/* -----------------12/14/2007 10:00AM---------------
 acceptCCChange - Accept a CC field change
 --------------------------------------------------*/
function acceptCCChange( evt, s_key, s_oikey ) {

	var keyCode = null;

	if( evt.which ) {
		// handles Firefox
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		// handles IE
		keyCode = evt.keyCode;
	}

	if( 27 == keyCode ) {
		// hide the field?
		return false;
	}

	if( 13 == keyCode ) {
		changeOpenItemPayment(s_key, s_oikey);
		return false;
	}

	return true;
}

/* -----------------12/14/2007 10:00AM---------------
 copyTemplate - Copy an Order Template from old eCat
 --------------------------------------------------*/
function copyTemplate(sKey, nTpl) {

	var url = 'ec_forward.php';

	var params = {
								 APP: 'EC047',
								 FUN: 'EC047FN01',
								 PART: g_Partition,
								 ECSESSKEY: sKey,
								 LW3CCTNUM: nTpl,
								 X_FUNC: 'T'
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'json',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(oWAM){
				$('#TPL' + nTpl).html('&nbsp;');
			}
		});

}

/* -----------------12/14/2007 10:00AM---------------
 getCommonTerms - Get the HTML for common terms
 --------------------------------------------------*/
function getCommonTerms() {

	var url = 'eccommonterms.php';

	var params = {
							 }

	var bErr = false;

	new $.ajax({
			url: url,
			type: 'POST',
			data: buildGetString(params),
			dataType: 'html',
			error: function(XMLHttpRequest, textStatus, errorThrown)  { reportAjaxError( XMLHttpRequest, textStatus, errorThrown ); },
			success: function(sHTML){
				$('#quick_index').html(sHTML);
			}
		});

}


