var TendmeAvailability = {

	init: function() {
		var ref = this;
		var links = document.getElementsByName('availability_link');
		
		for(var i = 0; i < links.length; i++) {
			links[i].onchange = function(){ ref.checkDay(this); return false; };
		}
		
		var all = document.getElementById("availability_all");
		
		if(all) {
			all.onclick = function(){ ref.checkAllOrNone("all"); return false; };
		}
		
		var none = document.getElementById("availability_none");
		
		if(none) {
			none.onclick = function(){ ref.checkAllOrNone("none"); return false; };
		}
	},
	
	checkDay: function(checkbox) {
		var id = checkbox.id;
		
		// for edit availability
		var dayLinks = document.getElementsByName("provider.availability." + id);
		
		for(var i = 0; i < dayLinks.length; i++) {
			if(checkbox.checked == true) {
				dayLinks[i].checked = true;
			}
			else {
				dayLinks[i].checked = false;
			}
		}
		
		// for search list
		if (dayLinks.length == 0) {
			var dayLinks = document.getElementsByName("profile.availability." + id);
			
			for(var i = 0; i < dayLinks.length; i++) {
				if(checkbox.checked == true) {
					dayLinks[i].checked = true;
				}
				else {
					dayLinks[i].checked = false;
				}
			}
		}
	},
	
	checkAllOrNone: function(type) {
		//var links = document.getElementsByName(match(/provider.availability/));
		var checkbox = document.getElementsByClassName('checkBox');
		
		for(var i = 0; i < checkbox.length; i++) {
			var name = checkbox[i].name;
			var isAvailability = name.search(/availability/);
		
			if(isAvailability != -1) {
				if (type == "all") {
					checkbox[i].checked = true;
				}
				else {
					checkbox[i].checked = false;
				}
			}
		}
	}
}
Tendme.addPageLoadModule(TendmeAvailability);