
// Revealing module pattern
var membersScript = function () {

	var userLevel;
	var smfLevel;
	
	var setObservers = function () {
		clearObservers();
		if ($('shippingSameAsBilling')) $('shippingSameAsBilling').addEvent('click', function(event) {membersScript.toggleShipping(event)});
		if ($('rp')) $('rp').addEvent('click', function(event) {membersScript.checkRP(event)});
	}




	var clearObservers = function () {
		if ($('kapelleUserLevel')) {
			$('kapelleUserLevel').removeEvent('change', function(event) {membersScript.userPrivAlert(event)});
		}
		
		if ($('smfUserLevel')) {
			$('smfUserLevel').removeEvent('change', function(event) {membersScript.smfPrivAlert(event)});
		}
		
		if ($('shippingSameAsBilling')) $('shippingSameAsBilling').removeEvents('click');
		if ($('rp')) $('rp').removeEvents('click');
	}




	var checkRP = function() {
		var r=$('rp');
		
		if(r){
			
			if(r.checked){
				//$('pwordfields').setStyle('display', 'block');
				$('pwordfields').setStyle('display','block');
				$('password').disabled=false;
				$('conf_password').disabled=false;
			}
			else{
				$('pwordfields').setStyle('display', 'none');
				$('password').disabled=true;
				$('conf_password').disabled=true;
			}
			
		}
	}



	
	var toggleShipping = function() {
		//event.stop();
		if ($('shippingSameAsBilling')) {
			var btn = $('shippingSameAsBilling');
			if (btn.checked) {
				$$('#shipping_address input').each(function(input) {
					var replaceWith = input.id.replace('shipping', 'billing');
					if($(replaceWith)) {
						input.value = $(replaceWith).value;
						$(replaceWith).addEvent('change', function(event) {
							var my = $(event.target);
							var replace = $(my.id.replace('billing', 'shipping'));
							replace.value = my.value;
						});
					}
					input.setAttribute('disabled', 'disabled');
				});

				$$('#shipping_address select').each(function(input) {
					var replaceWith = input.id.replace('shipping', 'billing');
					if($(replaceWith)) {
						input.options.selectedIndex = $(replaceWith).options.selectedIndex;
						$(replaceWith).addEvent('change', function(event) {
							var my = $(event.target);
							var replace = $(my.id.replace('billing', 'shipping'));
							replace.options.selectedIndex = my.options.selectedIndex;
						});
					}
					input.setAttribute('disabled', 'disabled');
				});
				
				$('shipping_address').setStyle('display','none');
			}
			else {
				$$('#shipping_address input').each(function(input) {
					input.removeAttribute('disabled');
					if ($(input.id.replace('shipping', 'billing'))) $(input.id.replace('shipping', 'billing')).removeEvents('change');
				});
				$$('#shipping_address select').each(function(input) {
					input.removeAttribute('disabled');
					if ($(input.id.replace('shipping', 'billing'))) $(input.id.replace('shipping', 'billing')).removeEvents('change');
				});
				
				$('shipping_address').setStyle('display','block');
			}
		}
	}
	
	var init = function () {
		setObservers();
		toggleShipping();
	}
	
	return {
		init:init,
		checkRP: checkRP,
		setObservers: setObservers,
		clearObservers: clearObservers,
		userLevel: userLevel,
		smfLevel: smfLevel,
		toggleShipping: toggleShipping
	}
	
}();

// The following for backward compatibility, all depreciated!

function memberDelete(memberID, loc) {
	return membersScript.memberDelete(memberID, loc);
}

function checkRP() {
	return membersScript.checkRP();
}

function searchMembers(page) {
	return membersScript.searchMembers(page);
}

function sortMembers(sortField, type) {
	return membersScript.sortMembers(sortField, type);
}

window.addEvent('load', function(event) {membersScript.init();});