window.addEvent('domready', function() {
	captureForms();
	sendForm();
	getWemuvAccount();
	getProvinces();
	cartItems();
	copyAddress();
	getProvinces_checkout();
	getSupportType();
});

function captureForms() {
	$$('form').addEvent('submit', function(e) {
		if (this.hasClass('no_ajx')) {
			this.submit();
		}else {
			e.stop();
		}
	});
}

function sendForm() {

	$$('input[type=image]').each(function(el) {
		if (el.hasClass('no_ajx')) {
			return false;
		}else {
			addSubmitListener(el);
		}
	});
}

function addSubmitListener(el) {
	el.addEvent('click', function(e) {
		e.stop();
		var f = this.getParent('form');
		var name = f.get('name');
		if (!name) {
			name = f.get('id');
		}
		var url = name.split('_');
		url = 'ajx/' + url[1] + '.ajx.php';

		if (document.id('actionMsg')) {
			document.id('actionMsg').destroy();
		}

		ajx_loading(f);

		f.set('send', {
			'url' : url,
			'method' : 'post',
			onComplete : function(rsp) {
				formAction(f, rsp);
			}
		});
		f.send();
	});
}

function formAction(el, rsp) {
	var act = rsp.split('|');
	var e = new Element('div', {
		'id' : 'actionMsg'
	});

	switch (act[0]) {
	case 'login':
		location.href = location.href;
		break;
	case 'confirmation':
		e.set( {
			'html' : act[1],
			'class' : 'confirmationMgs'
		});
		e.inject(el, 'before');
		break;
	case 'confirmationRemove':
		e.set( {
			'html' : act[1],
			'class' : 'confirmationMgs'
		});
		e.inject(el, 'before');
		delete el.destroy();
		break;
	case 'warning':
		e.set( {
			'html' : act[1],
			'class' : 'warningMgs'
		});
		e.inject(el, 'before');
		break;
	case 'errorHighlight':
		highlightErrors(act[2], el);
		e.set( {
			'html' : act[1],
			'class' : 'warningMgs'
		});
		e.inject(el, 'before');
		break;
	case 'update':
		highlightErrors(act[2], el);
		e.set( {
			'html' : act[1],
			'class' : 'confirmationMgs'
		});
		e.inject(el, 'before');
		break;
	case 'redirect':
		location.href = act[1];
		break;
	case 'wemuvAccount':
		load_wemuvAccountForm(el);

		break;
	}

	remove_ajx_loading();
}

function highlightErrors(str, el) {

	var els = str.split('_%%_');
	var inputs = el.getElements('input');
	inputs.combine(el.getElements('select'));
	inputs.combine(el.getElements('textarea'));

	inputs.each(function(itm) {

		if (itm.get('type') === 'image') {
			return;
		}

		var name = itm.get('name');

		if (itm.get('tag') === 'select') {
			itm = itm.getParent('div');
		}

		var lbl = itm.getPrevious('label');
		if (!lbl) {
			lbl = itm.getNext('lable');
		}

		if (!lbl) {
			return;
		}

		lbl.setStyle('color', '#7E7E7E');

		if (els.contains(name)) {
			lbl.setStyle('color', '#ED2D23');
		}
	});
}

function getWemuvAccount() {
	var el = document.id('selAccountId');

	if (!el) {
		return false;
	}
	el.addEvent('change', function(e) {
		this.getParent('form').submit();
	});
}

function getProvinces() {

	$$('select.uCountry').addEvent('change', function(e) {
		var id = this.get('value');
		var target = this.get('title');
		target = document.id(target);
		// selectLoading($('province'));
			var ajx = new Request.HTML( {
				'url' : 'ajx/provinces.ajx.php',
				'method' : 'get',
				'data' : {
					'id' : id
				},
				update : target

			}).send();
		});
}

function load_wemuvAccountForm(f) {

	var container = document.id('wemuvAccountFormContainer');
	if (container) {
		delete container.destroy();
	}
	var target = f.getParent('table');
	var div = new Element('div', {
		'id' : 'wemuvAccountFormContainer'
	});
	var ajx = new Request.HTML( {
		'url' : 'ajx/wemuvAccount.ajx.php',
		update : div,
		onComplete : function(e) {
			var form = div.getElement('form');
			var sbmt = form.getElement('input[type=image]');
			form.addEvent('submit', function(e) {
				e.stop();
			});
			addSubmitListener(sbmt);
			popFlashworld();
		}
	}).send();
	div.inject(target, 'after');
}

function cartItems() {
	$$('tr.cartItem').each(function(el) {

		var qty = el.getElement('input');
		var remove = el.getElement('a');

		if (qty) {
			qty.addEvent('blur', function(e) {
				var item = this.get('name');
				var qty = this.get('value');
				updateCart('update', item, qty);
			});
			qty.addEvent('keyup', function(e) {
				if (e.key === 'enter') {
					this.fireEvent('blur');
				}
			});
		}

		remove.addEvent('click', function(e) {
			e.stop();
			var item = this.get('rel');
			updateCart('remove', item, 1);

		});
	});
}

function updateCart(action, item, qty) {
	var ajx = new Request( {
		'url' : 'ajx/updateCart.ajx.php',
		'method' : 'get',
		'data' : {
			'action' : action,
			'item' : item,
			'qty' : qty
		},
		onComplete : function(e) {
			location.href = location.href;
		}
	}).send();
}

function copyAddress() {

	var copyAddress = document.id('copyAddress');
	if (!copyAddress) {
		return;
	}

	copyAddress.addEvent('click', function(e) {
		if (this.get('checked')) {
			$$('div.shippingSection').each(function(itm, ind) {
				itm.setStyle('display', 'none');
			});

		} else {
			$$('div.shippingSection').each(function(itm, ind) {
				itm.setStyle('display', 'block');
			});
		}
	});
}

function getProvinces_checkout() {
	$$('select.checkoutCountry').addEvent('change', function(e) {
		var el = this;
		var f = this.getParent('form');
		var val = this.get('value');

		ajx_loading(f);
		var id = this.getProperty('value');
		var ajx = new Request( {
			'url' : 'ajx/provinces_checkout.ajx.php',
			'method' : 'get',
			'data' : {
				'id' : id
			},
			onComplete : function(txt) {
				setProvince(txt, val);
				changeZip(val);
				remove_ajx_loading();
			}

		}).send();
	});
}

function setProvince(txt, country) {

	var labelTxt = country == 37 ? 'Province *' : 'State *';

	var b_province = document.id('b_province');
	var s_province = document.id('s_province');
	var b_label = document.id('b_province_label');
	var s_label = document.id('s_province_label');
	b_label.set('text', labelTxt);
	s_label.set('text', labelTxt);
	fillSelect(b_province, txt);
	fillSelect(s_province, txt);
	$$('div.checkoutProvince').setStyle('display', 'block');

}

function changeZip(country) {
	var zipTxt = country == 37 ? 'Postal Code *' : 'Zip Code *';
	$$('label.checkoutPostal').set('html', zipTxt);
}

function fillSelect(el, dta) {
	el.empty();
	var dta = dta.split('|');

	dta.each(function(itm, ind) {
		var val = itm.split(':');

		var option = new Element('option', {
			'value' : val[0],
			'text' : val[1]
		});

		option.inject(el);
	});
}

function getSupportType() {
	var supportType = document.id('supportType');
	if (!supportType) {
		return;
	}

	supportType.addEvent('change', function() {
		var contactFormTechnical = document.id('contactFormTechnical');
		if (contactFormTechnical) {
			delete contactFormTechnical.destroy();
		}
		var el = this.getParent('div.re');
		var type = this.get('value');
		var f = el.getParent('form');
		if (type == 1) {
			ajx_loading(f);
			var div = new Element('div', {
				'id' : 'contactFormTechnical'
			});

			var ajx = new Request.HTML( {
				'url' : 'ajx/getContactSupportTec.ajx.php',
				'method' : 'get',
				update : div,
				onComplete : function() {
					remove_ajx_loading();
				}
			}).send();
			div.inject(el, 'after');
		}
	});
}
/*
 * 
 */