/**
observe_header_links = function () {

	// login link
	jQuery ('.jsLogin').click (function () {
		var popover = environmentManager.create_popover ("login");
		popover.attach_to_element ($("link_login"), { xSourcePoint: "right", xDestPoint: "right", ySourcePoint: "top", yDestPoint: "top", xPixelOffset: 80, yPixelOffset: -35 });
		popover.get_content_block_object ()
			.set_content_source_url ("/ajax_login.php");
//			.set_content_html ("hello there");
		popover.get_shell_object ()
			.set_title ("Log in to Charity Hampers")
			.set_width ("425px");
		popover.show ();
	});

}

observe_cart_forms = function () {

	// if there are no forms on the page then don't continue
	var temp = $$(".jsCartForm");
	if (!temp.length)
		return true;

	for (var count = 0; count < temp.length; count++) {
		var url = $(temp[count].id).readAttribute ("action");

		$(temp[count].id).observe ("submit", function (event) {
			event.stop ();

			var requestParameters = $(this.id).serialize (true);
			ajaxManager.request (url, { 'method': 'post', parameters: requestParameters }, 'add_to_cart_' + this.id);
		});
	}
}

observe_navigation_select = function (domId) {

	$(domId).observe ("change", function () {
		document.location.href = $(domId).value;
	});
}
/**/

jQuery ().ready (function () {
	observe_forms ();
	observe_clickable_elements ();
	observe_hover_elements ();
	observe_add_to_cart_links ();
	observe_add_to_cart_forms ();
	observe_sales_alert_register_links ();
	observe_order_histories ();
	return true;
});

observe_forms = function () {
	// jQuery version
	jQuery ('.jsForm').submit (function (event) {
		event.preventDefault();

		var requestParameters = new Object ();
		var fields = jQuery (this).find (":input").serializeArray ();
		jQuery.each (fields, function (i, field) {
			// need to account for arrays (ie. multiple selects and checkboxes)
			eval ("requestParameters." + jQuery (field).attr ('name') + " = jQuery (field).val ();");
		});
//		alert (var_dump (requestParameters));
		ajaxManager.request (jQuery (this).attr ('action'), { 'method': 'post', parameters: requestParameters });
    });
	return true;
}

// observe clickable things on the page and navigate to wherever their first anchor tag links to when clicked
observe_clickable_elements = function () {
/**
	// prototype version
	var pageElements = $$(".jsClickable");
	for (var count = 0; count < pageElements.length; count++) {
		pageElements[count].observe ("click", function (event) {
			event.stop;
			var linkElements = this.find_child_elements ("a");
			if (linkElements.length > 0)
				window.location = linkElements[0].readAttribute ("href");
		});
	}
/**/
	// jQuery version
	jQuery ('.jsClickable').click (function () {
		var destination = jQuery (this).find ('a').attr ('href');
		if (destination != '')
			window.location = destination;
    });
	return true;
}

// observe elements on the page that should get a hover class upon mouseover
observe_hover_elements = function () {
	// jQuery version
	jQuery ('.jsHover').mouseover (function () {
		jQuery (this).addClass ('hover');
		jQuery (this).removeClass ('hoverOff');
    });
	jQuery ('.jsHover').mouseout (function () {
		jQuery (this).removeClass ('hover');
		jQuery (this).addClass ('hoverOff');
    });
	jQuery ('.jsHover').addClass ('hoverOff');
	return true;
}

// observe the links on the page to add a product to your cart
observe_add_to_cart_links = function () {

	// 
	jQuery ('.jsAddToCart').click (function () {

		var requestParameters = new Object ();
		requestParameters.productId = jQuery (this).attr ('id').match (/[0-9]+/);

		// add the product item quantities to the request if they're available
//		var parentForms = jQuery (this).parents ("form").map (function () { return this.tagName + "a "; }).get ().join (", ");
		var parentForms = jQuery (this).parents ("form").find ("input");
		for (count = 0; count < parentForms.length; count++) {
			eval ("requestParameters." + parentForms[count].id + " = parentForms[count].value;");
		}
		ajaxManager.request ('/shopping_cart/ajax_add_to_cart.php', { 'method': 'post', parameters: requestParameters }, 'add_to_cart_' + this.id);
	});
	return true;
}

// observe the links on the page to add a product to your cart
observe_add_to_cart_forms = function () {

	// 
	if ($("form_addToCart")) {
		$("form_addToCart").observe ("submit", function (event) {
			event.stop ();

			var requestParameters = new Object ();
//			requestParameters.productId = jQuery (this).attr ('id').match (/[0-9]+/);

			// add the product item quantities to the request if they're available
//			var parentForms = jQuery (this).parents ("form").map (function () { return this.tagName + "a "; }).get ().join (", ");
			var inputElements = jQuery ("#" + this.id).find ("input");
			for (count = 0; count < inputElements.length; count++) {
				var inputElement = jQuery (inputElements[count]);
				if (inputElement.attr ("name") != '') {
					eval ("requestParameters." + inputElement.attr ("name") + " = inputElements[count].value;");
				}
			}
			ajaxManager.request ('/shopping_cart/ajax_add_to_cart.php', { 'method': 'post', parameters: requestParameters }, 'add_to_cart_' + this.id);
		});
	}
	return true;
}


// observe the search form at the top of the page
observe_search_form = function () {

	// make the submit button work
	jQuery ('.jsQuickSearchForm').find (".jsSubmitForm").click (function () { jQuery ('.jsQuickSearchForm').submit () });
	// make the default text disappear when focused
	jQuery ('.jsQuickSearchForm').find (".jsDefaultText").focus (function () { if (this.value == "Enter Keyword") this.value = "" }).blur (function () { if (this.value == "") this.value = "Enter Keyword" });
	return true;
}
/** not used any more
// observe the link at the top of the page to view all sales
observe_list_all_sales_link = function () {
	jQuery ('#link_listAllSales').click (function () {
		var popover = environmentManager.create_popover ("login", "popoverTypeListAllSales");
		popover.attach_to_element (this, { xSourcePoint: "left", xDestPoint: "left", ySourcePoint: "top", yDestPoint: "top", xPixelOffset: -1, yPixelOffset: -10 });
		popover.get_content_block_object ()
//			.set_content_source_url ("/ajax_login.php");
//			.set_content_html ("hello there");
			.set_content_source_dom_id ("template_listAllSales");
		popover.get_shell_object ()
			.set_use_title_bar (false)
//			.set_title ("Hello")
			.set_width ("300px");
		popover.show ();
	});
}
/**/
// observe the links on the page that cause a "register for sales alerts" popover to appear
observe_sales_alert_register_links = function () {
	jQuery ('.jsRegisterForSalesAlerts').click (function (e) {
		var popover = environmentManager.create_popover ("registerForSalesAlerts", "popoverTypeListAllSales");
		popover.attach_to_element (this, { xSourcePoint: "middle", xDestPoint: "middle", ySourcePoint: "top", yDestPoint: "top", xPixelOffset: 0, yPixelOffset: -20 });
		popover.get_content_block_object ()
			.set_content_source_url ("/accounts/ajax_register_for_sales_alerts.php");
//			.set_content_html ("hello there");
//			.set_content_source_dom_id ("template_listAllSales");
		popover.get_shell_object ()
//			.set_use_title_bar (false)
			.set_title ("Register for sales alerts")
			.set_width ("515px");
		popover.show ();
	});

}

observe_order_histories = function () {

	// login link
	jQuery ('.jsOrderHistory').click (function () {
		var shoppingCartId = this.id.replace (/[^0-9]+/, '');
		jQuery ("#moreInfo" + shoppingCartId).map (function () {
			if (jQuery (this).is (':visible')) {
				jQuery (this).hide ("blind");
				jQuery ("#link_moreInfo" + shoppingCartId).html ("+");
				jQuery ("#link_moreInfoText" + shoppingCartId).html ("more info");
			}
			else {
				jQuery (this).show ("blind");
				jQuery ("#link_moreInfo" + shoppingCartId).html ("-");
				jQuery ("#link_moreInfoText" + shoppingCartId).html ("less info");
			}
		});
//		alert (temp.visible ());
	});

}

// observe the links on the home page that swap the list of products
observe_products_list_type2_links = function (companyId) {

	// observe buttons on the home page
	var temp = $("link_bestSellers");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNav").addClassName ("selectedA");
			$("quickLinkProductsNav").removeClassName ("selectedB");
			$("quickLinkProductsNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			ajaxManager.request ("/ajax_update_home_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

			Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
		});
	}

	var temp = $("link_last50Sold");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNav").removeClassName ("selectedA");
			$("quickLinkProductsNav").addClassName ("selectedB");
			$("quickLinkProductsNav").removeClassName ("selectedC");
			var parameters = new Object ();
			parameters.listType = 'last50Sold';
			ajaxManager.request ("/ajax_update_home_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

			Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
		});
	}

	var temp = $("link_justArrived");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNav").removeClassName ("selectedA");
			$("quickLinkProductsNav").removeClassName ("selectedB");
			$("quickLinkProductsNav").addClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			ajaxManager.request ("/ajax_update_home_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

			Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
		});
	}




	// observe the same links for the sale page
	if (companyId) {
		var temp = $("link_bestSellersSale");
		if (temp) {
			$(temp.id).observe ("click", function (event) {
				event.stop ();

				$("quickLinkProductsNav").addClassName ("selectedA");
				$("quickLinkProductsNav").removeClassName ("selectedB");
				$("quickLinkProductsNav").removeClassName ("selectedC");

				var parameters = new Object ();
				parameters.listType = 'bestSellers';
				parameters.saleId = companyId;
				ajaxManager.request ("/ajax_update_sale_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

				Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
			});
		}

		var temp = $("link_last50SoldSale");
		if (temp) {
			$(temp.id).observe ("click", function (event) {
				event.stop ();

				$("quickLinkProductsNav").removeClassName ("selectedA");
				$("quickLinkProductsNav").addClassName ("selectedB");
				$("quickLinkProductsNav").removeClassName ("selectedC");

				var parameters = new Object ();
				parameters.listType = 'last50Sold';
				parameters.saleId = companyId;
				ajaxManager.request ("/ajax_update_sale_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

				Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
			});
		}

		var temp = $("link_justArrivedSale");
		if (temp) {
			$(temp.id).observe ("click", function (event) {
				event.stop ();

				$("quickLinkProductsNav").removeClassName ("selectedA");
				$("quickLinkProductsNav").removeClassName ("selectedB");
				$("quickLinkProductsNav").addClassName ("selectedC");

				var parameters = new Object ();
				parameters.listType = 'justArrived';
				parameters.saleId = companyId;
				ajaxManager.request ("/ajax_update_sale_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

				Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
			});
		}
	}



	// observe the same links for the "list all sales" page
	var temp = $("link_bestSellersAllSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNavAllSales").addClassName ("selectedA");
			$("quickLinkProductsNavAllSales").removeClassName ("selectedB");
			$("quickLinkProductsNavAllSales").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			ajaxManager.request ("/ajax_update_all_sales.php", { 'method': 'post', parameters: parameters }, 'update_all_sales');

			Effect.ScrollTo ("saleList", {offset: -65});
		});
	}

	var temp = $("link_justArrivedAllSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNavAllSales").removeClassName ("selectedA");
			$("quickLinkProductsNavAllSales").addClassName ("selectedB");
			$("quickLinkProductsNavAllSales").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			ajaxManager.request ("/ajax_update_all_sales.php", { 'method': 'post', parameters: parameters }, 'update_all_sales');

			Effect.ScrollTo ("saleList", {offset: -65});
		});
	}

	var temp = $("link_finishedAllSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkProductsNavAllSales").removeClassName ("selectedA");
			$("quickLinkProductsNavAllSales").removeClassName ("selectedB");
			$("quickLinkProductsNavAllSales").addClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'finished';
			ajaxManager.request ("/ajax_update_all_sales.php", { 'method': 'post', parameters: parameters }, 'update_all_sales');

			Effect.ScrollTo ("saleList", {offset: -65});
		});
	}
}


//if user come to the website by clicking from snap sellout emails last 50 sold link, select that section in the home page by default 
observe_last_50sold_link = function (companyId) {

	
	var temp = $("link_last50Sold");
	if (temp) {
		
			$("quickLinkProductsNav").removeClassName ("selectedA");
			$("quickLinkProductsNav").addClassName ("selectedB");
			$("quickLinkProductsNav").removeClassName ("selectedC");
			var parameters = new Object ();
			parameters.listType = 'last50Sold';
			ajaxManager.request ("/ajax_update_home_products_list_type2_products.php", { 'method': 'post', parameters: parameters }, 'update_products_list_type2');

			Effect.ScrollTo ("productsListType2ScrollTo", {offset: -55});
		
	}

}
// observe the links on the overship categories page
observe_overship_category_list_links = function (overshipCategoryId) {

	// observe the nav to toggle between sales and product lists
	var temp = $("link_salesListingsOvershipCategoryToggle");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").setStyle ( {"display": "block" } );
			$("quickLinkOvershipProductNav").setStyle ( {"display": "none" } );

			$("quickLinkOvershipToggleNav").addClassName ("selectedA");
			$("quickLinkOvershipToggleNav").removeClassName ("selectedB");

			$("quickLinkOvershipSaleNav").addClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'companies';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_productListingsOvershipCategoryToggle");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").setStyle ( {"display": "none" } );
			$("quickLinkOvershipProductNav").setStyle ( {"display": "block" } );

			$("quickLinkOvershipToggleNav").removeClassName ("selectedA");
			$("quickLinkOvershipToggleNav").addClassName ("selectedB");

			$("quickLinkOvershipProductNav").addClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'highestPrice';
			parameters.displayMode = 'products';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}




	// observe the same sales navs
	var temp = $("link_bestSellersOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").addClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'companies';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_justArrivedOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").removeClassName ("selectedA");
			$("quickLinkOvershipSaleNav").addClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			parameters.displayMode = 'companies';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_finishedOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").removeClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").addClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'finished';
			parameters.displayMode = 'companies';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}





	// observe the product navs
	var temp = $("link_highestPriceOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").addClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'highestPrice';
			parameters.displayMode = 'products';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_lowestPriceOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").addClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'lowestPrice';
			parameters.displayMode = 'products';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_bestSellersOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").addClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'products';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_justArrivedOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").addClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			parameters.displayMode = 'products';
			parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_overship_category.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}
}












// observe the links on the overship categories page
observe_overship_tv_offer_links = function () {

	// observe the nav to toggle between sales and product lists
	var temp = $("link_salesListingsOvershipCategoryToggle");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").setStyle ( {"display": "block" } );
			$("quickLinkOvershipProductNav").setStyle ( {"display": "none" } );

			$("quickLinkOvershipToggleNav").addClassName ("selectedA");
			$("quickLinkOvershipToggleNav").removeClassName ("selectedB");

			$("quickLinkOvershipSaleNav").addClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'companies';
			//parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_productListingsOvershipCategoryToggle");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").setStyle ( {"display": "none" } );
			$("quickLinkOvershipProductNav").setStyle ( {"display": "block" } );

			$("quickLinkOvershipToggleNav").removeClassName ("selectedA");
			$("quickLinkOvershipToggleNav").addClassName ("selectedB");

			$("quickLinkOvershipProductNav").addClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'highestPrice';
			parameters.displayMode = 'products';
			//parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}




	// observe the same sales navs
	var temp = $("link_bestSellersOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").addClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'companies';
			//parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_justArrivedOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").removeClassName ("selectedA");
			$("quickLinkOvershipSaleNav").addClassName ("selectedB");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			parameters.displayMode = 'companies';
			//parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_finishedOvershipSales");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipSaleNav").removeClassName ("selectedA");
			$("quickLinkOvershipSaleNav").removeClassName ("selectedB");
			$("quickLinkOvershipSaleNav").addClassName ("selectedC");

			var parameters = new Object ();
			parameters.listType = 'finished';
			parameters.displayMode = 'companies';
			//parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}





	// observe the product navs
	var temp = $("link_highestPriceOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").addClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'highestPrice';
			parameters.displayMode = 'products';
		//	parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_lowestPriceOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").addClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'lowestPrice';
			parameters.displayMode = 'products';
		//	parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_bestSellersOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").addClassName ("selectedC");
			$("quickLinkOvershipProductNav").removeClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'bestSellers';
			parameters.displayMode = 'products';
		//	parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}

	var temp = $("link_justArrivedOvershipCategoryProducts");
	if (temp) {
		$(temp.id).observe ("click", function (event) {
			event.stop ();

			$("quickLinkOvershipProductNav").removeClassName ("selectedA");
			$("quickLinkOvershipProductNav").removeClassName ("selectedB");
			$("quickLinkOvershipProductNav").removeClassName ("selectedC");
			$("quickLinkOvershipProductNav").addClassName ("selectedD");

			var parameters = new Object ();
			parameters.listType = 'justArrived';
			parameters.displayMode = 'products';
		//	parameters.overshipCategoryId = overshipCategoryId;
			ajaxManager.request ("/ajax_update_tv_offer_products.php", { 'method': 'post', parameters: parameters }, 'update_item_list');

			Effect.ScrollTo ("itemList", {offset: -65});
		});
	}
}












// observe the links on the page that cause a "register for sales alerts" popover to appear
observe_freight_calculator_link = function (elementId, productId) {
	if ($(elementId)) {
		$(elementId).observe ("click", function () {

			var popover = environmentManager.create_popover ("freightCalculator", "popoverTypeListAllSales");
			popover.attach_to_element (this, { xSourcePoint: "left", xDestPoint: "left", ySourcePoint: "top", yDestPoint: "top", xPixelOffset: -20, yPixelOffset: -20 })
				.set_disable_page (true)
			popover.get_content_block_object ()
				.set_content_source_url ("/shopping_cart/ajax_freight_calculator.php", { productId: productId });
	//			.set_content_html ("hello there");
	//			.set_content_source_dom_id ("template_listAllSales");
			popover.get_shell_object ()
	//			.set_use_title_bar (false)
				.set_title ("Freight Calculator")
				.set_width ("325px")
				.set_use_title_bar (true);
			popover.show ();
		});
	}
}
















align_elements = function (elementNamesArray, forceAlign, message) {
	var previousYOffset = 0;
	var maxHeight = 0;
	var inspectedElements = new Array ();
	var wereVisible = new Array ();

	// find out which ones were originally shown and show them anyway
	for (var count = 0; count < elementNamesArray.length; count++) {
		var liElementName = elementNamesArray[count];
		if ($(liElementName)) {
			wereVisible[count] = $(liElementName).visible ();
			$(liElementName).show ();
			$(liElementName).setStyle ({'height': 'auto'});
		}
	}

	for (var count = 0; count < elementNamesArray.length; count++) {
		var liElementName = elementNamesArray[count];

		if ($(liElementName)) {

			// see if this item has a different y offset to the previous items
			var temp = Position.cumulativeOffset ($(liElementName));

			var yOffset = parseInt (temp[1]);

			if ((yOffset != previousYOffset) && (inspectedElements.length > 0) && (!forceAlign)) {

				// adjust the height of each of the items in the row
				if ((inspectedElements.length > 1)) {
					for (var count2 = 0; count2 < inspectedElements.length; count2++)
						$(inspectedElements[count2]).setStyle ( { "height" : maxHeight + "px" } );
				}

				// start the list of inspected elements off again
				var previousYOffset = 0;
				var maxHeight = 0;
				var inspectedElements = new Array ();

				// the row above this element has changed,  re-calculate it's offset
				var temp = Position.cumulativeOffset ($(liElementName));
				var yOffset = parseInt (temp[1]);
			}

			// record the height of the current item
			var temp = $(liElementName).getDimensions ();
			var height = parseInt (temp.height);
			if (height > maxHeight)
				maxHeight = height;
			inspectedElements[inspectedElements.length] = liElementName;

//if (liElementName == 'descriptionBlockDiningGeneric')
//				alert (yOffset + " " + message + " " + height);

			previousYOffset = yOffset;
		}
	}

	// if there are any elements that were left over
	if (inspectedElements.length > 0) {
		// adjust the height of each of the items in the row
		for (var count2 = 0; count2 < inspectedElements.length; count2++)
			$(inspectedElements[count2]).setStyle ( { "height" : maxHeight + "px" } );
	}

	// return each element back to it's original show/hide status
	for (var count = 0; count < elementNamesArray.length; count++) {
		var liElementName = elementNamesArray[count];
		if ($(liElementName)) {
			if (!wereVisible[count])
				$(liElementName).hide ();
		}
	}

	return true;
}

vertically_center_elements = function (elementNamesArray, usePadding) {
	return vertically_align_elements (elementNamesArray, usePadding, 'center');
}

vertically_bottom_elements = function (elementNamesArray, usePadding) {
	return vertically_align_elements (elementNamesArray, usePadding, 'bottom');
}

vertically_align_elements = function (elementNamesArray, usePadding, position) {

	for (var count = 0; count < elementNamesArray.length; count++) {
		var element = $(elementNamesArray[count]);
		if ($(element)) {

			var parentElement = element.ancestors ().first ();

			var heightElement = parseInt (element.getHeight ());
			var heightParentElement = parseInt (parentElement.getHeight ());
			if (position == 'bottom')
				var newHeight = Math.max (0, String (parseInt ((heightParentElement - heightElement))));	// make sure the offset isn't less than 0
			else
				var newHeight = Math.max (0, String (parseInt ((heightParentElement - heightElement) / 2)));	// make sure the offset isn't less than 0

//			alert (elementNamesArray[count] + " " + heightElement + " " + heightParentElement + " " + newHeight + " " + element.ancestors ().first ().outerHTML);

			if (usePadding)
				element.setStyle ( { "paddingTop": newHeight + "px" });
			else
				element.setStyle ( { "marginTop": newHeight + "px" });
		}

	}

	return true;
}


// make the user confirm their action before proceeding (used when deleting things,  etc)
function confirm_action (message, urllocation) {
	if (!confirm (message)) {
		return (false);
	}
	else {
		document.location.href = urllocation;
	}
}
