/**************************************************************************
 * C5-Edit-Funcs (C) by Stefan Mateescu / Taurus IT GmbH <stm@taurus-it.de>
 * --> Version 0.4 (2010-03-03)
 **************************************************************************
 * NO UNAUTHORIZED USE! DO NOT REMOVE THIS COPYRIGHT NOTICE!
 **************************************************************************/

/************
 ACTION HANDLERS
 *************************/

function c5_onclickAddContent(content_id) {
	// reset layer
	c5_resetHalfmodalDialogEx(0, 350, 200, "VOID");
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=add_content_box&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doHalfmodalGETrequestEx(0, url);
}

var c5_lastAddedContent = 0;

function c5_initiateAddContent(anchor_id, style_id, content_id, position) {	// content_id is OPTIONAL, position is 'above' or 'below'
c5_debugTrace("c5_initiateAddContent(anchor_id="+anchor_id+", style_id="+style_id+", content_id="+content_id+", position="+position);
	c5_lastAddedContent++;
	c5_hideHalfmodalDialogNew($('c5_halfmodal_content0'));
	// create new DIV in Anchor-Loop
	var tmpDivId = 'c5contentId_NEW_'+c5_lastAddedContent;
	var newContent = document.createElement('div');
	newContent.setAttribute("id", tmpDivId);
	c5_addClass(newContent, "c5contentAtAnchor_"+anchor_id);
	var newBetween = document.createElement('div');
	newBetween.innerHTML = $('c5contentHiddenBetween_'+anchor_id).innerHTML;
	c5_addClass(newBetween, "c5contentBetween_"+anchor_id);
	if (position=="above") {
		var referenceContent = $('c5contentId_'+content_id);
		$('c5containerAnchor_'+anchor_id).insertBefore(newContent, referenceContent);
		$('c5containerAnchor_'+anchor_id).insertBefore(newBetween, referenceContent);
	}
	if (position=="below") {
		var referenceContent = $('c5contentId_'+content_id);
		$('c5containerAnchor_'+anchor_id).insertBefore(newContent, referenceContent.nextSibling);
		$('c5containerAnchor_'+anchor_id).insertBefore(newBetween, referenceContent.nextSibling);
	}
	if (position=="") {
		var referenceContent = $('c5contentAddElement_'+anchor_id);
		$('c5containerAnchor_'+anchor_id).insertBefore(newContent, referenceContent.nextSibling);
	}
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+anchor_id);
	document.body.appendChild(t);
	// AJAX-Action
	var ajaxPosition = position+"+"+content_id;
	var url = c5getAJAXPREFIX() + "&content_action=edit&content_id=NEW_"+c5_lastAddedContent+"&content_style="+style_id+"&content_anchor="+anchor_id+"&ajaxPosition="+ajaxPosition;
	c5_doEditGETrequest(url, tmpDivId, 'tempDiv_EDIT');
	setTimeout("c5_checkAnchorDefaultAddbox("+anchor_id+");", c5_FX_DURATION()*2);
}

function c5_redrawContentAjaxly(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=read&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doEditGETrequest(url, 'c5contentId_'+content_id, 'tempDiv_EDIT', content_anchor);
}

function c5_onclickEditContent(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=edit&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doEditGETrequest(url, 'c5contentId_'+content_id, 'tempDiv_EDIT');
}

function c5_onclickContentOptions(content_id) {
	// reset layer
	c5_resetHalfmodalDialogEx(0, 400, 220, "VOID");
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=options&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doHalfmodalGETrequestEx(0, url);
}

function c5_saveContentOptions(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// send form
	var url = c5getAJAXPREFIX() + "&content_action=options_save&content_id="+content_id+"&content_anchor="+content_anchor;
	$('c5_content_options_form').action = url;
	c5_doEditPOSTrequest('c5_content_options_form', 'c5_halfmodal_content0', 'tempDiv_EDIT', "", content_anchor);
}

function c5_onclickDeleteContent(content_id) {
	var url = c5getAJAXPREFIX() + "&content_action=delete&content_id="+content_id;
	c5_showAjaxLayer();
	new Request({
		url: url+"&c5mooUTF8=1",
		method: 'get',
		onSuccess: function(transport) {
			// do js-remove in DOM
			c5_onclickDeleteRemoveContent(content_id);
			c5_hideAjaxLayer();
		}
	 }).send();
}

function c5_onclickDeleteContentInAllLangs(content_id) {
	var url = c5getAJAXPREFIX() + "&content_action=delete_in_all_langs&content_id="+content_id;
	c5_showAjaxLayer();
	new Request({
		url: url+"&c5mooUTF8=1",
		method: 'get',
		onSuccess: function(transport) {
			// do js-remove in DOM
			c5_onclickDeleteRemoveContent(content_id);
			c5_hideAjaxLayer();
		}
	 }).send();
}

function c5_onclickDeleteRemoveContent(content_id) {
	// do dom action
	var FX_DURATION = c5_FX_DURATION();
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	var dstSize = $('c5contentId_'+content_id).getSize();
	$('c5contentId_'+content_id).setStyles({
		'display': 'block',
		'overflow': 'hidden',
		'height': dstSize.y+"px",
		'opacity': 1
	});
	var betwElem = c5_getNextElementFromDOM($('c5contentId_'+content_id));
	if (betwElem==null || betwElem.className!="c5contentBetween_"+content_anchor) {
		betwElem = c5_getPreviousElementFromDOM($('c5contentId_'+content_id));
		if (betwElem==null || betwElem.className!="c5contentBetween_"+content_anchor) {
			betwElem = null;
		}
	}
	var fx1 = new Fx.Morph($('c5contentId_'+content_id), {duration: FX_DURATION, wait: false});
	if (betwElem!=null)
		var fx2 = new Fx.Morph(betwElem, {duration: FX_DURATION, wait: false});
	fx1.start( {
		'height': '1px',
		'opacity': 0
	} ).chain(function() {
		$('c5contentId_'+content_id).destroy();
	});
	if (betwElem!=null)
		fx2.start( {
			'height': '1px',
			'opacity': 0
		} ).chain(function() {
			betwElem.destroy();
		});
	setTimeout("c5_checkAnchorDefaultAddbox("+content_anchor+");", c5_FX_DURATION()*1.5);
	return;
}

function c5_onclickCancelEditContent(content_id) {
	var FX_DURATION = c5_FX_DURATION();
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// check the ADDCONTENT-BOX later
	setTimeout("c5_checkAnchorDefaultAddbox("+content_anchor+");", c5_FX_DURATION()*1.5);
	// special handfling for NEW contents
	if (content_id.substr(0,3)=="NEW") {
		// get anchor position
		var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
		var dstSize = $('c5contentId_'+content_id).getSize();
		$('c5contentId_'+content_id).setStyles({
			'display': 'block',
			'overflow': 'hidden',
			'height': dstSize.y+"px",
			'opacity': 1
		});
		var betwElem = c5_getNextElementFromDOM($('c5contentId_'+content_id));
		if (betwElem==null || betwElem.className!="c5contentBetween_"+content_anchor) {
			betwElem = c5_getPreviousElementFromDOM($('c5contentId_'+content_id));
			if (betwElem==null || betwElem.className!="c5contentBetween_"+content_anchor) {
				betwElem = null;
			}
		}
		var fx1 = new Fx.Morph($('c5contentId_'+content_id), {duration: FX_DURATION, wait: false});
		if (betwElem!=null)
			var fx2 = new Fx.Morph(betwElem, {duration: FX_DURATION, wait: false});
		fx1.start( {
			'height': '0px',
			'opacity': 0
		} ).chain(function() {
			$('c5contentId_'+content_id).destroy();
		});
		if (betwElem!=null)
			fx2.start( {
				'height': '0px',
				'opacity': 0
			} ).chain(function() {
				betwElem.destroy();
			});
		return;
	}
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=read&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doEditGETrequest(url, 'c5contentId_'+content_id, 'tempDiv_EDIT', content_anchor);
}

function c5_onclickEditLinks(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// get style-id
	var p = /content_style=([0-9]+)/;
	var r = p.exec($("c5editContentForm_"+content_id).action);
	var content_style = r?r[1]:0;
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// send form
	var url = c5getAJAXPREFIX() + "&content_action=edit_links&content_id="+content_id+"&content_style="+content_style+"&content_anchor="+content_anchor;
	$('c5editContentForm_'+content_id).action = url;
	c5_doEditPOSTrequest('c5editContentForm_'+content_id, 'c5contentId_'+content_id, 'tempDiv_EDIT');
}

function c5_onclickEditLinksBack(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// send form
	var url = c5getAJAXPREFIX() + "&content_action=edit_links&content_id="+content_id+"&content_anchor="+content_anchor;
	$('c5editContentForm_'+content_id).action = url;
	c5_doEditPOSTrequest('c5editContentForm_'+content_id, 'c5contentId_'+content_id, 'tempDiv_EDIT');
}

function c5_onclickSaveEditContent(content_id) {
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// send form
	c5_doEditPOSTrequest('c5editContentForm_'+content_id, 'c5contentId_'+content_id, 'tempDiv_EDIT', "", content_anchor);
}

function c5_openEditLinkWindow(content_id, field_name, link_id, link_text) {
	// reset layer
	c5_resetHalfmodalDialogEx(3, 500, 300, "VOID");
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// get style-id
	var p = /content_style=([0-9]+)/;
	var r = p.exec($("c5editlinks_"+content_id).action);
	var content_style = r?r[1]:0;
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=edit_link_window&content_id="+content_id+"&content_style="+content_style+"&content_anchor="+content_anchor+"&field_name="+field_name+"&link_id="+link_id+"&link_text="+c5_encode(link_text);
	c5_doHalfmodalGETrequestEx(3, url);
}

function c5_backToEdit(content_id) { ////////////////////
//	alert("edit "+link_id);
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDIT');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	c5_doEditPOSTrequest('c5editlinks_'+content_id, 'c5contentId_'+content_id, 'tempDiv_EDIT', false);
}

function c5_saveLinkFromDialog(content_id, content_style, content_anchor, field_name, link_id, link_text) {
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDITLINK1');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	c5_doEditPOSTrequestSilent('c5_edit_link_form', 'tempDiv_EDITLINK1', false);
	c5_hideHalfmodalDialogNew($('c5_halfmodal_content3'));
	$('tempDiv_EDITLINK1').style.display = "block";
	$('tempDiv_EDITLINK1').style.left = "0px";
	$('tempDiv_EDITLINK1').style.background = "yellow";
	$('tempDiv_EDITLINK1').style.zIndex = "99999";
}

function c5_saveLinkFromDialog2(content_id, content_style, content_anchor, field_name, link_id, link_text, new_link_id) {
	// dstLayer
	var t = c5_createTempDivForAjax('tempDiv_EDITLINK2');
	c5_addClass(t, "c5contentAtAnchor_"+content_anchor);
	document.body.appendChild(t);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=edit_link_window_store2&content_id="+content_id+"&content_style="+content_style+"&content_anchor="+content_anchor+"&field_name="+field_name+"&link_id="+link_id+"&link_text="+link_text+"&new_link_id="+new_link_id;
	$('c5editlinks_'+content_id).action = url;
	c5_doEditPOSTrequest('c5editlinks_'+content_id, 'c5contentId_'+content_id, 'tempDiv_EDITLINK2', false);
}

function c5_saveLinkFromDialog3() {
	// clean up
	if ($('tempDiv_EDITLINK1'))
		$('tempDiv_EDITLINK1').destroy();
	if ($('tempDiv_EDITLINK2'))
		$('tempDiv_EDITLINK2').destroy();
}

function c5_openViewImageWindow(content_id, element_id) {
	eval("var form = document.c5editContentForm_"+content_id);
	if (typeof form == "undefined")
		 eval("var form = document.c5edit_"+content_id);
	eval("var element = form."+element_id);
	// reset layer
	c5_resetHalfmodalDialogEx(6, 400, 300, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&editimage_action=view&content_id="+content_id+"&element_id="+element_id+"&element_value="+escape(element.value);
	c5_doHalfmodalGETrequestEx(6, url);
}

function c5_openViewImageWindow2(filepath) {
	// reset layer
	c5_resetHalfmodalDialogEx(6, 400, 300, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&view_resource="+escape(filepath);
	c5_doHalfmodalGETrequestEx(6, url);
}

// for contents in c5-mode
function c5_openSelectImageWindow(content_id, element_id) {
	eval("var form = document.c5editContentForm_"+content_id);
	if (typeof form == "undefined")
		 eval("var form = document.c5edit_"+content_id);
	eval("var element = form."+element_id);
	// reset layer
	c5_resetHalfmodalDialogEx(4, 700, 400, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&editimage_action=select&content_id="+content_id+"&element_id="+element_id+"&element_value="+escape(element.value);
	c5_doHalfmodalGETrequestEx(4, url);
}

// for any field in form_name.input_name
function c5_openSelectImageWindow2(form_name, input_name, pathadd) {
	if (typeof pathadd == "undefined")
		pathadd = "";
	eval("var form = document."+form_name);
	eval("var element = form."+input_name);
	// reset layer
	c5_resetHalfmodalDialogEx(4, 700, 400, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&editimage_action=select2&form_name="+form_name+"&input_name="+input_name+"&element_value="+escape(element.value)+"&element_pathadd="+escape(pathadd);
	c5_doHalfmodalGETrequestEx(4, url);
}

function c5_refreshSelectImageWindow(url) {
	// AJAX-Action
	c5_doHalfmodalGETrequestL8(url, 'c5_halfmodal_content4');
}

// for contents in c5-mode
function c5_openUploadImageWindow(content_id, element_id) {
	eval("var form = document.c5editContentForm_"+content_id);
	if (typeof form == "undefined")
		 eval("var form = document.c5edit_"+content_id);
	eval("var element = form."+element_id);
	// reset layer
	c5_resetHalfmodalDialogEx(5, 500, 300, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&editimage_action=upload&content_id="+content_id+"&element_id="+element_id+"&element_value="+escape(element.value);
	c5_doHalfmodalGETrequestEx(5, url);
}

// for any field in form_name.input_name
function c5_openUploadImageWindow2(form_name, input_name, pathadd) {
	eval("var form = document."+form_name);
	eval("var element = form."+input_name);
	// reset layer
	c5_resetHalfmodalDialogEx(5, 500, 300, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&editimage_action=upload&form_name="+form_name+"&input_name="+input_name+"&element_value="+escape(element.value)+"&pathadd="+escape(pathadd);
	c5_doHalfmodalGETrequestEx(5, url);
}

// for contents in c5-mode
function c5_useImage(content_id, element_id, value) {
	eval("var form = document.c5editContentForm_"+content_id);
	if (typeof form == "undefined")
		 eval("var form = document.c5edit_"+content_id);
	eval("var element = form."+element_id);
	if (typeof element == "undefined")
		 eval("var element = form.c5editContent__"+element_id);
	element.value = value;
}

// for any field in form_name.input_name
function c5_useImage2(form_name, input_name, value) {
	eval("var form = document."+form_name);
	eval("var element = form."+input_name);
	element.value = value;
}

function c5_moveContentOnPage(content_id, direction) {
	c5_showAjaxLayer();
	jQuery("#c5contentId_"+content_id).animate({ height: "1px" }, "normal", "linear", function() { jQuery( this ).css( {display: "none" }); });
	new Request({
		url: c5getAJAXPREFIX()+"&content_action=move_content_"+direction+"&content_id="+content_id+"&c5mooUTF8=1",
		method: 'get',
		onSuccess: function(transport, xml) {
			c5_redrawAllAnchors();
			c5_hideAjaxLayer();
		}
	 }).send();
}

function c5_moveContentLeft(content_id) {
	c5_moveContentOnPage(content_id, "left");
}

function c5_moveContentRite(content_id) {
	c5_moveContentOnPage(content_id, "rite");
}

function c5_moveContentUp(content_id) {
	c5_moveContentOnPage(content_id, "up");
}

function c5_moveContentDown(content_id) {
	c5_moveContentOnPage(content_id, "down");
}

function c5_onclickMoveContent2AnotherPage(content_id) {
	// reset layer
	c5_resetHalfmodalDialogEx(0, 400, 300, "VOID");
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// init AJAX-Action
	c5_onclickMoveContent2AnotherPage_contentId = content_id;
	c5_onclickMoveContent2AnotherPage_contentAnchor = content_anchor;
	c5_c5ajaxtree_initDialog('c5_onclickMoveContent2AnotherPage2');
}

function c5_onclickMoveContent2AnotherPage2() {
	var c5a = c5_c5ajaxtree_lastSelectedPage_area;
	var c5l = c5_c5ajaxtree_lastSelectedPage_lang;
	var c5p = c5_c5ajaxtree_lastSelectedPage_id;
	var c5title = c5_c5ajaxtree_lastSelectedPage_title;
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: c5getAJAXPREFIX() + "&content_action=move_content_2another_page&content_id="+c5_onclickMoveContent2AnotherPage_contentId+"&content_anchor="+c5_onclickMoveContent2AnotherPage_contentAnchor+"&dst_c5a="+c5a+"&dst_c5l="+c5l+"&dst_c5p="+c5p,
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			c5_hideAjaxLayer();
			if (html=="OK") {
				c5_hideHalfmodalDialogEx(0);
				c5_redrawAnchor(c5_onclickMoveContent2AnotherPage_contentAnchor);
			}
			else {
				alert(html);
			}
		}
	});
}

function c5_onclickTranslateContent(content_id) {
	// reset layer
	c5_resetHalfmodalDialogEx(0, 400, 300, "VOID");
	// get anchor position
	var content_anchor = c5_getAnchorFromClass('c5contentId_'+content_id);
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&content_action=translate_content&content_id="+content_id+"&content_anchor="+content_anchor;
	c5_doHalfmodalGETrequestEx(0, url);
}

function c5_submitTranslateContent(content_id) {
	c5_showAjaxLayer();
	var postdata = jQuery("#tarnsferContentForm").serialize();
	var url = c5getAJAXPREFIX() + "&content_action=translate_content2&content_id="+content_id;
	jQuery.post(url, postdata, function(data) {
		c5_hideHalfmodalDialogEx(0);
		c5_hideAjaxLayer();
	});
}

/************
 Drag-n-Drop Helpers for C5
 *************************/

var c5actDraggedElement = null;
var c5actDropElement = null;
var c5lastDragHandle = null;
var c5lastDragTitle = "";
var c5contentIsDragged = false;

function c5_initContentsDnd() {

	jQuery('.c5_content_handle_drag')
			.unbind('mouseover')
			.unbind('mouseout');

	jQuery('.c5draggableContent, .c5contentAddElement')
		.unbind('dragstart')
		.unbind('drag')
		.unbind('dragend')
		.unbind('dropstart')
		.unbind('drop')
		.unbind('dropend');

	jQuery('.c5_content_handle_drag')
		.bind('mouseout', function(event) {

			if (c5contentIsDragged)
				return;

			// unbind everything first!
			jQuery('.c5draggableContent, .c5contentAddElement')
				.unbind('dragstart')
				.unbind('drag')
				.unbind('dragend')
				.unbind('dropstart')
				.unbind('drop')
				.unbind('dropend');

		});

	jQuery('.c5_content_handle_drag')
		.bind('mouseover', function(event) {

			if (c5contentIsDragged)
				return;

			// draggables
			jQuery('.c5draggableContent')
				.bind('dragstart', function(event) {
					if (!jQuery(event.target).is('.c5_content_handle_drag'))
						return false;
					jQuery('.c5draggableContentDragProxy').remove();
					c5contentIsDragged = true;
					c5actDraggedElement = this;
					c5_dragContentScrollWatcher();
					c5lastDragHandle = event.target;
					c5lastDragTitle = jQuery(c5lastDragHandle).attr('title');
					jQuery(c5lastDragHandle).attr('title', '');
					return jQuery(this).css('opacity', 0.4).clone().appendTo('body').addClass("c5draggableContentDragProxy");
				})
				.bind('drag', function(event) {
					var h = Math.min(100, jQuery(this).height());
					jQuery(event.dragProxy).css({
						width: jQuery(this).width()+"px",
						height: h+"px",
						position: 'absolute',
						overflow: 'hidden',
						top: event.offsetY,
						left: event.offsetX
					});
					if (c5actDropElement) {
						var half = c5_getDraggableContentDropHalf(c5actDropElement);
						var elemStart = c5_getTop(c5actDropElement);
						var elemEnd = elemStart + jQuery(c5actDropElement).height();
						var indicatorHeight = jQuery('#c5DraggableContentInsertIndicator').height();
						var dstY = 0;
						if (half=="upper") {
							var upperElemDistance = c5_getDraggableContentUpperContentDistance(c5actDraggedElement, c5actDropElement);
							dstY = elemStart-indicatorHeight/2 - upperElemDistance/2;
						}
						else {
							var lowerElemDistance = c5_getDraggableContentLowerContentDistance(c5actDraggedElement, c5actDropElement);
							dstY = elemEnd-indicatorHeight/2 + lowerElemDistance/2;
						}
						jQuery('#c5DraggableContentInsertIndicator').css({
							top: dstY+"px",
							left: c5_getLeft(c5actDropElement)+"px",
							display: "block"
						});
					}
				})
				.bind('dragend', function(event) {
					// cleanup
					c5contentIsDragged = false;
					jQuery(c5lastDragHandle).attr('title', c5lastDragTitle);
					c5actDraggedElement = null;
					jQuery("#c5DraggableContentInsertIndicator").remove();
					jQuery( event.dragProxy ).fadeOut( "fast", function(){
						jQuery( this ).remove();
						jQuery('.c5draggableContentDragProxy').remove();
					});
					jQuery(this).animate({
						opacity: 1
					})
				});

			//droppables
			jQuery(".c5draggableContent, .c5contentAddElement")
				.bind( "dropstart", function(event){
					// don't drop in itself
					if (this == event.dragTarget)
						return false;
					c5actDropElement = this;
					// activate the drop indicator
					jQuery("#c5DraggableContentInsertIndicator").remove();
					jQuery("body").append(c5_getDraggableContentInsertBar());
					jQuery("#c5DraggableContentInsertIndicator").css({
						width: jQuery(this).width()+"px",
						top: event.offsetY,
						left: event.offsetX
					});
					// activate the "drop" target element
					jQuery(this).addClass("c5activeDroppable");
				})
				.bind( "drop", function(event){
					jQuery(c5actDraggedElement).animate({ height: "1px" }, "normal", "linear", function() { jQuery( this ).css( {display: "none" }); });
					// trigger serverside-action
					var tmp1 = c5actDraggedElement.id.split("_");
					var tmp2 = c5actDropElement.id.split("_");
					var dragId = tmp1[1];
					var dropId = tmp2[1];
					var dragAnchor = c5_getAnchorFromClass(c5actDraggedElement);
					var dropAnchor = c5_getAnchorFromClass(c5actDropElement);
					if (c5actDropElement.id.indexOf("c5contentAddElement_")==0) {
						var dropId = "";
						var dropAnchor = tmp2[1];
					}
					var half = c5_getDraggableContentDropHalf(c5actDropElement);
					//stm_dumpVars("----- DROP-Dump -----", dragId, dragAnchor, dropId, dropAnchor, half);
					c5_ajaxDraggableContent(dragId, dragAnchor, dropId, dropAnchor, half);
					// cleanup
					jQuery("#c5DraggableContentInsertIndicator").remove();
					c5actDropElement = null;
				})
				.bind( "dropend", function( event ){
					c5actDropElement = null;
					// deactivate the drop indicator
					jQuery("#c5DraggableContentInsertIndicator").remove();
					// deactivate the "drop" target element
					jQuery( this ).removeClass("c5activeDroppable");
				});

		});

}

function c5_dragContentScrollWatcher() {
	var SCROLLGRACE = 30;	// pixels
	var SCROLLSTEP = 10;	// pixels
	if (c5contentIsDragged)
		setTimeout("c5_dragContentScrollWatcher()", 50);
	var pageOffY = jQuery(window).scrollTop();
	var pageHeight = jQuery(window).height();
	var documentHeight = jQuery(document).height();
	c5_debugTrace( "mouseY="+mouseY+"<br>" + "scrollTop="+jQuery(window).scrollTop()+"<br>" );
	if (mouseY-pageOffY<SCROLLGRACE)
		jQuery(window).scrollTop(Math.max(0, pageOffY-SCROLLSTEP));
	if (pageHeight-mouseY<SCROLLGRACE)
		jQuery(window).scrollTop(Math.min(documentHeight-pageHeight, pageOffY+SCROLLSTEP));
}

function c5_getDraggableContentInsertBar() {
	return ""+
		"<div id=\"c5DraggableContentInsertIndicator\" style=\"z-index:9999; width:200px; position:absolute; top:10px; left:10px; display:none\">"+
		"<table width=\"100%\" cellspacing=0 cellpadding=0 border=0><tr>"+
		"<td><img src=\""+c5js_saroot()+"gfx/insertbar_left.gif\" alt=\"\" border=0></td>"+
		"<td width=\"100%\" style=\"font-size:1px; background-image:url("+c5js_saroot()+"gfx/insertbar_mid.gif)\">&nbsp;</td>"+
		"<td><img src=\""+c5js_saroot()+"gfx/insertbar_rite.gif\" alt=\"\" border=0></td>"+
		"</tr></table>"+
		"</div>";
}

function c5_getDraggableContentDropHalf(dropElement) {
	var elemStart = c5_getTop(dropElement);
	var elemEnd = elemStart + jQuery(dropElement).height();
	var half = "lower";
	if (mouseY<elemStart+(elemEnd-elemStart)/2)
		half = "upper";
	//c5_debugTrace("elemPos: "+elemStart+"-"+elemEnd+"<br>dropElement: "+dropElement.id+"<br>HALF: "+half);
	return half;
}

function c5_getDraggableContentUpperContentDistance(dragElement, dropElement) {
	var allElemsAtAnchor = jQuery('#'+dropElement.parentNode.id+' > div[id^=c5contentId]');
	var prevElem = null;
	var selfFound = false;
	allElemsAtAnchor.each(function (i) {
		if (this.id==dropElement.id)
			selfFound = true;
		if (!selfFound)
			prevElem = this;
	});
	if (prevElem!=null) {
		var prevStart = c5_getTop(prevElem);
		var prevEnd = prevStart + jQuery(prevElem).height();
		var elemStart = c5_getTop(dropElement);
		return elemStart - prevEnd;
	}
	return 0;
}

function c5_getDraggableContentLowerContentDistance(dragElement, dropElement) {
	var allElemsAtAnchor = jQuery('#'+dropElement.parentNode.id+' > div[id^=c5contentId]');
	var nextElem = null;
	var selfFound = false;
	allElemsAtAnchor.each(function (i) {
		if (selfFound && nextElem==null)
			nextElem = this;
		if (this.id==dropElement.id)
			selfFound = true;
	});
	if (nextElem!=null) {
		var nextStart = c5_getTop(nextElem);
		var elemStart = c5_getTop(dropElement);
		var elemEnd = elemStart + jQuery(dropElement).height();
		return nextStart - elemEnd;
	}
	return 0;
}

function c5_ajaxDraggableContent(dragId, dragAnchor, dropId, dropAnchor, half) {
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: c5getAJAXPREFIX()+"&content_action=sort_draggable_content&dragId="+dragId+"&dropId="+dropId+"&dropAnchor="+dropAnchor+"&half="+half+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			if (dropAnchor!=dragAnchor)
				c5_redrawAnchor(dropAnchor);
			c5_redrawAnchor(dragAnchor);
			c5_hideAjaxLayer();
		}
	});
}

/************
 SELECT-PAGE-WIZARD
 *************************/

var c5_lastTriggeredPageElement = null;

function c5_openSelectPageWindow(content_id, element_id, c5a, c5l) {
	c5_lastTriggeredPageElement = element_id;
	eval("var form = document.c5editContentForm_"+content_id);
	if (typeof form == "undefined")
		eval("var form = document.c5edit_"+content_id);
	if (typeof form == "undefined")
		eval("var form = document.c5_edit_link_form");
	if (typeof form == "undefined")
		eval("var form = document.c5_add_reference_form");
	if (typeof form == "undefined")
		eval("var form = document."+c5pages2_globalFormId);
	eval("var element = form."+element_id);
	// lang override in edit link
	if (element_id=="internal_id" && $chk(document.c5_edit_link_form) && $chk(document.c5_edit_link_form.internal_lang)) {
		tmp = document.c5_edit_link_form.internal_lang.options[document.c5_edit_link_form.internal_lang.selectedIndex].value;
		if (tmp!="" && tmp!="*")
			c5l = tmp;
		else
			c5l = c5js_c5l();
	}
	// reset layer
	c5_resetHalfmodalDialogEx(4, 500, 300, "VOID");
	// AJAX-Action
	var url = c5getAJAXPREFIX() + "&c5pages_action=show_tree&content_id="+content_id+"&element_id="+element_id+"&element_value="+escape(element.value)+"&element_area="+c5a+"&element_lang="+c5l;
	c5_doHalfmodalGETrequestEx(4, url);
}

function c5_usePageFromHalfmodalDialog(id, title) {
	$('uniq_'+c5_lastTriggeredPageElement).value = "("+id+") "+title;
	c5_hideHalfmodalDialogNew($('c5_halfmodal_content4'));
}

function c5_searchPageInHalfmodalDialog() {
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: c5_pagesTreePopupSearchUrl+"&q="+escape(Utf8.encode($('ptSearchQ').value))+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			jQuery("#treetool_pt").html(html);
			c5_hideAjaxLayer();
		}
	});
}

/************
 CUSTOM PAGE SELECT WIZARD
 *************************/

var c5_c5ajaxtree_lastSelectedPage_area = "";
var c5_c5ajaxtree_lastSelectedPage_lang = "";
var c5_c5ajaxtree_lastSelectedPage_id = -1;
var c5_c5ajaxtree_lastSelectedPage_title = "";
var c5_c5ajaxtree_nextToExecuteFunction = "";

function c5_c5ajaxtree_initDialog(functionToExecuteOnFinish, dialogNumber) {
	if (typeof dialogNumber == "undefined")
		dialogNumber = 0;
	c5_c5ajaxtree_lastSelectedPage_area = "";
	c5_c5ajaxtree_lastSelectedPage_lang = "";
	c5_c5ajaxtree_lastSelectedPage_id = -1;
	c5_c5ajaxtree_lastSelectedPage_title = "";
	c5_c5ajaxtree_nextToExecuteFunction = functionToExecuteOnFinish;
	var url = c5getAJAXPREFIX() + "&c5ajaxtree_action=show_tree";
	c5_doHalfmodalGETrequestEx(dialogNumber, url);
}

function c5_c5ajaxtree_usePageFromHalfmodalDialog(area, lang, id, title) {
	c5_c5ajaxtree_lastSelectedPage_area = area;
	c5_c5ajaxtree_lastSelectedPage_lang = lang;
	c5_c5ajaxtree_lastSelectedPage_id = id;
	c5_c5ajaxtree_lastSelectedPage_title = title;
	eval(c5_c5ajaxtree_nextToExecuteFunction+"();");
}

function c5_c5ajaxtree_searchPageInHalfmodalDialog() {
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: c5_c5ajaxtree_pagesTreePopupSearchUrl+"&q="+escape(Utf8.encode($('ptSearchQ').value))+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			jQuery("#treetool_ptc5ajax").html(html);
			c5_hideAjaxLayer();
		}
	});
}

/************
 HALFMODALDIALOG EX
 *************************/

var c5_removeHalfmodalDialogTimeoutEx = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];

function c5_enterHalfmodalDialogEx(n) {
	if (c5_removeHalfmodalDialogTimeoutEx[n]!=-1)
		clearTimeout(c5_removeHalfmodalDialogTimeoutEx[n]);
}

function c5_leaveHalfmodalDialogEx(n) {
	if (c5_removeHalfmodalDialogTimeoutEx[n]!=-1)
		clearTimeout(c5_removeHalfmodalDialogTimeoutEx[n]);
	c5_removeHalfmodalDialogTimeoutEx[n] = 1;//setTimeout('c5_doHideHalfmodalDialog()', '2000');
}

function c5_doHideHalfmodalDialogEx(n) {
	c5_removeHalfmodalDialogTimeoutEx[n] = -1;
	c5_hideHalfmodalDialogEx(n);
}

function c5_resetHalfmodalDialogEx(n, w, h, content) {
	$('c5_halfmodal_dialog'+n).setStyles({
		'top': '0px',
		'left': '0px',
		'width': w+'px',
		'display': 'none'
	});
	$('c5_halfmodal_content'+n).setStyles({
		'overflow': 'auto',
		'width': 'auto',
		'height': h+'px'
	});
	$('c5_halfmodal_content'+n).innerHTML = content;
}

function c5_showHalfmodalDialogEx(n, posY, posX, posStyleY, posStyleX) {
	var FX_DURATION = c5_FX_DURATION();
	var HALFMODAL_MIN_WIDTH = 150;
	var HALFMODAL_MIN_HEIGHT = 40;
	// determine size
	$('c5_halfmodal_dialog'+n).setStyles({
		'top': '0px',
		'left': '0px',
		'opacity': 0.01,
		'display': 'block'
	});
	var dstSize = $('c5_halfmodal_dialog'+n).getSize();
	var dstWidth = dstSize.x;
	var dstHeight = dstSize.y;
	var dstSizeInner = $('c5_halfmodal_content'+n).getSize();
	var dstWidthInner = dstSizeInner.x;
	var dstHeightInner = dstSizeInner.y;
	var dstPosX = posX;
	var dstPosY = posY;
	//alert("dstPosX="+dstPosX+" | dstPosY="+dstPosY+"\n"+"dstWidth="+dstWidth+" | dstHeight="+dstHeight);
	if (posStyleX=="left")
		dstPosX = posX;
	else if (posStyleX=="right")
		dstPosX = posX-dstWidth;
	else // must be middle
		dstPosX = posX-dstWidth/2;
	if (posStyleY=="top")
		dstPosY = posY;
	else if (posStyleY=="bottom")
		dstPosY = posY-dstHeight;
	else // must be middle
		dstPosY = posY-dstHeight/2;
	dstPosX = c5_reposElementInBounds(dstPosX, dstWidth, jQuery(document).scrollLeft(), document.body.clientWidth+document.body.scrollLeft);
	dstPosY = c5_reposElementInBounds(dstPosY, dstHeight, jQuery(document).scrollTop(), document.body.clientHeight+document.body.scrollTop);
	// initial setup in DOM
	var lastOverflow = $('c5_halfmodal_content'+n).getStyle('overflow');
	$('c5_halfmodal_content'+n).setStyles({
		'overflow': 'hidden',
		'height': HALFMODAL_MIN_HEIGHT+'px'
	});
	$('c5_halfmodal_dialog'+n).setStyles({
		'position': 'absolute',
		'width': HALFMODAL_MIN_WIDTH+'px',
		'top': (dstPosY+(dstHeight-HALFMODAL_MIN_HEIGHT)/2)+'px',
		'left': (dstPosX+(dstWidth-HALFMODAL_MIN_WIDTH)/2)+'px',
		'opacity': 0.01,
		'display': 'block'
	});
	// anim + cleanup
	var fx1 = new Fx.Morph($('c5_halfmodal_dialog'+n), {duration: FX_DURATION, wait: false});
	var fx2 = new Fx.Morph($('c5_halfmodal_content'+n), {duration: FX_DURATION, wait: false});
	fx1.start( {
		'width': dstWidth+'px',
		'top': dstPosY+'px',
		'left': dstPosX+'px',
		'opacity': 1
	} );
	fx2.start( {
		'height': dstHeightInner+'px'
	} ).chain(function() {
		$('c5_halfmodal_content'+n).setStyle('overflow', lastOverflow);
		c5_leaveHalfmodalDialogEx(n);
	});
}

function c5_hideHalfmodalDialogNew(elem, n) {
	if (n=="")
		n = -1;
	while (true) {
		var e = elem;
		if (e == null || typeof e == "undefined")
			break;
		if (e.nodeName=="DIV" && e.className=="c5_halfmodal_dialog") {
			var dialogNumber = e.id.substring(e.id.length-1);
			var dialogName = e.id.substring(0, e.id.length-1);
			for (var d=parseInt(dialogNumber); d<=9; d++) {
				if ($(dialogName+d) && $(dialogName+d).style.display!="none") {
					var FX_DURATION = c5_FX_DURATION();
					var fx1 = new Fx.Morph($(dialogName+d), {duration: FX_DURATION, wait: false});
					fx1.start( { 'opacity': 0 } );
				}
			}
		}
		elem = e.parentNode;
	}
}

function c5_hideHalfmodalDialogEx(n) {
	var FX_DURATION = c5_FX_DURATION();
	var fx1 = new Fx.Morph($('c5_halfmodal_dialog'+n), {duration: FX_DURATION, wait: false});
	fx1.start( {
		'opacity': 0
	} );
}

function c5_doHalfmodalGETrequestEx(n, url) {
	var dstDivName = "c5_halfmodal_content"+n;
	var actX = mouseX;
	var actY = mouseY;
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: url+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(data){
			jQuery("#"+dstDivName).html("Loading...");
			c5_showHalfmodalDialogEx(n, actY+5, actX+5, "top", "left");
			c5_hideAjaxLayer();
			setTimeout('c5_checkForJsExecLayer()', c5_FX_DURATION()*2);
			/// ERROR since jQuery 1.6 !!! wegen JS im data, bricht der Vorgang hier ab!?
			jQuery("#"+dstDivName).html(data);
		}
	});
}

function c5_doHalfmodalGETrequestL8(url, dstDivName) {
	var actX = mouseX;
	var actY = mouseY;
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: url+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			jQuery("#"+dstDivName).html(html);
			c5_debugTrace("JQUERY//OPEN ADD-WINDOW:<br>y="+mouseY+"; x="+mouseX);
			setTimeout('c5_checkForJsExecLayer()', c5_FX_DURATION()*2);
			c5_hideAjaxLayer();
		}
	});
}

/************
 CONTROL LAYER
 *************************/

function c5_hideControlLayer() {
	Cookie.write('c5controlHide', '1');
	$('c5control').setStyles({'display':'none'});
}

function c5_resetControlLayer() {
	c5_switchControlLayer();
	$('c5control').setStyles({'top':'5px', 'left':'5px'});
	Cookie.write('c5controlX', "5");
	Cookie.write('c5controlY', "5");
}

function c5_initControlLayer() {
	if (Cookie.read('c5controlHide')=="1")
		return;
	new Drag.Move('c5control', {
		'container': document.body,
		'onComplete': function () {
			var p = $('c5control').getPosition();
			Cookie.write('c5controlX', p.x);
			Cookie.write('c5controlY', p.y);
		}
	});

	var x = Cookie.read('c5controlX');
	var y = Cookie.read('c5controlY');
	if (x=="" || x==null)
		x = 5;
	if (y=="" || y==null)
		y = 5;

	$('c5control').setStyles({'display':'block', 'top':y+'px', 'left':x+'px'});
	$('c5controlInner').setStyles({'display':Cookie.read('c5controlDisplay')=="block"?'block':'none'});
	$('c5controlEmpty').setStyles({'display':Cookie.read('c5controlDisplay')=='block'?'none':'block'});
}

function c5_switchControlLayer() {
	if ($('c5controlInner').getStyle('display')=='block') {
		$('c5controlInner').setStyle('display', 'none');
		$('c5controlEmpty').setStyle('display', 'block');
		Cookie.write('c5controlDisplay', 'none');
	}
	else {
		$('c5controlInner').setStyle('display', 'block');
		$('c5controlEmpty').setStyle('display', 'none');
		Cookie.write('c5controlDisplay', 'block');
	}
}

/************
 DEBUG LAYER
 *************************/

var c5_debugItems = new Hash();

function c5_debugSetData(k, v) {
	c5_debugItems.set(k, v);
}

function c5_updateDebugLayer() {
	if ($('c5debugInner').getStyle('display')=='block') {
		var res = '<table width="100%" cellspacing=0 cellpadding=0 border=0>';
		c5_debugItems.each(function(v,k) {
			res += '<tr><td width="30%">'+k+'</td><td width="70%">'+v+'</td></tr>';
		});
		res += '</table>';
		$('c5debugStandard').innerHTML = res;
	}
	setTimeout('c5_updateDebugLayer()', 200);
}

function c5_hideDebugLayer() {
	Cookie.write('c5debugHide', '1');
	$('c5debug').setStyles({'display':'none'});
}

function c5_resetDebugLayer() {
	c5_switchDebugLayer();
	$('c5debug').setStyles({'top':'30px', 'left':'5px'});
	Cookie.write('c5debugX', "5");
	Cookie.write('c5debugY', "30");
}

function c5_initDebugLayer() {
	if (Cookie.read('c5debugHide')=="1")
		return;
	new Drag.Move('c5debug', {
		'container': document.body,
		'onComplete': function () {
			var p = $('c5debug').getPosition();
			Cookie.write('c5debugX', p.x);
			Cookie.write('c5debugY', p.y);
		}
	});
	var x = Cookie.read('c5debugX');
	var y = Cookie.read('c5debugY');
	if (x=="" || x==null)
		x = 5;
	if (y=="" || y==null)
		y = 30;
	$('c5debug').setStyles({'display':'block', 'top':y+'px', 'left':x+'px'});
	$('c5debugInner').setStyles({'display':Cookie.read('c5debugDisplay')=="block"?'block':'none'});
	$('c5debugEmpty').setStyles({'display':Cookie.read('c5debugDisplay')=='block'?'none':'block'});
	setTimeout('c5_updateDebugLayer()', 500);
}

function c5_switchDebugLayer() {
	if ($('c5debugInner').getStyle('display')=='block') {
		$('c5debugInner').setStyle('display', 'none');
		$('c5debugEmpty').setStyle('display', 'block');
		Cookie.write('c5debugDisplay', 'none');
	}
	else {
		$('c5debugInner').setStyle('display', 'block');
		$('c5debugEmpty').setStyle('display', 'none');
		Cookie.write('c5debugDisplay', 'block');
	}
}

/************
 LIST HELPERS
 *************************/

function c5_listAddItems(elementName) {
	// row
	var tr = document.createElement("TR");
	// td's
	var td1 = document.createElement("TD");
	td1.setAttribute('colspan', '5')
	var td1txt = document.createTextNode("TEXT TEXT TEXT 1")
	td1.appendChild(td1txt);
	// append td's
	tr.appendChild(td1);
	// append row
	$('table_'+elementName).appendChild(tr);
}

/************
 LINKTOOL HELPERS
 *************************/

function c5_handleLinktoolVisibility() {
	var linkType = document.c5_edit_link_form.type.value;
	var targetType = document.c5_edit_link_form.anc_target.value;
	// type-specific
	c5_hideLinktoolElements1();
	if (linkType=="internal") {
		$('editlink_tr_head_internal').style.display = document.all?'block':'table-row';
		$('editlink_tr_internal_id').style.display = document.all?'block':'table-row';
		$('editlink_tr_internal_lang').style.display = document.all?'block':'table-row';
		$('editlink_tr_get_params').style.display = document.all?'block':'table-row';
	}
	else if (linkType=="userfile") {
		$('editlink_tr_head_userfile').style.display = document.all?'block':'table-row';
		$('editlink_tr_userfile').style.display = document.all?'block':'table-row';
	}
	else if (linkType=="external") {
		$('editlink_tr_head_external').style.display = document.all?'block':'table-row';
		$('editlink_tr_external').style.display = document.all?'block':'table-row';
	}
	else if (linkType=="email") {
		$('editlink_tr_head_mailto').style.display = document.all?'block':'table-row';
		$('editlink_tr_mailto').style.display = document.all?'block':'table-row';
		$('editlink_tr_mail_subject').style.display = document.all?'block':'table-row';
	}
	else { // linkType==""
	}
	// others
	c5_hideLinktoolElements2();
	c5_hideLinktoolElements3();
	if (linkType!="") {
		c5_showLinktoolElements2();
		if (linkType=="email") { // undo for email
			$('editlink_tr_anc_target').style.display = 'none';
		}
		if (targetType=="*sat" && linkType!="email") {
			c5_showLinktoolElements3();
		}
	}
}

function c5_hideLinktoolElements1() {
	$('editlink_tr_head_internal').style.display = 'none';
	$('editlink_tr_internal_id').style.display = 'none';
	$('editlink_tr_internal_lang').style.display = 'none';
	$('editlink_tr_get_params').style.display = 'none';
	$('editlink_tr_head_userfile').style.display = 'none';
	$('editlink_tr_userfile').style.display = 'none';
	$('editlink_tr_head_external').style.display = 'none';
	$('editlink_tr_external').style.display = 'none';
	$('editlink_tr_head_mailto').style.display = 'none';
	$('editlink_tr_mailto').style.display = 'none';
	$('editlink_tr_mail_subject').style.display = 'none';
}

function c5_hideLinktoolElements2() {
	$('editlink_tr_head_anchor').style.display = 'none';
	$('editlink_tr_anc_target').style.display = 'none';
	$('editlink_tr_anc_class').style.display = 'none';
	$('editlink_tr_anc_tags').style.display = 'none';
}

function c5_showLinktoolElements2() {
	$('editlink_tr_head_anchor').style.display = document.all?'block':'table-row';
	$('editlink_tr_anc_target').style.display = document.all?'block':'table-row';
	$('editlink_tr_anc_class').style.display = document.all?'block':'table-row';
	$('editlink_tr_anc_tags').style.display = document.all?'block':'table-row';
}

function c5_hideLinktoolElements3() {
	$('editlink_tr_head_satellite').style.display = 'none';
	$('editlink_tr_sat_windowname').style.display = 'none';
	$('editlink_tr_sat_width').style.display = 'none';
	$('editlink_tr_sat_height').style.display = 'none';
	$('editlink_tr_sat_top').style.display = 'none';
	$('editlink_tr_sat_left').style.display = 'none';
	$('editlink_tr_sat_menubar').style.display = 'none';
	$('editlink_tr_sat_toolbar').style.display = 'none';
	$('editlink_tr_sat_location').style.display = 'none';
	$('editlink_tr_sat_directories').style.display = 'none';
	$('editlink_tr_sat_scrollbars').style.display = 'none';
	$('editlink_tr_sat_resizable').style.display = 'none';
	$('editlink_tr_sat_status').style.display = 'none';
}

function c5_showLinktoolElements3() {
	$('editlink_tr_head_satellite').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_windowname').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_width').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_height').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_top').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_left').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_menubar').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_toolbar').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_location').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_directories').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_scrollbars').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_resizable').style.display = document.all?'block':'table-row';
	$('editlink_tr_sat_status').style.display = document.all?'block':'table-row';
}

/************
 HELPER FUNCS
 *************************/

function c5_getAnchorFromClass(elem) {
	if (typeof elem == "string" && elem.substring(0,1) != "#")
		elem = "#"+elem;
	var classes = jQuery(elem).attr("class").split(" ");
	var anchor = "?";
	for (var c=0; c<classes.length; c++) {
		var tmp = classes[c].split("c5contentAtAnchor_");
		if (tmp.length==2 && tmp[0]=="")
			anchor = tmp[1];
	}
	return anchor;
}

function c5_checkAnchorDefaultAddbox(anchor_id) {
	var ac = $('c5containerAnchor_'+anchor_id);
	var contentsInAnchor = 0;
	ac.getChildren().each(function(v,k) {
		if (v.className.indexOf('c5contentAtAnchor_'+anchor_id)!=-1)
			contentsInAnchor++;
	});
	var displaySoll = contentsInAnchor>0?'none':'block';
	var displayIst = $('c5contentAddElement_'+anchor_id).getStyle('display');
	if (displaySoll!=displayIst) {
		if (displaySoll=="none")
			stm_hideLayer('c5contentAddElement_'+anchor_id, c5_FX_DURATION());
		else
			stm_showLayer('c5contentAddElement_'+anchor_id, c5_FX_DURATION());
	}
}

function c5_reposElementInBounds(pos, size, min, max) {
	var BORDERBUFFER = c5_BORDERBUFFER();
	var res = pos;
	if (pos<min+BORDERBUFFER)
		res = min+BORDERBUFFER;
	else if (pos+size>max-BORDERBUFFER)
		res = max-size-BORDERBUFFER;
	return res;
}

function c5_redrawAllAnchors() {
	var allElemsWithAnchor = jQuery('div[id^=c5containerAnchor]');
	allElemsWithAnchor.each(function (i) {
		var tmp = this.id.split('c5containerAnchor_');
		c5_redrawAnchor(tmp[1]);
	});
}

function c5_redrawAnchor(anchor_id) {
	c5_showAjaxLayer();
	jQuery.ajax({
		type: "GET",
		url: c5getAJAXPREFIX()+"&content_action=rerender_anchor&anchor_id="+anchor_id+"&c5mooUTF8=1",
		cache: false,
		dataType: "html",
		processData: false,
		success: function(html){
			var final_html = stm_strReplace(html, "<div>((C5-UNKNOWN-BETWEEN))</div>", "<div class=\"c5contentBetween_"+anchor_id+"\">"+jQuery("#c5contentHiddenBetween_"+anchor_id).html()+"</div>");
			jQuery('#c5containerAnchor_'+anchor_id).replaceWith(final_html);
			c5_initContentsDnd();
			c5_hideAjaxLayer();
		}
	});
}

function c5_repairTinyMceForAjax(formId) {
	// check if tinymce exists
	if (typeof tinyMCE == "undefined")
		return;
	// chekc if therer are editors
	for (var i=0; i<$(formId).elements.length; i++) {
		var e = $(formId).elements[i];
		if (e.name!="") {
			var me = "c5editContent__"+e.name;
			if (tinyMCE.get(me) && typeof tinyMCE.get(me)!="undefined" && tinyMCE.get(me)!=null) {
				var eobj = tinyMCE.get(me);
				// ??? eobj.execCommand('mceCleanup', false);
				eobj.save();
				eobj.destroy();
			}
		}
	}
}

function c5_doEditPOSTrequest(formId, srcDivName, dstDivName, allowTinyMceRepair, anchorToUpdate) {
	if (typeof anchorToUpdate == "undefined")
		anchorToUpdate = "";
	c5_showAjaxLayer();
	$(formId).action += "&c5mooUTF8=1";
	// repair tinyMCE boxes
	if (typeof allowTinyMceRepair == "undefined" || allowTinyMceRepair=="")
		allowTinyMceRepair = true;
	if (allowTinyMceRepair)
		c5_repairTinyMceForAjax(formId);
	// do ajax request
	$(formId).set('send', {
		onSuccess: function(transport, xml) {
			$(dstDivName).set('html', transport.stripScripts(true));
			c5_doDivTransition($(srcDivName), $(dstDivName), anchorToUpdate);
			c5_hideAjaxLayer();
		}
	});
	$(formId).send();
}

function c5_doEditPOSTrequestSilent(formId, dstDivName, allowTinyMceRepair, anchorToUpdate) {
	if (typeof anchorToUpdate == "undefined")
		anchorToUpdate = "";
	c5_showAjaxLayer();
	$(formId).action += "&c5mooUTF8=1";
	// repair tinyMCE boxes
	if (typeof allowTinyMceRepair == "undefined" || allowTinyMceRepair=="")
		allowTinyMceRepair = true;
	if (allowTinyMceRepair)
		c5_repairTinyMceForAjax(formId);
	// do ajax request
	$(formId).set('send', {
		onSuccess: function(transport, xml) {
			$(dstDivName).set('html', transport.stripScripts(true));
			c5_checkForJsExecLayer();
			if (anchorToUpdate!="")
				c5_redrawAnchor(anchorToUpdate);
			c5_hideAjaxLayer();
		}
	});
	$(formId).send();
}

function c5_doEditGETrequest(url, srcDivName, dstDivName, anchorToUpdate) {
	if (typeof anchorToUpdate == "undefined")
		anchorToUpdate = "";
	c5_showAjaxLayer();
	new Request({
		url: url+"&c5mooUTF8=1",
		method: 'get',
		onSuccess: function(transport, xml) {
			$(dstDivName).set('html', transport.stripScripts(true));
			c5_doDivTransition($(srcDivName), $(dstDivName), anchorToUpdate);
			c5_hideAjaxLayer();
		}
	 }).send();
}

function c5_createTempDivForAjax(divName) {
	var t = document.createElement('div');
	t.id = divName;
	t.style.display = "block";
	t.style.position = "absolute";
	t.style.width = "1900px";
	t.style.top = "0px";
	t.style.left= "-2000px";
	return t;
}

function c5_getScrollStep(diff) {
	var negative = (diff<0)?-1:1;
	if (diff==0)
		return 0;
	if (Math.abs(diff)<4)
		return 1*negative;
	if (Math.abs(diff)<8)
		return 2*negative;
	if (Math.abs(diff)<12)
		return 4*negative;
	if (Math.abs(diff)<25)
		return 6*negative;
	if (Math.abs(diff)<50)
		return 10*negative;
	return 20*negative;
}

var c5_globalScrollToTimeout = -1;
var c5_globalScrollNoChange = 0;

function c5_scrollTo(x, y, oldX, oldY) {
	var wndStartX = jQuery(document).scrollLeft();
	var wndStartY = jQuery(document).scrollTop();
	var diffX = x-wndStartX;
	var diffY = y-wndStartY;
	if (typeof oldX != "undefined") {
		if (oldX==wndStartX && oldY==wndStartY) {
			c5_globalScrollNoChange++;
		}
	}
	if (c5_globalScrollNoChange>20 || (diffX==0 && diffY==0)) {
		c5_globalScrollNoChange = 0;
		c5_globalScrollToTimeout = -1;
		return;
	}
	var stepX = c5_getScrollStep(diffX);
	var stepY = c5_getScrollStep(diffY);
	scrollTo(wndStartX+stepX, wndStartY+stepY);
	if (c5_globalScrollToTimeout != -1)
		clearTimeout(c5_globalScrollToTimeout);
	c5_globalScrollToTimeout = setTimeout("c5_scrollTo("+x+", "+y+", "+wndStartX+", "+wndStartY+")", 15);
}

function c5_doDivTransition(srcDiv, dstDiv, anchorToUpdate) {

	if (typeof anchorToUpdate == "undefined")
		anchorToUpdate = "";
	jQuery("#"+dstDiv.id).css("display", "none");


	jQuery("#"+srcDiv.id).html(jQuery("#"+dstDiv.id).html());
	jQuery("#"+srcDiv.id).effect("highlight", {}, 1000);
	jQuery("#"+dstDiv.id).remove();
	c5_checkForJsExecLayer();
	if (anchorToUpdate!="") {
		c5_redrawAnchor(anchorToUpdate);
	}

/*	stm_switchLayersJQ(srcDiv.id, dstDiv.id, c5_FX_DURATION(), false, true, function() {
		jQuery("#"+srcDiv.id).css({
			display: 'block',
			opacity: '1',
			height: 'auto',
			width: 'auto'
		});
		jQuery("#"+srcDiv.id).html(jQuery("#"+dstDiv.id).html());
		jQuery("#"+dstDiv.id).remove();
		c5_checkForJsExecLayer();
		if (anchorToUpdate!="") {
			c5_redrawAnchor(anchorToUpdate);
		}
	});*/

	return;
	// OLD VERSION

	if (typeof anchorToUpdate == "undefined")
		anchorToUpdate = "";
	// settings
	var FX_DURATION = c5_FX_DURATION();
	var BORDERBUFFER = c5_BORDERBUFFER();
	// compute resizeEffect
	var srcSize = srcDiv.getSize();
	dstDiv.setStyle('opacity', 0.01);
	dstDiv.style.top = srcDiv.getTop(); //c5_getTop(srcDiv);
	dstDiv.style.left = srcDiv.getLeft(); //c5_getLeft(srcDiv);
	dstDiv.style.width = srcSize.x+"px";
	var dstSize = dstDiv.getSize();
	var startHeight = srcSize.y;
	var endHeight = dstSize.y;
	var endWidth = srcSize.x;
	srcDiv.style.overflow = 'hidden';
	dstDiv.style.overflow = 'hidden';
	dstDiv.style.height = startHeight;
	// compute scrolling
//	var srcOffset = jQuery(srcDiv)
	var elemStartX = srcDiv.getLeft();
	var elemStartY = srcDiv.getTop();
	var elemEndX = elemStartX+dstSize.x;
	var elemEndY = elemStartY+endHeight;
	var wndStartX = document.body.scrollLeft;
	var wndStartY = jQuery(document).scrollTop();
	var wndEndX = document.body.clientWidth - document.body.scrollLeft;
	var wndEndY = document.body.clientHeight - wndStartY;
	var diffX = 0;
	var diffY = 0;
	//alert("elemStartY="+elemStartY+" | elemEndY="+elemEndY+"\n"+"wndStartY="+wndStartY+" | wndEndY="+wndEndY);
	if (elemEndY>wndEndY) {
		diffY = +(elemEndY-wndEndY+BORDERBUFFER);
		if (elemStartY-diffY<wndStartY)
			diffY = elemStartY-BORDERBUFFER-wndStartY;
	}
	if (elemStartY<wndStartY) {
		diffY = -(wndStartY-elemStartY+BORDERBUFFER);
	}
	//alert("elemStartX="+elemStartX+" | elemEndX="+elemEndX+"\n"+"wndStartX="+wndStartX+" | wndEndX="+wndEndX);
	if (elemEndX>wndEndX) {
		diffX = +(elemEndX-wndEndX+BORDERBUFFER);
		if (elemStartX-diffX<wndStartX)
			diffX = elemStartX-BORDERBUFFER-wndStartX;
	}
	if (elemStartX<wndStartX) {
		diffX = -(wndStartX-elemStartX+BORDERBUFFER);
	}
	diffX=diffY=0; // diffX-bug since mootools 1.2.x???
	if (diffX!=0 || diffY!=0) {
		c5_scrollTo(wndStartX+diffX, wndStartY+diffY);
	}
	// start actions
	var fx1 = new Fx.Morph(srcDiv, {duration: FX_DURATION, wait: false});
	var fx2 = new Fx.Morph(dstDiv, {duration: FX_DURATION, wait: false});
	fx1.start( {
		'height':endHeight,
		'opacity':0
	});
	fx2.start( {
		'height':endHeight,
		'opacity':1
	}).chain(function(){
		srcDiv.innerHTML = dstDiv.innerHTML;
		srcDiv.setStyle('opacity', 1);
		this.start();
	}).chain(function() {
		dstDiv.setStyle('opacity', 0);
		dstDiv.setStyle('left', "-2000");
		dstDiv.destroy();
		c5_checkForJsExecLayer();
		srcDiv.setStyle('height', 'auto');
		srcDiv.setStyle('width', endWidth+'px');
		srcDiv.setStyle('opacity', 1);
		// update complete anchor, if set
		if (anchorToUpdate!="")
			c5_redrawAnchor(anchorToUpdate);
		this.start();
	});
}

// expand a div to its parent height (elem.height = parent.height - elem.relative_top)
function c5_resizeHeightInParent(elem, parent, more_offset) {
	if (typeof more_offset == "undefined")
		more_offset = 0;
	var p = $(parent);
	if (typeof p == "undefined" || p == null)
		p = $(elem).parentNode;
	var ph = p.getSize();
	var et = $(elem).offsetTop;
	$(elem).setStyle('height', (ph.y-et-more_offset)+'px');
}

/************
 C5 GALLERY
 *************************/

function c5_showGalleryPopup(pictureGuid) {
	var ct = false;
	eval('if (typeof galleryHidePopupTimeout_'+pictureGuid+' != "undefined" && galleryHidePopupTimeout_'+pictureGuid+'!=-1) ct=true');
	if (ct) {
		eval('clearTimeout(galleryHidePopupTimeout_'+pictureGuid+');');
		return;
	}
	var imgPos = jQuery('#image_'+pictureGuid).position();
	var imgWidth = jQuery('#image_'+pictureGuid).width();
	var imgHeight = jQuery('#image_'+pictureGuid).height();
	var popupWidth = jQuery('#infopopup_'+pictureGuid).width();
	var popupHeight = jQuery('#infopopup_'+pictureGuid).height();
	var winWidth = jQuery(window).width();
	jQuery('#infopopup_'+pictureGuid).css({
		'display': 'block',
		'opacity': 0.01,
		'top': (imgPos.top-popupHeight+10)+'px',
		'left': Math.min(winWidth-popupWidth-10, Math.max(5, imgPos.left+(imgWidth-popupWidth)/2))+'px',
		'position': 'absolute'
	});
	jQuery('#infopopup_'+pictureGuid).animate({
		'top': (imgPos.top-popupHeight-1)+'px',
		'opacity': 0.8
	}, 200, 'linear', function() { /***/ });
}

function c5_hideGalleryPopup(pictureGuid) {
	var t = setTimeout("c5_hideGalleryPopup2('"+pictureGuid+"');", 500);
	eval('galleryHidePopupTimeout_'+pictureGuid+' = t;');
}

function c5_hideGalleryPopup2(pictureGuid) {
	eval('galleryHidePopupTimeout_'+pictureGuid+' = -1;');
	var imgPos = jQuery('#image_'+pictureGuid).position();
	var imgWidth = jQuery('#image_'+pictureGuid).width();
	var imgHeight = jQuery('#image_'+pictureGuid).height();
	var popupWidth = jQuery('#infopopup_'+pictureGuid).width();
	var popupHeight = jQuery('#infopopup_'+pictureGuid).height();
	var winWidth = jQuery(window).width();
	jQuery('#infopopup_'+pictureGuid).animate({
		'top': (imgPos.top-popupHeight-30)+'px',
		'opacity': 0
	}, 150, 'linear', function() { jQuery('#infopopup_'+pictureGuid).css({ 'display':'none' }); });
}


