/*****  global vars *****/ 
var wrapper = '';
var link = '';

// click outside of modules to close
document.onclick = check;

function check(e) {
	var target = (e && e.target) || (event && event.srcElement);
	var obj = document.getElementById(wrapper);
	var parent = checkParent(target);
	if (parent && obj) {
		if (obj.style.display == 'block') {
			jQuery('#' + link).click();
		}
	}
}

function checkParent(t) {
	while(t.parentNode) {
		if (t == document.getElementById(wrapper)) {
			return false;
		}
		t = t.parentNode;
	}
	return true;
}

function checkLayerDisplay () {
	if (document.getElementById('addListWrapperTop').style.display == "block") {
		jQuery('#addToListTop').click();
	}
	
	if (document.getElementById('addListWrapperBottom').style.display == "block") {
		jQuery('#addToListBottom').click();
	}
	
	if (document.getElementById('addOrderWrapperTop').style.display == "block") {
		jQuery('#addToOrderTop').click();
	}

	if (document.getElementById('addOrderWrapperBottom').style.display == "block") {
		jQuery('#addToOrderBottom').click();
	}
	
	if (document.getElementById('holdDeliveryWrapper').style.display == "block") {
		jQuery('#holdDelivery').click();
	}
	
	if (document.getElementById('cancelOrderWrapper').style.display == "block") {
		jQuery('#cancelOrder').click();
	} 
	
	if (document.getElementById('copyListWrapperTop').style.display == "block") {
		jQuery('#copyToListTop').click();
	}
	
	if (document.getElementById('copyListWrapperBottom').style.display == "block") {
		jQuery('#copyToListBottom').click();
	}
}

function showOrders(w, l) {
	checkLayerDisplay();

	wrapper = w;
	link = l;

	jQuery('.utility #' + link).addClass('active');
	jQuery('#' + wrapper).css('display', 'block').bgiframe();
}

function hideOrders(w, l) {
	wrapper = w;
	link = l;

	jQuery('.utility #' + link).removeClass('active');
	jQuery('#' + wrapper).css('display', 'none');
}

function showLists(w, l) {
	checkLayerDisplay();

	wrapper = w;
	link = l;

	jQuery('.utility #' + link).addClass('active');
	jQuery('#' + wrapper).css('display', 'block').bgiframe();
}

function hideLists(w, l) {
	wrapper = w;
	link = l;

	jQuery('.utility #' + link).removeClass('active');
	jQuery('#' + wrapper).css('display', 'none');
}

function showHold(w, l) {
	checkLayerDisplay();

	wrapper = w;
	link = l;

	jQuery('.utility #' + link).addClass('active');
	jQuery('#' + wrapper).css('display', 'block').bgiframe();
}

function hideHold(w, l) {
	wrapper = w;
	link = l;

	jQuery('.utility #' + link).removeClass('active');
	jQuery('#' + wrapper).css('display', 'none');
}

function showCancel(w, l) {
	checkLayerDisplay();

	wrapper = w;
	link = l;

	jQuery('.utility #' + link).addClass('active');
	jQuery('#' + wrapper).css('display', 'block').bgiframe();
}

function hideCancel(w, l) {
	wrapper = w;
	link = l;

	jQuery('.utility #' + link).removeClass('active');
	jQuery('#' + wrapper).css('display', 'none');
}

function showCopy(w, l) {
	checkLayerDisplay();

	wrapper = w;
	link = l;

	jQuery('.utility #' + link).addClass('active');
	jQuery('#' + wrapper).css('display', 'block').bgiframe();
}

function hideCopy(w, l) {
	wrapper = w;
	link = l;

	jQuery('.utility #' + link).removeClass('active');
	jQuery('#' + wrapper).css('display', 'none');
}


jQuery(document).ready(function($) {
	// add to order
	$('#addToOrderTop').toggle(function() {
		showOrders('addOrderWrapperTop', 'addToOrderTop');
	}, function() {
		hideOrders('addOrderWrapperTop', 'addToOrderTop');
	});

	$('#addToOrderBottom').toggle(function() {
		showOrders('addOrderWrapperBottom', 'addToOrderBottom');
	}, function() {
		hideOrders('addOrderWrapperBottom', 'addToOrderBottom');
	});
	
	// add to list
	$('#addToListTop').toggle(function() {
		showLists('addListWrapperTop', 'addToListTop');
	}, function() {
		hideLists('addListWrapperTop', 'addToListTop');
	});

	$('#addToListBottom').toggle(function() {
		showLists('addListWrapperBottom', 'addToListBottom');
	}, function() {
		hideLists('addListWrapperBottom', 'addToListBottom');
	});
	
	// hold delivery
	$('#holdDelivery').toggle(function() {
		showHold('holdDeliveryWrapper', 'holdDelivery');
	}, function() {
		hideHold('holdDeliveryWrapper', 'holdDelivery');
	});
	
	// cancel order
	$('#cancelOrder').toggle(function() {
		showCancel('cancelOrderWrapper', 'cancelOrder');
	}, function() {
		hideCancel('cancelOrderWrapper', 'cancelOrder');
	});
	
	// copy to list
	$('#copyToListTop').toggle(function() {
		showCopy('copyListWrapperTop', 'copyToListTop');
	}, function() {
		hideCopy('copyListWrapperTop', 'copyToListTop');
	});
	
	$('#copyToListBottom').toggle(function() {
		showCopy('copyListWrapperBottom', 'copyToListBottom');
	}, function() {
		hideCopy('copyListWrapperBottom', 'copyToListBottom');
	});
	
	// select all
	$("#selectAll").click(function() {
		var checked_status = this.checked;
		$("input[@name=item]").each(function() {
			this.checked = checked_status;
		});
	});
	
	// radio buttons
	$('input[@id^="weeklyOrder"]').click(function() {
		$('input[@id^="weeklyOrder"]').attr('checked', 'checked');
		$('div.recurring').css('display', 'block');
	});
	
	$('div.recurring input').click(function() {
		// console.log();
		var $radio = $(this).attr('id');
		$radio = $radio.substring(0, 9);

		$('input[@id^="' + $radio + '"]').attr('checked', 'checked');
	});

	$('input[@id^="singleOrder"]').click(function() {
		$('input[@id^="singleOrder"]').attr('checked', 'checked');
		$('div.recurring').css('display', 'none');
		$('div.recurring input').attr('checked', '');
	});

	if ($('input[@id^="weeklyOrder"]').is(':checked')) {
		$('input[@id^="weeklyOrder"]').click();
	};
	
	// select box
	$('select[@id^="listNames"] option').click(function() {
		$option = $(this).text();
		$('select[@id^="listNames"] option').removeAttr('selected');
		$('select[@id^="listNames"] option:contains("' + $option + '")').attr('selected', 'selected');		
	});
	
	// submit button
	$('.addOrderWrapper .submit, .addListWrapper .submit').click(function() {
		$(this).parent().parent().parent().siblings().click();
	});
	
});

