window.addEvent('domready', function() {
	skinSelect();
	sendForm();
	resetPwd();
	getProvinces();
});

function skinSelect() {
	var els = $$('div.form_select');

	els.each(function(el) {
		var txt = el.getElement('div.select_txt');
		var sel = el.getElement('select');
		var ind = sel.selectedIndex;
		var opts = sel.getChildren('option');
		var opt = opts[ind].get('text');
		txt.set('text', opt);
		sel.addEvent('change', function() {
			ind = this.selectedIndex;
			opt = this.options[ind].get('text');
			txt.set('text', opt);
		});
	});
}

function sendForm() {
	$$('input[type=image]').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 ($('actionMsg')) {
			$('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 'redirect' :
			location.href = act[1];
			break;
		case 'confirmation' :
			e.set({
				'html' : act[1],
				'class' : 'confirmationMgs'
			});
			e.inject(el, 'before');
			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;
	}

	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 resetPwd() {
	if (!$('f_pwd')) {
		return;
	}

	$('f_pwd').addEvent('click', function(e) {
		e.stop();
		var p = $('frm_login_container');
		var ajx = new Request.HTML({
			'url' : 'ajx/forgotPwd.ajx.php?a=frm',
			'method' : 'get',
			update : p,
			onComplete : function() {
				if ($('actionMsg')) {
					$('actionMsg').destroy();
				}
				sendForm();
			}
		}).send();
	});
}

function getProvinces() {
	if (!$('countryID')) {
		return false;
	}

	$('countryID').addEvent('change', function(e) {
		var id = this.get('value');
		var ajx = new Request({
			'url' : 'ajx/provinces.ajx.php',
			'method' : 'get',
			'data' : {
				'id' : id
			},
			onComplete : function(rsp) {
				fillSelect($('provinceID'), rsp);
				var seltxt = $('provinceID').getPrevious('div.select_txt');
				seltxt.set('text', 'Select');
				if (id == '37') {
					$('prov_label').set('text', 'Province *');
					$('pc_label').set('text', 'Postal Code *');
				} else {
					$('prov_label').set('text', 'State *');
					$('pc_label').set('text', 'Zip Code *');
				}
			}
		}).send();
	});
}

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);
	});
}

/*
 * B
 */
