// jQuery fix for HTML5 placeholder
$j(document).ready(function() {
	$j('[placeholder]').bind('focus placeholderFocus', function() {
		var input = $j(this);
		if (input.val() == input.attr('placeholder')) {
			input.val('');
			input.removeClass('placeholder');
			input.setCursorPosition(0);
		}
	}).blur(function() {
		var input = $j(this);
		if (input.val() == '' || input.val() == input.attr('placeholder')) {
			input.addClass('placeholder');
			input.val(input.attr('placeholder'));			
		}
	}).blur();
});

var placeholderSubmit = function(srcElm) {
	$j(srcElm).parents('form').find('[placeholder]').each(function() {
		var input = $j(this);
		if (input.val() == input.attr('placeholder')) {
			input.val('');
		}
	});
}

//jQuery auto update button html with additional structure
$j(document).ready(function() {
	//main, main green, main left col buttons
	$j('a.mainBtn, a.mainBtnG, a.mainBtnLC, a.mainBtnSM').each(function(i, elm) {
		$j(elm).html('<span class="s1">' + $j(elm).html() + '</span><span class="s2">&nbsp;</span>');
	});
});

//if overlay layer exists, move it to the root of the DOM
$j(document).ready(function() {
	$j('#quickView, #zoom_wrap, #errorNotice, #floater').appendTo('body');
});

// =============================================================================

/*Input cursor position*/
$j.fn.setCursorPosition = function(pos) {
	if ($j(this).get(0).setSelectionRange) {
		$j(this).get(0).setSelectionRange(pos, pos);
	} else if ($j(this).get(0).createTextRange) {
		var range = $(this).get(0).createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

// =============================================================================

function validateCheckoutStep(stepNo,formData,placeOrder) {
	// alert(formData);

	var placeOrder = typeof(placeOrder) != 'undefined' ? placeOrder : 'false';
	var pars = '?method=validateCheckoutStep&stepNo=' + stepNo + '&placeOrder=' + placeOrder + '&' + formData + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'announceMessage_' + stepNo,
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true
		}
	);

	return true;
}

function completeCheckout(formData) {
	// alert(formData);

	var pars = '?method=completeCheckout&' + formData + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'orderPlacedStatus',
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true
		}
	);

	return true;
}

function refreshOrderReview(args) {
	// alert(formData);

	// Supply a unique URL variable here, since IE caches XHR requests using GET.
	var pars = '?method=refreshOrderReview&' + args + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'orderReview',
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true
		}
	);

	return true;
}

function showOrderReceipt(orderID) {
	var pars = '?method=showOrderReceipt&orderID=' + orderID + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'orderReview',
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true,
			onComplete: function(transport) {
				var tmp = $F('gaTranDetails').strip();
				if (tmp.isJSON()) {
					try {
						var tranDetails = tmp.evalJSON();

						pageTracker._addTrans(
							tranDetails.ORDER_ID,		// Order ID
							tranDetails.AFFILIATION,	// Affiliation
							tranDetails.TOTAL,			// Total
							tranDetails.TAX,			// Tax
							tranDetails.SHIPPING,		// Shipping
							tranDetails.CITY,			// City
							tranDetails.STATE,			// State
							tranDetails.COUNTRY			// Country
						);
						for (var i=0; i<tranDetails.ITEMS.length; i++) {
							pageTracker._addItem(
								tranDetails.ITEMS[i].ORDER_ID,	// Order ID
								tranDetails.ITEMS[i].SKU, 		// SKU
								tranDetails.ITEMS[i].PRODUCT,	// Product Name
								tranDetails.ITEMS[i].CATEGORY,	// Category
								tranDetails.ITEMS[i].PRICE, 	// Price
								tranDetails.ITEMS[i].QUANTITY	// Quantity
							);
						}

						pageTracker._trackTrans();
						pageTracker._trackPageview("/checkout/thank_you.html");
					} catch(err) {}
				}
			}
		}
	);

	return true;
}

function getShippingAddress(args) {
	var pars = '?method=getShippingAddress&addressNo=' + args + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'placeholderContainer',
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true
		}
	);

	return true;
}

/* function drawProfileAddressSelector(s_addr_no) {
	var pars = '?method=drawProfileAddressSelector&s_addr_no=' + s_addr_no + '&z=' + new Date().getTime();

	new Ajax.Updater(
		'profileAddressSelector',
		'/_cfc/ajax.cfc',
		{
			parameters: pars,
			method: 'get',
			evalScripts: true
		}
	);

	return true;
} */

