	var curWinId;
	var curWinObj;

  function isEmpty(inputStr) { if(null == inputStr || "" == inputStr) { return true; } return false; }

	function showAddOnsWindow(argsStrIn, titleText)
	{
		var params = $w(argsStrIn);
		if(!Prototype.Browser.IE)
		{
			curWinObj = new Window({id: 'hldr_win_'+params[0], className: params[1], url: params[2], width:params[3], height:params[4], zIndex:500, destroyOnClose: true, title: titleText});
			curWinObj.showCenter(params[5]);
			curWinId = curWinObj.getId();
		}
		else
		{
			//if(jQuery.browser.version == "6.0"){
				//curWinObj = new Window({id: 'hldr_win_'+params[0], className: params[1], url: params[2], width:params[3], height:params[4], zIndex:500, destroyOnClose: true, title: titleText});
				//curWinObj.setAjaxContent(params[2], {}, true, true);
				tb_show('Options',params[2],false);
			//}else{
				//curWinObj = new Window({id: 'hldr_win_'+params[0], className: params[1], url: params[2], width:params[3], height:params[4], zIndex:500, destroyOnClose: true, title: titleText});
				//curWinObj.showCenter(params[5]);
			//}
		}
		//if(jQuery.browser.version != "6.0") curWinId = curWinObj.getId();
	}

	var closeWindows = function() {	Windows.closeAll(); };
	
	// argsStrIn =>
	// {$data['pid']} {$data['itemQty']} $itemTotal $cartTotal $cartItems {$data['ao']} {$prodInfo->caliber_req}
	// {$prodInfo->holder_req} {$data['cid']} {$data['hid']} {$data['prc']} {$_GET['sess_id']} {$data['cartId']}
	// params[0] = product id
	// params[1] = item quantity
	// params[2] = item total
	// params[3] = cart total
	// params[4] = cart total items
	// params[5] = addons required
	// params[6] = pilot required
	// params[7] = holder required
	// params[8] = pilot id
	// params[9] = holder id
	// params[10] = price
	// params[11] = current session id
	// params[12] = cart id of item (item exists if > 0)
	// params[13] = Operation performed (add/update)
	// params[14] = unit price
	var updatePage = function(argsStrIn)
	{
		//alert(argsStrIn);
		var req_text = '<center>Click \'+\' to select</center>';
		var nreq_text = '<center>N/A</center>';
		var addonHTML = '';
		var cartIdExt = '';
		var params = $w(argsStrIn);
		//alert(params);

		cartIdExt = '_'+params[12];
		
		if(params[13] == 'add'){
			jQuery('.item_qty'+params[0]).attr("class",'item_qty'+params[0]+cartIdExt).html('<b>'+params[1]+'</b>');
		}else{
			jQuery('.item_qty'+params[0]+cartIdExt).html('<b>'+params[1]+'</b>');
		}
		if(params[13] == 'add'){
			jQuery('.unit-price'+params[0]).attr("class",'unit-price'+params[0]+cartIdExt).html("$"+params[14]);
		}else{
			jQuery('.unit-price'+params[0]+cartIdExt).html("$"+params[14]);
		}
		jQuery('#item_cart_total'+params[0]).html(params[2]);
		jQuery('#amount').html('$'+params[3]+' <span class="small_white">USD</span>');
		if($('cart_total_bottom')){
			$('cart_total_bottom').innerHTML = params[3];
		}
		jQuery('#item_num').html(params[4]);

		if(params[6] == 1)	// if pilot is req'd
		{
			if(params[12] > 0){	//item exists in cart
				if(params[13] == 'add'){
					jQuery('.pilot-addon'+params[0]).attr("class",'pilot-addon'+params[0]+cartIdExt).html('<center>Caliber: '+params[8]+'</center>');
				}else{
					jQuery('.pilot-addon'+params[0]+cartIdExt).html('<center>Caliber: '+params[8]+'</center>');
				}
			}else{	// pilot is required & item is new
				cal_text = '<center>Click \'+\' to select</center>';
			}
		}

		if(params[7] == 1)	// if holder is req'd
		{
			if(params[12] > 0){	// if item exists in cart
				if(params[13] == 'add'){
					jQuery('.hldr-addon'+params[0]).attr("class",'hldr-addon'+params[0]+cartIdExt).html('<center>Selected Holder #'+params[9]+'</center>');
				}else{
					jQuery('.hldr-addon'+params[0]+cartIdExt).html('<center>Selected Holder #'+params[9]+'</center>');
				}
			}else{	// holder is required & item is new
				hldr_text = '<center>Click \'+\' to select</center>';
			}
		}

		var btnsHTML = '';
		//btnsHTML += '<a href="javascript: void(0);" onclick="showAddOnsWindow(\''+params[0]+' alphacube /includes/content/pl-cartmgr.inc.php?pid='+params[0]+'&new=0&ao='+params[5]+'&hr='+params[7]+'&cr='+params[6]+'&sid='+params[11]+'&cid='+params[12]+' 560 400 true\', \'Item Selection Manager\');" title="Open Item Mgr"><img src="/images/update_icon_up.png" onmouseover="this.src=\'/images/update_icon_over.png\';" onmouseout="this.src=\'/images/update_icon_up.png\';" width="16" height="16" border="0" alt="Item Mgr"/></a>&nbsp;';
		btnsHTML += '<a href="javascript: void(0);" onclick="removeCartItem({op: \'remove\', cid: '+params[12]+', pid: '+params[0]+'});" title="Remove From Cart"><img src="/images/remove_icon_up.png" onmouseover="this.src=\'/images/remove_icon_over.png\';" onmouseout="this.src=\'/images/remove_icon_up.png\';" width="16" height="16" border="0" alt="Remove From Cart"/></a>';
		if(params[13] == 'add'){
			jQuery('.action-btns'+params[0]).attr("class",'action-btns'+params[0]+cartIdExt).html(btnsHTML);
		}
		
		// display new add-on row only if addons req'd and item not in cart
		if((params[6] == 1 || params[7] == 1) && params[13] != "update")
		{
			addonHTML += "          <tr>\n";
			addonHTML += "           <td style=\"width:25%;\"><div class=\"pilot-addon"+params[0]+"\">";
			addonHTML += params[6] == 1 ? req_text:nreq_text;
			addonHTML += "           </div></td>\n";
			addonHTML += "           <td style=\"width:40%;\"><div class=\"hldr-addon"+params[0]+"\">";
			addonHTML += params[7] == 1 ? req_text:nreq_text;
			addonHTML += "           </div></td>\n";
			addonHTML += "           <td style=\"width:5%; text-align:center; font-weight:bold;\"><div class=\"item_qty"+params[0]+"\" id=\"item_count"+params[0]+"\" style=\"display:inline;\">0</div></td>\n";
			addonHTML += "           <td style=\"width:15%;\"><div class=\"unit-price"+params[0]+"\" id=\"unit-price"+params[0]+"\" style=\"display:inline;\"></div></td>\n";
			addonHTML += "           <td style=\"width:15%; text-align:center;\">\n";
			addonHTML += "            <div class=\"action-btns"+params[0]+"\"><a href=\"javascript: void(0);\" onclick=\"showAddOnsWindow(\'"+params[0]+" alphacube /includes/content/pl-cartmgr.inc.php?pid="+params[0]+"&new=1&ao="+params[5]+"&hr="+params[7]+"&cr="+params[6]+"&sid="+params[11]+"&cid="+params[12]+" 560 400 true\', \'Item Selection Manager\');\" title=\"Open Item Mgr\"><img src=\"/images/add_icon_up.png\" onmouseover=\"this.src='/images/add_icon_over.png';\" onmouseout=\"this.src='/images/add_icon_up.png';\" width=\"16\" height=\"16\" border=\"0\" alt=\"Add To Cart\"/></a></div>\n";
			addonHTML += "           </td>\n";
			addonHTML += "          </tr>\n";
			jQuery("#new-addon"+params[0]).parents("tr:eq(0)").prev("tr:eq(0)").after(addonHTML);
		}
	};
	
	var removeCartItem = function(params)
	{
		new Ajax.Request('/cart-rpc.php',
		{
			method:'get',
			parameters: params,
			onSuccess: function(transport)
			{
				var response = transport.responseText || "no response text";
				//alert(response);
				window.parent.removeUpdatePage(response);
			},
	
			onFailure: function(){alert('Something went wrong with the Ajax routine...')}
		});
	};
	
	// argsStrIn =>
	// params[0] = product_id of removed item
	// params[1] = cart_id of removed item
	// params[2] = qty of specific product remaining (in the case of req'd addon's)
	// params[3] = total $$ of cart after removal
	// params[4] = total $$ of specific product remaining (in the case of req'd addon's)
	// params[5] = sum of qty of all products in card
	// params[6] = caliber required
	// params[7] = holder required
	// params[8] = session id
	// params[9] = function performed (remove)
	var removeUpdatePage = function(argsStrIn)
	{
		var params = $w(argsStrIn);
		var addonHTML = '';
		var req_text = '<center>Click \'+\' to select</center>';
		var nreq_text = '<center>N/A</center>';
		
		if($('item_cart_total'+params[0])){
			$('item_cart_total'+params[0]).innerHTML = params[4];
		}
		$('amount').innerHTML = '$'+params[3]+' <span class="small_white">USD</span>';
		if($('cart_total_bottom')){
			$('cart_total_bottom').innerHTML = params[3];
		}
		$('item_num').innerHTML = params[5];
		
		if(params[6] == 0 && params[7] == 0){  //  If no req'd addon's, then we need to build html to replace row we are going to remove.
			addonHTML += "          <tr>\n";
			addonHTML += "           <td style=\"width:80%;\" colspan=\"2\"></td>\n";
			addonHTML += "           <td style=\"width:5%; text-align:center; font-weight:bold;\"><div class=\"item_qty"+params[0]+"\" id=\"item_count"+params[0]+"\" style=\"display:inline;\">0</div></td>\n";
			addonHTML += "           <td style=\"width:15%; text-align:center;\">\n";
			addonHTML += "            <div class=\"action-btns"+params[0]+"\"><a href=\"javascript: void(0);\" onclick=\"showAddOnsWindow(\'"+params[0]+" alphacube /includes/content/pl-cartmgr.inc.php?pid="+params[0]+"&new=1&ao=0&hr="+params[7]+"&cr="+params[6]+"&sid="+params[8]+"&cid= 560 400 true\', \'Item Selection Manager\');\" title=\"Open Item Mgr\"><img src=\"/images/add_icon_up.png\" onmouseover=\"this.src='/images/add_icon_over.png';\" onmouseout=\"this.src='/images/add_icon_up.png';\" width=\"16\" height=\"16\" border=\"0\" alt=\"Add To Cart\"/></a></div>\n";
			addonHTML += "           </td>\n";
			addonHTML += "          </tr>\n";
			jQuery('.item_qty'+params[0]+"_"+params[1]).parents("tr:eq(0)").fadeOut("normal",function(){
				jQuery('.item_qty'+params[0]+"_"+params[1]).parents("tr:eq(0)").after(addonHTML);
				$(this).remove();
			});
		}else{  //  If req'd addon's, then a new row already exists so just remove row
			jQuery('.item_qty'+params[0]+"_"+params[1]).parents("tr:eq(0)").fadeOut("normal",function(){$(this).remove();});
		}
	};
	
jQuery(document).ready(function(){
	var jQ = jQuery;
	var Preloaded = new Array();
	//preload rollovers
	function Preload(){
		var array = Array(
			"online_catalog_rol.jpg",
			"nav_home_on.jpg",
			"nav_faq_on.jpg",
			"nav_locate_on.jpg",
			"nav_contact_on.jpg"
		);
		jQ.each(array,function(i,v){
			var img = new Image();
			img.src = "/images/"+v;
			Preloaded.push(img);
		});
	}
	
	Preload();
	
	
	
	var billing = "#address_1, #address_2, #city, #state, #zip, #country";
	var shipping = "#ship_address_1, #ship_address_2, #ship_city, #ship_state, #ship_zip, #ship_country";
	
	//same as billing toggle//
	jQ("#toggle_ship2bill").click(function(){
		if(jQ(this).is(":checked")){
			jQ(shipping).attr('disabled', true);
			jQ('#ship_txt_state').attr('disabled', true);
			jQ(billing).each(function(){
				bill_to_ship(jQ(this));
				if(jQ(this).attr('id') == 'country'){
					setTimeout(function(){
						jQ('#ship_country').trigger('change');
					},200);
				}
			});
		}else{
			jQ(shipping).attr('disabled', false);
			swap(jQ('#ship_country'));
		}
	});
	
	if(jQ("#toggle_ship2bill").is(":checked")){
			jQ(shipping).attr('disabled', true);
			
			jQ(billing).each(function(){
				bill_to_ship(jQ(this));
				if(jQ(this).attr('id') == 'country'){
					setTimeout(function(){
						jQ('#ship_country').trigger('change');
					},200);
				}
			});
		}else{
			jQ(shipping).attr('disabled', false);
			swap(jQ('#ship_country'));
		}
	
	//event//
	jQ(billing).blur(function(){
		if(jQ("#toggle_ship2bill").is(":checked")){
			bill_to_ship(jQ(this));
			if(jQ(this).attr('id') == 'country'){
				setTimeout(function(){
					jQ('#ship_country').trigger('change');
				},200);
			}
		}
	});
	
	jQ('#txt_state').blur(function(){
		if(jQ("#toggle_ship2bill").is(":checked")){
			bill_to_ship(jQ(this));
		}
	});
	
	function bill_to_ship(element){
		var id = element.attr('id');
		ship_id = convert(id);
		if(ship_id != '#ship_txt_state' && element.val() != 'other' && jQ('#ship_txt_state').attr('data-active')){
			jQ(ship_id).val(element.val());
		}else{
			//alert(jQ('#ship_txt_state').attr('data-active'));	
		}
	}
	
	function convert(billing_id){
		if(billing_id == 'state'){
			if(jQ("#country").val() != "United States" && jQ("#country").val() != "Canada"){
				return "#ship_txt_state";
			}
		}
		return "#ship_"+billing_id;
	}
	
	//state / provence - element swap.
	jQ("#country").change(function(){
		swap(jQ(this));
	});
	//ship state / provence - element swap.
	jQ("#ship_country").change(function(){
		swap(jQ(this));
	});
	//state / provence - element swap page load.
	swap(jQ("#country"));
	//ship state / provence - element swap page load.
	swap(jQ("#ship_country"));
	
	function swap(element){
		if(element.attr('id') == 'country'){
			if(element.val() == "United States" || element.val() == "Canada" ){
				//state select//
				jQ("#state").css({display: ''}); //show
				jQ("#state").attr('disabled', false); 

				//state text//
				jQ("#txt_state").css({display: 'none'}); //hide
				jQ("#txt_state").val("").attr('disabled', true); 

			}else{
				//state select//
				jQ("#state").css({display: 'none'}); //hide
				jQ("#state").val("empty").attr('disabled', true);

				//state text//
				jQ("#txt_state").css({display: ''}); //hide
				jQ("#txt_state").attr('disabled', false); //show
			}		
		}else{
			if(!jQ("#toggle_ship2bill").is(":checked")){
				if(element.val() == "United States" || element.val() == "Canada" ){
					//state select//
					jQ("#ship_state").css({display: ''}); //show
					jQ("#ship_state").attr('disabled', false); 

					//state text//
					jQ("#ship_txt_state").css({display: 'none'}); //hide
					jQ("#ship_txt_state").val("").attr('disabled', true); 
					jQ("#ship_txt_state").attr("data-active", false); 
				}else{
					//state select//
					jQ("#ship_state").css({display: 'none'}); //show
					jQ("#ship_state").val("empty").attr('disabled', true); //show
					
					//state text//
					jQ("#ship_txt_state").css({display: ''}); //hide
					jQ("#ship_txt_state").attr('disabled', false); //show
					jQ("#ship_txt_state").attr("data-active", true);
				}			
			}else{
				if(element.val() == "United States" || element.val() == "Canada" ){
					//state select// 
					jQ("#ship_state").css({display: ''}); //show
					//state text// 
					jQ("#ship_txt_state").val("").css({display: 'none'}); //hide
					jQ("#ship_txt_state").attr("data-active", false);
				}else{
					//state select//
					jQ("#ship_state").val("empty").css({display: 'none'}); //hide
					//state text//
					jQ("#ship_txt_state").css({display: ''}); //show
					jQ("#ship_txt_state").attr("data-active", true);
				}			
			}
				
		}

		
	}
	//payment options//
	//event//
	jQ("#payMethodInvoice").click(function(){
		togglePayMethodElements(true);
	});

	jQ("#payMethodCreditCard").click(function(){
		togglePayMethodElements(false);
	});
	//start state//
	if(jQ("#payMethodInvoice").is(":checked")){
		togglePayMethodElements(true);
	}
	
	if(jQ("#payMethodCreditCard").is(":checked")){
		togglePayMethodElements(false);
	}
	//change it!//
	function togglePayMethodElements(status){
		jQ(":select[name='card_type']").attr("disabled",status);
		jQ(":input[name='name_on_card']").attr("disabled",status);
		jQ(":input[name='cc_number1']").attr("disabled",status);
		jQ(":input[name='cc_number2']").attr("disabled",status);
		jQ(":input[name='cc_number3']").attr("disabled",status);
		jQ(":input[name='cc_number4']").attr("disabled",status);
		jQ(":select[name='exp_date_month']").attr("disabled",status);
		jQ(":select[name='exp_date_year']").attr("disabled",status);
		jQ(":input[name='cvv']").attr("disabled",status);
	}	
});
	
