
//// Ajax object ===============================
var Ajax = {

	handleFailure:function(o){
		// Fail gracefully
	},

	/**
	* Wrapper for AJAX calls using YUI connector
	*
	* @param postAction {String} URL to post to
	* @param callBackSuccess {String} Success handler
	* @param postData {String} Data to post
	* @param obj {Object} Object that handler has scope in
	*
	*/
	doGet:function(getAction, callBackSuccess){

		var callback = {
			success:callBackSuccess,
			failure:this.handleFailure
		}

		YAHOO.util.Connect.asyncRequest('GET', getAction, callback, null);
	},

	doPost:function(postAction, callBackSuccess, formId) {

		var callback = {
			success:callBackSuccess,
			failure:this.handleFailure
			//scope:obj
		}

		var formObject = document.getElementById(formId);
		if(formObject) { YAHOO.util.Connect.setForm(formObject); }

		YAHOO.util.Connect.asyncRequest('POST', postAction, callback);
	}

};

//// Ajax object ===============================



var cartAjax = {
	
	cart:function(o){
		if(o.responseText !== undefined){
			var cartdiv = document.getElementById('cart');
			cartdiv.innerHTML = o.responseText;
		}
	},

	cartGlow:function(){
		var cartAnimGlow = new YAHOO.util.ColorAnim('minicart', { 
		    color: { to:  '#ff0000' }  
		}, 0.1, YAHOO.util.Easing.easeInStrong); 
		cartAnimGlow.animate();
	},

	cartRevert:function(){
		var cartAnimRevert = new YAHOO.util.ColorAnim('minicart', { 
		    color: { to:  '#666666' }  
		}, 5, YAHOO.util.Easing.easeNone); 
		cartAnimRevert.animate();
	},	
	
	addToCartMessage:function(){
		overlib('<a href=\'/cart\'><img src=\'/static/img/flair/itemsincart.gif\' /></a>', FULLHTML, 
				TIMEOUT, 4000,
				WIDTH, 200,
				HEIGHT, 186,
				ABOVE, FOLLOWMOUSE );
	},
	
	miniCart:function(o){
		if(o.responseText !== undefined){
			//cartAjax.cartGlow();
			var mCartdiv = document.getElementById('minicart');
			mCartdiv.innerHTML = o.responseText;
			clearForm('addForm');
			cartAjax.addToCartMessage();
			//setTimeout('cartAjax.cartRevert()', 1000);
			//cartAjax.cartRevert(mCartdiv);
		}
	}
	


}

var customerAjax = {
	
	editInfo:function(o){
		if(o.responseText !== undefined){
			var cEditdiv = document.getElementById('customer');
			cEditdiv.innerHTML = o.responseText;
		}
	}
	
}

var checkoutAjax = {
	
	submit:function(o){
		if(o.responseText !== undefined){
			var checkoutDiv = document.getElementById('checkout');
			checkoutDiv.innerHTML = o.responseText;
		}
	},
	
	editInfo:function(o){
		if(o.responseText !== undefined){
			var infoDiv = document.getElementById('customerInfo');
			infoDiv.innerHTML = o.responseText;
		}
	},
	
	editAddress:function(o){
		if(o.responseText !== undefined){
			var addressDiv = document.getElementById('customerAddresses');
			addressDiv.innerHTML = o.responseText;
		}
	},
	
	editCC:function(o){
		if(o.responseText !== undefined){
			var ccDiv = document.getElementById('customerCC');
			ccDiv.innerHTML = o.responseText;
		}
	}
	
}

var registryAjax = {
	
	edit:function(o){
		if(o.responseText !== undefined){
			var cEditdiv = document.getElementById('registry');
			cEditdiv.innerHTML = o.responseText;
		}
	}
	
}

function clearForm(formIdent) 
{ 
  var form, elements, i, elm; 
  form = document.getElementById 
    ? document.getElementById(formIdent) 
    : document.forms[formIdent]; 

	if (document.getElementsByTagName)
	{
		elements = form.getElementsByTagName('input');
		for( i=0, elm; elm=elements.item(i++); )
		{
			if (elm.getAttribute('type') == "text")
			{
				elm.value = '';
			}
		}
	}

	// Actually looking through more elements here
	// but the result is the same.
	else
	{
		elements = form.elements;
		for( i=0, elm; elm=elements[i++]; )
		{
			if (elm.type == "text")
			{
				elm.value ='';
			}
		}
	}
}
	
function addEvent(elm, strEvent, fnHandler)
{
	return ( elm.addEventListener
	? elm.addEventListener( strEvent, fnHandler, false)
	: elm.attachEvent( 'on'+strEvent, fnHandler)
	);
}

function outputMessage(message, msgerror){
	olLoaded=1; 
	if (msgerror == true){
		message = '<div onClick="nd();" style="cursor: pointer;"><b>'+message+'</b></div>';
		overlib(message, ANCHOR, 'mainmenu', ANCHORALIGN, 0.5, 2.5, 0.5, 0.5,
			FGCOLOR, '#EEEEEE',
			BGCOLOR, '#FF6666',
			TEXTCOLOR, '#CC0000',
			CAPTION, 'Error',
			WIDTH, 300,
			TIMEOUT, 9000
		);	
	}
	else {
		overlib(message, ANCHOR, 'mainmenu', ANCHORALIGN, 0.5, 2.5, 0.5, 0.5,
			TIMEOUT, 9000,
			FGCOLOR, '#9999FF',
			BGCOLOR, '#0000FF',
			TEXTCOLOR, '#000000'
		);
	}
}
