try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}; //ie 6 bg image fix
var SCROLL_SPEED = 400;
//$(function(){
//	$('.fillin').inputLabel();
//	$('.dropdown select').change(function(){
//		var val = $('option:selected', this).text();
//		$(this).prev().html(val);
//	})
//});

$(function(){
	$('.fillin').inputLabel();
	$('#sort_by').change(function(){
		$('#sort_by_value').html($('#sort_by :selected').text());
	});
	
	$('.scrollto').click(function(){
		var name = $(this).attr('href').substr(1);
		$.scrollTo($('a[name="' + name + '"]'), SCROLL_SPEED);
		return false;
	});
	
});

$(document).ready(function(){ 
	$("#do_we_ship_state").change(function() 
	{
		if (gShipToUrl == null)
			return;
			
		var nextURL = gShipToUrl;
		
		var selectedText = $('#do_we_ship_state :selected').text();    
		var selectedValue = $("#do_we_ship_state").val();
		
		// If they selected the "Pick a state" item, then punt...
		if (selectedValue == "")
		{
			return;
		}
		
		nextURL = appendQueryParameter(nextURL, "stateCode", selectedValue);
		nextURL = appendQueryParameter(nextURL, "stateName", selectedText);
		
		$('#popup').jqmShow();
		$('#popup_content').load(nextURL, function(){
			$('#popup_content').hide().fadeTo(500, 1, function(){
				
			});
		});
	}); 
});


function buildFormSubmitUrl(formID)
{
	try
	{
		// Build a buffer of all the name/value pairs from the form
		var buffer = "";
		var selector = "#" + formID + " :input";
		$(selector).each(function(index, e) {
			var itype = $(e).attr('type').toLowerCase();
			if (itype == "checkbox")
			{
				if ($(e).attr('checked'))
				{
					buffer = addQueryParam(buffer, e.name, $(e).val());
				}
				else
				{
					buffer = addQueryParam(buffer, e.name, "false");
				}
			}
			else if (itype == "radio")
			{
				if ($(e).attr('checked'))
				{
					buffer = addQueryParam(buffer, e.name, $(e).val());
				}
			}
			else
			{
				buffer = addQueryParam(buffer, e.name, $(e).val());
			}
			
		});
		
		// Get the 'action' of the form
		var action = $("#" + formID).attr("action");
		
		// Build the URL... If the base action already has query-string params,
		// then use "&" as the separator...
		var url = (action.indexOf("?" < 0)) 
			? action + "?" + buffer
			: action + "&" + buffer;
		
		return url;
	}
	catch(ex)
	{
		alert("ERROR: " + ex);
	}
}

function addQueryParam(buffer, name, val)
{
	if (buffer.length > 0)
		buffer = buffer + "&";
	buffer = buffer + name + "=" + encodeURIComponent(val);
	return buffer;
}

function jsDecodeHtmlEntities(input)
{
	return input.replace(/&#(\d+);/g,
						 function(wholematch, parenmatch1)
						 {
							 return String.fromCharCode(+parenmatch1);
						 });
}

function initDialog(dialogId, isModal)
{
	var selector = "#" + dialogId;
	$(selector).jqm({
		toTop: true,
		modal: isModal,
		onShow: function(){
			$(selector).stop().show();
		},
		
		onHide: function(){
			$(selector).stop().hide();
			$('.jqmOverlay').stop().hide();
		}
	 
	});
}

function showDialog(dialogId)
{
	var selector = "#" + dialogId;
	$(selector).jqmShow();
}

function jsSubmitForm(formId, overlayId)
{
	if (overlayId != null)
	{
		showDialog(overlayId);
	}
	
	var formSelector = "#" + formId;
	$(formSelector).submit();
	return false;
}

function jsValidatePhone(elementId, errorMessage)
{
	var reg_1 = new RegExp("(\\d{3})\\D*(\\d{3})\\D*(\\d{4})\\D*(\\d*)$");
	if ( reg_1.test($(elementId).val()) )
	{
		return null;
	}
	return errorMessage;
}

function jsValidatePositiveInteger(elementId, errorMessage)
{
	var value = $(elementId).val();
	if (isNaN(value) || value < 0)
	{
		return errorMessage;
	}
}

function jsYav(formId)
{
	//	Reset the errors from last time
	if (typeof(jsErrors) != "undefined")
	{
		for (index = 0; index < jsErrors.length; index++)
		{
			$(jsErrors[index]).removeClass("error");
		}
		$('#generalError').addClass("hidden");
	}

//	alert(rules);
	var yavResult = yav.performCheck(formId, rules, 'jsVar');
//	alert(yavResult);

	if (yavResult == false)
	{
//		alert(jsErrors);
		for (index = 0; index < jsErrors.length; index++)
		{
			$(jsErrors[index]).addClass("error");
		}
		$('#generalError').removeClass("hidden");
	}
	else
	{
		return true;
	}
	return false;
}

function jsYavAndSubmitForm(formId)
{
	if (jsYav(formId))
	{
		return jsSubmitForm(formId);
	}
	return false;
}

function appendQueryParameter(url, name, value)
{
	// No parameter?  Fine - just return the URL we've got...
	if ((name == null) || (name == ""))
	{
		return url;
	}
	
	// Sanity check on the value...
	if (value == null)
	{
		value = "";
	}
	
	if (url.indexOf("?") > 0)
	{
		url = url + "&";
	}
	else
	{
		url = url + "?";
	}
	
	return url + name + "=" + encodeURIComponent(value);
}