// COPYRIGHT Emrah Somay <emrah[at]somay.org>
// NO MODIFICATIONS
	

	//var XHR = new xHttpRequest();
	var currentContainer = "";


function toggleDisplay(eleId) {
	($(eleId).getStyle('display') == 'block')?$(eleId).setStyle('display', 'none'):$(eleId).setStyle('display', 'block');
}


function toggleFadeDisplay(ele) {
	($(ele).getStyle("display") == "block")?fadeOut($(ele)):fadeIn($(ele));
}


function fadeIn(ele) {
	$(ele).setStyle("display", "block");
	$(ele).setStyle("opacity", 0);
	$(ele).set('morph', {duration: 'normal'});
	theMorph = $(ele).get('morph');
	$(ele).morph({opacity:1});
}


function fadeOut(ele) {
	$(ele).setStyle("opacity", 1);
	$(ele).set('morph', {duration: 'normal'});
	theMorph = $(ele).get('morph');
	theMorph.complete = function() {$(ele).setStyle("display", "none");};
	$(ele).morph({opacity:0});
}




function mmcDialog(dialogId) {
	dialog = $(dialogId);

	desktopCover = dialog.getPrevious('div.desktopCover');

	docSize = $(document).getSize();
	dialogSize = dialog.getSize();

	dialog.setStyle("left", (docSize.x - dialogSize.x)/2);
	dialog.setStyle("top", 300);

	fadeIn(dialog);

	dialog.makeDraggable({
						 handle: dialog.getElement("div.title"),
						 onBeforeStart	: fadeToDrag,
						 onComplete		: fadeFromDrag
						 });

	if(desktopCover) {
		desktopCover.setStyle("opacity",0.5	);
		desktopCover.setStyle("height", docSize.y);
		desktopCover.setStyle("top", 	0);
		desktopCover.setStyle("bottom", 0);
	}
}



function fadeToDrag(ele) {
	$(ele).set('morph', {duration: 'short'});
	$(ele).morph({opacity: 0.6});
}

function fadeFromDrag(ele) {
	$(ele).set('morph', {duration: 'short'});
	$(ele).morph({opacity: 1});
}

function closeDialog(dia) {
	dia = $(dia);

	diaContent = dia.getElement('.content');
	diaContent.setStyle("visibility", "hidden");

	dia.setStyle("overflow", "hidden");
	dia.set('morph', {duration: 700, transition: 'bounce:out'});

	dia.morph({top:0, height:0, opacity:0});

	covers = $$(".desktopCover");
	$each(covers, function(ele) {ele.morph({height:0, opacity:0})});
}



function initMmcAccordions() {
	groups = $$(".accordionGroup");
	$each(groups, initMmcAccGroup);
}

function initMmcAccGroup(group) {
	allTriggers = group.getElements('.accordionTrigger');
	allPanes 	= group.getElements('.accordionContent');	

	var heightProp = group.get('fixedheight');

	myAccordion = new Accordion(allTriggers, allPanes, 
								{
									fixedHeight:(heightProp)?heightProp:false,
									onActive:function(t,e){
										t.addClass('selected');
										(heightProp)?e.setStyle("overflow", "auto"):"";
									},
									onBackground:function(t,e){
										t.removeClass('selected');
										(heightProp)?e.setStyle("overflow", "hidden"):"";
									}
								}
	);
}



function initMenus() {
	allSylphMenus =	$$('.sulphMenu');
	$each(allSylphMenus, 
		  function(ele) {
			  DynarchMenu.setup(ele.id, {blink:true, shadows: false});
		  }
	) 
}


function initContextMenus() {
	allSylphMenus =	$$('.sulphContextMenu');
	$each(allSylphMenus, 
		  function(ele) {
			DynarchMenu.setup(ele.id, {blink:true, shadows: false, context:true});			  
		  }
	)
}



function initSystemMessage(eleId, doitnow) {
	if(!doitnow) {
		preMessages = $(eleId).getAllPrevious();
		timeOffset = 150 * preMessages.length;
		window.setTimeout("initSystemMessage('"+eleId+"', true)",3500+timeOffset);
	} else {
		theMessage = $(eleId);
		theMessage.setStyle("overflow", "hidden");
		theMessage.setStyle("width",  theMessage.getSize().x-10);

		theMessage.set('morph', {duration: 'long', transition: 'bounce:out'});
		theMorph = theMessage.get('morph');
		theMorph.complete = function () {theMessage.setStyle("display", "none")};
		theMessage.morph({width:0, fontSize:"1%", opacity:0});
	}
}


function initTooltips() {

	if(!ToolTip) return false;

	allTooltips 		= $$("[tooltip=true]");

	theTooltipLayer 	= $("tooltipLayer");
	theTooltipContent	= $("tooltipContent");

	
	$each(allTooltips, mmcTooltip);

	function mmcTooltip(ele) {
		$(ele).addEvent("mouseover", handleTooltip);
		$(ele).addEvent("mouseout", handleTooltip);
	}
	
	function handleTooltip(evt) {
		theTrigger = evt.target;
		
		if(evt.type == "mouseover" && theTrigger.getAttribute("tooltip"))	{
			theMessage = theTrigger.get('ttmessage');
			theTooltipContent.set("html", theMessage);
			
			theTooltipLayer.setStyle("display", "block");

			newX = theTrigger.getPosition().x-Math.round(theTooltipLayer.getSize().x*0.6);
			newY = theTrigger.getPosition().y-theTooltipLayer.getSize().y;

			theTooltipContent.setStyle("margin-left", 0);
			if(newX<5) theTooltipContent.setStyle("margin-left", (-1*newX));

			theTooltipLayer.setStyle("top", newY);
			theTooltipLayer.setStyle("left", newX);			

		} else {
			theTooltipLayer.morph({opacity:1})
			$(theTooltipLayer).setStyle("display", "none");
		}
		
	}
	
}




function sulphurClock() {
 	var theClock 	= xGetElementById("sulphurClock");
	
	var Wochentagname =  new Array("So.","Mo.","Di.","Mi.","Do.","Fr.","Sa.");
	var MonatName =  new Array("Januar","Februar","Maerz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");	
	var Jetzt = new Date();
	var Past  = Date.parse(Jetzt);
	var Tag = Jetzt.getDate();
	var Monat = Jetzt.getMonth() + 1;
	var Jahr = Jetzt.getYear();
 	
	if(Jahr < 999) Jahr += 1900;

	var Stunden = Jetzt.getHours();
 	var Minuten = Jetzt.getMinutes();
 	var Sekunden = Jetzt.getSeconds();
	var Milli	= Jetzt.getMilliseconds();
	var longMonth = Jetzt.getMonth();
 	var WoTag = Jetzt.getDay();
 	var Vortag  = ((Tag < 10) ? "0" : "");
 	var Vormon  = ((Monat < 10) ? ".0" : ".");
 	var Vorstd  = ((Stunden < 10) ? "0" : "");
 	var Vormin  = ((Minuten < 10) ? ":0" : ":");
 	var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
 	var Vormilli= ((Milli < 100) ? "0" : "");
 	var Vormilli= ((Milli < 10) ? "00" : Vormilli);
	//var Datum = Vortag + Tag + Vormon + Monat  + "." + Jahr;
	var Datum = Wochentagname[WoTag] + " "+ Vortag + Tag + ". " + MonatName[longMonth]  + " " + Jahr;
 	var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden + "." + Vormilli + Milli;
 	var Gesamt = Datum + ", " + Uhrzeit;
	var EpochMili = Past;
	var Beat = "swatchbeat: "+(Past/100000).toFixed(2).substr(5,8);	

 	theClock.innerHTML	= Gesamt;
 	theClock.title		= Datum;

 window.setTimeout("sulphurClock()",100);
}


function setValue(eleId, theValue) {
	$(eleId).value = theValue;
}

function initMmcProgressBars() {
	allBars = $$(".mmcProgressBar[control=true]");
	$each(allBars, initMmcProgressBar);
}

function initMmcProgressBar(instance) {
	theBar = $(instance);
	strip  = theBar.getElement(".strip");
	incButton = theBar.getElement("button.increase");
	decButton = theBar.getElement("button.decrease");
	valField  = theBar.getElement("input.valuefield");
	strip.setStyle("max-width", "100%");
	
	incButton.addEvent("mousedown", setBarValue);
	decButton.addEvent("mousedown", setBarValue);
	valField.addEvent("change",	setBarValue);
	
	BarDrag	= new 	Drag(strip, {
							handle:		strip.getParent(),
							unit: 		"%",
							modifiers: 	{x:"width", y:""},
							limit: 		{x:100,   y:50},
							onDrag:		function(ele) {
											percentage = ele.getStyle("width").toInt().limit(0,100);
											valField.value = percentage;
											strip.setStyle("width", percentage+"%");
											strip.getFirst().set("html", percentage+"%");
											console.log(ele.getSize().x);
							}
					});


	function setBarValue(evt) {

		trigger = evt.target;
		
		percentage = strip.getStyle("width").toInt().limit(0,100);
		
		if(trigger == valField)  percentage = valField.value.toInt().limit(0,100);
		if(trigger == decButton) percentage = (percentage-1).limit(0,100);
		if(trigger == incButton) percentage = (percentage+1).limit(0,100);		
		
		valField.value = percentage;
		strip.setStyle("width", percentage+"%")
		strip.getFirst().set("html", percentage+"%");
	}

}





function toggleImageSize(image) {
	url 	 	= image.src;

	head 		= url.substr(0, url.length-5);
	tail 		= url.substr(url.length-5);
	elements	= tail.split(".");
	size		= elements[0];
	type		= elements[1];	
	if(size == "s") {
		newSize = "m";
	} else {
		newSize = "s";
	}
	
	newSrc = head+newSize+"."+type;
	image.src = newSrc;
}




function mmcSpinner(trigger, action) {
	spinner 	= trigger.getParent().getParent();
	field		= spinner.getElements("input")[0];
	minValue	= parseInt(spinner.getElements("input")[1].value);
	maxValue	= parseInt(spinner.getElements("input")[2].value);	
	initialValue= parseInt(spinner.getElements("input")[3].value);		
	current 	= parseInt(field.value);

	if(action == "+" && ((current + 1) <= maxValue) ) {field.value = current+1;}
	if(action == "-" && ((current - 1) >= minValue))  {field.value = current-1;}
	
	if(action == "set") {
		if( (current<minValue) || (current>maxValue) )	 {
			alert("Wert passt nicht! Ursprünglicher Wert wiederhergestellt. Der wert muss zwischen "+minValue+" und " + maxValue + " liegen");
			field.value = initialValue;
		}
	}

	focusElement(field)
}


function initFlagPanes() {
	allPanes = $$(".flagPane");
	$each(allPanes, 
		  function(ele) {
				mmcFlagPane(ele);	  
		  }
	)
}


function mmcFlagPane(ele) {
	thePane = $(ele);
	theParent = thePane.getParent();
	absoluteWidth = theParent.getSize().x;

	theParent.setStyle("border", "2px solid #FF0000");
	theParent.setStyle("width",  absoluteWidth);

	function mmcFlagPaneHandler(evt) {
		theEvent = evt;
		
		if(theEvent.type == "mouseover") {
			theEvent.target.style.width = "auto";
			theEvent.target.style.position = "absolute";
		}
		
		if(theEvent.type == "mouseout") {
			theEvent.target.setStyle("width", absoluteWidth)
			theEvent.target.setStyle("position", "relative");
		}
	}
	
}


function initSplitPanes() {
	allPanes = $$(".splitPane");
	$each(allPanes, 
		  function(ele){
				mmcSplitPane(ele);
		  }
	)
}


function mmcSplitPane(ele) {
	thePane 	= $(ele);
	theSplitter = $$(".v_splitter")[0];

	lPane 	= theSplitter.getPrevious().getFirst();	
	rPane 	= theSplitter.getNext();	
	toggler = theSplitter.getFirst();
	theFlag	= theSplitter.getElements(".flag")[0];


	SplitterDrag = new Drag(lPane, {
							
							style: 		true,
							handle:		theSplitter,
							modifiers:	{x:'width', y:""},
							onDrag:		function (ele) {
											
										},
										
							onComplete: function(ele) {
											allEle = $$("[layout=fill]");
											$each(allEle, function(ele) {
																thisEle = ele;
																thisEle.set('morph', {duration: 'normal', transition: 'bounce:out'});
																thisEle.morph({width: lPane.getSize().x-10});
														   });
										}
					
					})

	toggler.addEvent("click", toggleSplitPane);

	function toggleSplitPane() {
		if(lPane.getStyle('display')=='none')	{
			rPane.setStyle("width", "auto");
			lPane.setStyle("display", "block");
			xEnableDrag(theSplitter, splStart, splWhile, splEnd);
			xSetCookie("splitPane_"+thePane.id+"_state", "open");
		} else {
			rPane.setStyle("width", "100%");
			lPane.setStyle("display", "none");
			xDisableDrag(theSplitter);
			xSetCookie("splitPane_"+thePane.id+"_state", "close");			
		}
	}


}

function mmcLayout(ele) {
	
}


function initTrees() {
	allTrees = $$(".treeContainer");
	for(i=0; i<allTrees.length; i++) {
		mmcTree(allTrees[i]);
	}

	function mmcTree(ele) {
		ele.setStyle("display", "none");
		ele.setStyle("width", ele.getParent().getStyle("width")-00)
		ele.setStyle("display", "block");
	}

}


function focusElement(eleId) {
	$(eleId).focus();
}






function initClock() {
	theClock = $("sulphurClock");
	theClock.addEvent("dblclick", clockHandler);

	clockContainer = $('clockDialog');

	function clockHandler(evt) {
		trigger = evt.target;
		
		ClockGetter = new Request({
									method: 'get', 
									url: 'modules/clock/datasource.clock.php',
									onSuccess: function (responseString) {
																			clockContainer.set("html", responseString);
																			clockContainer.setStyle("left", trigger.getPosition().x);
																			clockContainer.setStyle("top",  trigger.getPosition().y);			
																			clockContainer.setStyle("display", "block");
																		  },

									onFailure: function (obj) {
																if(obj.status == 404) alert("Clock not found");
															  }
								   });
		ClockGetter.send();

	}
}
	
	
	
	
function sulphurLogout() {
	confirmation = confirm("Wirklich abmelden?");
	if(confirmation) {
		location.href="login.php?action=logout";	
	}
}

