
   function load_script(script) {
      a = document.createElement('script');
      a.setAttribute('type','text/javascript');
      a.setAttribute('src', script);
      document.getElementsByTagName('head')[0].appendChild(a);
   }

   function SetUrl( fileUrl ) {
      location.href = location;
   }

   function shop_confirm_delete() {
      var new_msg = "Möchten Sie den Artikel wirklich aus Ihrem Warenkorb entfernen?";
   	if(confirm(new_msg)) return true;
   	else return false;
   }

   function shop_submit_form(frm) {
      if(frm.submit());
      return false;
   }

   function shop_submit_agb(frm) {

		if(frm.agb.checked == false) {
			alert('Bitte bestätigen Sie unsere AGB, ansonsten kann dieser Vorgang nicht fortgesetzt werden.');
			return false;
		}

		return shop_submit_form(frm);

   }


   function button_submit(frm) {
      if(frm.submit()) return false;
      else return true;
   }


   function enter_submit(event, frm) {
      if ((event && event.which == 13) || (event && event.keyCode == 13)) {
         frm.submit();
      }
   }

   function highlight_text(field) {
      field.focus();
      field.select();
   }


   function copy_formfieldvalue(frm, field) {
      var act;
      act = frm["tmp_" + field].options["selectedIndex"];
      frm[field].value = frm["tmp_" + field].options[act].value;
   }


   function confirm_delete(msg) {
   	var new_msg;

   	if(msg) {
         new_msg = msg;
   	} else {
         new_msg  = "Möchten Sie den Datensatz wirklich löschen? Eine Wiederherstellung des Datensatzes samt aller Verknüpfungen, ";
         new_msg += "Inhaltsseiten und Untermenüpunkten ist im nachhinein leider nicht mehr möglich.";
   	}

   	if(confirm(new_msg)) return true;
   	else return false;
   }


	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}

	function MM_validateForm() { //v4.0
	  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
	  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
		 if (val) { nm=val.name; if ((val=val.value)!="") {
			if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
			  if (p<1 || p==(val.length-1)) errors+='- '+nm+' bitte geben Sie eine gültige E-Mail-Adresse an.\n';
			} else if (test!='R') {
			  if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
			  if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
				 min=test.substring(8,p); max=test.substring(p+1);
				 if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
		 } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' \n'; }
	  } if (errors) alert('Bitte füllen Sie folgende Felder aus:\n'+errors);
	  document.MM_returnValue = (errors == '');
	}


	function checkAGB(formField) {
		if (formField.checked == false) {
			alert('Bitte bestätigen Sie unsere AGB, ansonsten kann dieser Vorgang nicht fortgesetzt werden.');
			return false;
		} else {

			return true;
		}
	}


	function checkFormGen(frm, fields, msg) {

		for(i=0; i < fields.length; i++) {

         if(frm.elements[fields[i]]) {

            if(frm.elements[fields[i]].disabled == false) {

      		   if(frm.elements[fields[i]].type == 'checkbox') {

         		   if(!frm.elements[fields[i]].checked) {
         		     alert("Bitte bestätigen Sie: " + msg[i] + "!");
         		     return false;
         		   }

      		   } else if(frm.elements[fields[i]].type == 'select-one') {

         		   if(!frm.elements[fields[i]].value) {
         		     alert("Bitte treffen Sie eine Auswahl bei '" + msg[i] + "'!");
         		     frm.elements[fields[i]].focus();
         		     return false;
         		   }

      		   } else {

         		   if(!frm.elements[fields[i]].value) {
         		     alert("Bitte füllen Sie das Feld '" + msg[i] + "' aus!");
         		     frm.elements[fields[i]].focus();
         		     return false;
         		   }

         		}
         	}

      	}

		}

      if(frm.submit.value) {
         return true;
      } else {
         frm.submit();
         return false;
      }

   }



   function switch_layer_vis(id) {

      var max = 10;
      var suffix = "lang_";

      if(id == 0) {
         for(i=1;i<=max;i++) {
            if(document.getElementById(suffix+i)) document.getElementById(suffix+i).style.display = "none";
         }
      } else {
         if(document.getElementById(suffix+id).style.display == "none") {
            for(i=1;i<=max;i++) {
               if(document.getElementById(suffix+i)) {
                  document.getElementById(suffix+i).style.display = "none";
                  document.getElementById(suffix+id).style.display = "inline";
               }
            }
   	   } else {
   	      document.getElementById(suffix+id).style.display = "none";
         }
   	}
   }


   function do_vis(id) {

      if(document.getElementById(id)) {

         var node = document.getElementById(id);
         var ifields = node.getElementsByTagName("input");
         var sfields = node.getElementsByTagName("select");
         var tfields = node.getElementsByTagName("textarea");

         if (document.getElementById(id).style.display == "none") {

            document.getElementById(id).style.display = "block";

            for (i = 0; i < ifields.length; i++) ifields[i].disabled = false;
            for (i = 0; i < sfields.length; i++) sfields[i].disabled = false;
            for (i = 0; i < tfields.length; i++) tfields[i].disabled = false;

         } else {

            document.getElementById(id).style.display = "none";

            for (i = 0; i < ifields.length; i++) ifields[i].disabled = true;
            for (i = 0; i < sfields.length; i++) sfields[i].disabled = true;
            for (i = 0; i < tfields.length; i++) tfields[i].disabled = true;

         }
      }
   }



   /* ADMIN-FUNCTIONS */
   function edit(path,cmd,session,rewrite) {

   	if(rewrite == 1) location.href = path+"?"+cmd+"&"+session;
   	else location.href = path+"&"+cmd+"&"+session;

   }

   function del(path,cmd,session,rewrite,msg) {

   	var new_msg;

   	if(msg) {
         new_msg = msg;
   	} else {
         new_msg  = "Möchten Sie den Datensatz wirklich löschen? Eine Wiederherstellung des Datensatzes samt aller Verknüpfungen, ";
         new_msg += "Inhaltsseiten und Untermenüpunkten ist im nachhinein leider nicht mehr möglich.";
   	}

   	if(confirm(new_msg)) {
      	if(rewrite == 1) location.href = path+"?"+cmd+"&"+session;
      	else location.href = path+"&"+cmd+"&"+session;
   	}

   	return false;

   }



   /* window-popup-funcs */
   pn_windows = new Object;
   function getWinPos() {
      if (window.screenX) {
         posX = self.screenX;
         posY = self.screenY;
      } else {
         posX = 0;
         posY = 0;
      }
   }


   function openWin(pURL, winName, wX, wY, options) {
      getWinPos();
      var wPosX = posX + 25;
      var wPosY = posY + 25;

      if (!pn_windows) pn_windows = new Object;
      if (!pn_windows[winName]) pn_windows[winName] = '';
      if ((pn_windows[winName]=='') || (pn_windows[winName].closed==true) || (pn_windows[winName].name != winName))  {
         pn_windows[winName] = open(pURL, winName, 'width=' + wX + ',height=' + wY + options);
         pn_windows[winName].moveTo(wPosX, wPosY);
      } else {
         pn_windows[winName].location.href=pURL;
      }
      pn_windows[winName].focus();

   }



   function gmap_anfahrt(frm) {

      var start, ziel, uri;

      fields = Array('fromstreet', 'fromplz', 'fromcity');
      msg    = Array('Straße', 'PLZ', 'Ort');

      for(i=0; i < fields.length; i++) {

         if(frm.elements[fields[i]]) {

            if(!frm.elements[fields[i]].value) {
              alert("Bitte füllen Sie das Feld '" + msg[i] + "' aus!");
              frm.elements[fields[i]].focus();
              return false;
            }

         }

      }

      start  = document.getElementsByName("fromstreet")[0].value + ",+";
      start += document.getElementsByName("fromplz")[0].value + "+";
      start += document.getElementsByName("fromcity")[0].value;

      ziel  = document.getElementsByName("tostreet")[0].value + ",+";
      ziel += document.getElementsByName("toplz")[0].value + "+";
      ziel += document.getElementsByName("tocity")[0].value;

      uri = frm.action + '&saddr=' + start + '&daddr=' + ziel;

      open(uri, 'gmaps_anfahrt', 'width=900,height=700,resizable=yes');

      return false;
   }


