// JavaScript Document
// unNuh Magnatic !! 
// BangBangBenni !

/**************/
/** ADMIN ****/
/************/

// CHAT
function chatmsg()
{
	var msgtext = escape($F('chattext'));
	var msgname = escape($F('nickname'));
	var url 	 = 'chat_func.php';
	var pars 	 = 'chattext='+msgtext+'&nickname='+msgname;
	
	var myAjax = new Ajax.Request(
			url, 
			{
				method: 'post', 
				parameters: pars, 
				onComplete: insertChat,
				evalScripts:true 
			});
	
	
	
}

function insertChat(requestObject)
{
	
	new Insertion.Bottom('chatroom', requestObject.responseText);
	
}

function updateChat()
{			
	
	var myChat 	= new Ajax.PeriodicalUpdater('chatroom','chat_func.php?update=1', {
		 method: 'post',
		 frequency: 5,
		 /* bei unveränderten response, verdoppelung der frequenz usw. decay: 2 */
		  });

}



// noch nicht aktiv
function newword()
{
		// hochzählen
		var anzahl 		= new Number($('anzahl_word').innerHTML);
		Element.update('anzahl_word',anzahl+1);
	
		new Ajax.Updater('wordlist','admin4maguh.php', {
				method:			'post', 
				insertion: 		Insertion.Top,
				asynchronous:	true, 
				evalScripts:	true,
				parameters:		Form.serialize('add_word_form')
				}); 
}

// aktiv
function editword (id, code)
{
			new Ajax.InPlaceEditor($('id_'+ id), 'admin4maguh.php?id='+ id +'&code=' +code, {
    			submitOnBlur: 			true, 
				okButton: 				false, 
				cancelLink: 			false,
				size:					"13",
				savingText:				"wird gespeichert...",
				clickToEditText:	 	"Klicken zum &auml;ndern",
				highlightcolor:			"#FAB11B",
				callback: function(form, value) { return "text=" + decodeURI(value) },
				ajaxOptions: {method: "post"} //override so we can use a static for the result
        		});
}

// aktiv
function advert (id, code)
{
			new Ajax.InPlaceEditor($('advert_'+ id), 'admin4maguh.php?id='+ id +'&code=' +code, {
    			submitOnBlur: 		true, 
				okButton: 			false, 
				cancelLink: 		false,	
				clickToEditText: 	"Klicken zum &auml;ndern",
				callback: function(form, value) { return "advert=" + decodeURI(value) },
				ajaxOptions: {method: "post"} //override so we can use a static for the result
        		});
}

// aktiv
function delword (id, code)
{
				Effect.SwitchOff('word_' + id);
				
				 // runterzählen
				 var anzahl 		= new Number($('anzahl_word').innerHTML);
				 Element.update('anzahl_word',anzahl-1);
								
				new Ajax.Request('admin4maguh.php?del=' + id + '&code=' + code, 
									{	
								 	asynchronous:true, 
								 	evalScripts:true
									});
}


/*********************/
/** Maguh? Field ****/
/*******************/

function magwords(word)
{	
	new Draggable(word,
	{	
		snap: 	function(x,y,draggable) 
			{
      			function constrain(n, lower, upper) 
				{
       				if (n > upper) return upper;
        			else if (n < lower) return lower;
        			else return n;
      			}	 
      				element_dimensions = Element.getDimensions(draggable.element);
      				parent_dimensions = Element.getDimensions(draggable.element.parentNode);
      		return[
        			constrain(x, 0, parent_dimensions.width - element_dimensions.width),
        			constrain(y, 0, parent_dimensions.height - element_dimensions.height)
					];
    			},
		endeffect: function ()
						{	
							var element = $(word);
							var pos 	= Position.positionedOffset(element);
							new Ajax.Request('speichern.php?word_id='+ word +'&word_pos=' + pos, {asynchronous:true, evalScripts:true}) 		
						}
  	});
}

function klick(idee)
{
	if(!idee) id = "1";
	else id = idee; 
}

/*neu...
/* Position der Wörter ändern, dessen Koordinaten sich geändert haben */
function newposition(xPos, yPos, wordid, id_user)
{
	for(var i=0; i <= xPos.length-1; i++) 
	{ 
			var word	= wordid[i];
			var arrayX	= xPos[i];
			var styleX 	= $(String(word)).getStyle('top');
			var X		= styleX.split("px");
			var newX	= xPos[i] - X[0];
	
			var arrayY	= yPos[i];
			var styleY	= $(String(word)).getStyle('left');
			var Y		= styleY.split("px");
			var newY	= yPos[i] - Y[0];
			
			/* Wenn sich die XY-Koordinaten sich nicht geändert haben soll nichts passieren, ansonsten neue Koordinaten zuteilen  */
		if(id_user != word && styleX != arrayX)
		{	
			/* neuen Style auf das Element anwenden, Koordinaten aus den beiden Arrays holen */ 
			new Effect.MoveBy($(String(word)), newX, newY, {duration: 1,  transition: Effect.Transitions.slowstop});
		}
	}
}







/*-- START Wörtersuche 
function findword()
	{
		Event.observe("SearchInput", "keyup", wordsearch);
	}
	
function wordsearch()
	{
		var pars = escape($F("SearchInput")).toLowerCase();
		for (var i=1; i < 200; i++)
		{
			var div = $(String(i)).firstChild.nodeValue.toLowerCase();		
			if (div == pars)
			{

				Element.setStyle(String(i), {color:'#C41766', fontSize: '20px'});
			}
			else 
			{
				Element.setStyle(String(i), {color:'#000000', fontSize: '0.6em'});
			}
		}
	}



/* <- END Wörtersuche ->

/*-- START Wörtersuche2 22 */

// Wort auslesn und bei keyup function showDivs starten.
function findword()
	{
		Event.observe("SearchInput", "keyup", showDivs);

	}
	
function showDivs(){
		
		// Wort 
		var searchme = escape($F("SearchInput")).toLowerCase();
		
		// Array erstellen
		var wordList = $('magboard').getElementsByTagName('div');
		var nodes = $A(wordList);

			nodes.each(function(node){
								
					if(node.innerHTML.toLowerCase() == searchme)
					{
						Element.setStyle(node.id, {color:'#C41766', fontSize: '20px'});
						// alert(node.id + ': ' + node.innerHTML);
						
					}
					
					else 
					{
						Element.setStyle(node.id, {color:'#000000', fontSize: '0.6em'});
					}

				});
	}

function searchkill(id)
{
		Element.setStyle(String(id), {color:'#FFFFFF', fontSize: '14px'});
}



// USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // 
// USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // // USER MAGNETIC // 

/* function insert()
{
	Insertion.Top('elementID'); 
}
*/ 

function user_generate()
{
	
	var pars = "magname="+escape($F("magname"));
	new Ajax.Updater('codemag','usergeneratecode.php',
            		{
                    	parameters: pars,
                        onFailure: 	showError
                    });
}

function user_magwords(word, user)
{	
	new Draggable(word,
	{	
		snap: 	function(x,y,draggable) 
			{
      			function constrain(n, lower, upper) 
				{
       				if (n > upper) return upper;
        			else if (n < lower) return lower;
        			else return n;
      			}	 
      				element_dimensions = Element.getDimensions(draggable.element);
      				parent_dimensions = Element.getDimensions(draggable.element.parentNode);
      		return[
        			constrain(x, 0, parent_dimensions.width - element_dimensions.width),
        			constrain(y, 0, parent_dimensions.height - element_dimensions.height)
					];
    			},
		endeffect: function ()
						{	
							var element = $(word);
							var pos 	= Position.positionedOffset(element);
							new Ajax.Request('usermagspeichern.php?word_id='+ word +'&word_pos=' + pos +'&maguser_code='+ user, {asynchronous:true, evalScripts:true}) 		
						}
  	});
}

function user_klick(idee)
{
	if(!idee) id_user = "1";
	else id_user = idee; 
}

/* Position der Wörter ändern, dessen Koordinaten sich geändert haben */
function user_newposition(xPos, yPos, wordid, id_user)
{
	for(var i=0; i <= xPos.length-1; i++) 
	{ 
			var word	= wordid[i];
			var arrayX	= xPos[i];
			var styleX 	= $(String(word)).getStyle('top');
			var X		= styleX.split("px");
			var newX	= xPos[i] - X[0];
	
			var arrayY	= yPos[i];
			var styleY	= $(String(word)).getStyle('left');
			var Y		= styleY.split("px");
			var newY	= yPos[i] - Y[0];
			
			/* Wenn sich die XY-Koordinaten sich nicht geändert haben soll nichts passieren, ansonsten neue Koordinaten zuteilen  */
		if(id_user != word && styleX != arrayX)
		{	
			/* neuen Style auf das Element anwenden, Koordinaten aus den beiden Arrays holen */ 
			new Effect.MoveBy($(String(word)), newX, newY, {duration: 1,  transition: Effect.Transitions.slowstop});
		}
	}
}

function edituserword (id, code)
{
			new Ajax.InPlaceEditor($('edit_'+ id), 'wordmag_ad.php?id='+ id + '&code=' + code, {
    			submitOnBlur: 		true, 
				okButton: 			false, 
				cancelLink: 		false,
				savingText:				"wird gespeichert...",
				clickToEditText:	 	"Klicken zum &auml;ndern",
				highlightcolor:			"#FAB11B",
				callback: function(form, value) { return "text=" + decodeURI(value) },
				ajaxOptions: {method: "post"}});
}

function user_delword (id, code)
{
				Effect.SwitchOff('id_' + id);
				
				// hochzählen
				var anzahl 		= new Number($('freewords').innerHTML);
				Element.update('freewords',anzahl+1);
								
				new Ajax.Request('wordmag_ad.php?del=' + id + '&code=' + code, 
									{	
								 	asynchronous:true, 
								 	evalScripts:true
									});
}

function user_new()
{
		// runterzählen
		var anzahl 		= new Number($('freewords').innerHTML);
		Element.update('freewords',anzahl-1);
	
		new Ajax.Updater('newword','wordmag_ad.php', {
				method:			'post', 
				insertion: 		Insertion.Top,
				asynchronous:	true, 
				evalScripts:	true,
				parameters:		Form.serialize('add_word_form')
				}); 
}


/* <- <- END TODO  */


// alt

/*
function magwords (word)
{	
	new Draggable(word,
	{
		snap: 	function(x,y,draggable) 
			{
      			function constrain(n, lower, upper) 
				{
					alert (n+ 'lower' + lower + ' upper' + upper);
       				if (n > upper) return upper;
        			else if (n < lower) return lower;
        			else return n;
      			}	
	  
     
      element_dimensions = Element.getDimensions(draggable.element);
      parent_dimensions = Element.getDimensions(draggable.element.parentNode);
      return[
        constrain(x, 0, parent_dimensions.width - element_dimensions.width),
        constrain(y, 0, parent_dimensions.height - element_dimensions.height)
		];
    },
	endeffect: function ()
						{	
							
							var test = $(word);
							var pos = Position.positionedOffset(test);
							new Ajax.Request('speichern.php?word_id='+ word +'&word_pos=' + pos, {asynchronous:true, evalScripts:true}) 
							// new Ajax.Requerstrsadf			
						}
  });
}


window.onload = function()
{
	new Draggable (
					$("test"),
					{
					
						endeffect: function ()
						{
							
							var test = $("test");
							var pos = Position.positionedOffset(test);
							alert(pos);
							
						}
						
					} 
	);
}
*/
<!-- Nutzungsbedingungen -->
function freigabe1() {
		$('check-checkbox1').enabled = $('iaccept').checked;
		$('check-checkbox1').disabled = !($('iaccept').checked);
	}
