var myAdressbook = {
	'loaded': false,
	'itemslist_box_id': 'adressbook_list',
	'adressbook_id': 'adressbook',  
	
	show: function (btn) {
		myAdressbook.showBox();
		if (myAdressbook.loaded == false) {
			myAdressbook.requestItems();
		} 
	},

	selectItems: function (anzeige_box, hiddenfield) {
		var ids = "";
		var labels = "";
		$$("#"+myAdressbook.itemslist_box_id+" .adressbook_item").each(function(s, index) {
												var checkbox = s.down('.item_checkbox');
												if (checkbox.checked) {
													ids += checkbox.value+",";
													var label_el = s.down('span');
													if (labels != "") labels += ",";
													labels += label_el.innerHTML;
												}
											}	
		);

		$(anzeige_box).innerHTML = labels;
		$(hiddenfield).value = ids;
		
		myAdressbook.hideBox();		
	},

	abort: function () {
		myAdressbook.hideBox();
		myAdressbook.setAllCheckboxes(false);
	},

	showBox: function () {
		hideFlash();
		
		var pos = YAHOO.util.Dom.getXY('wtl1');

		$(myAdressbook.adressbook_id).style.display = "block";
		$(myAdressbook.adressbook_id).style.left = "340px";
		$(myAdressbook.adressbook_id).style.top = (pos[1]+80)+"px";

	},
	
	hideBox: function () {
		$(myAdressbook.adressbook_id).style.display = "none";
		showFlash();
	},

	requestItems: function() {
		var cont = $(myAdressbook.itemslist_box_id);
		cont.innerHTML = "Adressbuch wird geladen...";
	
		new Ajax.Request('index.php',
		{
			method:'get',
			parameters: {Action: 'getMyAdressbookJson'},
			onSuccess: function(transport){
				var response = transport.responseText || "no response text";
		  
				var items = JSON.parse(response);
				if (items.length > 0) myAdressbook.renderItems(items);
				else {
					var cont = $(myAdressbook.itemslist_box_id);
					cont.innerHTML = "Keine Kontakte im Adressbuch.";
				}

				myAdressbook.loaded = true; 		
			},
			onFailure: function(){ 
				alert('Something went wrong...');
			}
		 });
	},

	renderItems: function(items) {
		var cont = $(myAdressbook.itemslist_box_id);
		cont.innerHTML = "";
		items.each(function(s, index) {   
						if (s.firstname+s.lastname != "")	var label = s.firstname+" "+s.lastname;
						else var label = s.email;

						var knoten =  Builder.node('div', {id:"a_item_"+s.id, className:'adressbook_item', style:'padding:2px; cursor:pointer;'}, [
							Builder.node('input', {type:'checkbox', className:'item_checkbox', value:s.id, checked:"checked" }),
							Builder.node('span', " "+label)
						]);

						cont.appendChild(knoten);
					}
		); 
		
		$$("#"+myAdressbook.itemslist_box_id+" .adressbook_item").each(function(s, index) {
												Event.observe($(s.id), 'click', 	myAdressbook.click_item);
												Event.observe($(s.id), 'mouseover', myAdressbook.over_item);
												Event.observe($(s.id), 'mouseout', myAdressbook.out_item);

											}	
		);

	},

	click_item: function(e) {
		var element = Event.element(e);   
		if (element.tagName != 'INPUT') { 
			var box = Event.findElement(e, 'DIV'); 
			var checkbox = box.down('input.item_checkbox');
			myAdressbook.toggleCheckbox(checkbox);  		
		}
	},

	over_item: function(e) {
		var box = Event.findElement(e, 'DIV');
		box.style.backgroundColor = "#FDD7C4";	
	},

	out_item: function(e) {
		var box = Event.findElement(e, 'DIV'); 
		box.style.backgroundColor = "#FFFFFF";
	},

	toggleAll: function(schalter) {
		var modus = schalter.checked;
		myAdressbook.setAllCheckboxes(modus);
	},
	
	setAllCheckboxes: function(modus) {
		$$("#"+myAdressbook.itemslist_box_id+" .item_checkbox").each(function(s, index) {   
												if (s.readAttribute('type') == 'checkbox') s.checked = modus; 
											}
		); 
	},


	toggleCheckbox: function(checkbox) {
		if (checkbox.checked) checkbox.checked = false;
		else checkbox.checked = true; 
	}
	
}
