function OXGroupwareHover() {}
OXGroupwareHover.references=new Object();
OXGroupwareHover.start = function () {
	if(!OXGroupwareHover.references["core_attachments_template"]) {
		var tmpnode=$("template_calendar_hover_attachments").cloneNode(true);
		$("template_calendar_hover_attachments").parentNode.removeChild($("template_calendar_hover_attachments"));
		tmpnode.id="";
		OXGroupwareHover.references["core_attachments_template"]=tmpnode;
	}
	if(!OXGroupwareHover.references["core_links_template"]) {
		var tmpnode=$("template_calendar_hover_links").cloneNode(true);
		$("template_calendar_hover_links").parentNode.removeChild($("template_calendar_hover_links"));
		tmpnode.id="";
		OXGroupwareHover.references["core_links_template"]=tmpnode;
	}
	if(!OXGroupwareHover.references["core_content_full"]) {
		var tmpnode=$("template_calendar_hover_page_content_full").cloneNode(true);
		$("template_calendar_hover_page_content_full").parentNode.removeChild($("template_calendar_hover_page_content_full"));
		tmpnode.id="";
		OXGroupwareHover.references["core_content_full"]=tmpnode;
	}
	if(!OXGroupwareHover.references["core_content"]) {
		var tmpnode=$("template_calendar_hover_page_content").cloneNode(true);
		$("template_calendar_hover_page_content").parentNode.removeChild($("template_calendar_hover_page_content"));
		tmpnode.id="";
		OXGroupwareHover.references["core_content"]=tmpnode;
	}
}

OXGroupwareHover.getDirectLink = function(module,folder_id,id) {
	var myLocation = window.location.protocol+"//"+window.location.host;
	var myLocationPath = window.location.pathname;
	myLocation = myLocation+myLocationPath.substring(0,myLocationPath.lastIndexOf("ox.html"));	
	return myLocation+"#m=" + (module) + "&f="+folder_id + "&i="+id;
}

OXGroupwareHover.openAttachedFile = function(folderid,objectid,filename,rtfflag,attachmentid) {
	return function() {
		if(rtfflag) { return; }
		var sURL = AjaxRoot + "/attachment/" + filename + "?action=document&session=" + session + "&attached=" + objectid  +
			 "&module=1&folder=" + folderid + "&id=" + attachmentid;
		newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes");
	}
};
OXGroupwareHover.saveAttachedFile = function(folderid,objectid,filename,rtfflag,attachmentid) {
	return function() {	
		if(rtfflag) return;
		var sContentType = 'application%2Foctet-stream';	
		var sURL = 	AjaxRoot + "/attachment/" + filename + "?action=document&session="+ session + "&attached=" + objectid  + 
		"&module=1&folder="+ folderid + "&id=" + attachmentid + "&content_type=" +sContentType;
		if(IE6) { newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes"); }
		else { parent.frames['dlIframe'].location.href = sURL; }
	}
};
OXGroupwareHover.followLink = function (module,folder,id) {
	return function() {
		triggerEvent("OX_Direct_Linking",module,{ folder : folder , id : id });
	}
}
OXGroupwareHover.fillLinks = function(Hover) {
	Hover.accordion.removeComponent("Links");
	var linksmain=OXGroupwareHover.references["core_links_template"].cloneNode(true);
	var linksbody=linksmain.getElementsByTagName("tbody")[0];
	var linksfirst=newnode("tr",{},{},[
		newnode("td",{ width: "25px", paddingTop:"12px", lineHeight : "0px"},{ className: "notclickable"},[
			newnode("img",{ height: "16px", width: "16px"},{ src: "img/dummy.gif", className: "notclickable" },[]) 
		]),
		newnode("td",{ paddingTop:"12px"},{ className : "contenttext notclickable"},[]),
		newnode("td",{ width: "25px", paddingTop:"12px" , lineHeight : "0px"},{ className: "clickable"},[
			newnode("img",{},{ src: "img/menu/link_follow.gif" },[])
		])
	]);
	(new JSON()).get(AjaxRoot + "/link?action=all&session=" + session + "&folder=" +
		Hover.actualobject.folder_id + "&id=" + Hover.actualobject.id + "&module="+Hover.moduleint, null,
		function(links) {
			links=links.data;
			if(links.length==0) {
				var tmp=newnode("tr",{},{},[
					newnode("td",{ width: "25px"},{ className: "notclickable" },[
						newnode("img",{},{ src: "img/dummy.gif" },[])
					]),
					newnode("td",{},{ colspan : 4 , className : "contenttext notclickable" },[
						document.createTextNode(_("No links available"))
					])		
				]);
				linksbody.appendChild(tmp);
				
			} else {
				var linkobjects=new Object()
				for(var i=0;i<links.length;i++) {		
					var module;
					var folder_id;
					var id;
					if(links[i].id1==Hover.actualobject.id &&
					   links[i].folder1==Hover.actualobject.folder_id && links[i].module1==Hover.moduleint) {
					   	module=links[i].module2;
						folder_id=links[i].folder2;
						id=links[i].id2;
					} else {	
						module=links[i].module1;
						folder_id=links[i].folder1;
						id=links[i].id1;	
					}
					switch (module) {
						case 1: 
							if(!linkobjects["calendar"]) { linkobjects["calendar"]=new Array(); }
							linkobjects["calendar"].push({id : id, folder : folder_id });
							break;
						case 4: 
							if(!linkobjects["tasks"]) { linkobjects["tasks"]=new Array(); }
							linkobjects["tasks"].push({id : id, folder : folder_id });
							break;
						case 7: 
							if(!linkobjects["contacts"]) { linkobjects["contacts"]=new Array(); }
							linkobjects["contacts"].push({id : id, folder : folder_id });
							break;	
						case 137: 
							if(!linkobjects["infostore"]) { linkobjects["infostore"]=new Array(); }
							linkobjects["infostore"].push({id : id, folder : folder_id });
							break;												
					}
				}
				var requests=new Array();
				var requestmodule=new Array();
				
				for(var i in linkobjects) {
					switch (i) {
						case "calendar":
						case "tasks":
							requests.push({
								action: "list",
								module : i,
								columns : "1,20,200",
								data : linkobjects[i]
							});
							break;
						case "contacts":
							requests.push({
								action: "list",
								module : i,
								columns : "1,20,500,602",
								data : linkobjects[i]
							});
							break;
						case "infostore":
							requests.push({
								action: "list",
								module : i,
								columns : "1,20,700",
								data : linkobjects[i]
							});
							break;
					}
					requestmodule.push(i);
				}
				
				(new JSON()).put(AjaxRoot + "/multiple?session="+session +"&continue=true", 
					requests, 
					null, 
					function(multiplerequests){					
						if(multiplerequests){
							if(multiplerequests.length > 0) {
								for (single=0;single<multiplerequests.length;single++) {
									if(multiplerequests[single].error_id != undefined) {
										newServerError(multiplerequests[single]);
									} else {
										for(var count=0;count<multiplerequests[single].data.length;count++) {
											function getModuleString(mod,dist) {
												if(mod == "tasks") { return "img/tasks/tasks.gif"; }
												if(mod == "contacts" && !dist) { return "img/contacts/contacts.gif"; }
												if(mod == "contacts" && dist) { return "img/menu/distributionlist.gif"; }
												if(mod == "infostore") { return "img/infostore/infostore.gif"; }
												if(mod == "calendar") { return "img/calendar/calendar.gif"; } 
											}
											var tmp_module = requestmodule[single];
											var tmp_folder_id =multiplerequests[single].data[count][1];
											var tmp_id =multiplerequests[single].data[count][0];
											var tmp_title =multiplerequests[single].data[count][2];
											var tmp_distri = multiplerequests[single].data[count][3] || false; 
											var node=linksfirst.cloneNode(true);
											node.getElementsByTagName("img")[0].src=getModuleString(tmp_module,tmp_distri);
											node.getElementsByTagName("td")[1].appendChild(document.createTextNode(tmp_title));
											node.getElementsByTagName("img")[1].title=_("Follow link"); /*stringfuckel*/
											addDOMEvent(node.getElementsByTagName("img")[1],"click",OXGroupwareHover.followLink(tmp_module,tmp_folder_id,tmp_id));
											linksbody.appendChild(node);
										}
									}
								}
							}
						}
						Hover.accordion.checkComponentHeight("Links");
					} 	
				);
			}
			Hover.accordion.checkComponentHeight("Links");
		}
	);
	Hover.accordion.addComponent("Links",linksmain,false);
}
OXGroupwareHover.fillAttachments = function(Hover) {
	Hover.accordion.removeComponent("Attachments");
	var attachmentfirst=
	newnode("tr",{},{},[
		newnode("td",{ width: "25px", paddingTop:"12px", lineHeight : "0px"},{ className: "notclickable"},[
			newnode("img",{},{ src: "img/dummy.gif" },[]) 
		]),
		newnode("td",{ paddingTop:"12px"},{ className : "contenttext notclickable"},[]),
		newnode("td",{ width: "25px", paddingTop:"12px" , lineHeight : "0px"},{ className: "clickable" },[
			newnode("img",{},{ src: "img/dummy.gif" },[]),
			newnode("img",{ display:"none" },{ src: "img/menu/attachment_open.gif" },[])
		]),
		newnode("td",{ width: "25px", paddingTop:"12px" , lineHeight : "0px"},{ className: "clickable"},[
			newnode("img",{},{ src: "img/dummy.gif" },[]),
			newnode("img",{ display:"none" },{ src: "img/menu/attachment_save.gif" },[])
		])
	]);
	var attachmentsecond=
	newnode("tr",{},{},[
		newnode("td",{ width: "25px"},{ className: "notclickable"},[
			newnode("img",{},{ src: "img/dummy.gif" },[])
		]),
		newnode("td",{},{ className : "contenttext notclickable"},[]),
		newnode("td",{ width: "25px"},{ className: "notclickable"},[]),
		newnode("td",{ width: "25px"},{ className: "notclickable"},[])
	]);
	var attachmentmain=OXGroupwareHover.references["core_attachments_template"].cloneNode(true);
	var attachbody=attachmentmain.getElementsByTagName("tbody")[0];
	if(!(Hover.actualobject.number_of_attachments>0)) {
		var tmp=newnode("tr",{},{},[
			newnode("td",{ width: "25px"},{},[
				newnode("img",{ className: "notclickable" },{ src: "img/dummy.gif" },[])
			]),
			newnode("td",{},{ colspan : 4 , className : "contenttext notclickable" },[
				document.createTextNode(_("No attachments available"))
			])		
		]);
		attachbody.appendChild(tmp);
	} else {
		(new JSON()).get(AjaxRoot + "/attachment?action=all&session=" + session + "&folder=" + Hover.actualobject.folder_id +
			"&attached=" + Hover.actualobject.id + "&module="+Hover.moduleint+"&columns=1,801,802,803,804,805,806&sort=803&order=asc",null,
			function(attachments) {
				attachments=attachments.data;
				for(var i=0;i<attachments.length;i++) {
					var node=attachmentfirst.cloneNode(true);
					var node2=attachmentsecond.cloneNode(true);
					var attachmentid=attachments[i][0];
					var image=getMimeImage(attachments[i][5]);
					var imagetitle=attachments[i][5];
					var bytesize=attachments[i][4];
					var attachmentname=attachments[i][3];
					var imagertf=attachments[i][6]
					node.getElementsByTagName("img")[0].src=image; 
					node.getElementsByTagName("img")[0].title=imagetitle;
					if(!imagertf) {
						node.getElementsByTagName("td")[1].appendChild(document.createTextNode(attachmentname));
						node.getElementsByTagName("img")[1].style.display="none";
						node.getElementsByTagName("img")[2].style.display="";
						node.getElementsByTagName("img")[2].title=_("Open attachment"); /*stringfuckel*/
						addDOMEvent(node.getElementsByTagName("img")[2],"click",OXGroupwareHover.openAttachedFile(Hover.actualobject.folder_id,Hover.actualobject.id,attachmentname,imagertf,attachmentid));
						node.getElementsByTagName("img")[3].style.display="none";
						addDOMEvent(node.getElementsByTagName("img")[4],"click",OXGroupwareHover.saveAttachedFile(Hover.actualobject.folder_id,Hover.actualobject.id,attachmentname,imagertf,attachmentid));
						node.getElementsByTagName("img")[4].style.display="";
						node.getElementsByTagName("img")[4].title=_("Save attachment"); /*stringfuckel*/
					} else {	
						node.getElementsByTagName("td")[1].appendChild(document.createTextNode(attachmentname));
					}
					node2.getElementsByTagName("td")[1].appendChild(document.createTextNode(OXGroupwareHover.getShortByteString(bytesize)));
					node2.getElementsByTagName("td")[1].title=OXGroupwareHover.getShortByteString(bytesize,true);
					attachbody.appendChild(node);
					attachbody.appendChild(node2);
				}
				Hover.accordion.checkComponentHeight("Attachments");
			}
		);
	}	
	Hover.accordion.addComponent("Attachments",attachmentmain,false);
}
OXGroupwareHover.getShortByteString=function(int1,onlybytes) {
	int1=parseInt(int1);
	if((parseInt(int1/(1024))<1) || onlybytes) { return int1+" bytes"; } 
	else if(parseInt(int1/(1024*1024))<1) {
		var comma= Math.round((int1 % (1024)) / 102.4) ;
		if(comma) { return parseInt(int1/(1024))+","+comma+ " Kb" }
		else { return parseInt(int1/(1024)) + " Kb" }
	} else if(parseInt(int1/(1024*1024*1024))<1) {
		var comma= Math.round((int1 % (1024*1024)) / 102.4 * 1024) ;
		if(comma) { return parseInt(int1/(1024*1024))+","+comma+ " Mb" }
		else { return parseInt(int1/(1024*1024)) + " Mb" }
	}
	else if(parseInt(int1/(1024*1024*1024*1024))<1) {
		var comma= Math.round((int1 % (1024*1024*1024)) / 102.4 * 1024 * 1024) ;
		if(comma) { return parseInt(int1/(1024*1024*1024))+","+comma+ " Gb" }
		else { return parseInt(int1/(1024*1024*1024)) + " Gb" }
	} else {
		return parseInt(int1/(1024*1024*1024)) + " Gb";
	}	
}
				
function OXOperationHover() {}
OXOperationHover.start = function() {
	if(!OXOperationHover.references["core_participants_participant_template"]) {
		var tmpnode=$("template_calendar_hover_participants").cloneNode(true);
		$("template_calendar_hover_participants").parentNode.removeChild($("template_calendar_hover_participants"));
		tmpnode.id="";
		OXOperationHover.references["core_participants_participant_template"]=tmpnode;
	}
	if(!OXOperationHover.references["core_participants_groupparticipants_template"]) {
		var tmpnode=$("template_calendar_hover_groupparticipants").cloneNode(true);
		$("template_calendar_hover_groupparticipants").parentNode.removeChild($("template_calendar_hover_groupparticipants"));
		tmpnode.id="";
		OXOperationHover.references["core_participants_groupparticipants_template"]=tmpnode;
	}
	if(!OXOperationHover.references["core_participants_confirmdialog_template"]) {
		var tmpnode=$("template_calendar_participants_confirmdialog").cloneNode(true);
		$("template_calendar_participants_confirmdialog").parentNode.removeChild($("template_calendar_participants_confirmdialog"));
		tmpnode.id="";
		OXOperationHover.references["core_participants_confirmdialog_template"]=tmpnode;
	}
}
OXOperationHover.references=new Object();
OXOperationHover.decline= function(Hover) {
	OXOperationHover.dialogRequest(2,Hover);
	OXOperationHover.hideDialog(Hover);
}
OXOperationHover.tentiative= function(Hover) {
	OXOperationHover.dialogRequest(3,Hover);
	OXOperationHover.hideDialog(Hover);
}
OXOperationHover.accept= function(Hover) {
	OXOperationHover.dialogRequest(1,Hover);
	OXOperationHover.hideDialog(Hover);
}	
OXOperationHover.dialogRequest = function(confirmstatus,Hover) {
	(new JSON).put(AjaxRoot + "/"+Hover.actualmodule+"?session="+session+"&action=confirm", 
		{ "confirmation": confirmstatus, "folder_id" : Hover.actualobject.folder_id, "id": Hover.actualobject.id, "confirmmessage": Hover.references["ConfirmDialogInput"].value  },
		null,
		function(reply) {
			Hover.refillContent(Hover.actualobject.id,Hover.actualobject.folder_id,Hover.actualobject.recurrence_position); 
		});
}
OXOperationHover.hideDialog= function(Hover) {
	Hover.accordion.hideExtraContent("ConfirmDialog");
	Hover.confirmdialogshown=false;
}
OXOperationHover.getParticipantsString= function(Hover) {
	var tmpstring="ParticipantsUsers";
	for(var i=0;i<Hover.references.allGroups.length;i++) {
		tmpstring+=","+Hover.references.allGroups[i];
	}
	return tmpstring;
}	
OXOperationHover.fillParticipants = function(Hover) {
	Hover.accordion.removeComponent("ConfirmDialog");
	Hover.accordion.removeComponent("ParticipantsUsers")
	var participants=Hover.actualobject.participants;
	var users=Hover.actualobject.users;
	
	var tmp_participants=new Array();
	var checked_confirm=new Object();
	for(var i=0;i<participants.length;i++) {
		if(participants[i].type!=5) {
			tmp_participants.push(participants[i]);
		}
	}
	for(var i=0;i<users.length;i++) {
		if(users[i].id) {
			checked_confirm[users[i].id]={ confirm : users[i].confirmation , message : users[i].confirmmessage };
		}
	}
	internalCache.getObjects(tmp_participants,function(data) {
		var tmp_node=newnode("tr",null,null,[
			newnode("td",{ width: "25px" },{className : "notclickable"},[
			]),
			newnode("td",{},{ className : "contenttextnocolor notclickable"},[])
		]);
		var tmp_node2=newnode("tr",null,null,[
			newnode("td",{ width: "25px" },{className : "notclickable"},[
			]),
			newnode("td",{ width: "25px" },{className : "clickable"},[
				newnode("img",{},{ src:"img/plus.gif" },[])
			]),
			newnode("td",{},{ className : "contenttextnocolor notclickable"},[])
		]);
				
		var tmp_users=new Array();
		var tmp_groups=new Array();
		var tmp_ressources=new Array();
		var tmp_external=new Array();
		for(var i=0;i<participants.length;i++) {
			switch(participants[i].type) {
				case 1:
					var tmpvalue=data[participants[i].id];
					tmpvalue.confirm=checked_confirm[tmpvalue.id].confirm || 0;
					tmpvalue.message=checked_confirm[tmpvalue.id].message || "";
					tmp_users.push(tmpvalue);
					break;	
				case 2:
					var tmpvalue=data[participants[i].id];
					tmp_groups.push(tmpvalue);
					break;
				case 3:
					var tmpvalue=data[participants[i].id];
					tmp_ressources.push(tmpvalue);
					break;
				case 5:
					tmp_external.push(participants[i]);
					break;
				
			}
		}
		var usersnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
		var node=usersnode.getElementsByTagName("tbody")[0];
		node.appendChild(
			newnode("tr",{ fontWeight: "bold"}, { className: "contenttext notclickable" },[
				newnode("td",{ paddingTop:"7px" },{colSpan : 2, className: "notclickable" }, [
					addTranslated('Participants') /*i18n*/
				]),
				newnode("td",{ width : "30px", paddingTop:"7px" , paddingRight: "10px" },{ title : _("Change confirmation") , className: "clickable"}, [
					newnode("img",{},{ src : "img/menu/global_confirmation_change.gif"})
				])
			])		
		);
		Hover.confirmdialogshown=false;
		addDOMEvent(node.getElementsByTagName("td")[1],"click",function() {
			if(Hover.confirmdialogshown) {
				Hover.accordion.hideExtraContent("ConfirmDialog");
				Hover.confirmdialogshown=false;
			} else {
				Hover.accordion.showExtraContent("ConfirmDialog");
				Hover.confirmdialogshown=true;
			}
		});
		if(checked_confirm[configGetKey("identifier")]) {
			node.getElementsByTagName("td")[1].style.display="";
			var personalnode=OXOperationHover.references["core_participants_confirmdialog_template"].cloneNode(true);
			Hover.references["ConfirmDialogInput"]=personalnode.getElementsByTagName("input")[0];
			Hover.references["ConfirmDialogInput"].value=checked_confirm[configGetKey("identifier")].message || "";
			var newtd=personalnode.getElementsByTagName("td")[2];
			addDOMEvent(newtd.getElementsByTagName("td")[0],"click",function() { OXOperationHover.accept(Hover)} );
			addDOMEvent(newtd.getElementsByTagName("td")[1],"click",function() { OXOperationHover.decline(Hover)} );
			addDOMEvent(newtd.getElementsByTagName("td")[2],"click",function() { OXOperationHover.tentiative(Hover)} );
			Hover.accordion.addComponent("ConfirmDialog",personalnode,false);
		} else {
			node.getElementsByTagName("td")[1].style.display="none";
		}
		
		//USERS
		for(var i=0;i<tmp_users.length;i++) {
			var tmpn1=tmp_node.cloneNode(true);
			if(i==0) {
				tmpn1.getElementsByTagName("td")[0].style.paddingTop="10px";
				tmpn1.getElementsByTagName("td")[1].style.paddingTop="10px";
			}
			tmpn1.getElementsByTagName("td")[0].appendChild(newnode("img",null,{src: "img/calendar/user.gif"},[]))
			tmpn1.getElementsByTagName("td")[1].appendChild(document.createTextNode(tmp_users[i].display_name));
			tmpn1.getElementsByTagName("td")[1].className="notclickable";
			switch(tmp_users[i].confirm) {
				case 1: 
					tmpn1.className="appointmentStatusAccepted";
					break;
				case 2: 
					tmpn1.className="appointmentStatusDeclined";
					break;
				case 3: 
					tmpn1.className="appointmentStatusTentative";
					break;
			}
			if(tmp_users[i].message) {
				tmpn1.title=tmp_users[i].message;
			}
			node.appendChild(tmpn1);
		}
		if(participants.length==0) {
			var tmp=newnode("tr",{},{},[
				newnode("td",{ width: "25px"},{ className : "notclickable"},[
					newnode("img",{},{ src: "img/dummy.gif" },[])
				]),
				newnode("td",{},{ colspan : 4 , className : "contenttext notclickable" },[
					document.createTextNode(_("No participants available"))
				])		
			]);
			node.appendChild(tmp);
		}
		Hover.accordion.addComponent("ParticipantsUsers",usersnode,false);
		for(var i=0;i<Hover.references.allGroups.length;i++){
			Hover.accordion.removeComponent(i);	
		}
		for(var i in Hover.references.allGroupsParticipants.length){
			Hover.accordion.removeComponent(i);	
		}
		Hover.references.allGroups=new Array();
		Hover.references.allGroupsParticipants=new Object();
		
		//GROUPS
		for(var i=0;i<tmp_groups.length;i++) {
			var accordionnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
			var tmpn1=tmp_node2.cloneNode(true);
			if(i==0) {
				tmpn1.getElementsByTagName("td")[0].style.paddingTop="10px";
				tmpn1.getElementsByTagName("td")[1].style.paddingTop="10px";
				tmpn1.getElementsByTagName("td")[2].style.paddingTop="10px";
			}
			tmpn1.getElementsByTagName("td")[0].appendChild(newnode("img",null,{src: "img/calendar/group.gif"},[]))
			tmpn1.getElementsByTagName("td")[2].appendChild(document.createTextNode(tmp_groups[i].display_name));
			tmpn1.getElementsByTagName("td")[2].className="notclickable";
			accordionnode.getElementsByTagName("tbody")[0].appendChild(tmpn1);
			Hover.accordion.addComponent("ParticipantsGroups"+i,accordionnode,false);
			Hover.references.allGroups.push("ParticipantsGroups"+i);
			
			if(tmp_groups[i].members && tmp_groups[i].members.length) {
				//MEMBERS IN GROUPS
				var accordionnode2=OXOperationHover.references["core_participants_groupparticipants_template"].cloneNode(true);
				Hover.accordion.addComponent("ParticipantsGroupUsers"+i+"members",accordionnode2,false);
				Hover.references.allGroupsParticipants["ParticipantsGroupUsers"+i+"members"]=new Object();
				Hover.references.allGroupsParticipants["ParticipantsGroupUsers"+i+"members"].active=false;
				internalCache.getUsers(tmp_groups[i].members,(
				function(mynode,mynode2,mynode2name,tmpn1) { return function(cb) { 
					addDOMEvent(mynode,"click",function() {
						if(Hover.references.allGroupsParticipants[mynode2name]) {
							if(Hover.references.allGroupsParticipants[mynode2name].active) {
								mynode.getElementsByTagName("img")[0].src="img/plus.gif";
								Hover.accordion.hideExtraContent(mynode2name);
								Hover.references.allGroupsParticipants[mynode2name].active=false;
							} else {
								mynode.getElementsByTagName("img")[0].src="img/minus.gif";
								Hover.accordion.showExtraContent(mynode2name);
								Hover.references.allGroupsParticipants[mynode2name].active=true;
							}
						}
					});
					var count=0;
					var tmpstring="";
					for(var i in cb) {
						if(count==0) {
							tmpstring+= cb[i].display_name;
							count++;
						} else {
							tmpstring+= " ; " +cb[i].display_name;
							count++;
						}
					}
					var node1=mynode2.getElementsByTagName("td")[1];
					removeChildNodes(node1);
					node1.appendChild(document.createTextNode(tmpstring));
				} })(tmpn1.getElementsByTagName("td")[1],accordionnode2,"ParticipantsGroupUsers"+i+"members"));
			}
		}
		if(tmp_ressources.length) {
			for(var i=0;i<tmp_ressources.length;i++) {
				var accordionnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
				var tmpn1=tmp_node.cloneNode(true);
				if(i==0) {
					tmpn1.getElementsByTagName("td")[0].style.paddingTop="10px";
					tmpn1.getElementsByTagName("td")[1].style.paddingTop="10px";
				}
				tmpn1.getElementsByTagName("td")[0].appendChild(newnode("img",null,{src: "img/calendar/ressourcen.gif"},[]))
				tmpn1.getElementsByTagName("td")[1].appendChild(document.createTextNode(tmp_ressources[i].display_name));
				tmpn1.getElementsByTagName("td")[1].className="notclickable";
				accordionnode.getElementsByTagName("tbody")[0].appendChild(tmpn1);
				Hover.accordion.addComponent("ParticipantsRessources"+i,accordionnode,false);
				Hover.references.allGroups.push("ParticipantsRessources"+i);		
			}
		}	
		if(tmp_external.length) {
			for(var i=0;i<tmp_external.length;i++) {
				var accordionnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
				var tmpn1=tmp_node.cloneNode(true);
				if(i==0) {
					tmpn1.getElementsByTagName("td")[0].style.paddingTop="10px";
					tmpn1.getElementsByTagName("td")[1].style.paddingTop="10px";
				}
				tmpn1.getElementsByTagName("td")[0].appendChild(newnode("img",null,{src: "img/calendar/user_extern.gif"},[]))
				tmpn1.getElementsByTagName("td")[1].appendChild(document.createTextNode(tmp_external[i].display_name));
				tmpn1.getElementsByTagName("td")[1].className="notclickable";
				accordionnode.getElementsByTagName("tbody")[0].appendChild(tmpn1);
				Hover.accordion.addComponent("ParticipantsExternal"+i,accordionnode,false);
				Hover.references.allGroups.push("ParticipantsExternal"+i);		
			}
		}	
	});
}
function OXContactHover() {}
OXContactHover.actualmodule="contacts";
OXContactHover.moduleint=7;
OXContactHover.hoverWidth = 400;
OXContactHover.contentobject;
OXContactHover.actualobject;
OXContactHover.actualHover=null;
OXContactHover.accordion;
OXContactHover.references=new Object();
OXContactHover.start = function() {
	if(!OXContactHover.references["core_contact_template"]) {
		var tmpnode=$("contactHovertmpl").cloneNode(true);
		$("contactHovertmpl").parentNode.removeChild($("contactHovertmpl"));
		tmpnode.id="";
		OXContactHover.references["core_contact_template"]=tmpnode;
	}
	if(!OXContactHover.references["core_contact_template2"]) {
		var tmpnode=$("contactHovertmpl2").cloneNode(true);
		$("contactHovertmpl2").parentNode.removeChild($("contactHovertmpl2"));
		tmpnode.id="";
		OXContactHover.references["core_contact_template2"]=tmpnode;
	}
}
OXContactHover.getContent = function() {
	if(OXContactHover.contentobject) { 
		return OXContactHover.contentobject;
	}
	var element=createHoverContent();
	OXContactHover.accordion=new Accordion(200,OXContactHover.hoverWidth);	
	var contentnode=OXContactHover.references["core_contact_template"].cloneNode(true);
	var contentnode2=OXContactHover.references["core_contact_template2"].cloneNode(true);
	OXContactHover.accordion.addComponent("Contact_General",contentnode,false);
	OXContactHover.accordion.addComponent("Contact_Additional",contentnode2,false);
		
	OXContactHover.references["core_content_small"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXContactHover.accordion.addComponent("NoteSmall",OXContactHover.references["core_content_small"],200);
	var tmptds=OXContactHover.references["core_content_small"].getElementsByTagName("td");
	OXContactHover.references["notesmall"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXContactHover.accordion.showContent('Contact_General,NoteMiddle'); });
	
	OXContactHover.references["core_content_middle"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXContactHover.accordion.addComponent("NoteMiddle",OXContactHover.references["core_content_middle"],200);
	var tmptds=OXContactHover.references["core_content_middle"].getElementsByTagName("td");
	OXContactHover.references["notemiddle"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXContactHover.accordion.showContent('Contact_General,NoteFull'); });
	
	OXContactHover.references["core_content_full"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXContactHover.accordion.addComponent("NoteFull",OXContactHover.references["core_content_full"],200);
	var tmptds=OXContactHover.references["core_content_full"].getElementsByTagName("td");
	OXContactHover.references["notefull"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXContactHover.accordion.showContent('Contact_General,NoteSmall'); });
	
	var node=OXContactHover.accordion.getDomNode();
	var d=newnode("div",{ height:"20px", padding:"7px" , overflow:"hidden"},{},[
		newnode("table",{},{cellPadding : 0, cellSpacing : 0, border : 0},[
			newnode("tbody",{},{},[
				newnode("tr",{},{},[
					newnode("td",{},{},[
					]),
					newnode("td",{ paddingLeft: "7px" },{},[
					])
				])
			])
		])
	]);
	OXContactHover.slider=new Slider(3);
	var d1=OXContactHover.slider.getDomNode();
	OXContactHover.slider.setNodeFunctions(0,function() { OXContactHover.accordion.showContent("Contact_General,NoteSmall")},null,
	"General" /*i18n*/);
	OXContactHover.slider.setNodeFunctions(1,function() { OXContactHover.accordion.showContent("Contact_Additional") },null,
	"Addresses" /*i18n*/);
	OXContactHover.slider.setNodeFunctions(2,function() {
		OXContactHover.accordion.showContent("Attachments,Links")
	 },null,
	"Attachments/Links" /*i18n*/);
	d.getElementsByTagName("td")[0].appendChild(d1);
	d.getElementsByTagName("td")[1].appendChild(OXContactHover.slider.titlecontent);
	element.body.appendChild(d);
	element.body.appendChild(node);
	element.node.display="none";
	$("body").appendChild(element.node);
	OXContactHover.contentobject=element;
	return OXContactHover.contentobject;
}
OXContactHover.refillContent = function(id,folder) {
	function fillContent(type,value,titletext,clear,show) {
		if(clear) { removeChildNodes(OXContactHover.references[type]); }
		if(value) { OXContactHover.references[type].appendChild(value); }
		if(titletext) { OXContactHover.references[type].title=titletext; }
		if(show) { OXContactHover.references[type].style.display=""; }
	}
	function fillText(type,text,titletext,clear) {
		if(clear) { removeChildNodes(OXContactHover.references[type]); }
		if(text) { OXContactHover.references[type].appendChild(document.createTextNode(text)); }
		if(titletext) { OXContactHover.references[type].title=titletext; }
	}
	
	
	var hoverTemplate=OXContactHover.references["core_contact_template"].cloneNode(true);
	var hoverTemplate2=OXContactHover.references["core_contact_template2"].cloneNode(true);
	(new JSON()).get(AjaxRoot + "/contacts?action=get&session=" + session +"&id="+id+"&folder="+folder+"&"
		,null,
		function(reply) {		
			if (reply) {
				function newLineBreak() {
					return newnode("br", {}, {className: "cleaner"});
				}
				OXContactHover.actualobject=reply.data;
				clearCardHoverFields();
				var nameDaten = ["","",reply.data.display_name,reply.data.first_name,reply.data.last_name]
				var nameHeadline = objContactCardFunctions.getHeadline(nameDaten);
				var classLine = "hoverContactline";
				if(reply.data.number_of_image && reply.data.number_of_image > 0) {
					classLine = "hoverContactline";
					hoverTemplate.appendChild(newnode("div", {paddingLeft: "7px",width:"70px"}, {className: "cardHoverImg"}, [newnode("img", {width:"4em"}, {src: AjaxRoot + "/contacts?action=image&session=" + session + "&id="+id+"&folder="+folder+ "&time=" + new Date().getTime()})]));
				} else if(!reply.data.distribution_list_flag) {	
					classLine = "hoverContactlineSmallImage";
					hoverTemplate.appendChild(newnode("div", {paddingLeft: "7px",width:"40px"}, {className: "cardHoverImg"}, [newnode("img", {}, {src: "img/contacts/dummypicture_small.gif"})]));
				} else {
					classLine = "hoverContactlineSmallImage";
					hoverTemplate.appendChild(newnode("div", {paddingLeft: "7px",width:"40px"}, {className: "cardHoverImg"}, [newnode("img", {}, {src: "img/contacts/distributionlist34x34_n.gif"})]));
				}
				 
				var nameDiv = newnode("div", {fontWeight:"bold",fontSize:"11pt",paddingLeft: "7px"}, {className: classLine, title: (nameHeadline)?nameHeadline:""}, [document.createTextNode((nameHeadline)?nameHeadline:"")]);
				
				hoverTemplate.appendChild(nameDiv);
				/*
				if (reply.data.number_of_attachments) {
					hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverIconRight"}, [newnode("img", {}, {src: "img/mail/attachment.gif"})]));					
				}	
				*/			
				var attributPaddingR = "15px";
				if (reply.data.color_label) {
					hoverTemplate.appendChild(newnode("div", {paddingRight: attributPaddingR}, {className: "cardHoverIconRight"}, [newnode("img", {}, {src: "img/menu/tag_"+reply.data.color_label+".gif"})]));
					attributPaddingR = "3px";
				}
				if (reply.data.private_flag) {
					hoverTemplate.appendChild(newnode("div", {paddingRight: attributPaddingR}, {className: "cardHoverIconRight"}, [newnode("img", {}, {src: "img/private_flag.gif"})]));
				} 
				if(reply.data.distribution_list_flag) {	
					var emails = "";
					for(var n=0; n<reply.data.distribution_list.length;n++) {
						emails += (n>0) ? ", " : "";
						emails += reply.data.distribution_list[n].mail;												
					}
					var sendToAll = newnode("div", {cursor: "pointer"}, {className: "cardHoverIconRight"}, [newnode("img", {}, {src: "img/menu/distributionlist_intcontact.gif"})]);
					addDOMEvent(sendToAll, "click", function() { sendMailToContactMail(emails) });
					hoverTemplate.appendChild(sendToAll);
				}
				nameDiv.appendChild(newLineBreak());
				hoverTemplate.appendChild(nameDiv);
				hoverTemplate.appendChild(newLineBreak());
				
				if(reply.data.distribution_list_flag) {
					OXContactHover.slider.setNodeFunctions(1,function() { OXContactHover.accordion.showContent("Contact_Additional") },null,
					"Additional" /*i18n*/);			
					for(var k=0; k<reply.data.distribution_list.length;k++) {
						(function(m) {
							hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverIcon"}, [newnode("img", {}, {src: "img/mail/unread.gif"})]));
							var emailAdress = reply.data.distribution_list[m].mail;
							var mailNode = newnode("div", {cursor: "pointer"}, {className: "hoverContactline2", title: emailAdress}, [document.createTextNode(emailAdress)]);
							addDOMEvent(mailNode, "click", function() { sendMailToContactMail(emailAdress) });
							hoverTemplate.appendChild(mailNode);				
							hoverTemplate.appendChild(newLineBreak());
							
							var addDLNode = newnode("div", {flt:"left", fontWeight:"bold", paddingLeft:"7px"}, {}, [document.createTextNode(reply.data.distribution_list[m].display_name + ":\xa0")]);
							var tmpnode=addDLNode.cloneNode(true);
							tmpnode.style.display="block";
							tmpnode.style.zIndex=-1;
							body.appendChild(tmpnode);
							var tmpDivwidth=tmpnode.offsetWidth;
							body.removeChild(tmpnode);
							var diff = OXContactHover.hoverWidth - tmpDivwidth - 30;
							hoverTemplate2.appendChild(addDLNode);	
							var mailNode2 = newnode("div", {flt:"left",cursor: "pointer", overflow:"hidden", width: diff + "px"}, {title: emailAdress}, [document.createTextNode(emailAdress)])
							
							var tmpnode2=addDLNode.cloneNode(true);
							tmpnode2.style.display="block";
							tmpnode2.style.zIndex=-1;
							body.appendChild(tmpnode2);
							var tmpDivwidth2=tmpnode2.offsetWidth;
							body.removeChild(tmpnode2);
							
							addDOMEvent(mailNode2, "click", function() { sendMailToContactMail(emailAdress) });
							hoverTemplate2.appendChild(mailNode2);		
							
							
							if(tmpDivwidth2 > diff) {
								hoverTemplate2.appendChild(document.createTextNode("\xa0..."))
							}
									
							hoverTemplate2.appendChild(newLineBreak());								
						})(k)						
					}					
				} else {
					OXContactHover.slider.setNodeFunctions(1,function() { OXContactHover.accordion.showContent("Contact_Additional") },null,
					"Addresses" /*i18n*/);
					var contactPhones = [];
					var contactPhonesDesc = [];
					var contactMobiles = [];
					var contactMobilesDesc = [];
					var contactMails = [];
					var contactMailsDesc = [];
					var contactFax = [];
					var contactFaxDesc = [];
					
					for (idfield in reply.data) {						
						(function(idfields) {
							if(idfields.indexOf("telephone_business1") != -1) {
								contactPhones.push(reply.data[idfields]);
								contactPhonesDesc.push(_("Phone (business):"));
							} else if(idfields.indexOf("telephone_company") != -1) {
								contactPhones.push(reply.data[idfields]);
								contactPhonesDesc.push(_("Phone (company):"));
							}
							else if(idfields.indexOf("telephone_home1") != -1) {
								contactPhones.push(reply.data[idfields]);
								contactPhonesDesc.push(_("Phone (private):"));
							}
							else if(idfields.indexOf("telephone_other") != -1) {
								contactPhones.push(reply.data[idfields]);
								contactPhonesDesc.push(_("Phone (other):"));
							}
							else if(idfields.indexOf("cellular_telephone1") != -1) {
								contactMobiles.push(reply.data[idfields]);
								contactMobilesDesc.push(_("Mobile:"));
							}
							else if(idfields.indexOf("cellular_telephone2") != -1) {
								contactMobiles.push(reply.data[idfields]);
								contactMobilesDesc.push(_("Mobile (private):"));
							}
							else if(idfields.indexOf("email1") != -1) {
								contactMails.push(reply.data[idfields]);
								contactMailsDesc.push(_("E-Mail (business):"));
							}
							else if(idfields.indexOf("email2") != -1) {
								contactMails.push(reply.data[idfields]);
								contactMailsDesc.push(_("E-Mail (private):"));
							}
							else if(idfields.indexOf("email3") != -1) {
								contactMails.push(reply.data[idfields]);
								contactMailsDesc.push(_("E-Mail (other):"));
							}
							else if(idfields.indexOf("fax_business") != -1) {
								contactFax.push(reply.data[idfields]);
								contactFaxDesc.push(_("Fax (business):"));
							}
							else if(idfields.indexOf("fax_home") != -1) {
								contactFax.push(reply.data[idfields]);
								contactFaxDesc.push(_("Fax (private):"));
							}
							else if(idfields.indexOf("fax_other") != -1) {
								contactFax.push(reply.data[idfields]);
								contactFaxDesc.push(_("Fax (other):"));
							}
						})(idfield)						
					}
					
					if(contactMobiles && contactMobiles.length>0) {
						for(var s=0; s< contactMobiles.length; s++) {
							hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverLabel"}, [document.createTextNode(contactMobilesDesc[s])]));
							hoverTemplate.appendChild(newnode("div", {}, {className: "hoverContactline"}, [document.createTextNode(contactMobiles[s])]));				
							hoverTemplate.appendChild(newLineBreak());
						}						
					}
					
					if(contactPhones && contactPhones.length>0) {
						for(var s=0; s< contactPhones.length; s++) {
							hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverLabel"}, [document.createTextNode(contactPhonesDesc[s])]));
							hoverTemplate.appendChild(newnode("div", {}, {className: "hoverContactline"}, [document.createTextNode(contactPhones[s])]));				
							hoverTemplate.appendChild(newLineBreak());
						}						
					}
					
					if(contactMails && contactMails.length>0) {
						for(var s=0; s< contactMails.length; s++) {
							(function(t) {
								hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverLabel"}, [document.createTextNode(contactMailsDesc[t])]));
								var emailAdressContact = contactMails[t];
								//hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverIcon"}, [newnode("img", {}, {src: "img/mail/unread.gif"})]));
								var mailNode3 = newnode("div", {cursor: "pointer"}, {className: "hoverContactline", title: emailAdressContact}, [document.createTextNode(emailAdressContact)]);
								addDOMEvent(mailNode3, "click", function() { sendMailToContactMail(emailAdressContact) });
								hoverTemplate.appendChild(mailNode3);				
								hoverTemplate.appendChild(newLineBreak());
							})(s)
						}						
					}
						
					
					if(contactFax && contactFax.length>0) {
						for(var s=0; s< contactFax.length; s++) {
							hoverTemplate.appendChild(newnode("div", {}, {className: "cardHoverLabel"}, [document.createTextNode(contactFaxDesc[s])]));
							hoverTemplate.appendChild(newnode("div", {}, {className: "hoverContactline"}, [document.createTextNode(contactFax[s])]));				
							hoverTemplate.appendChild(newLineBreak());
						}						
					}
					
					
					var oMyAddresses2 = new BuildAddresses(reply.data);
					var AdressesO = {};
					
					
					var businessAddrArray2	= oMyAddresses2.buildAddress("business");	
					var privateAddrArray2	= oMyAddresses2.buildAddress("home");		
					var otherAddrArray2	= oMyAddresses2.buildAddress("other");
					var noAddressFound = true;			
					if(businessAddrArray2[0] && businessAddrArray2[0] != "") {
						hoverTemplate2.appendChild(newnode("div", {fontWeight:"bold"}, {className: "hoverContactline2"}, [document.createTextNode(_("Business"))]));				
						hoverTemplate2.appendChild(newLineBreak());
						hoverTemplate2.appendChild(newnode("div", {paddingLeft:"7px"},{}, [businessAddrArray2[0]]));		
						hoverTemplate2.appendChild(newLineBreak());
						noAddressFound = false;
					}
					if(privateAddrArray2[0] && privateAddrArray2[0] != "") {
						hoverTemplate2.appendChild(newnode("div", {fontWeight:"bold"}, {className: "hoverContactline2"}, [document.createTextNode(_("Private"))]));				
						hoverTemplate2.appendChild(newLineBreak());
						hoverTemplate2.appendChild(newnode("div", {paddingLeft:"7px"},{}, [privateAddrArray2[0]]));	
						hoverTemplate2.appendChild(newLineBreak());
						noAddressFound = false;
					}	
					if(otherAddrArray2[0] && otherAddrArray2[0] != "") {
						hoverTemplate2.appendChild(newnode("div", {fontWeight:"bold"}, {className: "hoverContactline2"}, [document.createTextNode(_("Additional"))]));				
						hoverTemplate2.appendChild(newLineBreak());
						hoverTemplate2.appendChild(newnode("div", {paddingLeft:"7px"},{}, [otherAddrArray2[0]]));				
						hoverTemplate2.appendChild(newLineBreak());
						noAddressFound = false;
					}
					if(noAddressFound) {
						hoverTemplate2.appendChild(newnode("div", {fontWeight:"bold", padding: "7px"}, {className: "hoverContactline2"}, [document.createTextNode(_("No addresses available"))]));
					}

				}
			}
			fillContent("notesmall", getDivforTextContent(reply.data.note || "",5),null,true);
			fillContent("notemiddle", getDivforTextContent(reply.data.note || "",10),null,true);
			fillContent("notefull", getDivforTextContent(reply.data.note || ""),null,true);
			
			OXContactHover.accordion.addComponent("Contact_General",hoverTemplate,false);
			OXContactHover.accordion.addComponent("Contact_Additional",hoverTemplate2,false);
			OXContactHover.accordion.addComponent("NoteSmall",OXContactHover.references["core_content_small"],200)
			OXContactHover.accordion.addComponent("NoteMiddle",OXContactHover.references["core_content_middle"],200)
			OXContactHover.accordion.addComponent("NoteFull",OXContactHover.references["core_content_full"],200)
			OXGroupwareHover.fillAttachments(OXContactHover);
			OXGroupwareHover.fillLinks(OXContactHover);
			OXContactHover.slider.nodeClicked(0,true);	
		});	
}
function OXTaskHover() {}
OXTaskHover.actualmodule="tasks";
OXTaskHover.moduleint=4;
OXTaskHover.contentobject;
OXTaskHover.actualobject;
OXTaskHover.references=new Object();
OXTaskHover.references.allGroups=new Array();
OXTaskHover.references.allGroupsParticipants=new Object();
OXTaskHover.getContent = function() {
	if(OXTaskHover.contentobject) { 
		return OXTaskHover.contentobject;
	}
	var element=createHoverContent();
	OXTaskHover.accordion=new Accordion(450,400);	
	refillImages("template_tasks_hover_page1");
	var contentnode=$("template_tasks_hover_page1").cloneNode(true);
	$("template_tasks_hover_page1").parentNode.removeChild($("template_tasks_hover_page1"));
	contentnode.id="";
	OXTaskHover.references["core"]=contentnode;
	OXTaskHover.accordion.addComponent("Task_General",contentnode,false);
		
	var tmptds=OXTaskHover.references["core"].getElementsByTagName("td");
	OXTaskHover.references["title"]=tmptds[1];
	OXTaskHover.references["coreimg1"]=tmptds[2];
	OXTaskHover.references["coreimg2"]=tmptds[3];
	OXTaskHover.references["coreimg3"]=tmptds[4];
	OXTaskHover.references["status"]=tmptds[5];
	OXTaskHover.references["priority"]=tmptds[6];
	OXTaskHover.references["start_time"]=tmptds[8];
	OXTaskHover.references["end_time"]=tmptds[10];
	
	OXTaskHover.references["core_content_small"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXTaskHover.accordion.addComponent("NoteSmall",OXTaskHover.references["core_content_small"],200);
	var tmptds=OXTaskHover.references["core_content_small"].getElementsByTagName("td");
	OXTaskHover.references["notesmall"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXTaskHover.accordion.showContent('Task_General,NoteMiddle'); });
	
	OXTaskHover.references["core_content_middle"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXTaskHover.accordion.addComponent("NoteMiddle",OXTaskHover.references["core_content_middle"],200);
	var tmptds=OXTaskHover.references["core_content_middle"].getElementsByTagName("td");
	OXTaskHover.references["notemiddle"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXTaskHover.accordion.showContent('Task_General,NoteFull'); });
	
	OXTaskHover.references["core_content_full"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXTaskHover.accordion.addComponent("NoteFull",OXTaskHover.references["core_content_full"],200);
	var tmptds=OXTaskHover.references["core_content_full"].getElementsByTagName("td");
	OXTaskHover.references["notefull"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXTaskHover.accordion.showContent('Task_General,NoteSmall'); });
	
	
	var node=OXTaskHover.accordion.getDomNode();
	var d=newnode("div",{ height:"20px", padding:"7px" , overflow:"hidden"},{},[
		newnode("table",{},{cellPadding : 0, cellSpacing : 0, border : 0},[
			newnode("tbody",{},{},[
				newnode("tr",{},{},[
					newnode("td",{},{},[
					]),
					newnode("td",{ paddingLeft: "7px" },{},[
					])
				])
			])
		])
	]);
	OXTaskHover.slider=new Slider(3);
	var d1=OXTaskHover.slider.getDomNode();
	OXTaskHover.slider.setNodeFunctions(0,function() { OXTaskHover.accordion.showContent("Task_General,NoteSmall")},null,
	"General" /*i18n*/);
	OXTaskHover.slider.setNodeFunctions(1,function() { 
		var tmpstring=OXOperationHover.getParticipantsString(OXTaskHover);
		OXTaskHover.accordion.showContent(tmpstring);
	},null,"Participants" /*i18n*/);
	OXTaskHover.slider.setNodeFunctions(2,function() { OXTaskHover.accordion.showContent("Attachments,Links")}
	,null,"Attachments/Links" /*i18n*/ );
	d.getElementsByTagName("td")[0].appendChild(d1);
	d.getElementsByTagName("td")[1].appendChild(OXTaskHover.slider.titlecontent);
	element.body.appendChild(d);
	element.body.appendChild(node);
	element.node.style.display="none";
	$("body").appendChild(element.node);
	OXTaskHover.contentobject=element;
	return OXTaskHover.contentobject;
}
OXTaskHover.refillContent = function(id,folder) {
	var reqstr=AjaxRoot + "/tasks?action=get&session=" + session +"&id="+ id + "&folder="+folder;
	(new JSON()).get(reqstr,null,function(object) {
		OXTaskHover.actualobject=object.data;
		OXTaskHover.fillGeneral();
		OXOperationHover.fillParticipants(OXTaskHover);
		OXGroupwareHover.fillAttachments(OXTaskHover);
		OXGroupwareHover.fillLinks(OXTaskHover);
		OXTaskHover.slider.nodeClicked(0,true);
		
	});
};
OXTaskHover.fillGeneral= function() {
	function fillContent(type,value,titletext,clear,show) {
		if(clear) { removeChildNodes(OXTaskHover.references[type]); }
		if(value) { OXTaskHover.references[type].appendChild(value); }
		if(titletext) { OXTaskHover.references[type].title=titletext; }
		if(show) { OXTaskHover.references[type].style.display=""; }
	}
	function fillText(type,text,titletext,clear) {
		if(clear) { removeChildNodes(OXTaskHover.references[type]); }
		if(text) { OXTaskHover.references[type].appendChild(document.createTextNode(text)); }
		if(titletext) { OXTaskHover.references[type].title=titletext; }
	}
	function getStatusTaskNode(status,percent_completed) {
		var statstr=_("unknown");
		switch(status) {
			case 1: statstr=_("Not started"); break;
			case 2: statstr=_("In progress"); break;
			case 3: statstr=_("Done"); break;
			case 4: statstr=_("Waiting"); break;
			case 5: statstr=_("Deferred"); break;
		}
		fillText("status",statstr,percent_completed +" " +
		_("% completed") /*i18n*/,true);	
	}
	function getPrioNode(priority,count) {
		//OXTaskHover.references["priority"].colspan=count || 1;
		var statstr=_("unknown");/*i18n*/
		switch(priority) {
			case 1: statstr=_("Low"); break;
			case 2: statstr=_("Normal"); break;
			case 3: statstr=_("High"); break;
		}
		fillContent("priority",newnode("img",{},{ src: "img/tasks/taskprio"+priority+".gif"},[]),statstr,true,true);
	}
	var object=OXTaskHover.actualobject;
//TITLE
	fillText("title",object.title ? object.title : "",object.title ? object.title : "",true);
	var count=0;
	//PRIVATE FLAG OR GROUP APPOINTMENT
	if(object.private_flag) {
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/private_flag.gif"},[]),_("Private task"),true,true);
		count++;
	}
	//RECURRENCE APPOINTMENT
	if(object.recurrence_type && object.recurrence_type != 0) {
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/tasks/sequence.gif"},[]),_("Series task"),true,true);
		count++;
	}
	//FLAGS
	if(object.color_label && object.color_label!=0) {
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/menu/tag_"+object["color_label"]+".gif"},[]),null,true,true);
		count++;
	}
	getPrioNode(object.priority,count)
	
	for(;count<3;count++) {
		if(count<2) {
			fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/dummy.gif"},[]),null,true,true);			
		} else {
			OXTaskHover.references["coreimg"+(count+1)].style.display="none";
		}
	}
	getStatusTaskNode(object.status,object.percent_completed);
	//DATE AND TIME
	if(object.start_date) {
		fillText("start_time", formatDate(object.start_date,"date"),formatDate(object.start_date,"date"),true);
	} else {
		fillText("start_time", "","",true);
	}
	if(object.end_date) {
		fillText("end_time", formatDate(object.end_date,"date"),formatDate(object.end_date,"date"),true);
	} else {
		fillText("end_time", "","",true);
	}
	//NOTE
	if(!object.note) { object.note="" }
	fillContent("notesmall", getDivforTextContent(object.note,5),null,true);
	fillContent("notemiddle", getDivforTextContent(object.note,10),null,true);
	fillContent("notefull", getDivforTextContent(object.note),null,true);
	OXTaskHover.accordion.checkComponentHeight("Task_General");
	OXTaskHover.accordion.checkComponentHeight("NoteSmall");
	OXTaskHover.accordion.checkComponentHeight("NoteMiddle");
	OXTaskHover.accordion.checkComponentHeight("NoteFull");
};
OXTaskHover.fillOthers=function() {	
}


function OXInfostoreHover() {}
OXInfostoreHover.actualmodule="infostore";
OXInfostoreHover.moduleint=137;
OXInfostoreHover.contentobject;
OXInfostoreHover.actualobject;
OXInfostoreHover.references=new Object();
OXInfostoreHover.references.allVersions=new Array();
OXInfostoreHover.references.allVersionComments=new Object();
OXInfostoreHover.getVersionsString= function(Hover) {
	var tmpstring="Versions";
	for(var i=0;i<Hover.references.allVersions.length;i++) {
		tmpstring+=","+Hover.references.allVersions[i];
	}
	return tmpstring;
}	

OXInfostoreHover.getContent = function() {
	if(OXInfostoreHover.contentobject) { 
		return OXInfostoreHover.contentobject;
	}
	var element=createHoverContent();
	OXInfostoreHover.accordion=new Accordion(450,400);	
	
	
	refillImages("template_infostore_hover_page1");
	var contentnode=$("template_infostore_hover_page1").cloneNode(true);
	$("template_infostore_hover_page1").parentNode.removeChild($("template_infostore_hover_page1"));
	contentnode.id="";
	OXInfostoreHover.references["core"]=contentnode;
	OXInfostoreHover.accordion.addComponent("Infostore_General",contentnode,false);
		
	var tmptds=OXInfostoreHover.references["core"].getElementsByTagName("td");
	OXInfostoreHover.references["title"]=tmptds[1];
	OXInfostoreHover.references["coreimg1"]=tmptds[2];
	OXInfostoreHover.references["coreimg2"]=tmptds[3];
	OXInfostoreHover.references["coreimg3"]=tmptds[4];
	OXInfostoreHover.references["created_by"]=tmptds[6];
	OXInfostoreHover.references["created_by_empty"]=tmptds[7];
	OXInfostoreHover.references["url"]=tmptds[9];
	OXInfostoreHover.references["attachment"]=tmptds[10];
	OXInfostoreHover.references["attachment_version"]=OXInfostoreHover.references["attachment"].getElementsByTagName("td")[0]
	OXInfostoreHover.references["attachment_mimetype"]=OXInfostoreHover.references["attachment"].getElementsByTagName("td")[1];
	OXInfostoreHover.references["attachment_filename"]=OXInfostoreHover.references["attachment"].getElementsByTagName("td")[2];
	OXInfostoreHover.references["attachment_openfile"]=OXInfostoreHover.references["attachment"].getElementsByTagName("td")[3];
	OXInfostoreHover.references["attachment_savefile"]=OXInfostoreHover.references["attachment"].getElementsByTagName("td")[4];
	
	
	OXInfostoreHover.references["core_content_small"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXInfostoreHover.accordion.addComponent("NoteSmall",OXInfostoreHover.references["core_content_small"],200);
	var tmptds=OXInfostoreHover.references["core_content_small"].getElementsByTagName("td");
	OXInfostoreHover.references["notesmall"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXInfostoreHover.accordion.showContent('Infostore_General,NoteMiddle'); });
	
	OXInfostoreHover.references["core_content_middle"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXInfostoreHover.accordion.addComponent("NoteMiddle",OXInfostoreHover.references["core_content_middle"],200);
	var tmptds=OXInfostoreHover.references["core_content_middle"].getElementsByTagName("td");
	OXInfostoreHover.references["notemiddle"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXInfostoreHover.accordion.showContent('Infostore_General,NoteFull'); });
	
	OXInfostoreHover.references["core_content_full"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXInfostoreHover.accordion.addComponent("NoteFull",OXInfostoreHover.references["core_content_full"],200);
	var tmptds=OXInfostoreHover.references["core_content_full"].getElementsByTagName("td");
	OXInfostoreHover.references["notefull"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXInfostoreHover.accordion.showContent('Infostore_General,NoteSmall'); });
	
	var node=OXInfostoreHover.accordion.getDomNode();
	var d=newnode("div",{ height:"20px", padding:"7px" , overflow:"hidden"},{},[
		newnode("table",{},{cellPadding : 0, cellSpacing : 0, border : 0},[
			newnode("tbody",{},{},[
				newnode("tr",{},{},[
					newnode("td",{},{},[
					]),
					newnode("td",{ paddingLeft: "7px" },{},[
					])
				])
			])
		])
	]);
	OXInfostoreHover.slider=new Slider(3);
	var d1=OXInfostoreHover.slider.getDomNode();
	OXInfostoreHover.slider.setNodeFunctions(0,function() { OXInfostoreHover.accordion.showContent("Infostore_General,NoteSmall")},null,
	"General" /*i18n*/);
	OXInfostoreHover.slider.setNodeFunctions(1,function() { 
	OXInfostoreHover.accordion.showContent(OXInfostoreHover.getVersionsString(OXInfostoreHover))},null,
	"Versions" /*i18n*/);
	OXInfostoreHover.slider.setNodeFunctions(2,function() { OXInfostoreHover.accordion.showContent("Links")}
	,null,
	"Links" /*i18n*/ );
	d.getElementsByTagName("td")[0].appendChild(d1);
	d.getElementsByTagName("td")[1].appendChild(OXInfostoreHover.slider.titlecontent);
	element.body.appendChild(d);
	element.body.appendChild(node);
	element.node.display="none";
	$("body").appendChild(element.node);
	OXInfostoreHover.contentobject=element;
	return OXInfostoreHover.contentobject;
}
OXInfostoreHover.refillContent = function(id,folder) {
	var reqstr=AjaxRoot + "/infostore?action=get&session=" + session +"&id="+ id + "&folder="+folder;
	(new JSON()).get(reqstr,null,function(object) {
		OXInfostoreHover.actualobject=object.data;
		OXInfostoreHover.fillGeneral();
		OXInfostoreHover.fillVersions(OXInfostoreHover);
		OXGroupwareHover.fillLinks(OXInfostoreHover);
		OXInfostoreHover.accordion.checkComponentHeight("Infostore_General");
		OXInfostoreHover.accordion.checkComponentHeight("NoteFull");
		OXInfostoreHover.accordion.checkComponentHeight("NoteMiddle");
		OXInfostoreHover.accordion.checkComponentHeight("NoteSmall");
		OXInfostoreHover.slider.nodeClicked(0,true);
		
	});
}
OXInfostoreHover.fillVersions = function(Hover) {
	for(var i in OXInfostoreHover.references.allVersions) {
		OXInfostoreHover.accordion.removeComponent(i);
	}
	OXInfostoreHover.references.allVersions=new Array();
	OXInfostoreHover.references.allVersionComments=new Array();
	var usersnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
	var node=usersnode.getElementsByTagName("tbody")[0];
	node.appendChild(
		newnode("tr",{ fontWeight: "bold"}, { className: "contenttext notclickable" },[
			newnode("td",{ paddingTop:"7px" },{colSpan : 2 }, [
				document.createTextNode(_('Versions')) /*i18n*/
			])
		])		
	);
	if(!Hover.actualobject.filename || Hover.actualobject.filename == "") {
		var tmp=newnode("tr",{},{},[
			newnode("td",{ width: "25px"},{ className: "notclickable"},[
				newnode("img",{},{ src: "img/dummy.gif" },[])
			]),
			newnode("td",{},{ colspan : 4 , className : "contenttext notclickable" },[
				document.createTextNode(_("No versions available"))
			])		
		]);
		node.appendChild(tmp);
	}
	Hover.accordion.addComponent("Versions",usersnode,false);
	var columns="705,2,4,702,703,704,709"
	var sReq = AjaxRoot + "/infostore?action=versions&id=" + Hover.actualobject.id + "&columns="+columns+"&session=" + session;
	(new JSON()).get(sReq, null,
	function(versions) {
		versions=versions.data;
		var attachmentfirst=
			newnode("tr",{},{},[
				// EXPAND
				newnode("td",{ width: "20px", paddingTop:"12px", lineHeight : "0px"},{ className : "clickable"},[
					newnode("img",{},{ src: "img/plus.gif" },[]) 
				]),
				// Version
				newnode("td",{ width: "40px", paddingTop:"12px", textAlign:"center"},{ className : "notclickable"},[ 
				]),
				//TYPE
				newnode("td",{ width: "20px", paddingTop:"12px", lineHeight : "0px"},{ className : "notclickable"},[
					newnode("img",{ height: "16px" , width : "16px"},{ src: "img/dummy.gif" },[]) 
				]),
				
				//TEXT
				newnode("td",{ paddingTop:"12px", overflow: "hidden"},{ colSpan : 2 , className : "contenttext notclickable"},[]),
				//OPEN
				newnode("td",{ width: "20px", paddingTop:"12px" , lineHeight : "0px"},{ className : "clickable"},[
					newnode("img",{},{ src: "img/menu/attachment_open.gif" },[])
				]),
				//SAVE
				newnode("td",{ width: "20px", paddingTop:"12px" , lineHeight : "0px"},{ className : "clickable"},[
					newnode("img",{},{ src: "img/menu/attachment_save.gif" },[])
				])
			]);
		var attachmentsecond=
			newnode("tr",{},{},[
				newnode("td",{ fontWeight: "bold", width: "20px", paddingLeft : "3px" , paddingRight:"7px" },{ className : "contenttext notclickable"},[
				]),
				newnode("td",{},{ className : "contenttext notclickable"},[
				])
			]);
		var attachmentthird=
			newnode("tr",{},{ className : "notclickable" },[
				newnode("td",{ paddingLeft: "7px"},{ colSpan : 2 },[
				])
			]);
		
		for(var i=0;i<versions.length;i++) {
			var versionnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
			versionnode.getElementsByTagName("table")[0].style.tableLayout="fixed";
			var versionbody=versionnode.getElementsByTagName("tbody")[0];
			var versionfirst=attachmentfirst.cloneNode(true);
			versionfirst.getElementsByTagName("td")[1].appendChild(document.createTextNode(_("Nr:")+" "+versions[i][0]));
			versionfirst.getElementsByTagName("img")[1].src=getMimeImage(versions[i][4]);
			versionfirst.getElementsByTagName("img")[1].title=versions[i][4];
			versionfirst.getElementsByTagName("td")[3].appendChild(document.createTextNode(versions[i][3]))
			versionfirst.getElementsByTagName("img")[2].title=_("Open version") /*i18n*/;
			addDOMEvent(versionfirst.getElementsByTagName("img")[2],"click",OXInfostoreHover.openAttachedFile(Hover.actualobject.id,versions[i][3],versions[i][0]))
			versionfirst.getElementsByTagName("img")[3].title=_("Save version") /*i18n*/;
			addDOMEvent(versionfirst.getElementsByTagName("img")[3],"click",OXInfostoreHover.saveAttachedFile(Hover.actualobject.id,versions[i][3],versions[i][0]))
			
			addDOMEvent(versionfirst.getElementsByTagName("td")[0],"click",(function(name,td) {
					return function() {
						if(Hover.references.allVersionComments[name]) {
							if(Hover.references.allVersionComments[name].active) {
								Hover.accordion.hideExtraContent(name);
								Hover.references.allVersionComments[name].active=false;
								td.getElementsByTagName("img")[0].src="img/plus.gif";
							} else {
								Hover.accordion.showExtraContent(name);
								Hover.references.allVersionComments[name].active=true;
								td.getElementsByTagName("img")[0].src="img/minus.gif";
							}
						}
					}})("VersionComment_"+i,versionfirst.getElementsByTagName("td")[0])
				);
			
			versionbody.appendChild(versionfirst);
			Hover.accordion.addComponent("Version_"+i,versionnode,false);
			Hover.references.allVersions.push("Version_"+i);
			var versioncommentnode=OXOperationHover.references["core_participants_participant_template"].cloneNode(true);
			var versioncommentbody=versioncommentnode.getElementsByTagName("tbody")[0];
			var versionsecond=attachmentsecond.cloneNode(true);
			versionsecond.getElementsByTagName("td")[0].appendChild(document.createTextNode(_("Size:")));
			versionsecond.getElementsByTagName("td")[1].appendChild(document.createTextNode(OXGroupwareHover.getShortByteString(versions[i][5],false)));
			versionsecond.getElementsByTagName("td")[1].title=OXGroupwareHover.getShortByteString(versions[i][5],true);
			versioncommentbody.appendChild(versionsecond);
			var versionsecond=attachmentsecond.cloneNode(true);
			versionsecond.getElementsByTagName("td")[0].appendChild(document.createTextNode(_("Creation date:")));
			versionsecond.getElementsByTagName("td")[1].appendChild(document.createTextNode(formatDate(versions[i][2],"datetime")));
			versioncommentbody.appendChild(versionsecond);
			var versionsecond=attachmentsecond.cloneNode(true);
			versionsecond.getElementsByTagName("td")[0].appendChild(document.createTextNode(_("Created by:")));
			internalCache.getUsers([versions[i][1]],(function (node,id) {
				return function(cb) {
					node.appendChild(document.createTextNode(cb[id].display_name));	
				};	
			})(versionsecond.getElementsByTagName("td")[1],versions[i][1]));
			versioncommentbody.appendChild(versionsecond);						
			
			
			if(versions[i][6]) {
				var versionsecond=attachmentsecond.cloneNode(true);
				versionsecond.getElementsByTagName("td")[0].appendChild(document.createTextNode(_("Comment:")));
				versioncommentbody.appendChild(versionsecond);	
				var versionthird=attachmentthird.cloneNode(true);
				versionthird.getElementsByTagName("td")[0].appendChild(getDivforTextContent(versions[i][6],null,true));
				versioncommentbody.appendChild(versionthird);
			}
			Hover.accordion.addComponent("VersionComment_"+i,versioncommentnode,200);
			Hover.references.allVersionComments["VersionComment_"+i]= { active : false }	
		}
	});	
}
OXInfostoreHover.fillGeneral = function() {
	function fillContent(type,value,titletext,clear,show) {
		if(clear) { removeChildNodes(OXInfostoreHover.references[type]); }
		if(value) { OXInfostoreHover.references[type].appendChild(value); }
		if(titletext) { OXInfostoreHover.references[type].title=titletext; }
		if(show) { OXInfostoreHover.references[type].style.display=""; }
	}
	function fillText(type,text,titletext,clear) {
		if(clear) { removeChildNodes(OXInfostoreHover.references[type]); }
		if(text) { OXInfostoreHover.references[type].appendChild(document.createTextNode(text)); }
		if(titletext) { OXInfostoreHover.references[type].title=titletext; }
	}
	var object=OXInfostoreHover.actualobject;
	//TITLE
	fillText("title",object.title ? object.title : "",object.title ? object.title : "",true);
	//CREATED BY
	internalCache.getUsers([object.created_by],function(reply){
		fillText("created_by",_("Created by")+" "+reply[object.created_by].display_name,null,true);
	});
	var count=0;
	//LOCKED
	if(object.locked_until && object.locked_until != 0) {
		actcount=count;
		internalCache.getUsers([object.modified_by],function(reply) {
			fillContent("coreimg"+(actcount+1),newnode("img",{},{ src: "img/folder/document_locked.gif"},[]),_("locked by")+" "+reply[object.modified_by].display_name,true,true);			
		});
		count++;
	}
	//FLAGS
	if(object.color_label && object.color_label!=0) {
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/menu/tag_"+object["color_label"]+".gif"},[]),null,true,true);
		count++;
	}
	//ATTACHMENT
	if(object.filename && object.filename!="") {
		OXInfostoreHover.references["attachment"].parentNode.style.display="";
		OXInfostoreHover.references["attachment"].colSpan=count+2 || 2;
		
		var filemimetype=getMimeImage(object.file_mimetype);
		fillText("attachment_version",_("Nr:")+" "+object.version,"",true);
		OXInfostoreHover.references["attachment_mimetype"].getElementsByTagName("img")[0].src=filemimetype; 
		OXInfostoreHover.references["attachment_mimetype"].getElementsByTagName("img")[0].title=object.file_mimetype;
		fillContent("attachment_openfile",newnode("img",{},{src:"img/menu/attachment_open.gif"},[]),_("Open attachment"),true,true);
		addDOMEvent(OXInfostoreHover.references["attachment_openfile"].getElementsByTagName("img")[0],"click",OXInfostoreHover.openAttachedFile(object.id,object.filename));
		fillContent("attachment_savefile",newnode("img",{},{src:"img/menu/attachment_save.gif"},[]),_("Save attachment"),true,true);
		addDOMEvent(OXInfostoreHover.references["attachment_savefile"].getElementsByTagName("img")[0],"click",OXInfostoreHover.saveAttachedFile(object.id,object.filename));
		fillText("attachment_filename",object.filename,object.version_comment,true);
	} else {
		OXInfostoreHover.references["attachment"].parentNode.style.display="none";
	}
	if(count == 0) {
		OXInfostoreHover.references["created_by_empty"].style.display="none";
	} else {
		OXInfostoreHover.references["created_by_empty"].colSpan=count;
	}
	for(;count<3;count++) {
		OXInfostoreHover.references["coreimg"+(count+1)].style.display="none";
	}
	//URL
	if(object.url && object.url!="") {
		OXInfostoreHover.references["url"].parentNode.style.display="";
		fillContent("url",newnode("a",{},{ href: object.url , target:"_blank" },[document.createTextNode(object.url)]),null,true,true);
	} else {
		OXInfostoreHover.references["url"].parentNode.style.display="none";
	}	
	//NOTE
	if(!object.description) { object.note="" }
	fillContent("notesmall", getDivforTextContent(object.description,5),null,true);
	fillContent("notemiddle", getDivforTextContent(object.description,10),null,true);
	fillContent("notefull", getDivforTextContent(object.description),null,true);
}
OXInfostoreHover.openAttachedFile = function(id,filename,version) {
	return function() {
		var sURL = AjaxRoot + "/infostore/" + encodeURIComponent(filename)
				+ "?action=document&session=" + session 
				+ "&id=" + encodeURIComponent(id)
		if(version) {
			sURL=sURL+"&version="+version;
		}
		newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes");
	}
}
OXInfostoreHover.saveAttachedFile = function(id,filename,version) {
	return function() {
		var sContentType = 'application/octet-stream';	
		var sURL = AjaxRoot + '/infostore/' 
					+ encodeURIComponent(filename) 
					+ '?action=document&session=' + session
					+ '&content_type=' + encodeURIComponent(sContentType) 
					+ '&id=' + encodeURIComponent(id);
		if(version) { sURL=sURL+"&version="+version; }
		if(IE6) { newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes"); }
		else { parent.frames['dlIframe'].location.href = sURL; }
	}
}
function OXAppointmentHover() {}
OXAppointmentHover.actualmodule="calendar";
OXAppointmentHover.moduleint=1;
OXAppointmentHover.contentobject;
OXAppointmentHover.actualobject;
OXAppointmentHover.confirmdialogshown=false;
OXAppointmentHover.references=new Object();
OXAppointmentHover.references.allGroups=new Array();
OXAppointmentHover.references.allGroupsParticipants=new Object();
OXAppointmentHover.fillOthers = function() {
	var othersmain=OXAppointmentHover.references["core_others_template"].cloneNode(true);
	oMainFolderTree.get_folder_path(OXAppointmentHover.actualobject.folder_id, function(resp) {
		othersmain.getElementsByTagName("td")[3].appendChild(document.createTextNode(resp)); 		
	});
	internalCache.getUsers([OXAppointmentHover.actualobject.modified_by],function(response) {
		othersmain.getElementsByTagName("td")[15].appendChild(document.createTextNode(response[OXAppointmentHover.actualobject.modified_by].display_name || ""));		
	});
	internalCache.getUsers([OXAppointmentHover.actualobject.created_by],function(response) {
		othersmain.getElementsByTagName("td")[11].appendChild(document.createTextNode(response[OXAppointmentHover.actualobject.created_by].display_name || ""));		
	});
	
	othersmain.getElementsByTagName("td")[7].appendChild(document.createTextNode(OXAppointmentHover.actualobject.categories || ""))	
	
	OXAppointmentHover.accordion.addComponent("AppointmentOthers",othersmain,false);
}
OXAppointmentHover.accordion=null;
OXAppointmentHover.actualHover=null;
OXAppointmentHover.actualobject=null;
OXAppointmentHover.getContent = function() {
	if(OXAppointmentHover.contentobject) { 
		return OXAppointmentHover.contentobject;
	}
	var element=createHoverContent();
	OXAppointmentHover.accordion=new Accordion(450,400);
	refillImages("template_calendar_hover_page1");
	refillImages("template_calendar_hover_attachments");
	refillImages("template_calendar_hover_links");
	refillImages("template_calendar_hover_others");
	var contentnode=$("template_calendar_hover_page1").cloneNode(true);
	$("template_calendar_hover_page1").parentNode.removeChild($("template_calendar_hover_page1"));
	contentnode.id="";
	OXAppointmentHover.references["core"]=contentnode;
	OXAppointmentHover.accordion.addComponent("AppointmentCore",contentnode,false);
	
	OXAppointmentHover.references["core_content_small"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXAppointmentHover.accordion.addComponent("NoteSmall",OXAppointmentHover.references["core_content_small"],200);
	var tmptds=OXAppointmentHover.references["core_content_small"].getElementsByTagName("td");
	OXAppointmentHover.references["notesmall"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXAppointmentHover.accordion.showContent('AppointmentCore,NoteMiddle'); });
	
	OXAppointmentHover.references["core_content_middle"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXAppointmentHover.accordion.addComponent("NoteMiddle",OXAppointmentHover.references["core_content_middle"],200);
	var tmptds=OXAppointmentHover.references["core_content_middle"].getElementsByTagName("td");
	OXAppointmentHover.references["notemiddle"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXAppointmentHover.accordion.showContent('AppointmentCore,NoteFull'); });
	
	OXAppointmentHover.references["core_content_full"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXAppointmentHover.accordion.addComponent("NoteFull",OXAppointmentHover.references["core_content_full"],200);
	var tmptds=OXAppointmentHover.references["core_content_full"].getElementsByTagName("td");
	OXAppointmentHover.references["notefull"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXAppointmentHover.accordion.showContent('AppointmentCore,NoteSmall'); });
	
	var tmptds=OXAppointmentHover.references["core"].getElementsByTagName("td");
	OXAppointmentHover.references["title"]=tmptds[1];
	OXAppointmentHover.references["coreimg1"]=tmptds[2];
	OXAppointmentHover.references["coreimg2"]=tmptds[3];
	OXAppointmentHover.references["coreimg3"]=tmptds[4];
	OXAppointmentHover.references["location"]=tmptds[5];
	OXAppointmentHover.references["start_time"]=tmptds[7];
	OXAppointmentHover.references["end_time"]=tmptds[9];
	OXAppointmentHover.references["created_by"]=tmptds[11];
	
	var contentnode=$("template_calendar_hover_others").cloneNode(true);
	$("template_calendar_hover_others").parentNode.removeChild($("template_calendar_hover_others"));
	OXAppointmentHover.references["core_others_template"]=contentnode;
	OXAppointmentHover.accordion.addComponent("AppointmentOthers",contentnode,false);
	
	var node=OXAppointmentHover.accordion.getDomNode();
	OXAppointmentHover.slider=new Slider(4);
	var d1=OXAppointmentHover.slider.getDomNode();
	OXAppointmentHover.slider.setNodeFunctions(0,function() { OXAppointmentHover.accordion.showContent("AppointmentCore,NoteSmall")}
	,null,"General" /*i18n*/);
	OXAppointmentHover.slider.setNodeFunctions(1,function() { 
		var tmpstring=OXOperationHover.getParticipantsString(OXAppointmentHover);
		OXAppointmentHover.accordion.showContent(tmpstring);
	},null,"Participants" /*i18n*/);
	OXAppointmentHover.slider.setNodeFunctions(2,function() { OXAppointmentHover.accordion.showContent("Attachments,Links")}
	,null,"Attachments/Links" /*i18n*/ );
	OXAppointmentHover.slider.setNodeFunctions(3,function() { OXAppointmentHover.accordion.showContent("AppointmentOthers")}
	,null,"Others" /*i18n*/ );
	var d=newnode("div",{ height:"20px", padding:"7px" , overflow:"hidden"},{},[
		newnode("table",{},{cellPadding : 0, cellSpacing : 0, border : 0},[
			newnode("tbody",{},{},[
				newnode("tr",{},{},[
					newnode("td",{},{},[
					]),
					newnode("td",{ paddingLeft: "7px" },{},[
					])
				])
			])
		])
	]);
	d.getElementsByTagName("td")[0].appendChild(d1);
	d.getElementsByTagName("td")[1].appendChild(OXAppointmentHover.slider.titlecontent);
	element.body.appendChild(d);
	element.body.appendChild(node);
	element.node.display="none";
	body.appendChild(element.node);
	OXAppointmentHover.contentobject=element;
	return OXAppointmentHover.contentobject;
}
OXAppointmentHover.refillContent = function(id,folder,recurrence_position) {
	function fillContent(type,value,titletext,clear,show) {
		if(clear) { removeChildNodes(OXAppointmentHover.references[type]); }
		if(value) { OXAppointmentHover.references[type].appendChild(value); }
		if(titletext) { OXAppointmentHover.references[type].title=titletext; }
		if(show) { OXAppointmentHover.references[type].style.display=""; }
	}
	function fillText(type,text,titletext,clear) {
		if(clear) { removeChildNodes(OXAppointmentHover.references[type]); }
		if(text) { OXAppointmentHover.references[type].appendChild(document.createTextNode(text)); }
		if(titletext) { OXAppointmentHover.references[type].title=titletext; }
	}
	var reqstr=AjaxRoot + "/calendar?action=get&session=" + session +"&id="+ id + "&folder="+folder;
	if(recurrence_position) { reqstr+="&recurrence_position="+recurrence_position; }
	(new JSON()).get(reqstr,null,function(object) {
		
		object=object.data;
		OXAppointmentHover.actualobject=object;
		//TITLE
		fillText("title",object.title ? object.title : "",object.title ? object.title : "",true);
		var count=0;
		//PRIVATE FLAG OR GROUP APPOINTMENT
		if(object.private_flag) {
			fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/private_flag.gif"},[]),_("Private appointment"),true,true);
			count++;
		} else if(object.participants.length>1) {
			fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/calendar/group.gif"},[]),_("Group appointment"),true,true);
			count++;
		}
		//RECURRENCE APPOINTMENT
		if(object.recurrence_type && object.recurrence_type != 0) {
			fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/serientermin.gif"},[]),_("Series appointment"),true,true);
			count++;
		}
		//FLAGS
		if(object.color_label && object.color_label!=0) {
			fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/menu/tag_"+object["color_label"]+".gif"},[]),null,true,true);
			count++;
		}
		for(;count<3;count++) {
			OXAppointmentHover.references["coreimg"+(count+1)].style.display="none";
		}
		//LOCATION
		fillText("location",object.location ? object.location : "",object.location ? object.location : "",true);
		var startdate=new Date(object.start_date);
		var enddate=new Date(object.end_date);
		//DATE AND TIME
		if(object.full_time) {
			enddate.setUTCDate(enddate.getUTCDate()-1);
			fillText("start_time", formatDate(startdate,"date"),formatDate(startdate,"date"),true);
			fillText("end_time", formatDate(enddate,"date"),formatDate(enddate,"date"),true);
		} else {
			fillText("start_time", formatDate(startdate,"datetime"),formatDate(startdate,"datetime"),true);
			fillText("end_time", formatDate(enddate,"datetime"),formatDate(enddate,"datetime"),true);
		}
		
		internalCache.getUsers([OXAppointmentHover.actualobject.created_by],function(response) {
			try {
				fillText("created_by", response[OXAppointmentHover.actualobject.created_by].display_name || "",response[OXAppointmentHover.actualobject.created_by].display_name || "",true);	
			} catch(n) {}
		});
		
		
		//NOTE
		if(!object.note) { object.note="" }
		fillContent("notesmall", getDivforTextContent(object.note,5),null,true);
		fillContent("notemiddle", getDivforTextContent(object.note,10),null,true);
		fillContent("notefull", getDivforTextContent(object.note),null,true);
		OXOperationHover.fillParticipants(OXAppointmentHover);
		OXGroupwareHover.fillAttachments(OXAppointmentHover);
		OXGroupwareHover.fillLinks(OXAppointmentHover);
		OXAppointmentHover.fillOthers();
		OXAppointmentHover.accordion.checkComponentHeight("AppointmentCore");
		OXAppointmentHover.accordion.checkComponentHeight("NoteSmall");
		OXAppointmentHover.accordion.checkComponentHeight("NoteMiddle");
		OXAppointmentHover.accordion.checkComponentHeight("NoteFull");
		OXAppointmentHover.slider.nodeClicked(0,true);
		
	}); 
}
register("Loaded",function() {
	OXGroupwareHover.start();
	OXOperationHover.start();
	OXContactHover.start();
	
})


function OXMailHover() {}
OXMailHover.actualmodule="mail";
OXMailHover.moduleint=19;
OXMailHover.contentobject;
OXMailHover.actualobject;
OXMailHover.actualHover=null;
OXMailHover.accordion;
OXMailHover.references=new Object();

OXMailHover.getContent = function() {
	if(OXMailHover.contentobject) {
		return OXMailHover.contentobject;
	}
	var element=createHoverContent();
	OXMailHover.accordion=new Accordion(450,400);
	
	refillImages("template_mail_hover_page1");
	var contentnode=$("template_mail_hover_page1").cloneNode(true);
	$("template_mail_hover_page1").parentNode.removeChild($("template_mail_hover_page1"));
	contentnode.id="";
	OXMailHover.references["core"]=contentnode;
	OXMailHover.accordion.addComponent("Mail_General",contentnode,false);
		
	var tmptds=OXMailHover.references["core"].getElementsByTagName("td");
	OXMailHover.references["subject"]=tmptds[1];
	OXMailHover.references["coreimg1"]=tmptds[2];
	OXMailHover.references["coreimg2"]=tmptds[3];
	OXMailHover.references["coreimg3"]=tmptds[4];
	OXMailHover.references["from"]=tmptds[5];
	
	OXMailHover.references["core_content_small"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXMailHover.accordion.addComponent("Mail_MailText_Small",OXMailHover.references["core_content_small"],200);
	var tmptds=OXMailHover.references["core_content_small"].getElementsByTagName("td");
	OXMailHover.references["mailtextsmall"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXMailHover.accordion.showContent('Mail_General,Mail_MailText_Middle'); });
		
	OXMailHover.references["core_content_middle"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXMailHover.accordion.addComponent("Mail_MailText_Middle",OXMailHover.references["core_content_middle"],200);
	var tmptds=OXMailHover.references["core_content_middle"].getElementsByTagName("td");
	OXMailHover.references["mailtextmiddle"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXMailHover.accordion.showContent('Mail_General,Mail_MailText_Full'); });
	
	OXMailHover.references["core_content_full"]=OXGroupwareHover.references["core_content_full"].cloneNode(true);
	OXMailHover.accordion.addComponent("Mail_MailText_Full",OXMailHover.references["core_content_full"],200);
	var tmptds=OXMailHover.references["core_content_full"].getElementsByTagName("td");
	OXMailHover.references["mailtextfull"]=tmptds[0];
	addDOMEvent(tmptds[0],"click",function() { OXMailHover.accordion.showContent('Mail_General,Mail_MailText_Small'); });
	
			
	var node=OXMailHover.accordion.getDomNode();
	
	
	var d=newnode("div",{ height:"20px", padding:"7px" , overflow:"hidden"},{},[
		newnode("table",{},{cellPadding : 0, cellSpacing : 0, border : 0},[
			newnode("tbody",{},{},[
				newnode("tr",{},{},[
					newnode("td",{},{},[
					]),
					newnode("td",{ paddingLeft: "7px" },{},[
					])
				])
			])
		])
	]);
	OXMailHover.slider=new Slider(2);
	var d1=OXMailHover.slider.getDomNode();
	OXMailHover.slider.setNodeFunctions(0,function() { OXMailHover.accordion.showContent("Mail_General,Mail_MailText_Small")},null,
	"General" /*i18n*/);
	OXMailHover.slider.setNodeFunctions(1,function() { OXMailHover.accordion.showContent("Attachments")},null,
	"Attachments" /*i18n*/);
	
	d.getElementsByTagName("td")[0].appendChild(d1);
	d.getElementsByTagName("td")[1].appendChild(OXMailHover.slider.titlecontent);
	element.body.appendChild(d);
	element.body.appendChild(node);
	element.node.style.display="none";
	$("body").appendChild(element.node);
	OXMailHover.contentobject=element;
	return OXMailHover.contentobject;
}
OXMailHover.refillContent = function(id,folder) {
	var reqstr=AjaxRoot + "/mail?action=get&session=" + session +"&id="+ encodeURIComponent(id) + "&folder="+encodeURIComponent(folder);
	(new JSON()).get(reqstr,null,function(object) {
		OXMailHover.actualobject=object.data;
		OXMailHover.actualobject.id=id;
		OXMailHover.actualobject.folder_id=folder;
		OXMailHover.fillGeneral();
		OXMailHover.accordion.checkComponentHeight("Mail_General");
		OXMailHover.accordion.checkComponentHeight("Mail_MailText_Small");
		OXMailHover.accordion.checkComponentHeight("Mail_MailText_Middle");
		OXMailHover.accordion.checkComponentHeight("Mail_MailText_Full");
		OXMailHover.fillAttachments(OXMailHover);
		OXMailHover.slider.nodeClicked(0,true);
		
	});
}
OXMailHover.getMailTextandStatus =function(object) {
	var retobj=new Object();
	retobj.mailtextstatus="notext";
	retobj.mailtext=_("No text");
	for (var i = 0; i < object.attachments.length; i++) {
		var part = object.attachments[i];
		if (part.disp == "attachment") continue;
		switch (part.content_type.toLowerCase()) {
			case "text/plain": 
				retobj.mailtextstatus="text"; 
				retobj.mailtext=part.content;
				return retobj;
			case "text/html": 
				retobj.mailtextstatus="html"; 
				retobj.mailtext=_("HTML-only mail"); 
				break;
		}
	}
	return retobj;	
}
OXMailHover.fillGeneral = function() {
	function fillContent(type,value,titletext,clear,show) {
		if(clear) { removeChildNodes(OXMailHover.references[type]); }
		if(value) { OXMailHover.references[type].appendChild(value); }
		if(titletext) { OXMailHover.references[type].title=titletext; }
		if(show) { OXMailHover.references[type].style.display=""; }
	}
	function fillText(type,text,titletext,clear) {
		if(clear) { removeChildNodes(OXMailHover.references[type]); }
		if(text) { OXMailHover.references[type].appendChild(document.createTextNode(text)); }
		if(titletext) { OXMailHover.references[type].title=titletext; }
	}
	object=OXMailHover.actualobject;
	fillText("subject",object.subject ? object.subject : "",object.subject ? object.subject : "",true);
	//FROM
	fillText("from",object.from ? getAdressString(object.from,true): "",object.from ?  getAdressString(object.from,false) : "",true);

	var count=0;
	//MAIL FLAGS
	if(object.flags || object.flags==0) {
		var img="img/mail/unread.gif";
		var imgtitle="Unread";
		if(object.flags) {
			if(object.flags % 2 >= 1) {
				img="img/mail/reply.gif"; 
				imgtitle="Answered"; 
			} else if(object.flags % 64 >= 32) {
				img="img/mail/read.gif"; 
				imgtitle="Read"; 
			}
		}
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: img , title : _(imgtitle)},[]),null,true,true);	
		count++	
					
	}
	//PRIORITY
	if(object.priority && object.priority!=3) {
		var img="img/dummy.gif";
		var imgtitle="Unknown";
		switch(object.priority) {
			case 1: img="img/mail/email_priohigh.gif"; imgtitle="Very high" ;break;
			case 2: img="img/mail/email_priohigh.gif"; imgtitle="High" ;break;
			case 4: img="img/mail/email_priolow.gif"; imgtitle="Low" ;break;
			case 5: img="img/mail/email_priolow.gif"; imgtitle="Very low" ;break;
		}
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: img , title : _(imgtitle)},[]),null,true,true);	
		count++;
	}
	//COLOR_LABEL
	if(object.color_label && object.color_label!=0) {
		fillContent("coreimg"+(count+1),newnode("img",{},{ src: "img/menu/tag_"+object["color_label"]+".gif"},[]),null,true,true);
		count++;
	}
	for(;count<3;count++) {
		OXMailHover.references["coreimg"+(count+1)].style.display="none";
	}
	// MAIL TEXT
	var mailtextobj=OXMailHover.getMailTextandStatus(object);
	fillContent("mailtextsmall", parseDirectLinksInMails(getDivforMailContent(mailtextobj.mailtext.split("<br>", 5).join('<br>'))),"",true,true)
	fillContent("mailtextmiddle", parseDirectLinksInMails(getDivforMailContent(mailtextobj.mailtext.split("<br>", 10).join('<br>'))),"",true,true)
	fillContent("mailtextfull", parseDirectLinksInMails(getDivforMailContent(mailtextobj.mailtext.split("<br>").join('<br>'))),"",true,true);	
}
OXMailHover.fillAttachments = function(Hover) {
	var attachmentfirst=
	newnode("tr",{},{},[
		newnode("td",{ width: "25px", paddingTop:"12px", lineHeight : "0px"},{ className : "notclickable"},[
			newnode("img",{},{ src: "img/dummy.gif" },[]) 
		]),
		newnode("td",{ paddingTop:"12px"},{ className : "contenttext notclickable"},[]),
		newnode("td",{ width: "25px", paddingTop:"12px" , lineHeight : "0px"},{},[
			newnode("img",{},{ src: "img/dummy.gif" },[]),
			newnode("img",{ display:"none" },{ src: "img/menu/attachment_open.gif" , className : "notclickable"},[])
		]),
		newnode("td",{ width: "25px", paddingTop:"12px" , lineHeight : "0px"},{},[
			newnode("img",{},{ src: "img/dummy.gif" },[]),
			newnode("img",{ display:"none" },{ src: "img/menu/attachment_save.gif" , className : "notclickable"},[])
		])
	]);
	var attachmentsecond=
	newnode("tr",{},{},[
		newnode("td",{ width: "25px"},{ className : "notclickable"},[
			newnode("img",{},{ src: "img/dummy.gif" },[])
		]),
		newnode("td",{},{ className : "contenttext notclickable"},[]),
		newnode("td",{ width: "25px"},{ className : "notclickable" },[]),
		newnode("td",{ width: "25px"},{ className : "notclickable" },[])
	]);
	
	var hasAttachments=false;
	var object=Hover.actualobject;
	var attachmentmain=OXGroupwareHover.references["core_attachments_template"].cloneNode(true);
	var attachbody=attachmentmain.getElementsByTagName("tbody")[0];
	for(var i=0;i<object.attachments.length;i++) {
		var myAttachment=object.attachments[i];
		if(myAttachment.filename) {
			hasAttachments=true;
			var node=attachmentfirst.cloneNode(true);
			var node2=attachmentsecond.cloneNode(true);
			node.getElementsByTagName("img")[0].src=getMimeImage(myAttachment.content_type.split(";")[0].toLowerCase()); 
			node.getElementsByTagName("img")[0].title=myAttachment.content_type.split(";")[0].toLowerCase();
			node.getElementsByTagName("td")[1].appendChild(document.createTextNode(myAttachment.filename));		
			node.getElementsByTagName("img")[1].style.display="none";
			node.getElementsByTagName("img")[2].style.display="";
			node.getElementsByTagName("img")[2].title=_("Open attachment"); /*i18n*/
			addDOMEvent(node.getElementsByTagName("img")[2],"click",Hover.openAttachedFile(Hover.actualobject.folder_id,Hover.actualobject.id,myAttachment.id));
			node.getElementsByTagName("img")[3].style.display="none";
			addDOMEvent(node.getElementsByTagName("img")[4],"click",Hover.saveAttachedFile(Hover.actualobject.folder_id,Hover.actualobject.id,myAttachment.id));
			node.getElementsByTagName("img")[4].style.display="";
			node.getElementsByTagName("img")[4].title=_("Save attachment"); /*i18n*/
			node2.getElementsByTagName("td")[1].appendChild(document.createTextNode(OXGroupwareHover.getShortByteString(myAttachment.size)));
			node2.getElementsByTagName("td")[1].title=OXGroupwareHover.getShortByteString(myAttachment.size,true);
			attachbody.appendChild(node);
			attachbody.appendChild(node2);
		}
	}
	if(!hasAttachments) {
		var tmp=newnode("tr",{},{ className : "notclickable"},[
			newnode("td",{ width: "25px"},{},[
				newnode("img",{},{ src: "img/dummy.gif" },[])
			]),
			newnode("td",{},{ colspan : 4 , className : "contenttext notclickable" },[
				document.createTextNode(_("No attachments available"))
			])		
		]);
		attachbody.appendChild(tmp);
	}
	Hover.accordion.addComponent("Attachments",attachmentmain,false);	
};
OXMailHover.openAttachedFile = function(folderid,objectid,attachmentid) {
	return function() {
		//if(rtfflag) { return; }
		var sURL = AjaxRoot + '/mail?action=attachment&session=' + session +'&folder=' + encodeURIComponent(folderid)
		 + '&id=' + encodeURIComponent(objectid)+ '&attachment=' +attachmentid+"&save=0";
		newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes");
	}
};
OXMailHover.saveAttachedFile = function(folderid,objectid,attachmentid) {
	return function() {	
		//if(rtfflag) return;	
		var sURL = AjaxRoot + '/mail?action=attachment&session=' + session +'&folder=' + encodeURIComponent(folderid)
		 + '&id=' + encodeURIComponent(objectid)+ '&attachment=' +attachmentid+"&save=1";
		if(IE6) { newWindow(sURL,"width=780px,height=640px,left=50,top=50,resizable=yes,menubar=no,toolbar=no,status=no,scrollbars=yes"); }
		else { parent.frames['dlIframe'].location.href = sURL; }
	}
};

function setHoverDelay() {
	switch(configGetKey("gui.effects.hover.speed")) {
		case 1: Hover.initial_delay = 500;
			break;
		case 2: Hover.initial_delay = 1000;
			break;
		case 3: Hover.initial_delay = 2000;
			break;
		default: Hover.initial_delay = 1000;
			break;
	}
}
register("OX_Configuration_Loaded_Complete",function() {
	setHoverDelay();
});
register("OX_Configuration_Changed",function(arg) {
	if(arg=="configuration/settings") {
		setHoverDelay();
	}
});
function getDivforTextContent(content,maxlines,removebreaks) {
	var mydiv=newnode("div",{},{},[]);
	var splited=content.split("\n");
	for(var i=0;i<splited.length;i++) {
		if(!removebreaks) { if(i!=0) { mydiv.appendChild(document.createElement("br")); } }
		else { mydiv.appendChild(document.createTextNode(" ")); }
		mydiv.appendChild(document.createTextNode(splited[i]));
		if(maxlines && i>=maxlines-1) {
			break;
		}
	}
	return mydiv;
};
function getDivforMailContent(content) {
	var mydiv=newnode("div",{},{},[]);
	mydiv.innerHTML=content;
	return mydiv;
}
