
// dynamic menu
var mouseonmenu = '';
var openlayer = '';
var timercode = 0;
var onmenu = 0;
var setoff = 0;

function showmenu(lay) {
	setoff=1;
	onmenu = 1;
	var zeit = new Date();
	timercode = zeit.getMilliseconds()*1000 +  zeit.getSeconds();
	if(openlayer != '' )
		document.getElementById(openlayer).style.display = 'none';

	document.getElementById(lay).style.display = 'block';
	openlayer = lay;
}

function hideopen() {
	if(openlayer!='')
		document.getElementById(openlayer).style.display = 'none';

}

function hidemenu(lay) {
	setoff=0;
	onmenu = 0;

	var zeit = new Date();
	timercode = zeit.getMilliseconds()*1000 +  zeit.getSeconds();

	setTimeout('resetmenu()',2000);
}

function resetmenu() {
	if(setoff==1) { setTimeout('resetmenu()',2000); return 0; }
	var current = new Date();
	current = current.getMilliseconds()*1000 +  current.getSeconds();
	if(timercode + 1900 > current) return 0;

	if(onmenu==1) {
		timercode = current;
		setTimeout('resetmenu()',2000);
		return 0;
	}
	if(openlayer!='')
		document.getElementById(openlayer).style.display = 'none';
	openlayer = '';
}


// window

function open_window(url,windowname,w,h) {
		calcleft=docScreenX-(w/2);
		calctop=docScreenY-(h/2);
		//calcleft=docScreenX;
		//calctop=docScreenY;
		//alert(calcleft+' '+calctop);
		// production
		uw = window.open(url, windowname, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top='+calctop+',left='+calcleft+',copyhistory=no,width='+w+',height='+h);
		//  debug
		//uw = window.open(url, windowname, 'toolbar=no,location=yes,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=no,top='+calctop+',left='+calcleft+',copyhistory=no,width='+w+',height='+h);
		uw.focus();
		if (!uw.opener) uw.opener = self;
	}

function open_window_modes(url,windowname,w,h,mode) {
		calcleft=docScreenX-(w/2);
		calctop=docScreenY-(h/2);
		if(mode==1) {
			uw = window.open(url, windowname, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top='+calctop+',left='+calcleft+',copyhistory=no,width='+w+',height='+h);
		}
		uw.focus();
		if (!uw.opener) uw.opener = self;
	}


// form/field controls

	/**
	 * sync_form_submit(obj)
	 *
	 * ruft obj.form.submit() auf und prüft vorher,
	 * ob eine funktion obj.form.onsubmit() existiert, falls ja,
	 * wird diese ebenfalls aufgerufen
	 */
	function sync_form_submit(obj) {
		if (typeof obj.form.onsubmit == "function"
      			|| obj.form.form_htmlarea) {
      		obj.form.onsubmit();
      	}
		obj.form.submit();
	}

    function set_parent_val(val,parentfield,close) {

    	opener.document.getElementById(parentfield).value = val;

    	if(close==true) {
    		window.close();
    	}
    }

    function set_parent_val_submit(val,parentfield,close) {
       	pfield = opener.document.getElementById(parentfield)
       	pfield.value = val;

		sync_form_submit(pfield);

       	if(close==true) {
       		window.close();
       	}
    }

    function clear_field(fieldname,autosub) {

    	set_field(fieldname,'');
    	if(autosub) {
    		document.getElementById(fieldname).form.submit();
    	}

    }

    function set_field(fieldname,value) {
    	document.getElementById(fieldname).value=value;
    }
    function setelect_field(fieldname) {
    	document.getElementById(fieldname).checked=true;
    }
    function set_field_bg(fieldname,value) {
       	document.getElementById(fieldname).style.background=value;
    }

    function set_parent_field_bg(val,parentfield) {
      	opener.document.getElementById(parentfield).style.background = val;
    }


   // layers

   function layer_show(lay) {

  	 obj = document.getElementById(lay);
  	 obj.style.display = 'block';   }
   function layer_hide(lay) {

  	 obj = document.getElementById(lay);
  	 obj.style.display = 'none';
   }

   function layer_invisible(lay) {

  	obj = document.getElementById(lay);
 	obj.style.visibility='hidden';
   }

   function layer_adopt_field(lay,value) {
      	if(value==1) {
           	layer_show(lay);
        } else {
      		layer_hide(lay);
        }
   }

   function layer_change(lay) {
   	if(document.getElementById(lay).style.display=='block' || document.getElementById(lay).style.display=='inline') {
        	layer_hide(lay);
        } else {
       		layer_show(lay);
        }
   }

   // * * *
   // menu
   // * * *

   var openMenu = 0;
   var activeTab = 0;
   function menu_show(lay) {
     	if(openMenu!=0) {
   		menu_hide(openMenu);
   	}
   	if(lay!='') {
   		layer_show(lay);
   		openMenu = lay;
   	}
   }

   function menu_hide(lay) {
  	 layer_hide(lay);
   }

   function menu_tabclass(lay,class1,class2) {
	if(activeTab!=0) {
		document.getElementById(activeTab).className = class2;
   	}
	document.getElementById(lay).className = class1;
	activeTab = lay;
   }


   // * * *
   // editing (documents)
   // * * *


   var selected_layer=0;
   var copy_style;

   var document_editborder = '1px #cccccc dotted';
   var document_editbordermark = '1px #5588ff dotted';
   var document_editborderselect = '1px #eeff55 dotted';

   function mark_layer(lay) {
   if(lay==selected_layer) return 0;
   	obj = document.getElementById(lay);

   	obj.style.border=document_editbordermark;
   	/*obj.style.borderStyle='dotted';
   	obj.style.borderWidth='2';
   	obj.style.borderColor='4499ff';*/


   	mark_selected();

   }

   function unmark_layer(lay) {
   	obj = document.getElementById(lay);
 	obj.style.border=document_editborder;

   	//obj.style.borderStyle='none';


   	mark_selected();
   }

   function select_layer(lay) {
   	oldlayer = selected_layer;
   	selected_layer=lay;

   	if(oldlayer!=0) { unmark_layer('mark'+oldlayer); }
   	else {   	mark_selected(); }
   }

   function mark_selected() {

   	if(selected_layer!=0) {
   	      	obj = document.getElementById('mark'+selected_layer);

      	   	obj.style.border=document_editborderselect;
	      	/*
	      	obj.style.borderStyle='dotted';
	      	obj.style.borderWidth='2';
	   		obj.style.borderColor='ff9944';
	   		*/
   	}

   }



   // * * *
   // context menu
   // * * *

// mouseclicks speichern
var docScrollY=0;
var docScrollX=0;
var docScreenX=200;
var docScreenY=200;
//var docOffsetScroll=0;
   function Position(Ereignis)
   {
   	if(window.event) {
   		docScreenX=window.event.clientX;
   		docScreenY=window.event.clientY;

   		docScrollX = window.event.clientX;
		docScrollY = window.event.clientY+ document.body.scrollTop;

   	} else {

   		docScreenX=Ereignis.screenX;
   		docScreenY=Ereignis.screenY;

	   	docScrollX= Ereignis.pageX;
		docScrollY= Ereignis.pageY;
   	}
   }

document.onmousedown = Position;

// context menu -----------------------------------------------------------
var openContextSave=0;
function displayContextMenu(layid,menutype) {
	if(openContextSave!=0) {
		obj = document.getElementById(openContextSave);
		obj.style.visibility='hidden';
	}
	openContextSave = menutype+layid;

	topvalue = docScrollY-20;
	if(topvalue<0) topvalue = 0;

	obj = document.getElementById(menutype+layid);
	obj.style.left=docScrollX+10;
	obj.style.top=topvalue;
	obj.style.visibility='visible';
}

function hideContextMenu(menutype) {
	if(openContextSave!=0) {
		obj = document.getElementById(openContextSave);
		obj.style.visibility='hidden';
	}
	openContextSave = 0;
}

// deletebox -----------------------------------------------------------
function activateMsgBox(qstring,text) {
	obj = document.getElementById('messagebox');

	document.forms['messageform'].elements['qstring'].value=qstring;
	document.forms['messageform'].elements['msgtext'].value=text;

	obj.style.left=docScrollX;
	obj.style.top=docScrollY;
	obj.style.visibility='visible';
}


// * * *
// Quick Actions
// * * *

function HTMLdocElementCopy(id,chid,copypaste) {
	pastecommand = copypaste ? 'ch_pst' : 'ch_mv';

	if(selected_layer==0) {
		document.location='?c='+pastecommand+'&pstid='+id+'&ch_id='+chid;
	} else {


		document.location='?c='+pastecommand+'&pstid='+id+'&ch_id='+chid+'&cpyid='+selected_layer;
	}

}


/* selection text*/
/*function getSel()
{
	if (document.getSelection) txt = document.getSelection();
	else if (document.selection) txt = document.selection.createRange().text;
	else return;


	//return txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," ");
	return txt;
}
*/
