function getScrollingPosition()
{
	var position = [0, 0];
	if (typeof window.pageYOffset != 'undefined')
	{
		position = [
			window.pageXOffset,
			window.pageYOffset
		];
	}
	else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0)
	{
		position = [
			document.documentElement.scrollLeft,
			document.documentElement.scrollTop
		];
	}
	else if (typeof document.body.scrollTop != 'undefined')
	{
		position = [
			document.body.scrollLeft,
			document.body.scrollTop
		];
	}

	return position;
}

var scrollpos = [0, 0];

window.onscroll = function()
{
  scrollpos = getScrollingPosition();
};

function show_preview(w_info,fenstername)
{
    var infowin = window.open(w_info,fenstername,"top=10,left=10,width=620,height=520,scrollbars=no");
}

    var previewname_current=0;
    var aktiv = -1; //Variable enthält 0 bei verstecktem Kontextmenue und 1 bei sichtbarem
    var timer = 1; //Variable für timeout zum verstecken des Kontextmenues
    var posx=0; //Linke Position des Kontextmenues
    var posy=0; // obere Position des Kontextmenues

function findPosX(obj)
{
    var curleft = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function toggle_layer(id_layer, x, y) {
    if (x<1010) x=x-310;
    if ((x>=1010)&&(x<1090)) x=x-380;
    if ((x>=1090)&&(x<1190)) x=x-430;
    if ((x>=1190)&&(x<=1250)) x=x-510;
    if ((x>1250)&&(x<=1400)) x=x-610;
    if (x>1400) x=x-760;
    y=y+20;
    if (previewname_current!="")
        document.getElementById('previewname_' + previewname_current).style.visibility='hidden';
    document.getElementById('previewname_' + id_layer).style.position  = 'absolute';
    document.getElementById('previewname_' + id_layer).style.top  = y+'px';
    document.getElementById('previewname_' + id_layer).style.left = x+'px';
    document.getElementById('previewname_' + id_layer).style.zIndex = 120;
    document.getElementById('previewname_' + id_layer).style.visibility='visible';
    document.getElementById('previewname_' + id_layer).style.display='block';
    previewname_current = id_layer;

    aktiv=id_layer;
}   // of fiunction

function getLeft(l)
{
  if (l.offsetParent) return (l.offsetLeft + getLeft(l.offsetParent));
  else return (l.offsetLeft);
}
function getTop(l)
{
  if (l.offsetParent) return (l.offsetTop + getTop(l.offsetParent));
  else return (l.offsetTop);
}

    function verstecken(e) {
        if(aktiv!=-1) {
            clearTimeout(timer);
            id_layer = aktiv;
            if (document.getElementById&&!document.all) {
                posy = parseInt(getTop(document.getElementById('previewname_' + id_layer)));
            } else {
                posy = parseInt(getTop(document.getElementById('previewname_' + id_layer)));
            }
            posx = parseInt(getLeft(document.getElementById('previewname_' + id_layer)));
            o=posy;
            l=posx;
            u=posy+parseInt(document.getElementById('previewname_' + id_layer).offsetHeight);
            r=posx+parseInt(document.getElementById('previewname_' + id_layer).offsetWidth);
            if (document.getElementById&&!document.all) {
                cx = e.pageX;
                cy = e.pageY;
            } else {
                cx = window.event.clientX + document.body.scrollLeft+scrollpos[0];
                cy = window.event.clientY + document.body.scrollTop+scrollpos[1];
            }
            if(cx<l||cx>r||cy<o||cy>u) {
                befehl = "document.getElementById('previewname_"+id_layer+"').style.visibility='hidden'";
                timer = setTimeout(befehl,1000);
            } else {
//              alert(cx+'<'+l+'     '+cx+'>'+r+'     '+cy+'<'+o+'     '+cy+'>'+u);
            }
        }
    }

document.onmousemove=verstecken


   // checkBoxCatcher
   // usage:
   // 1. enclose the grid with a from and give it a id (i.e. the name of the grid-table, with "_form" appended).
   // 2. Include a hidden field called $formId+"_selected_boxes".
   // 3. Initialize the checkBoxCatcher on load passing the id of the form.
   var i42Catcher = Class.create();
   i42Catcher.prototype = {

	    initialize: function(formId)
	    {
			this.formId = formId;
            this.checkBoxBuffer = new Object();
		},

	    initialize_checkbox: function()
	    {
               var checkBoxes = Form.getInputs(document.getElementById(this.formId),"checkbox");

               for (var i=0; i<checkBoxes.length; i++) {
                   this.checkBoxBuffer[checkBoxes[i].value.toString()] = false;
               }

               hidden = $( (this.formId+"_selected_boxes") );
               var value = hidden.value.split(",");
               for (var j=0; j<value.length; j++)
                   this.checkBoxBuffer[value[j].toString()] = true;

               for (var i=0; i<checkBoxes.length; i++) {
                   for (var j=0; j<value.length; j++) {
                       if (checkBoxes[i].value.toString()==value[j].toString())
                           checkBoxes[i].checked = true;
                   }
                   checkBoxes[i].onchange = this.checkbox_toggle.bindAsEventListener(this);
               }

               document.getElementById(this.formId).onsubmit = this.checkbox_submit.bindAsEventListener(this);
           },
		
		checkbox_toggle: function(event)
		{
			if (event.target) { // Mozilla
				chkBox = event.target;
			} else { // IE
				chkBox = event.srcElement;
			}
			// this may be a clicked label and not the checkbox itself
			if (chkBox.tagName.toLowerCase() == "label") {
				chkBox = $(chkBox.htmlFor);
			}
			if (this.checkBoxBuffer[chkBox.value.toString()] == true) {
				this.checkBoxBuffer[chkBox.value.toString()] = false;
				chkBox.checked = false;
			} else {
				this.checkBoxBuffer[chkBox.value.toString()] = true;
				chkBox.checked = true;
			}
		},
	
		checkbox_update: function() {
			var checkBoxes = Form.getInputs(document.getElementById(this.formId),"checkbox");
			for (var i=0; i<checkBoxes.length; i++) {
				checkBoxes[i].onchange = this.checkbox_toggle.bindAsEventListener(this); // (re)add checkboxes to watchlist
				if (this.checkBoxBuffer[checkBoxes[i].value.toString()] == null) {
					this.checkBoxBuffer[checkBoxes[i].value.toString()] = false;
				} else if (this.checkBoxBuffer[checkBoxes[i].value.toString()] == true) {
					checkBoxes[i].checked = true;
				} else {
					checkBoxes[i].checked = false;
				}
			}
		},

		checkbox_submit: function() {
			var theForm = $(this.formId);
			var actives = new Array();
			for (var i in this.checkBoxBuffer) {
				if (this.checkBoxBuffer[i] == true) {
					actives.push(i);
				}
			}
			var value = actives.join(",");
			hidden = $( (this.formId+"_selected_boxes") );
			hidden.value = value;
			return;
		},

	    initialize_selectbox: function()
	    {
	      try
	      {
			this.selectBoxBuffer = new Object();
			var selectBoxes = Form.getSelects(document.getElementById(this.formId),"select-one");
			for (var i=0; i<selectBoxes.length; i++) {
				this.selectBoxBuffer[selectBoxes[i].id.toString()] = selectBoxes[i].options[selectBoxes[i].selectedIndex].value;
				selectBoxes[i].onchange = this.getselected.bindAsEventListener(this);
			}
			document.getElementById(this.formId).onsubmit = this.selectbox_submit.bindAsEventListener(this);
		  } catch(e) {}
		},
		
		getselected: function(event)
		{
			if (event.target) { // Mozilla
				selBox = event.target;
			} else { // IE
				selBox = event.srcElement;
			}
			// this may be a clicked label and not the checkbox itself
			if (selBox.tagName.toLowerCase() == "label") {
				selBox = $(selBox.htmlFor);
			}
			this.selectBoxBuffer[selBox.id.toString()] = selBox.options[selBox.selectedIndex].value;
		},
	
		selectbox_update: function() {
			var selectBoxes = Form.getSelects(document.getElementById(this.formId),"select-one");
			for (var i=0; i<selectBoxes.length; i++) {
				selectBoxes[i].onchange = this.getselected.bindAsEventListener(this);
				if (this.selectBoxBuffer[selectBoxes[i].id.toString()] == null) {
					this.selectBoxBuffer[selectBoxes[i].id.toString()] = "";
				} else {
					for (var j=0; j<selectBoxes[i].options.length; j++) {
						if (this.selectBoxBuffer[selectBoxes[i].id.toString()]==selectBoxes[i].options[j].value)
						selectBoxes[i].selectedIndex = j;
					}
				}
			}
		},

		selectbox_submit: function() {
			var theForm = $(this.formId);
			var actives = new Array();
			for (var i in this.checkBoxBuffer) {
				if (this.checkBoxBuffer[i] == true) {
					actives.push(this.selectBoxBuffer[i]);
				}
			}
			var value = actives.join(",");
			hidden = $( (this.formId+"_selected_select_vals") );
			hidden.value = value;
			return;
		}
	}

	function eindruckform_checkBoxHook(both)
	{
		// initialize a checkbox catcher, if we have a form
		if ( $("eindruckform") )
			if (! eindruckform_checkBoxCatcher )
			{
				eindruckform_checkBoxCatcher = new i42Catcher("eindruckform");
				eindruckform_checkBoxCatcher.initialize_checkbox();
				if (both)
    				eindruckform_checkBoxCatcher.initialize_selectbox();
			}
			else
			{
				eindruckform_checkBoxCatcher.checkbox_update();
				if (both)
					eindruckform_checkBoxCatcher.selectbox_update();
			}
		return true;
	}

	function eindruckform_selectBoxHook()
	{
		// initialize a checkbox catcher, if we have a form
		if ( $("eindruckform") )
			if (! eindruckform_selectBoxCatcher )
			{
				eindruckform_selectBoxCatcher = new i42Catcher("eindruckform");
				eindruckform_selectBoxCatcher.initialize_selectbox();
			}
			else
			{
				eindruckform_selectBoxCatcher.selectbox_update();
			}
		return true;
	}

	function updateJSONEtiTable(request, json)
	{
		var responses = json;
		if (!json){
		    //if you don't use the json tips then evaluate the renderedText instead
		    var responses = eval('(' + request.responseText + ')');
		}
		var resSize    = responses.length-1;
	  if (resSize>=0)
	  {
		if (document.getElementById('etikettliste'))
		    document.getElementById('etikettliste').style.display = 'block';
		if (document.getElementById('seitenangabe'))
		    document.getElementById('seitenangabe').style.display = 'block';
		if (document.getElementById('seitenangabe1'))
		    document.getElementById('seitenangabe1').style.display = 'block';
		if (document.getElementById('setzen'))
		    document.getElementById('setzen').style.display = 'block';
		if (document.getElementById('bestellen'))
		    document.getElementById('bestellen').style.display = 'block';
		if (document.getElementById('etikettlistediv'))
		    document.getElementById('etikettlistediv').style.display = 'none';
		for (var i = 0; i < resSize; i++)
		{
			var j = 0;
            for (key in responses[i])
            {
				try
				{
					j = j + 1;
                 	var feld   = key+i;
                 	var tdfeld = 'etd'+i+''+j;
                 	if (document.getElementById(tdfeld))
			   			if ((responses[i]['status']=='')||(responses[i]['status']=='&nbsp;'))
			   			{
							document.getElementById(tdfeld).className = 'auftrtd';
						}
						else
							document.getElementById(tdfeld).className = 'ordertd';

                    if (document.getElementById(feld))
                    {
                        var jetzt = responses[i][key];
                        if (key=='vorschau')
                            var neuer = jetzt.replace(/\\ /g, " ");
                        else
                            var neuer = jetzt;
                        document.getElementById(feld).innerHTML = neuer;
                    }
			   	} catch(e) {  }
			}
		}

		try
		{
			var anfang = responses[resSize]["sidenumber"]-10;
			if (anfang<1) anfang = 1;
			var ende = (responses[resSize]["sidenumber"]*1)+10;
			if (ende>responses[resSize]["sides"]) ende = responses[resSize]["sides"];
			var lspfeld = true;
			var nlsp    = 0;
			
			if (responses[resSize]["sides"]>1)
			{
				nlsp = 0;
				for (var i = 1; i <= responses[resSize]["sides"]; i++)
				{
					nlsp              = i;
            	   	var linkfeld      = 'sidelink_'+i;
            	   	var linkfeld2     = 'sidelink1_'+i;
               		var linkspanfeld  = 'sidelinkspan_'+i;
               		var linkspanfeld2 = 'sidelinkspan1_'+i;
	               	if (document.getElementById(linkfeld))
				   		if (responses[resSize]["sidenumber"]==i)
							document.getElementById(linkfeld).className = 'btnselected';
						else
							document.getElementById(linkfeld).className = 'btnnotselected';
	               	if (document.getElementById(linkfeld2))
				   		if (responses[resSize]["sidenumber"]==i)
							document.getElementById(linkfeld2).className = 'btnselected';
						else
							document.getElementById(linkfeld2).className = 'btnnotselected';

	               	if (document.getElementById(linkspanfeld))
						if ((i >= anfang)&&(i <= ende))
							document.getElementById(linkspanfeld).style.display = 'block';
						else
							document.getElementById(linkspanfeld).style.display = 'none';
					else	
						lspfeld = false;
	               	if (document.getElementById(linkspanfeld2))
						if ((i >= anfang)&&(i <= ende))
							document.getElementById(linkspanfeld2).style.display = 'block';
						else
							document.getElementById(linkspanfeld2).style.display = 'none';
					else	
						lspfeld = false;
				}
			}
			if (lspfeld)
			{
				do
				{
					nlsp = nlsp+1;
	               	var linkspanfeld  = 'sidelinkspan_'+nlsp;
	               	var linkspanfeld2 = 'sidelinkspan1_'+nlsp;
	               	if (document.getElementById(linkspanfeld))
						document.getElementById(linkspanfeld).style.display = 'none';
				    else
				    	lspfeld = false;
	               	if (document.getElementById(linkspanfeld2))
						document.getElementById(linkspanfeld2).style.display = 'none';
				    else
				    	lspfeld = false;
				} while (lspfeld)
			}
			
	   	} catch(e) { 
	   		// alert(responses[resSize]["sides"])
	   	}

		try
		{
			document.getElementById("sidenumber").value = responses[resSize]["sidenumber"];
			document.getElementById("sidestep").value   = responses[resSize]["sidestep"];
			document.getElementById("order").value      = responses[resSize]["order"];
			document.getElementById("order_dir").value  = responses[resSize]["order_dir"];

			if (responses[resSize]["order"]=="aok") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("statusorder").className = 'statusasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("statusorder").className = 'statusdesc';
				}
			} else {
				document.getElementById("statusorder").className = 'statusnone';
			}
			try
			{
			if (responses[resSize]["order"]=="knd_bst_nr") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("kndbstnrorder").className = 'kndbstnrasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("kndbstnrorder").className = 'kndbstnrdesc';
				}
			} else {
				document.getElementById("kndbstnrorder").className = 'kndbstnrnone';
			}
			if (responses[resSize]["order"]=="knd_eti_nr") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("kndetinrorder").className = 'kndetinrasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("kndetinrorder").className = 'kndetinrdesc';
				}
			} else {
				document.getElementById("kndetinrorder").className = 'kndetinrnone';
			}
			} catch(e) {}
			if (responses[resSize]["order"]=="Artikel") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("artikelorder").className = 'artikelasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("artikelorder").className = 'artikeldesc';
				}
			} else {
				document.getElementById("artikelorder").className = 'artikelnone';
			}
			if (responses[resSize]["order"]=="Format") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("formatorder").className = 'formatasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("formatorder").className = 'formatdesc';
				}
			} else {
				document.getElementById("formatorder").className = 'formatnone';
			}
			if (responses[resSize]["order"]=="AufArt") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("aufartorder").className = 'aufartasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("aufartorder").className = 'aufartdesc';
				}
			} else {
				document.getElementById("aufartorder").className = 'aufartnone';
			}
			if (responses[resSize]["order"]=="AufNr") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("aufnrorder").className = 'aufnrasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("aufnrorder").className = 'aufnrdesc';
				}
			} else {
				document.getElementById("aufnrorder").className = 'aufnrnone';
			}
			if (responses[resSize]["order"]=="APNummer") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("aufnrorder").className = 'aufnrasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("aufnrorder").className = 'aufnrdesc';
				}
			} else {
				document.getElementById("aufnrorder").className = 'aufnrnone';
			}
			if (document.getElementById("bstnrorder"))
				if (responses[resSize]["order"]=="bst_nr") {
					if (responses[resSize]["order_dir"]=="ASC") {
						document.getElementById("bstnrorder").className = 'bstnrasc';
					}
					if (responses[resSize]["order_dir"]=="DESC") {
						document.getElementById("bstnrorder").className = 'bstnrdesc';
					}
				} else {
					document.getElementById("bstnrorder").className = 'bstnrnone';
				}
			if (responses[resSize]["order"]=="Art_Bez") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("artbezorder").className = 'artbezasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("artbezorder").className = 'artbezdesc';
				}
			} else {
				document.getElementById("artbezorder").className = 'artbeznone';
			}
			if (responses[resSize]["order"]=="created") {
				if (responses[resSize]["order_dir"]=="ASC") {
					document.getElementById("createdorder").className = 'createdasc';
				}
				if (responses[resSize]["order_dir"]=="DESC") {
					document.getElementById("createdorder").className = 'createddesc';
				}
			} else {
				document.getElementById("createdorder").className = 'creatednone';
			}

          	if (document.getElementById('seite'))
          	{
		   		Element.update("seite", responses[resSize]["sidenumber"]);
		   		Element.update("seite_von", responses[resSize]["sides"]);
	   			Element.update("datensaetze", responses[resSize]["anz_werte"]);
	   		}
          	if (document.getElementById('seite1'))
          	{
		   		Element.update("seite1", responses[resSize]["sidenumber"]);
		   		Element.update("seite_von1", responses[resSize]["sides"]);
	   			Element.update("datensaetze1", responses[resSize]["anz_werte"]);
	   		}

			if (responses[resSize]["sidenumber"] == 1)
			{
              	if (document.getElementById('etibackward'))
              	{
					Element.hide("etibackward");
					Element.hide("etibegin");
				}
              	if (document.getElementById('etibackward1'))
              	{
					Element.hide("etibackward1");
					Element.hide("etibegin1");
              	}
			}
			else
			{
              	if (document.getElementById('etibackward'))
              	{
					Element.show("etibackward");
					Element.show("etibegin");
				}
              	if (document.getElementById('etibackward1'))
              	{
					Element.show("etibackward1");
					Element.show("etibegin1");
              	}
			}

			if (responses[resSize]["sidenumber"] == responses[resSize]["sides"])
			{
              	if (document.getElementById('etiforward'))
              	{
					Element.hide("etiforward");
					Element.hide("etiend");
				}
              	if (document.getElementById('etiforward1'))
              	{
					Element.hide("etiforward1");
					Element.hide("etiend1");
				}
			}
			else
			{
              	if (document.getElementById('etiforward'))
              	{
					Element.show("etiforward");
					Element.show("etiend");
				}
              	if (document.getElementById('etiforward1'))
              	{
					Element.show("etiforward1");
					Element.show("etiend1");
				}
			}
			if (document.getElementById('errorspan'))
			{
//			    document.getElementById('errorspan').innerHTML = '';
			}
			eindruckform_checkBoxHook();
			try {
//				eindruckform_selectBoxHook();
			} catch (e) {  }
	   	} catch(e) { 
//	   		alert(e);
	   	}
	  } else {
		if (document.getElementById('etikettliste'))
		    document.getElementById('etikettliste').style.display = 'none';
		if (document.getElementById('seitenangabe'))
		    document.getElementById('seitenangabe').style.display = 'none';
		if (document.getElementById('seitenangabe1'))
		    document.getElementById('seitenangabe1').style.display = 'none';
		if (document.getElementById('setzen'))
		    document.getElementById('setzen').style.display = 'none';
		if (document.getElementById('bestellen'))
		    document.getElementById('bestellen').style.display = 'none';
		if (document.getElementById('etikettlistediv'))
		    document.getElementById('etikettlistediv').style.display = 'block';
	  }
	}
	
	function setBillingAddress(adrid)
	{
		if (document.getElementById("billaid"))
		{
			var idname = "billadrid_company"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_company").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "billadrid_street"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_street").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "billadrid_zipcode"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_zipcode").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "billadrid_phone"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_phone").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "billadrid_fax"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_fax").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "billadrid_email"+adrid;
			if (document.getElementById(idname)) document.getElementById("realbilladr_email").innerHTML = document.getElementById(idname).innerHTML;
			document.getElementById('billaid').style.display='none';
		}
	}
	function setDeliveryAddress(adrid)
	{
		if (document.getElementById("delaid"))
		{
			var idname = "deladrid_company"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_company").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "deladrid_street"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_street").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "deladrid_zipcode"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_zipcode").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "deladrid_phone"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_phone").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "deladrid_fax"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_fax").innerHTML = document.getElementById(idname).innerHTML;
			var idname = "deladrid_email"+adrid;
			if (document.getElementById(idname)) document.getElementById("realdeladr_email").innerHTML = document.getElementById(idname).innerHTML;
			document.getElementById('delaid').style.display='none';
		}
	}
