[Mapbender-commits] r2362 - branches/2.4.5/resources

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Apr 7 12:11:40 EDT 2008


Author: christoph
Date: 2008-04-07 12:11:40 -0400 (Mon, 07 Apr 2008)
New Revision: 2362

Added:
   branches/2.4.5/resources/update_mapbender_2.4.4_to_2.4.5.diff
Log:
update patch

Added: branches/2.4.5/resources/update_mapbender_2.4.4_to_2.4.5.diff
===================================================================
--- branches/2.4.5/resources/update_mapbender_2.4.4_to_2.4.5.diff	                        (rev 0)
+++ branches/2.4.5/resources/update_mapbender_2.4.4_to_2.4.5.diff	2008-04-07 16:11:40 UTC (rev 2362)
@@ -0,0 +1,23116 @@
+Index: Changes.txt
+===================================================================
+--- Changes.txt	(revision 2361)
++++ Changes.txt	(working copy)
+@@ -4,6 +4,16 @@
+ 
+ ------------------------
+ 
++Changelog 2.4.5
++
++see http://www.mapbender.org/index.php/Template:Changelog_2.4.5
++
++
++Changelog 2.4.4
++
++see http://www.mapbender.org/index.php/Template:Changelog_2.4.4
++
++
+ Changelog 2.4.3
+ 
+ see http://www.mapbender.org/index.php/Template:Changelog_2.4.3
+Index: conf/mapbender.conf-dist
+===================================================================
+--- conf/mapbender.conf-dist	(revision 2361)
++++ conf/mapbender.conf-dist	(working copy)
+@@ -139,9 +139,9 @@
+ # Mapbender error logging
+ # --------------------------------------------
+ 
+-define("LOG_LEVEL_LIST", "off,error,warning,notice,all");
+-define("LOG_LEVEL", "all");
+-define("LOG_JS", "on"); // "on", "alert", "console", "off"
++define("LOG_LEVEL_LIST", "off,error,warning,notice,all"); // DO NOT CHANGE!!
++define("LOG_LEVEL", "off"); // one of the above
++define("LOG_JS", "off"); // "on", "alert", "console", "off"
+ 
+ ###HACK for GLOBALS
+ $DBSERVER=DBSERVER;
+Index: conf/session.conf
+===================================================================
+--- conf/session.conf	(revision 2361)
++++ conf/session.conf	(working copy)
+@@ -4,8 +4,22 @@
+ $_SESSION["mb_user_name"] = $name;
+ $_SESSION["mb_user_ip"] =  $_SERVER['REMOTE_ADDR'];
+ $_SESSION["mb_myBBOX"] = $_REQUEST["mb_myBBOX"];
+-$_SESSION["mb_myWmc"] = $_REQUEST["wmc_id"];
+ $_SESSION["mb_myKml"] = $_REQUEST["kml_id"];
+ $_SESSION["mb_myPOI"] = $_REQUEST["mb_myPOI"];
+ $_SESSION["mb_myPOI2SCALE"] = $_REQUEST["mb_myPOI2SCALE"];
++
++$_SESSION["mb_myWmc"] = "";
++$_SESSION["mb_myWmc_action"] = "";
++if ($_REQUEST["wmc_id"]) {
++	$_SESSION["mb_myWmc"] = $_REQUEST["wmc_id"];
++	$_SESSION["mb_myWmc_action"] = "load";
++}
++else if ($_REQUEST["merge_wmc_id"]) {
++	$_SESSION["mb_myWmc"] = $_REQUEST["merge_wmc_id"];
++	$_SESSION["mb_myWmc_action"] = "merge";
++}
++else if ($_REQUEST["append_wmc_id"]) {
++	$_SESSION["mb_myWmc"] = $_REQUEST["append_wmc_id"];
++	$_SESSION["mb_myWmc_action"] = "append";
++}
+ ?>
+\ No newline at end of file
+Index: documents/jsdoc/allclasses-frame.html
+===================================================================
+--- documents/jsdoc/allclasses-frame.html	(revision 0)
++++ documents/jsdoc/allclasses-frame.html	(revision 0)
+@@ -0,0 +1,85 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++ All Classes 
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title=" All Classes";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++   <IMG SRC="./"/>
++
++<H3 class="FrameHeadingFont"><B></B></H3>
++<FONT size="+1" CLASS="FrameHeadingFont">
++<B><a href="overview-summary.html" target="classFrame">All Classes</a></B></FONT>
++<BR>
++
++<TABLE BORDER="0" WIDTH="100%">
++
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Canvas.html" TARGET="classFrame">Canvas</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Geometry.html" TARGET="classFrame">Geometry</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GeometryArray.html" TARGET="classFrame">GeometryArray</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GeomType.html" TARGET="classFrame">GeomType</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GLOBALS.html" TARGET="classFrame">GLOBALS</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Highlight.html" TARGET="classFrame">Highlight</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="MultiGeometry.html" TARGET="classFrame">MultiGeometry</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Snapping.html" TARGET="classFrame">Snapping</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Wfs_element.html" TARGET="classFrame">Wfs_element</A>
++<BR>
++</FONT></TD>
++</TR>
++
++</TABLE>
++
++</BODY>
++</HTML>
+Index: documents/jsdoc/allclasses-noframe.html
+===================================================================
+--- documents/jsdoc/allclasses-noframe.html	(revision 0)
++++ documents/jsdoc/allclasses-noframe.html	(revision 0)
+@@ -0,0 +1,84 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<HTML>
++<HEAD>
++<TITLE>
++ All Classes
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title=" All Classes";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++   <IMG SRC="./"/>
++
++<H3 CLASS="FrameHeadingFont"></H3>
++<FONT size="+1" CLASS="FrameHeadingFont">
++<B><a href="overview-summary.html">All Classes</a></B></FONT>
++<BR>
++
++<TABLE BORDER="0" WIDTH="100%">
++
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Canvas.html" >Canvas</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Geometry.html" >Geometry</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GeometryArray.html" >GeometryArray</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GeomType.html" >GeomType</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="GLOBALS.html" >GLOBALS</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Highlight.html" >Highlight</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="MultiGeometry.html" >MultiGeometry</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Snapping.html" >Snapping</A>
++<BR>
++</FONT></TD>
++</TR>
++
++<TR>
++<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="Wfs_element.html" >Wfs_element</A>
++<BR>
++</FONT></TD>
++</TR>
++
++</TABLE>
++
++</BODY>
++</HTML>
+Index: documents/jsdoc/Canvas.html
+===================================================================
+--- documents/jsdoc/Canvas.html	(revision 0)
++++ documents/jsdoc/Canvas.html	(revision 0)
+@@ -0,0 +1,372 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Canvas
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Canvas";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Geometry.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Canvas</H2>
++<PRE>Object
++   |
++   +--<b>Canvas</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Canvas</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Canvas()">Canvas</A></B>(aMapframe,aTagName,aStyle,aLineWidth)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#clean">clean</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#drawGeometry">drawGeometry</A></B>(t,g,col)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#paint">paint</A></B>(gA)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Canvas()"><!-- --></A><H3>
++Canvas</H3>
++<PRE><B>Canvas</B>(aMapframe,aTagName,aStyle,aLineWidth)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="clean"><!-- --></A>
++   <H3>clean</H3>
++   <PRE>void <B>clean</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="drawGeometry"><!-- --></A>
++   <H3>drawGeometry</H3>
++   <PRE>void <B>drawGeometry</B>(t,g,col)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="paint"><!-- --></A>
++   <H3>paint</H3>
++   <PRE>void <B>paint</B>(gA)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Geometry.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/DivTag.html
+===================================================================
+--- documents/jsdoc/DivTag.html	(revision 0)
++++ documents/jsdoc/DivTag.html	(revision 0)
+@@ -0,0 +1,339 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++DivTag
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="DivTag";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class DivTag</H2>
++<PRE>Object
++   |
++   +--<b>DivTag</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>DivTag</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#DivTag()">DivTag</A></B>(aTagName,aFrameName,aStyle)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#clean">clean</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#write">write</A></B>(someText)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="DivTag()"><!-- --></A><H3>
++DivTag</H3>
++<PRE><B>DivTag</B>(aTagName,aFrameName,aStyle)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="clean"><!-- --></A>
++   <H3>clean</H3>
++   <PRE>void <B>clean</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="write"><!-- --></A>
++   <H3>write</H3>
++   <PRE>void <B>write</B>(someText)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Geometry.html
+===================================================================
+--- documents/jsdoc/Geometry.html	(revision 0)
++++ documents/jsdoc/Geometry.html	(revision 0)
+@@ -0,0 +1,409 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Geometry
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Geometry";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Canvas.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GeometryArray.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Geometry</H2>
++<PRE>Object
++   |
++   +--List
++         |
++         +--<b>Geometry</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Geometry</B>
++   
++      <DT>extends List 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Geometry()">Geometry</A></B>(aGeomtype)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#del">del</A></B>(i)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#equals">equals</A></B>(geom)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getBBox">getBBox</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#updateAllPointsLike">updateAllPointsLike</A></B>(oldP,newP)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Geometry()"><!-- --></A><H3>
++Geometry</H3>
++<PRE><B>Geometry</B>(aGeomtype)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="del"><!-- --></A>
++   <H3>del</H3>
++   <PRE>Object <B>del</B>(i)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="equals"><!-- --></A>
++   <H3>equals</H3>
++   <PRE>Object <B>equals</B>(geom)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getBBox"><!-- --></A>
++   <H3>getBBox</H3>
++   <PRE>void <B>getBBox</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="updateAllPointsLike"><!-- --></A>
++   <H3>updateAllPointsLike</H3>
++   <PRE>void <B>updateAllPointsLike</B>(oldP,newP)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Canvas.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GeometryArray.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/GeometryArray.html
+===================================================================
+--- documents/jsdoc/GeometryArray.html	(revision 0)
++++ documents/jsdoc/GeometryArray.html	(revision 0)
+@@ -0,0 +1,574 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++GeometryArray
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="GeometryArray";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Geometry.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GeomType.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class GeometryArray</H2>
++<PRE>Object
++   |
++   +--List
++         |
++         +--<b>GeometryArray</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>GeometryArray</B>
++   
++      <DT>extends List 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#GeometryArray()">GeometryArray</A></B>()
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#addMember">addMember</A></B>(geomType)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#close">close</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#delAllPointsLike">delAllPointsLike</A></B>(point)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#delGeometry">delGeometry</A></B>(i,j)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#delPoint">delPoint</A></B>(i,j,k)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#findMultiGeometry">findMultiGeometry</A></B>(geom)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getGeometry">getGeometry</A></B>(i,j)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getPoint">getPoint</A></B>(i,j,k)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#updateAllPointsLike">updateAllPointsLike</A></B>(oldP,newP)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="GeometryArray()"><!-- --></A><H3>
++GeometryArray</H3>
++<PRE><B>GeometryArray</B>()</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="addMember"><!-- --></A>
++   <H3>addMember</H3>
++   <PRE>void <B>addMember</B>(geomType)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="close"><!-- --></A>
++   <H3>close</H3>
++   <PRE>void <B>close</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="delAllPointsLike"><!-- --></A>
++   <H3>delAllPointsLike</H3>
++   <PRE>void <B>delAllPointsLike</B>(point)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="delGeometry"><!-- --></A>
++   <H3>delGeometry</H3>
++   <PRE>void <B>delGeometry</B>(i,j)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="delPoint"><!-- --></A>
++   <H3>delPoint</H3>
++   <PRE>void <B>delPoint</B>(i,j,k)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="findMultiGeometry"><!-- --></A>
++   <H3>findMultiGeometry</H3>
++   <PRE>Object <B>findMultiGeometry</B>(geom)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getGeometry"><!-- --></A>
++   <H3>getGeometry</H3>
++   <PRE>Object <B>getGeometry</B>(i,j)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getPoint"><!-- --></A>
++   <H3>getPoint</H3>
++   <PRE>Object <B>getPoint</B>(i,j,k)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="updateAllPointsLike"><!-- --></A>
++   <H3>updateAllPointsLike</H3>
++   <PRE>void <B>updateAllPointsLike</B>(oldP,newP)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Geometry.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GeomType.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/GeomType.html
+===================================================================
+--- documents/jsdoc/GeomType.html	(revision 0)
++++ documents/jsdoc/GeomType.html	(revision 0)
+@@ -0,0 +1,289 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++GeomType
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="GeomType";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GeometryArray.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class GeomType</H2>
++<PRE>Object
++   |
++   +--<b>GeomType</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>GeomType</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#polygon">polygon</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#GeomType()">GeomType</A></B>()
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="polygon"><!-- --></A>
++   <H3>polygon</H3>
++   <PRE>Object&nbsp;<B>polygon</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="GeomType()"><!-- --></A><H3>
++GeomType</H3>
++<PRE><B>GeomType</B>()</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GeometryArray.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="GLOBALS.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/GLOBALS.html
+===================================================================
+--- documents/jsdoc/GLOBALS.html	(revision 0)
++++ documents/jsdoc/GLOBALS.html	(revision 0)
+@@ -0,0 +1,298 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++GLOBALS
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="GLOBALS";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GeomType.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Highlight.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class GLOBALS</H2>
++<PRE>Object
++   |
++   +--<b>GLOBALS</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>GLOBALS</B>
++   
++
++</DL>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&lt;static&gt;&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#!s!calculateVisibleDash">calculateVisibleDash</A></B>(p0,p1,width,height)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&lt;static&gt;&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#!s!objString">objString</A></B>(a)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="!s!calculateVisibleDash"><!-- --></A>
++   <H3>calculateVisibleDash</H3>
++   <PRE>&lt;static&gt; Object <B>calculateVisibleDash</B>(p0,p1,width,height)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="!s!objString"><!-- --></A>
++   <H3>objString</H3>
++   <PRE>&lt;static&gt; Object <B>objString</B>(a)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GeomType.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Highlight.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/help-doc.html
+===================================================================
+--- documents/jsdoc/help-doc.html	(revision 0)
++++ documents/jsdoc/help-doc.html	(revision 0)
+@@ -0,0 +1,160 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<HTML>
++<HEAD>
++<TITLE>
++ API Help 
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title=" API Help";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_top"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_top_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<CENTER>
++<H1>
++How This API Document Is Organized</H1>
++</CENTER>
++This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
++Class</H3>
++<BLOCKQUOTE>
++
++<P>
++Each class has its own separate page. Each of these pages has three sections consisting of a class description, summary tables, and detailed member descriptions:<UL>
++<LI>Class inheritance diagram<LI>Direct Subclasses<LI>Class declaration<LI>Class description
++<P>
++<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
++<P>
++<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
++Each summary entry contains the first sentence from the detailed description for that item. </BLOCKQUOTE>
++<!--H3>
++Tree (Class Hierarchy)</H3>
++<BLOCKQUOTE>
++There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all classes. The hierarchy page contains a list of classes. The classes are organized by inheritance structure starting with <code>Object</code>.<UL>
++</BLOCKQUOTE-->
++<!-- H3>
++Deprecated API</H3>
++<BLOCKQUOTE>
++The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE-->
++<H3>
++Index</H3>
++<BLOCKQUOTE>
++The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, constructors, methods, and fields.</BLOCKQUOTE>
++<H3>
++Prev/Next</H3>
++These links take you to the next or previous class, interface, package, or related page.<H3>
++Frames/No Frames</H3>
++These links show and hide the HTML frames.  All pages are available with or without frames.
++<P>
++<FONT SIZE="-1">
++<EM>
++This help file applies to API documentation generated using the standard doclet.</EM>
++</FONT>
++<BR>
++<HR>
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Highlight.html
+===================================================================
+--- documents/jsdoc/Highlight.html	(revision 0)
++++ documents/jsdoc/Highlight.html	(revision 0)
+@@ -0,0 +1,306 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Highlight
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Highlight";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Highlight</H2>
++<PRE>Object
++   |
++   +--<b>Highlight</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Highlight</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Highlight()">Highlight</A></B>(aTargetArray,aTagName,aStyle,aLineWidth)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#del">del</A></B>(m,color)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Highlight()"><!-- --></A><H3>
++Highlight</H3>
++<PRE><B>Highlight</B>(aTargetArray,aTagName,aStyle,aLineWidth)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="del"><!-- --></A>
++   <H3>del</H3>
++   <PRE>void <B>del</B>(m,color)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/index-all.html
+===================================================================
+--- documents/jsdoc/index-all.html	(revision 0)
++++ documents/jsdoc/index-all.html	(revision 0)
+@@ -0,0 +1,525 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Index ()
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Index ()";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_top"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_top_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<!--
++ Listing of letters
++-->
++&nbsp;<A HREF="index-all.html#__A__">A</A>&nbsp;<A HREF="index-all.html#__C__">C</A>&nbsp;<A HREF="index-all.html#__D__">D</A>&nbsp;<A HREF="index-all.html#__E__">E</A>&nbsp;<A HREF="index-all.html#__F__">F</A>&nbsp;<A HREF="index-all.html#__G__">G</A>&nbsp;<A HREF="index-all.html#__H__">H</A>&nbsp;<A HREF="index-all.html#__I__">I</A>&nbsp;<A HREF="index-all.html#__M__">M</A>&nbsp;<A HREF="index-all.html#__O__">O</A>&nbsp;<A HREF="index-all.html#__P__">P</A>&nbsp;<A HREF="index-all.html#__S__">S</A>&nbsp;<A HREF="index-all.html#__U__">U</A>&nbsp;<A HREF="index-all.html#__W__">W</A>
++<HR>
++<!-- End letter listing -->
++
++<A NAME="__A__"><!-- --></A><H2>
++<B>A</B></H2>
++
++<DL>
++<DT><A HREF="Snapping.html#add"><B>add(aPoint)</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#addGeometry"><B>addGeometry()</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#addMember"><B>addMember(geomType)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__C__"><!-- --></A><H2>
++<B>C</B></H2>
++
++<DL>
++<DT><A HREF="GLOBALS.html#calculateVisibleDash"><B>calculateVisibleDash(p0,p1,width,height)</B></A> - 
++Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Canvas.html#"><B>Canvas</B></A> - 
++ class <A HREF="Canvas.html">Canvas</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Canvas.html#constructor_detail"><B>Canvas(aMapframe,aTagName,aStyle,aLineWidth)</B></A> - 
++Constructor in  class <A HREF="Canvas.html">Canvas</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Snapping.html#check"><B>check(currPoint)</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Canvas.html#clean"><B>clean()</B></A> - 
++Instance method in  class <A HREF="Canvas.html">Canvas</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Snapping.html#clean"><B>clean()</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#close"><B>close()</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Wfs_element.html#count"><B>count()</B></A> - 
++Instance method in  class <A HREF="Wfs_element.html">Wfs_element</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__D__"><!-- --></A><H2>
++<B>D</B></H2>
++
++<DL>
++<DT><A HREF="Geometry.html#del"><B>del(i)</B></A> - 
++Instance method in  class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Highlight.html#del"><B>del(m,color)</B></A> - 
++Instance method in  class <A HREF="Highlight.html">Highlight</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#delAllPointsLike"><B>delAllPointsLike(point)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#delGeometry"><B>delGeometry(i,j)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#delPoint"><B>delPoint(i,j)</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#delPoint"><B>delPoint(i,j,k)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Canvas.html#drawGeometry"><B>drawGeometry(t,g,col)</B></A> - 
++Instance method in  class <A HREF="Canvas.html">Canvas</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__E__"><!-- --></A><H2>
++<B>E</B></H2>
++
++<DL>
++<DT><A HREF="Geometry.html#equals"><B>equals(geom)</B></A> - 
++Instance method in  class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#equals"><B>equals(multigeom)</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__F__"><!-- --></A><H2>
++<B>F</B></H2>
++
++<DL>
++<DT><A HREF="GeometryArray.html#findMultiGeometry"><B>findMultiGeometry(geom)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__G__"><!-- --></A><H2>
++<B>G</B></H2>
++
++<DL>
++<DT><A HREF="Geometry.html#"><B>Geometry</B></A> - 
++ class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Geometry.html#constructor_detail"><B>Geometry(aGeomtype)</B></A> - 
++Constructor in  class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#"><B>GeometryArray</B></A> - 
++ class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#constructor_detail"><B>GeometryArray()</B></A> - 
++Constructor in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeomType.html#"><B>GeomType</B></A> - 
++ class <A HREF="GeomType.html">GeomType</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeomType.html#constructor_detail"><B>GeomType()</B></A> - 
++Constructor in  class <A HREF="GeomType.html">GeomType</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Geometry.html#getBBox"><B>getBBox()</B></A> - 
++Instance method in  class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#getBBox"><B>getBBox()</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#getCenter"><B>getCenter()</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Wfs_element.html#getElementIndexByName"><B>getElementIndexByName(elementName)</B></A> - 
++Instance method in  class <A HREF="Wfs_element.html">Wfs_element</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Wfs_element.html#getElementValueByName"><B>getElementValueByName(elementName)</B></A> - 
++Instance method in  class <A HREF="Wfs_element.html">Wfs_element</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#getGeometry"><B>getGeometry(i,j)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#getPoint"><B>getPoint(i,j,k)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#getPoint"><B>getPoint(j,k)</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Snapping.html#getSnappedPoint"><B>getSnappedPoint()</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#getTotalPointCount"><B>getTotalPointCount()</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GLOBALS.html#"><B>GLOBALS</B></A> - 
++ class <A HREF="GLOBALS.html">GLOBALS</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__H__"><!-- --></A><H2>
++<B>H</B></H2>
++
++<DL>
++<DT><A HREF="Highlight.html#"><B>Highlight</B></A> - 
++ class <A HREF="Highlight.html">Highlight</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Highlight.html#constructor_detail"><B>Highlight(aTargetArray,aTagName,aStyle,aLineWidth)</B></A> - 
++Constructor in  class <A HREF="Highlight.html">Highlight</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__I__"><!-- --></A><H2>
++<B>I</B></H2>
++
++<DL>
++<DT><A HREF="Snapping.html#isSnapped"><B>isSnapped()</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__M__"><!-- --></A><H2>
++<B>M</B></H2>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#"><B>MultiGeometry</B></A> - 
++ class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#constructor_detail"><B>MultiGeometry(geomType)</B></A> - 
++Constructor in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__O__"><!-- --></A><H2>
++<B>O</B></H2>
++
++<DL>
++<DT><A HREF="GLOBALS.html#objString"><B>objString(a)</B></A> - 
++Class method in  class <A HREF="GLOBALS.html">GLOBALS</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__P__"><!-- --></A><H2>
++<B>P</B></H2>
++
++<DL>
++<DT><A HREF="Canvas.html#paint"><B>paint(gA)</B></A> - 
++Instance method in  class <A HREF="Canvas.html">Canvas</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeomType.html#polygon"><B>polygon</B></A> - 
++Instance field in  class <A HREF="GeomType.html">GeomType</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__S__"><!-- --></A><H2>
++<B>S</B></H2>
++
++<DL>
++<DT><A HREF="Snapping.html#"><B>Snapping</B></A> - 
++ class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Snapping.html#constructor_detail"><B>Snapping(aTarget,aTolerance,aColor,aZIndex)</B></A> - 
++Constructor in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Snapping.html#store"><B>store(geom,point)</B></A> - 
++Instance method in  class <A HREF="Snapping.html">Snapping</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__U__"><!-- --></A><H2>
++<B>U</B></H2>
++
++<DL>
++<DT><A HREF="Geometry.html#updateAllPointsLike"><B>updateAllPointsLike(oldP,newP)</B></A> - 
++Instance method in  class <A HREF="Geometry.html">Geometry</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="GeometryArray.html#updateAllPointsLike"><B>updateAllPointsLike(oldP,newP)</B></A> - 
++Instance method in  class <A HREF="GeometryArray.html">GeometryArray</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="MultiGeometry.html#updateAllPointsLike"><B>updateAllPointsLike(oldP,newP)</B></A> - 
++Instance method in  class <A HREF="MultiGeometry.html">MultiGeometry</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<A NAME="__W__"><!-- --></A><H2>
++<B>W</B></H2>
++
++<DL>
++<DT><A HREF="Wfs_element.html#"><B>Wfs_element</B></A> - 
++ class <A HREF="Wfs_element.html">Wfs_element</A>
++<DD>&nbsp;
++</DL>
++
++<DL>
++<DT><A HREF="Wfs_element.html#constructor_detail"><B>Wfs_element()</B></A> - 
++Constructor in  class <A HREF="Wfs_element.html">Wfs_element</A>
++<DD>&nbsp;
++</DL>
++
++<HR>
++
++<!-- 
++   Listing of letters
++-->
++&nbsp;<A HREF="index-all.html#__A__">A</A>&nbsp;<A HREF="index-all.html#__C__">C</A>&nbsp;<A HREF="index-all.html#__D__">D</A>&nbsp;<A HREF="index-all.html#__E__">E</A>&nbsp;<A HREF="index-all.html#__F__">F</A>&nbsp;<A HREF="index-all.html#__G__">G</A>&nbsp;<A HREF="index-all.html#__H__">H</A>&nbsp;<A HREF="index-all.html#__I__">I</A>&nbsp;<A HREF="index-all.html#__M__">M</A>&nbsp;<A HREF="index-all.html#__O__">O</A>&nbsp;<A HREF="index-all.html#__P__">P</A>&nbsp;<A HREF="index-all.html#__S__">S</A>&nbsp;<A HREF="index-all.html#__U__">U</A>&nbsp;<A HREF="index-all.html#__W__">W</A>
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_top"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_top_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD-->
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/index.html
+===================================================================
+--- documents/jsdoc/index.html	(revision 0)
++++ documents/jsdoc/index.html	(revision 0)
+@@ -0,0 +1,22 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<HTML>
++<HEAD>
++<TITLE>
++Generated Javascript Documentation 
++</TITLE>
++</HEAD>
++<FRAMESET cols="20%,80%">
++
++<FRAME src="allclasses-frame.html" name="packageFrame">
++
++<FRAME src="Canvas.html" name="classFrame">
++</FRAMESET>
++<NOFRAMES>
++<H2>
++Frame Alert</H2>
++
++<P>
++This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
++<BR>
++Link to <A HREF="allclasses-frame.html">Non-frame version.</A></NOFRAMES>
++</HTML>
+Index: documents/jsdoc/jsgFont.html
+===================================================================
+--- documents/jsdoc/jsgFont.html	(revision 0)
++++ documents/jsdoc/jsgFont.html	(revision 0)
+@@ -0,0 +1,357 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++jsgFont
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="jsgFont";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-wz_jsgraphics.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="jsgStroke.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class jsgFont</H2>
++<PRE>Object
++   |
++   +--<b>jsgFont</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>jsgFont</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-wz_jsgraphics.js.html'>wz_jsgraphics.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#BOLD">BOLD</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#BOLD_ITALIC">BOLD_ITALIC</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#ITALIC">ITALIC</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#ITALIC_BOLD">ITALIC_BOLD</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#PLAIN">PLAIN</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#jsgFont()">jsgFont</A></B>()
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="BOLD"><!-- --></A>
++   <H3>BOLD</H3>
++   <PRE>Object&nbsp;<B>BOLD</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++   <A NAME="BOLD_ITALIC"><!-- --></A>
++   <H3>BOLD_ITALIC</H3>
++   <PRE>Object&nbsp;<B>BOLD_ITALIC</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++   <A NAME="ITALIC"><!-- --></A>
++   <H3>ITALIC</H3>
++   <PRE>Object&nbsp;<B>ITALIC</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++   <A NAME="ITALIC_BOLD"><!-- --></A>
++   <H3>ITALIC_BOLD</H3>
++   <PRE>Object&nbsp;<B>ITALIC_BOLD</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++   <A NAME="PLAIN"><!-- --></A>
++   <H3>PLAIN</H3>
++   <PRE>Object&nbsp;<B>PLAIN</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="jsgFont()"><!-- --></A><H3>
++jsgFont</H3>
++<PRE><B>jsgFont</B>()</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-wz_jsgraphics.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="jsgStroke.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/jsgStroke.html
+===================================================================
+--- documents/jsdoc/jsgStroke.html	(revision 0)
++++ documents/jsdoc/jsgStroke.html	(revision 0)
+@@ -0,0 +1,289 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++jsgStroke
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="jsgStroke";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-wz_jsgraphics.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="jsgFont.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class jsgStroke</H2>
++<PRE>Object
++   |
++   +--<b>jsgStroke</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>jsgStroke</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-wz_jsgraphics.js.html'>wz_jsgraphics.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#DOTTED">DOTTED</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#jsgStroke()">jsgStroke</A></B>()
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="DOTTED"><!-- --></A>
++   <H3>DOTTED</H3>
++   <PRE>Object&nbsp;<B>DOTTED</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="jsgStroke()"><!-- --></A><H3>
++jsgStroke</H3>
++<PRE><B>jsgStroke</B>()</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-wz_jsgraphics.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="jsgFont.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/mb_conButton.html
+===================================================================
+--- documents/jsdoc/mb_conButton.html	(revision 0)
++++ documents/jsdoc/mb_conButton.html	(revision 0)
+@@ -0,0 +1,289 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++mb_conButton
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="mb_conButton";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_exception.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class mb_conButton</H2>
++<PRE>Object
++   |
++   +--<b>mb_conButton</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>mb_conButton</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#wii">wii</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#mb_conButton()">mb_conButton</A></B>(wii,ind)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="wii"><!-- --></A>
++   <H3>wii</H3>
++   <PRE>Object&nbsp;<B>wii</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="mb_conButton()"><!-- --></A><H3>
++mb_conButton</H3>
++<PRE><B>mb_conButton</B>(wii,ind)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_exception.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Mb_exception.html
+===================================================================
+--- documents/jsdoc/Mb_exception.html	(revision 0)
++++ documents/jsdoc/Mb_exception.html	(revision 0)
+@@ -0,0 +1,254 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Mb_exception
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Mb_exception";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="mb_conButton.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Mb_exception</H2>
++<PRE>Object
++   |
++   +--Mb_log
++         |
++         +--<b>Mb_exception</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Mb_exception</B>
++   
++      <DT>extends Mb_log 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Mb_exception()">Mb_exception</A></B>(message)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Mb_exception()"><!-- --></A><H3>
++Mb_exception</H3>
++<PRE><B>Mb_exception</B>(message)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="mb_conButton.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/mb_mapObj_const.html
+===================================================================
+--- documents/jsdoc/mb_mapObj_const.html	(revision 0)
++++ documents/jsdoc/mb_mapObj_const.html	(revision 0)
+@@ -0,0 +1,306 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++mb_mapObj_const
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="mb_mapObj_const";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_notice.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class mb_mapObj_const</H2>
++<PRE>Object
++   |
++   +--<b>mb_mapObj_const</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>mb_mapObj_const</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#epsg">epsg</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#width">width</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#mb_mapObj_const()">mb_mapObj_const</A></B>(frameName,elementName,width,height,wms_index)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="epsg"><!-- --></A>
++   <H3>epsg</H3>
++   <PRE>Object&nbsp;<B>epsg</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++   <A NAME="width"><!-- --></A>
++   <H3>width</H3>
++   <PRE>Object&nbsp;<B>width</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="mb_mapObj_const()"><!-- --></A><H3>
++mb_mapObj_const</H3>
++<PRE><B>mb_mapObj_const</B>(frameName,elementName,width,height,wms_index)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_notice.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Mb_notice.html
+===================================================================
+--- documents/jsdoc/Mb_notice.html	(revision 0)
++++ documents/jsdoc/Mb_notice.html	(revision 0)
+@@ -0,0 +1,254 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Mb_notice
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Mb_notice";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="mb_mapObj_const.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_warning.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Mb_notice</H2>
++<PRE>Object
++   |
++   +--Mb_log
++         |
++         +--<b>Mb_notice</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Mb_notice</B>
++   
++      <DT>extends Mb_log 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Mb_notice()">Mb_notice</A></B>(message)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Mb_notice()"><!-- --></A><H3>
++Mb_notice</H3>
++<PRE><B>Mb_notice</B>(message)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="mb_mapObj_const.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Mb_warning.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Mb_warning.html
+===================================================================
+--- documents/jsdoc/Mb_warning.html	(revision 0)
++++ documents/jsdoc/Mb_warning.html	(revision 0)
+@@ -0,0 +1,254 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Mb_warning
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Mb_warning";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Mb_notice.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Mb_warning</H2>
++<PRE>Object
++   |
++   +--Mb_log
++         |
++         +--<b>Mb_warning</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Mb_warning</B>
++   
++      <DT>extends Mb_log 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map.js.html'>map.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Mb_warning()">Mb_warning</A></B>(message)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Mb_warning()"><!-- --></A><H3>
++Mb_warning</H3>
++<PRE><B>Mb_warning</B>(message)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Mb_notice.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/MultiGeometry.html
+===================================================================
+--- documents/jsdoc/MultiGeometry.html	(revision 0)
++++ documents/jsdoc/MultiGeometry.html	(revision 0)
+@@ -0,0 +1,541 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++MultiGeometry
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="MultiGeometry";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Snapping.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class MultiGeometry</H2>
++<PRE>Object
++   |
++   +--List
++         |
++         +--<b>MultiGeometry</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>MultiGeometry</B>
++   
++      <DT>extends List 
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#MultiGeometry()">MultiGeometry</A></B>(geomType)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#addGeometry">addGeometry</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#delPoint">delPoint</A></B>(i,j)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#equals">equals</A></B>(multigeom)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getBBox">getBBox</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getCenter">getCenter</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getPoint">getPoint</A></B>(j,k)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getTotalPointCount">getTotalPointCount</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#updateAllPointsLike">updateAllPointsLike</A></B>(oldP,newP)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="MultiGeometry()"><!-- --></A><H3>
++MultiGeometry</H3>
++<PRE><B>MultiGeometry</B>(geomType)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="addGeometry"><!-- --></A>
++   <H3>addGeometry</H3>
++   <PRE>void <B>addGeometry</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="delPoint"><!-- --></A>
++   <H3>delPoint</H3>
++   <PRE>Object <B>delPoint</B>(i,j)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="equals"><!-- --></A>
++   <H3>equals</H3>
++   <PRE>Object <B>equals</B>(multigeom)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getBBox"><!-- --></A>
++   <H3>getBBox</H3>
++   <PRE>void <B>getBBox</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getCenter"><!-- --></A>
++   <H3>getCenter</H3>
++   <PRE>Object <B>getCenter</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getPoint"><!-- --></A>
++   <H3>getPoint</H3>
++   <PRE>Object <B>getPoint</B>(j,k)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getTotalPointCount"><!-- --></A>
++   <H3>getTotalPointCount</H3>
++   <PRE>Object <B>getTotalPointCount</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="updateAllPointsLike"><!-- --></A>
++   <H3>updateAllPointsLike</H3>
++   <PRE>void <B>updateAllPointsLike</B>(oldP,newP)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<B>PREV CLASS</B><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Snapping.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/overview-summary-geometry.js.html
+===================================================================
+--- documents/jsdoc/overview-summary-geometry.js.html	(revision 0)
++++ documents/jsdoc/overview-summary-geometry.js.html	(revision 0)
+@@ -0,0 +1,352 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title="geometry.js Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>geometry.js</h2>
++	
++</center>
++
++	
++
++
++<h4>Summary</h4>
++<p>
++	
++		No overview generated for 'geometry.js'<BR/><BR/>
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>Class Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Canvas.html">Canvas</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Geometry.html">Geometry</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="GeometryArray.html">GeometryArray</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="GeomType.html">GeomType</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Highlight.html">Highlight</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="MultiGeometry.html">MultiGeometry</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Snapping.html">Snapping</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Wfs_element.html">Wfs_element</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++	<a name="method_summary"><!-- --></a>
++	<table border="1" cellpadding="3" cellspacing="0" width="100%">
++		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
++			<td colspan=2>
++				<font size="+2">
++					<b>Method Summary</b>
++				</font>
++			</td>
++		</tr>
++	
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!calculateVisibleDash">calculateVisibleDash</a></b>(p0,p1,width,height)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!objString">objString</a></b>(a)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++	
++	</table>
++    <p>
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++        <pre class="sourceview">var nameGeometryArray=<span class="literal">"GeometryArray"</span>;var nameMultiGeometry=<span class="literal">"MultiGeometry"</span>;var nameGeometry=<span class="literal">"Geometry"</span>;<span class="reserved">function</span> GeomType(){<span class="reserved">this</span>.polygon=<span class="literal">"polygon"</span>;<span class="reserved">this</span>.line=<span class="literal">"line"</span>;<span class="reserved">this</span>.point=<span class="literal">"point"</span>;}
++var geomType=new GeomType();<span class="reserved">function</span> GeometryArray(){<span class="reserved">this</span>.addMember=<span class="reserved">function</span>(geomType){<span class="reserved">this</span>.add(new MultiGeometry(geomType));};<span class="reserved">this</span>.name=nameGeometryArray;<span class="reserved">this</span>.list=[];}
++GeometryArray.<span class="reserved">prototype</span>=new List();GeometryArray.<span class="reserved">prototype</span>.getGeometry=<span class="reserved">function</span>(i,j){<span class="reserved">return</span> <span class="reserved">this</span>.get(i).get(j);};GeometryArray.<span class="reserved">prototype</span>.getPoint=<span class="reserved">function</span>(i,j,k){<span class="reserved">return</span> <span class="reserved">this</span>.get(i).get(j).get(k);};GeometryArray.<span class="reserved">prototype</span>.findMultiGeometry=<span class="reserved">function</span>(geom){var a=[];<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">if</span>(<span class="reserved">this</span>.get(i).equals(geom)){a.push(i);}}
++<span class="reserved">return</span> a;};GeometryArray.<span class="reserved">prototype</span>.delGeometry=<span class="reserved">function</span>(i,j){<span class="reserved">if</span>(<span class="reserved">this</span>.get(i).del(j)===false){<span class="reserved">this</span>.del(i);}};GeometryArray.<span class="reserved">prototype</span>.delPoint=<span class="reserved">function</span>(i,j,k){var res=<span class="reserved">this</span>.get(i).delPoint(j,k);<span class="reserved">if</span>(res===false){<span class="reserved">this</span>.del(i);}};GeometryArray.<span class="reserved">prototype</span>.close=<span class="reserved">function</span>(){<span class="reserved">if</span>(!<span class="reserved">this</span>.get(-1).get(-1).close()){<span class="reserved">this</span>.delGeometry(-1,-1);}
++<span class="reserved">else</span>{<span class="reserved">if</span>(<span class="reserved">this</span>.get(-1).get(-1).count()===0){<span class="reserved">this</span>.get(-1).del(-1);}
++<span class="reserved">if</span>(<span class="reserved">this</span>.get(-1).count()===0){<span class="reserved">this</span>.del(-1);}}};GeometryArray.<span class="reserved">prototype</span>.delAllPointsLike=<span class="reserved">function</span>(point){var finished=false;<span class="reserved">while</span>(finished===false){finished=true;<span class="reserved">for</span>(var i=0;finished===true&amp;&amp;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">for</span>(var j=0;finished===true&amp;&amp;j&lt;<span class="reserved">this</span>.get(i).count();j++){<span class="reserved">for</span>(var k=0;finished===true&amp;&amp;k&lt;<span class="reserved">this</span>.get(i).get(j).count();k++){<span class="reserved">if</span>(<span class="reserved">this</span>.getPoint(i,j,k).equals(point)){<span class="reserved">this</span>.delPoint(i,j,k);finished=false;}}}}}};GeometryArray.<span class="reserved">prototype</span>.updateAllPointsLike=<span class="reserved">function</span>(oldP,newP){<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">this</span>.get(i).updateAllPointsLike(oldP,newP);}};<span class="reserved">function</span> MultiGeometry(geomType){<span class="reserved">this</span>.addGeometry=<span class="reserved">function</span>(){<span class="reserved">this</span>.add(new Geometry(<span class="reserved">this</span>.geomType));};<span class="reserved">this</span>.del=<span class="reserved">function</span>(i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">if</span>(i!==false){var tmpLength=<span class="reserved">this</span>.count()-1;<span class="reserved">for</span>(var z=i;z&lt;tmpLength;z++){<span class="reserved">this</span>.list[z]=<span class="reserved">this</span>.list[z+1];e[z]=e[z+1];}
++<span class="reserved">this</span>.list.length-=1;<span class="reserved">if</span>(<span class="reserved">this</span>.list.length===0){<span class="reserved">return</span> false;}}
++<span class="reserved">return</span> true;};<span class="reserved">this</span>.list=[];<span class="reserved">this</span>.e=new Wfs_element();<span class="reserved">this</span>.geomType=geomType;<span class="reserved">this</span>.name=nameMultiGeometry;}
++MultiGeometry.<span class="reserved">prototype</span>=new List();MultiGeometry.<span class="reserved">prototype</span>.updateAllPointsLike=<span class="reserved">function</span>(oldP,newP){<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">this</span>.get(i).updateAllPointsLike(oldP,newP);}};MultiGeometry.<span class="reserved">prototype</span>.getBBox=<span class="reserved">function</span>(){var q=<span class="reserved">this</span>.get(0).get(0);var min=cloneObject(q);var max=cloneObject(q);<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){var pos=<span class="reserved">this</span>.get(i).getBBox();<span class="reserved">if</span>(pos[0].x&lt;min.x){min.x=pos[0].x;}
++<span class="reserved">if</span>(pos[1].x&gt;max.x){max.x=pos[1].x;}
++<span class="reserved">if</span>(pos[1].y&gt;max.y){max.y=pos[1].y;}
++<span class="reserved">if</span>(pos[0].y&lt;min.y){min.y=pos[0].y;}}
++<span class="reserved">return</span>[min,max];};MultiGeometry.<span class="reserved">prototype</span>.getCenter=<span class="reserved">function</span>(){var tmp=<span class="reserved">this</span>.getBBox();var x=parseFloat(tmp[0].x)+parseFloat((tmp[1].x-tmp[0].x)/2);var y=parseFloat(tmp[0].y)+parseFloat((tmp[1].y-tmp[0].y)/2);<span class="reserved">return</span> new Point(x,y);};MultiGeometry.<span class="reserved">prototype</span>.getTotalPointCount=<span class="reserved">function</span>(){var c=0;<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){c+=<span class="reserved">this</span>.get(i).count();}
++<span class="reserved">return</span> c;};MultiGeometry.<span class="reserved">prototype</span>.getPoint=<span class="reserved">function</span>(j,k){<span class="reserved">return</span> <span class="reserved">this</span>.get(j).get(k);};MultiGeometry.<span class="reserved">prototype</span>.equals=<span class="reserved">function</span>(multigeom){<span class="reserved">if</span>(<span class="reserved">this</span>.geomType!=multigeom.geomType){<span class="reserved">return</span> false;}
++<span class="reserved">if</span>(<span class="reserved">this</span>.count()!=multigeom.count()){<span class="reserved">return</span> false;}
++<span class="reserved">if</span>(<span class="reserved">this</span>.getTotalPointCount()!=multigeom.getTotalPointCount()){<span class="reserved">return</span> false;}
++<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">if</span>(!<span class="reserved">this</span>.get(i).equals(multigeom.get(i))){<span class="reserved">return</span> false;}}
++<span class="reserved">return</span> true;};MultiGeometry.<span class="reserved">prototype</span>.delPoint=<span class="reserved">function</span>(i,j){var res=<span class="reserved">this</span>.get(i).del(j);<span class="reserved">if</span>(res===false){<span class="reserved">return</span> <span class="reserved">this</span>.del(i);}
++<span class="reserved">return</span> true;};<span class="reserved">function</span> Geometry(aGeomtype){<span class="reserved">this</span>.del=<span class="reserved">function</span>(i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">if</span>(i!==false){var tmpLength=<span class="reserved">this</span>.count()-1;<span class="reserved">for</span>(var z=i;z&lt;tmpLength;z++){<span class="reserved">this</span>.list[z]=<span class="reserved">this</span>.list[z+1];}
++<span class="reserved">this</span>.list.length-=1;<span class="reserved">if</span>(<span class="reserved">this</span>.geomType==geomType.polygon){<span class="reserved">if</span>(i==tmpLength){<span class="reserved">this</span>.list[0]=<span class="reserved">this</span>.list[tmpLength-1];}
++<span class="reserved">else</span> <span class="reserved">if</span>(i===0){<span class="reserved">this</span>.list[tmpLength-1]=<span class="reserved">this</span>.list[0];}
++<span class="reserved">if</span>(<span class="reserved">this</span>.list.length==1){<span class="reserved">return</span> false;}}
++updateDist();<span class="reserved">if</span>(<span class="reserved">this</span>.list.length===0){<span class="reserved">return</span> false;}
++<span class="reserved">return</span> true;}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.addPointByCoordinates=<span class="reserved">function</span>(x,y){<span class="reserved">this</span>.add(new Point(x,y));updateDist();};<span class="reserved">this</span>.addPoint=<span class="reserved">function</span>(aPoint){<span class="reserved">this</span>.add(new Point(aPoint.x,aPoint.y));updateDist();};<span class="reserved">this</span>.addPointAtIndex=<span class="reserved">function</span>(p,i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">if</span>(i!==false){<span class="reserved">for</span>(var z=<span class="reserved">this</span>.count();z&gt;i;z--){<span class="reserved">this</span>.list[z]=<span class="reserved">this</span>.list[z-1];}
++<span class="reserved">this</span>.list[i]=new Point(p.x,p.y);updateDist();}};<span class="reserved">this</span>.updatePointAtIndex=<span class="reserved">function</span>(p,i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">if</span>((i===0||i==<span class="reserved">this</span>.count()-1)&amp;&amp;<span class="reserved">this</span>.geomType==geomType.polygon){<span class="reserved">this</span>.list[0]=p;<span class="reserved">this</span>.list[<span class="reserved">this</span>.count()-1]=p;}
++<span class="reserved">else</span>{<span class="reserved">this</span>.list[i]=p;}
++updateDist();};var updateDist=<span class="reserved">function</span>(){dist[0]=0;totaldist[0]=0;<span class="reserved">for</span>(var i=1;i&lt;that.count();i++){dist[i]=that.get(i-1).dist(that.get(i));totaldist[i]=totaldist[i-1]+dist[i];}};<span class="reserved">this</span>.getCurrentDist=<span class="reserved">function</span>(numberOfDigits){<span class="reserved">if</span>(typeof(numberOfDigits)==<span class="literal">"number"</span>){<span class="reserved">return</span> roundToDigits(dist[<span class="reserved">this</span>.count()-1],numberOfDigits);}
++<span class="reserved">return</span> dist[<span class="reserved">this</span>.count()-1];};<span class="reserved">this</span>.getTotalDist=<span class="reserved">function</span>(numberOfDigits){<span class="reserved">if</span>(typeof(numberOfDigits)==<span class="literal">"number"</span>){<span class="reserved">return</span> roundToDigits(totaldist[<span class="reserved">this</span>.count()-1],numberOfDigits);}
++<span class="reserved">return</span> totaldist[<span class="reserved">this</span>.count()-1];};<span class="reserved">this</span>.close=<span class="reserved">function</span>(){complete=true;<span class="reserved">if</span>(<span class="reserved">this</span>.geomType==geomType.polygon){<span class="reserved">if</span>(<span class="reserved">this</span>.count()&gt;2){<span class="reserved">if</span>(!<span class="reserved">this</span>.get(0).equals(<span class="reserved">this</span>.get(-1))){<span class="reserved">this</span>.addPoint(<span class="reserved">this</span>.get(0));}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">if</span>(<span class="reserved">this</span>.geomType==geomType.line){<span class="reserved">if</span>(<span class="reserved">this</span>.count()&lt;2){<span class="reserved">return</span> false;}}
++<span class="reserved">return</span> true;};<span class="reserved">this</span>.isComplete=<span class="reserved">function</span>(){<span class="reserved">return</span> complete;};<span class="reserved">this</span>.list=[];var dist=[];var totaldist=[];var complete=false;var that=<span class="reserved">this</span>;<span class="reserved">this</span>.geomType=aGeomtype;<span class="reserved">this</span>.name=nameGeometry;}
++Geometry.<span class="reserved">prototype</span>=new List();Geometry.<span class="reserved">prototype</span>.getBBox=<span class="reserved">function</span>(){var q=<span class="reserved">this</span>.get(0);var min=cloneObject(q);var max=cloneObject(q);<span class="reserved">for</span>(var j=0;j&lt;<span class="reserved">this</span>.count();j++){var pos=<span class="reserved">this</span>.get(j);<span class="reserved">if</span>(pos.x&lt;min.x){min.x=pos.x;}
++<span class="reserved">else</span> <span class="reserved">if</span>(pos.x&gt;max.x){max.x=pos.x;}
++<span class="reserved">if</span>(pos.y&lt;min.y){min.y=pos.y;}
++<span class="reserved">else</span> <span class="reserved">if</span>(pos.y&gt;max.y){max.y=pos.y;}}
++<span class="reserved">return</span>[min,max];};Geometry.<span class="reserved">prototype</span>.updateAllPointsLike=<span class="reserved">function</span>(oldP,newP){var len=<span class="reserved">this</span>.count();<span class="reserved">for</span>(var i=0;i&lt;len;i++){<span class="reserved">if</span>(oldP.equals(<span class="reserved">this</span>.get(i))){<span class="reserved">if</span>(i&gt;0&amp;&amp;newP.equals(<span class="reserved">this</span>.get(i-1))){<span class="reserved">this</span>.del(i);len--;i--;}
++<span class="reserved">else</span>{<span class="reserved">this</span>.updatePointAtIndex(newP,i);}}}};Geometry.<span class="reserved">prototype</span>.equals=<span class="reserved">function</span>(geom){<span class="reserved">if</span>(<span class="reserved">this</span>.geomType!=geom.geomType){<span class="reserved">return</span> false;}
++<span class="reserved">if</span>(<span class="reserved">this</span>.count()!=geom.count()){<span class="reserved">return</span> false;}
++<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){<span class="reserved">if</span>(!<span class="reserved">this</span>.get(i).equals(geom.get(i))){<span class="reserved">return</span> false;}}
++<span class="reserved">return</span> true;};<span class="reserved">function</span> Wfs_element(){<span class="reserved">this</span>.count=<span class="reserved">function</span>(){<span class="reserved">return</span> name.length;};<span class="reserved">this</span>.getName=<span class="reserved">function</span>(i){<span class="reserved">if</span>(isValidElementIndex(i)){<span class="reserved">return</span> name[i];}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.getValue=<span class="reserved">function</span>(i){<span class="reserved">if</span>(isValidElementIndex(i)){<span class="reserved">return</span> value[i];}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.setElement=<span class="reserved">function</span>(aName,aValue){var i=<span class="reserved">this</span>.getElementIndexByName(aName);<span class="reserved">if</span>(i===false){i=<span class="reserved">this</span>.count();}
++name[i]=aName;value[i]=aValue;};var isValidElementIndex=<span class="reserved">function</span>(i){<span class="reserved">if</span>(i&gt;=0&amp;&amp;i&lt;name.length){<span class="reserved">return</span> true;}
++var e=new Mb_exception(<span class="literal">"class Wfs_element: function isValidElementIndex: illegal element index"</span>);<span class="reserved">return</span> false;};var name=[];var value=[];}
++Wfs_element.<span class="reserved">prototype</span>.getElementIndexByName=<span class="reserved">function</span>(elementName){<span class="reserved">for</span>(var j=0;j&lt;<span class="reserved">this</span>.count();j++){<span class="reserved">if</span>(<span class="reserved">this</span>.getName(j)==elementName){<span class="reserved">return</span> j;}}
++<span class="reserved">return</span> false;};Wfs_element.<span class="reserved">prototype</span>.getElementValueByName=<span class="reserved">function</span>(elementName){var i=<span class="reserved">this</span>.getElementIndexByName(elementName);<span class="reserved">if</span>(i===false){<span class="reserved">return</span> false;}
++<span class="reserved">return</span> <span class="reserved">this</span>.getValue(i);};<span class="reserved">function</span> Canvas(aMapframe,aTagName,aStyle,aLineWidth){<span class="reserved">this</span>.drawGeometry=<span class="reserved">function</span>(t,g,col){var mapObjInd=getMapObjIndexByName(mapframe);width=mb_mapObj[mapObjInd].width;height=mb_mapObj[mapObjInd].height;<span class="reserved">for</span>(var i=0;i&lt;g.count();i++){<span class="reserved">if</span>(t==geomType.point){var p=realToMap(mapframe,g.get(i).get(0));<span class="reserved">if</span>(p.x+diameter&lt;mb_mapObj[mapObjInd].width&amp;&amp;p.x-diameter&gt;0&amp;&amp;p.y+diameter&lt;mb_mapObj[mapObjInd].height&amp;&amp;p.y-diameter&gt;0){drawCircle(p.x-1,p.y-1,diameter,col);}}
++<span class="reserved">else</span> <span class="reserved">if</span>(t==geomType.line||t==geomType.polygon){<span class="reserved">for</span>(var j=0;j&lt;g.get(i).count()-1;j++){var pq=calculateVisibleDash(realToMap(mapframe,g.get(i).get(j)),realToMap(mapframe,g.get(i).get(j+1)),width,height);<span class="reserved">if</span>(pq){drawLine([pq[0].x-1,pq[1].x-1],[pq[0].y-1,pq[1].y-1],col);}}}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">"class Canvas: function drawGeometry: unknown geomType "</span>+t);}}};<span class="reserved">this</span>.isTooSmall=<span class="reserved">function</span>(g){var tmp=g.getBBox();var min=realToMap(mapframe,tmp[0]);var max=realToMap(mapframe,tmp[1]);<span class="reserved">if</span>((Math.abs(max.x-min.x)&lt;minWidth)&amp;&amp;(Math.abs(max.y-min.y)&lt;minWidth)){<span class="reserved">return</span> true;}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.getCanvas=<span class="reserved">function</span>(){<span class="reserved">return</span> canvas;};var drawCircle=<span class="reserved">function</span>(x,y,diameter,color){canvas.setColor(color);canvas.drawEllipse(x-diameter/2,y-diameter/2,diameter,diameter);};var drawLine=<span class="reserved">function</span>(x_array,y_array,color){canvas.setColor(color);canvas.drawPolyline(x_array,y_array);};<span class="reserved">this</span>.canvasDivTag=new DivTag(aTagName,aMapframe,aStyle);var that=<span class="reserved">this</span>;var diameter=8;var minWidth=8;var lineWidth=aLineWidth;var mapframe=aMapframe;var style=aStyle;var canvas=new jsGraphics(aTagName,window.frames[mapframe]);canvas.setStroke(lineWidth);mb_registerPanSubElement(aTagName);}
++Canvas.<span class="reserved">prototype</span>.clean=<span class="reserved">function</span>(){<span class="reserved">this</span>.canvasDivTag.clean();};Canvas.<span class="reserved">prototype</span>.paint=<span class="reserved">function</span>(gA){<span class="reserved">for</span>(var q=0;q&lt;gA.count();q++){var m=gA.get(q);var t=m.geomType;var col=m.color;<span class="reserved">if</span>(t==geomType.point){<span class="reserved">this</span>.drawGeometry(t,m,col);}
++<span class="reserved">else</span>{<span class="reserved">if</span>(<span class="reserved">this</span>.isTooSmall(m)){var newMember=new MultiGeometry(geomType.point);newMember.addGeometry();newMember.get(-1).addPoint(m.getCenter());<span class="reserved">this</span>.drawGeometry(geomType.point,newMember,col);}
++<span class="reserved">else</span>{<span class="reserved">if</span>(t==geomType.line){<span class="reserved">this</span>.drawGeometry(t,m,col);}
++<span class="reserved">else</span> <span class="reserved">if</span>(t==geomType.polygon){<span class="reserved">this</span>.drawGeometry(t,m,col);}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">"class Canvas: function paint: unknown geomType"</span>+t);}}}}
++<span class="reserved">this</span>.getCanvas().paint();};<span class="reserved">function</span> Highlight(aTargetArray,aTagName,aStyle,aLineWidth){<span class="reserved">this</span>.del=<span class="reserved">function</span>(m,color){var a=gA.findMultiGeometry(m);var del=false;<span class="reserved">for</span>(var i=0;i&lt;a.length&amp;&amp;del===false;i++){<span class="reserved">if</span>(gA.get(a[i]).color==color){gA.del(a[i]);del=true;}}
++<span class="reserved">this</span>.paint();};<span class="reserved">this</span>.add=<span class="reserved">function</span>(m,color){gA.addCopy(m);<span class="reserved">if</span>(typeof(color)!=<span class="literal">'undefined'</span>){gA.get(-1).color=color;}
++<span class="reserved">else</span>{gA.get(-1).color=lineColor;}
++<span class="reserved">this</span>.paint();};<span class="reserved">this</span>.clean=<span class="reserved">function</span>(){<span class="reserved">if</span>(gA.count()&gt;0){gA=new GeometryArray();<span class="reserved">this</span>.paint();}};<span class="reserved">this</span>.paint=<span class="reserved">function</span>(){<span class="reserved">for</span>(var i=0;i&lt;canvas.length;i++){<span class="reserved">if</span>(typeof(canvas[i])==<span class="literal">"object"</span>){canvas[i].clean();}}
++<span class="reserved">for</span>(var i=0;i&lt;targets.length;i++){<span class="reserved">if</span>(typeof(canvas[i])==<span class="literal">'undefined'</span>){canvas[i]=new Canvas(targets[i],tagname,style,lineWidth);}
++canvas[i].paint(gA);}};var lineWidth=aLineWidth;var tagname=<span class="literal">'mod_gaz_draw'</span>+aTagName;var style=aStyle;var targets=aTargetArray;var canvas=[];var gA=new GeometryArray();var lineColor=<span class="literal">"#ff0000"</span>;<span class="reserved">this</span>.paint();}
++<span class="reserved">function</span> Snapping(aTarget,aTolerance,aColor,aZIndex){<span class="reserved">this</span>.draw=<span class="reserved">function</span>(center,radius){mG=new MultiGeometry(geomType.point);mG.addGeometry();mG.get(-1).addPoint(center);highlight.add(mG);};<span class="reserved">this</span>.getTolerance=<span class="reserved">function</span>(){<span class="reserved">return</span> tolerance;};<span class="reserved">this</span>.getTarget=<span class="reserved">function</span>(){<span class="reserved">return</span> target;};<span class="reserved">this</span>.cleanHighlight=<span class="reserved">function</span>(){<span class="reserved">return</span> highlight.clean();};<span class="reserved">this</span>.addPoint=<span class="reserved">function</span>(aPoint){coord.push(aPoint);};<span class="reserved">this</span>.getPointCount=<span class="reserved">function</span>(){<span class="reserved">return</span> coord.length;};<span class="reserved">this</span>.getPoint=<span class="reserved">function</span>(i){<span class="reserved">return</span> coord[i];};<span class="reserved">this</span>.resetPoints=<span class="reserved">function</span>(){coord=[];};<span class="reserved">this</span>.getNearestNeighbour=<span class="reserved">function</span>(){<span class="reserved">if</span>(min_i!=-1){<span class="reserved">return</span> <span class="reserved">this</span>.getPoint(min_i);}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.setIndexOfNearestNeighbour=<span class="reserved">function</span>(i){min_i=i;};<span class="reserved">this</span>.resetIndexOfNearestNeighbour=<span class="reserved">function</span>(){min_i=-1;};var tolerance=(typeof(aTolerance)==<span class="literal">'undefined'</span>)?10:aTolerance;var zIndex=(typeof(aZIndex)==<span class="literal">'undefined'</span>)?50:aZIndex;var coord=[];var min_i=-1;var target=aTarget;var lineWidth=2;var style={<span class="literal">"position"</span>:<span class="literal">"absolute"</span>,<span class="literal">"top"</span>:<span class="literal">"0px"</span>,<span class="literal">"left"</span>:<span class="literal">"0px"</span>,<span class="literal">"z-index"</span>:zIndex};var highlight=new Highlight([target],<span class="literal">"snapping"</span>+Math.round(Math.random()*Math.pow(10,10)),style,lineWidth);}
++Snapping.<span class="reserved">prototype</span>.check=<span class="reserved">function</span>(currPoint){var minDist=false;<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.getPointCount();i++){var currDist=currPoint.dist(realToMap(<span class="reserved">this</span>.getTarget(),<span class="reserved">this</span>.getPoint(i)));<span class="reserved">if</span>(minDist===false||currDist&lt;minDist){minDist=currDist;<span class="reserved">if</span>(minDist&lt;<span class="reserved">this</span>.getTolerance()){<span class="reserved">this</span>.setIndexOfNearestNeighbour(i);}}}
++<span class="reserved">if</span>(<span class="reserved">this</span>.getPointCount()&gt;0&amp;&amp;minDist&gt;<span class="reserved">this</span>.getTolerance()){<span class="reserved">this</span>.resetIndexOfNearestNeighbour();}
++<span class="reserved">this</span>.cleanHighlight();<span class="reserved">if</span>(<span class="reserved">this</span>.isSnapped()){<span class="reserved">this</span>.draw(<span class="reserved">this</span>.getNearestNeighbour(),<span class="reserved">this</span>.getTolerance());}};Snapping.<span class="reserved">prototype</span>.store=<span class="reserved">function</span>(geom,point){<span class="reserved">this</span>.resetPoints();<span class="reserved">this</span>.resetIndexOfNearestNeighbour();<span class="reserved">for</span>(var i=0;i&lt;geom.count();i++){<span class="reserved">if</span>(geom.name==nameGeometryArray||geom.name==nameMultiGeometry){<span class="reserved">for</span>(var j=0;j&lt;geom.get(i).count();j++){<span class="reserved">if</span>(geom.get(i).name==nameMultiGeometry){<span class="reserved">for</span>(var k=0;k&lt;geom.get(i).get(j).count();k++){<span class="reserved">if</span>((geom.get(i).get(j).isComplete()===true&amp;&amp;typeof(point)==<span class="literal">'undefined'</span>)||(typeof(point)!=<span class="literal">'undefined'</span>&amp;&amp;!geom.get(i).get(j).get(k).equals(point))){<span class="reserved">this</span>.add(geom.getPoint(i,j,k));}}}
++<span class="reserved">else</span>{<span class="reserved">if</span>((geom.get(i).isComplete()===true&amp;&amp;typeof(point)==<span class="literal">'undefined'</span>)||(typeof(point)!=<span class="literal">'undefined'</span>&amp;&amp;!geom.get(i).get(j).get(k).equals(point))){<span class="reserved">this</span>.add(geom.getPoint(i,j));}}}}
++<span class="reserved">else</span>{<span class="reserved">if</span>(typeof(point)!=<span class="literal">'undefined'</span>&amp;&amp;!geom.get(i).get(j).get(k).equals(point)){<span class="reserved">this</span>.add(geom.get(i));}}}};Snapping.<span class="reserved">prototype</span>.isSnapped=<span class="reserved">function</span>(){<span class="reserved">if</span>(<span class="reserved">this</span>.getNearestNeighbour()!==false){<span class="reserved">return</span> true;}
++<span class="reserved">return</span> false;};Snapping.<span class="reserved">prototype</span>.getSnappedPoint=<span class="reserved">function</span>(){<span class="reserved">return</span> <span class="reserved">this</span>.getNearestNeighbour();};Snapping.<span class="reserved">prototype</span>.add=<span class="reserved">function</span>(aPoint){<span class="reserved">this</span>.addPoint(aPoint);};Snapping.<span class="reserved">prototype</span>.clean=<span class="reserved">function</span>(){<span class="reserved">this</span>.cleanHighlight();};<span class="reserved">function</span> calculateVisibleDash(p0,p1,width,height){<span class="reserved">if</span>(p0.x&gt;p1.x){var p_temp=p0;p0=p1;p1=p_temp;p_temp=null;}
++var p=p0;var q=p1;var m;var ix;var iy;<span class="reserved">if</span>(p1.x!=p0.x){m=-(p1.y-p0.y)/(p1.x-p0.x);<span class="reserved">if</span>(p0.x&lt;width&amp;&amp;p1.x&gt;0&amp;&amp;!(p0.y&lt;0&amp;&amp;p1.y&lt;0)&amp;&amp;!(p0.y&gt;height&amp;&amp;p1.y&gt;height)){<span class="reserved">if</span>(p0.x&lt;0){iy=p0.y-m*(0-p0.x);<span class="reserved">if</span>(iy&gt;0&amp;&amp;iy&lt;height){p=new Point(0,iy);}
++<span class="reserved">else</span> <span class="reserved">if</span>(iy&gt;height){ix=p0.x+((p0.y-height)/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){p=new Point(ix,height);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(iy&lt;0){ix=p0.x+(p0.y/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){p=new Point(ix,0);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(p0.y&gt;=0&amp;&amp;p0.y&lt;=height){p=p0;}
++<span class="reserved">else</span> <span class="reserved">if</span>(p0.y&lt;0){ix=p0.x+(p0.y/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){p=new Point(ix,0);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(p0.y&gt;height&amp;&amp;m&gt;0){ix=p0.x+((p0.y-height)/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){p=new Point(ix,height);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}
++<span class="reserved">if</span>(p1.x&gt;width){iy=p1.y-m*(width-p1.x);<span class="reserved">if</span>(iy&gt;0&amp;&amp;iy&lt;height){q=new Point(width,iy);}
++<span class="reserved">else</span> <span class="reserved">if</span>(iy&lt;0){ix=p0.x+(p0.y/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){q=new Point(ix,0);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(iy&gt;height){ix=p0.x+((p0.y-height)/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){q=new Point(ix,height);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(p1.y&gt;=0&amp;&amp;p1.y&lt;=height){q=p1;}
++<span class="reserved">else</span> <span class="reserved">if</span>(p1.y&lt;0){ix=p1.x+(p1.y/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){q=new Point(ix,0);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(p1.y&gt;height){ix=p1.x+((p1.y-height)/m);<span class="reserved">if</span>(ix&gt;0&amp;&amp;ix&lt;width){q=new Point(ix,height);}<span class="reserved">else</span>{<span class="reserved">return</span> false;}}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">else</span>{<span class="reserved">if</span>(!(p0.y&lt;0&amp;&amp;p1.y&lt;0)&amp;&amp;!(p0.y&gt;height&amp;&amp;p1.y&gt;height)){<span class="reserved">if</span>(p0.y&lt;0){p=new Point(p0.x,0);}
++<span class="reserved">else</span> <span class="reserved">if</span>(p0.y&gt;height){p=new Point(p0.x,height);}
++<span class="reserved">else</span>{p=p0;}
++<span class="reserved">if</span>(p1.y&lt;0){q=new Point(p0.x,0);}
++<span class="reserved">else</span> <span class="reserved">if</span>(p1.y&gt;height){q=new Point(p0.x,height);}
++<span class="reserved">else</span>{q=p1;}}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">return</span>[new Point(Math.round(q.x),Math.round(q.y)),new Point(Math.round(p.x),Math.round(p.y))];}
++<span class="reserved">function</span> objString(a){var z=<span class="literal">""</span>;<span class="reserved">for</span>(attr in a){var b=a[attr];<span class="reserved">if</span>(typeof(b)==<span class="literal">"object"</span>){z+=objString(b);}
++<span class="reserved">else</span>{z+=attr+<span class="literal">" "</span>+b+<span class="literal">"\n"</span>;alert(attr+<span class="literal">" "</span>+b);}}
++<span class="reserved">return</span> z;}</pre>
++	<hr>
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-summary-map.js.html
+===================================================================
+--- documents/jsdoc/overview-summary-map.js.html	(revision 0)
++++ documents/jsdoc/overview-summary-map.js.html	(revision 0)
+@@ -0,0 +1,1725 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title="map.js Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>map.js</h2>
++	
++</center>
++
++	
++
++
++<h4>Summary</h4>
++<p>
++	
++		No overview generated for 'map.js'<BR/><BR/>
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>Class Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="DivTag.html">DivTag</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="mb_conButton.html">mb_conButton</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Mb_exception.html">Mb_exception</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="mb_mapObj_const.html">mb_mapObj_const</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Mb_notice.html">Mb_notice</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Mb_warning.html">Mb_warning</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++	<a name="method_summary"><!-- --></a>
++	<table border="1" cellpadding="3" cellspacing="0" width="100%">
++		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
++			<td colspan=2>
++				<font size="+2">
++					<b>Method Summary</b>
++				</font>
++			</td>
++		</tr>
++	
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!cloneObject">cloneObject</a></b>(someObject)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!deleteMapObj">deleteMapObj</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!deleteWmsObject">deleteWmsObject</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!getMapObjIndexByName">getMapObjIndexByName</a></b>(frameName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!getWMSIDByTitle">getWMSIDByTitle</a></b>(frameName,wms_title)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!getWMSIndexById">getWMSIndexById</a></b>(frameName,wms_id)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!getWMSIndexByTitle">getWMSIndexByTitle</a></b>(frameName,wms_title)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!handleSelectedLayer">handleSelectedLayer</a></b>(frameName,wms_title,layerName,type,status)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!handleSelectedLayer_array">handleSelectedLayer_array</a></b>(mapObj,array_wms,array_layer,type,status)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!init">init</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!makeClickPos2RealWorldPos">makeClickPos2RealWorldPos</a></b>(frameName,myClickX,myClickY)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!makeRealWorld2mapPos">makeRealWorld2mapPos</a></b>(frameName,rw_posx,rw_posy)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_ajax_get">mb_ajax_get</a></b>(url,param,callback)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_ajax_json">mb_ajax_json</a></b>(url,param,callback)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_ajax_post">mb_ajax_post</a></b>(url,param,callback)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_arrangeElement">mb_arrangeElement</a></b>(frameName,elName,left,top)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_button_click">mb_button_click</a></b>(ind)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_button_out">mb_button_out</a></b>(ind)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_button_over">mb_button_over</a></b>(ind)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_calculateExtent">mb_calculateExtent</a></b>(frameName,minx,miny,maxx,maxy)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_checkScale">mb_checkScale</a></b>(frameName,mObj,wmsObj)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_checkTag">mb_checkTag</a></b>(frameName,tagName,elementId,appendAtTagName,attributes)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_disableButton">mb_disableButton</a></b>(elName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_disableResult">mb_disableResult</a></b>(frameName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_disableThisButton">mb_disableThisButton</a></b>(elName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_execloadWmsSubFunctions">mb_execloadWmsSubFunctions</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_execWfsReadSubFunctions">mb_execWfsReadSubFunctions</a></b>(geom)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_execWfsWriteSubFunctions">mb_execWfsWriteSubFunctions</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getchildsbyname">mb_getchildsbyname</a></b>(objInd,wmsInd,lname)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getConjunctionCharacter">mb_getConjunctionCharacter</a></b>(onlineresource)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getLayerObjByName">mb_getLayerObjByName</a></b>(fname,wms_id,layer_name)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getlayerposbyname">mb_getlayerposbyname</a></b>(objInd,wmsInd,lname)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getLayerTitleByName">mb_getLayerTitleByName</a></b>(map_index,wms_index,myLayer_name)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getMousePos">mb_getMousePos</a></b>(e,fName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_getScale">mb_getScale</a></b>(frameName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_hideHighlight">mb_hideHighlight</a></b>(frameName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_mapObjaddWMS">mb_mapObjaddWMS</a></b>(obj)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_mapObjaddWMSwithLayers">mb_mapObjaddWMSwithLayers</a></b>(obj,layers,querylayers)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_mapObjremoveWMS">mb_mapObjremoveWMS</a></b>(objind,wmsind)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_markResult">mb_markResult</a></b>(frameName,geom,col)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_moveDownWmsByIndex">mb_moveDownWmsByIndex</a></b>(mapObj_ind,index)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_moveUpWmsByIndex">mb_moveUpWmsByIndex</a></b>(mapObj_ind,index)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_moveWmsById">mb_moveWmsById</a></b>(mapObj_ind,wms_id,toIndex)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_panMap">mb_panMap</a></b>(frameName,dir)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_permanentHighlight">mb_permanentHighlight</a></b>(frameName,x,y)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_regButton">mb_regButton</a></b>(wii)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_regButton_frame">mb_regButton_frame</a></b>(wii,frameName,param)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerFeatureInfoPreFunctions">mb_registerFeatureInfoPreFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerGetScalePreFunctions">mb_registerGetScalePreFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerGML">mb_registerGML</a></b>(frameName,obj)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerInitFunctions">mb_registerInitFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerloadWmsSubFunctions">mb_registerloadWmsSubFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerMapObj">mb_registerMapObj</a></b>(frameName,elementName,wms_index,width,height)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerMapObjectSubFunctions">mb_registerMapObjectSubFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerPanSubElement">mb_registerPanSubElement</a></b>(elName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerPreFunctions">mb_registerPreFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerSubFunctions">mb_registerSubFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerVendorSpecific">mb_registerVendorSpecific</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerWfsReadSubFunctions">mb_registerWfsReadSubFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_registerWfsWriteSubFunctions">mb_registerWfsWriteSubFunctions</a></b>(stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_removeFunctionFromArray">mb_removeFunctionFromArray</a></b>(arrayname,stringFunction)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_repaint">mb_repaint</a></b>(frameName,minx,miny,maxx,maxy)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_repaintScale">mb_repaintScale</a></b>(frameName,x,y,scale)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_restateLayers">mb_restateLayers</a></b>(frameName,wms_id)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_showHighlight">mb_showHighlight</a></b>(frameName,x,y)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_swapWmsById">mb_swapWmsById</a></b>(mapObj_ind,wms1_id,wms2_id)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_swapWmsByIndex">mb_swapWmsByIndex</a></b>(mapObj_ind,indexA,indexB)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_timestamp">mb_timestamp</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_wmsMoveByIndex">mb_wmsMoveByIndex</a></b>(mapObj_ind,fromIndex,toIndex)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!setExtent">setExtent</a></b>(width,height,epsg)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!setFeatureInfoRequest">setFeatureInfoRequest</a></b>(fName,x,y,path)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!setMapRequest">setMapRequest</a></b>(frameName)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!setSingleMapRequest">setSingleMapRequest</a></b>(frameName,wms_id)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!writeTag">writeTag</a></b>(frameName,elName,tagSource)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!zoom">zoom</a></b>(frameName,in_,factor,x,y)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++	
++	</table>
++    <p>
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++        <pre class="sourceview">var ie=document.all?1:0;var n6=document.getElementById&amp;&amp;!document.all?1:0;var n4=document.layers?1:0;var mb_feature_count=100;var mb_resolution=28.35;var mb_mapObj=[];var mb_fiWin=null;var mb_panActive=false;var clickX;var clickY;var mb_start_x=0;var mb_start_y=0;var mb_end_x=0;var mb_end_y=0;var mb_offset_top=0;var mb_offset_right=0;var mb_offset_bottom=0;var mb_offset_left=0;var mb_log=null;var mb_PanSubElements=[];<span class="reserved">function</span> mb_registerPanSubElement(elName){var ind=mb_PanSubElements.length;mb_PanSubElements[ind]=elName;}
++var mb_vendorSpecific=[];<span class="reserved">function</span> mb_registerVendorSpecific(stringFunction){mb_vendorSpecific[mb_vendorSpecific.length]=stringFunction;}
++var mb_security_proxy=<span class="literal">"http://wms1.ccgis.de/mapbender/tools/security_proxy.php?mb_ows_security_proxy="</span>;var mb_trans=new Image;mb_trans.src=<span class="literal">"../img/transparent.gif"</span>;<span class="reserved">function</span> init(){<span class="reserved">for</span>(var i=0;i&lt;mb_InitFunctions.length;i++){eval(mb_InitFunctions[i]);}
++<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){setMapRequest(mb_mapObj[i].frameName);}}
++<span class="reserved">function</span> deleteWmsObject(){wms=[];wms_layer_count=0;}
++<span class="reserved">function</span> deleteMapObj(){mb_mapObj=[];}
++<span class="reserved">function</span> mb_registerMapObj(frameName,elementName,wms_index,width,height){mb_mapObj[mb_mapObj.length]=new mb_mapObj_const(frameName,elementName,width,height,wms_index);}
++<span class="reserved">function</span> mb_mapObj_const(frameName,elementName,width,height,wms_index){<span class="reserved">this</span>.width=width;<span class="reserved">this</span>.height=height;<span class="reserved">this</span>.frameName=frameName;<span class="reserved">this</span>.elementName=elementName;<span class="reserved">this</span>.layers=[];<span class="reserved">this</span>.styles=[];<span class="reserved">this</span>.querylayers=[];<span class="reserved">this</span>.geom=<span class="literal">""</span>;<span class="reserved">this</span>.gml=<span class="literal">""</span>;<span class="reserved">if</span>(wms_index!=null){<span class="reserved">this</span>.wms=[];<span class="reserved">this</span>.wms[0]=wms[wms_index];<span class="reserved">this</span>.wms[0].mapURL=false;var cnt_layers=0;var cnt_querylayers=0;var styles=<span class="literal">""</span>;var layers=<span class="literal">""</span>;var querylayers=<span class="literal">""</span>;<span class="reserved">for</span>(var ii=0;ii&lt;<span class="reserved">this</span>.wms[0].objLayer.length;ii++){<span class="reserved">if</span>(<span class="reserved">this</span>.wms[0].objLayer[ii].gui_layer_visible==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_layers&gt;0){layers+=<span class="literal">","</span>;styles+=<span class="literal">","</span>;}
++layers+=<span class="reserved">this</span>.wms[0].objLayer[ii].layer_name;styles+=<span class="literal">""</span>;cnt_layers++;}
++<span class="reserved">if</span>(<span class="reserved">this</span>.wms[0].objLayer[ii].gui_layer_querylayer==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_querylayers&gt;0){querylayers+=<span class="literal">","</span>;}
++querylayers+=<span class="reserved">this</span>.wms[0].objLayer[ii].layer_name;cnt_querylayers++;}}
++<span class="reserved">this</span>.layers[0]=layers;<span class="reserved">this</span>.styles[0]=styles;<span class="reserved">this</span>.querylayers[0]=querylayers;}
++<span class="reserved">else</span>{<span class="reserved">this</span>.wms=[];<span class="reserved">for</span>(i=0;i&lt;wms.length;i++){<span class="reserved">this</span>.wms[i]=wms[i];<span class="reserved">this</span>.wms[i].mapURL=false;}
++<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.wms.length;i++){var cnt_layers=0;var cnt_querylayers=0;var styles=<span class="literal">""</span>;var layers=<span class="literal">""</span>;var querylayers=<span class="literal">""</span>;<span class="reserved">for</span>(var ii=0;ii&lt;<span class="reserved">this</span>.wms[i].objLayer.length;ii++){<span class="reserved">if</span>(<span class="reserved">this</span>.wms[i].objLayer[ii].gui_layer_visible==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_layers&gt;0){layers+=<span class="literal">","</span>;styles+=<span class="literal">","</span>;}
++layers+=wms[i].objLayer[ii].layer_name;styles+=<span class="literal">""</span>;cnt_layers++;}
++<span class="reserved">if</span>(<span class="reserved">this</span>.wms[i].objLayer[ii].gui_layer_querylayer==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_querylayers&gt;0){querylayers+=<span class="literal">","</span>;}
++querylayers+=wms[i].objLayer[ii].layer_name;cnt_querylayers++;}}
++<span class="reserved">this</span>.layers[i]=layers;<span class="reserved">this</span>.styles[i]=styles;<span class="reserved">this</span>.querylayers[i]=querylayers;}}
++<span class="reserved">this</span>.epsg=wms[0].gui_wms_epsg;<span class="reserved">this</span>.extent=setExtent(<span class="reserved">this</span>.width,<span class="reserved">this</span>.height,<span class="reserved">this</span>.epsg);<span class="reserved">this</span>.mapURL=[];<span class="reserved">for</span>(var i=0;i&lt;mb_MapObjectSubFunctions.length;i++){eval(mb_MapObjectSubFunctions[i]);}}
++<span class="reserved">function</span> mb_getConjunctionCharacter(onlineresource){<span class="reserved">if</span>(onlineresource.indexOf(<span class="literal">"?"</span>)&gt;-1){<span class="reserved">if</span>(onlineresource.charAt(onlineresource.length-1)==<span class="literal">"?"</span>){nextvalue=<span class="literal">""</span>;}<span class="reserved">else</span> <span class="reserved">if</span>(onlineresource.charAt(onlineresource.length-1)==<span class="literal">"&amp;"</span>){nextvalue=<span class="literal">""</span>;}<span class="reserved">else</span>{nextvalue=<span class="literal">"&amp;"</span>;}}
++<span class="reserved">if</span>(onlineresource.indexOf(<span class="literal">"?"</span>)==-1){nextvalue=<span class="literal">"?"</span>;}
++<span class="reserved">return</span> nextvalue;}
++<span class="reserved">function</span> mb_moveWmsById(mapObj_ind,wms_id,toIndex){<span class="reserved">return</span> mb_wmsMoveByIndex(mapObj_ind,getWMSIndexById(mapObj_ind,wms_id),toIndex);}
++<span class="reserved">function</span> mb_wmsMoveByIndex(mapObj_ind,fromIndex,toIndex){<span class="reserved">if</span>(fromIndex!=toIndex&amp;&amp;fromIndex&gt;=0&amp;&amp;fromIndex&lt;mb_mapObj[mapObj_ind].wms.length&amp;&amp;toIndex&gt;=0&amp;&amp;toIndex&lt;mb_mapObj[mapObj_ind].wms.length){var changed=false;<span class="reserved">if</span>(fromIndex&gt;toIndex){<span class="reserved">for</span>(var i=fromIndex;i&gt;toIndex;i--){var result=mb_swapWmsByIndex(mapObj_ind,i-1,i);<span class="reserved">if</span>(result==true)changed=true;}}
++<span class="reserved">else</span>{<span class="reserved">for</span>(var i=fromIndex;i&lt;toIndex;i++){var result=mb_swapWmsByIndex(mapObj_ind,i,i+1);<span class="reserved">if</span>(result==true)changed=true;}}
++<span class="reserved">return</span> changed;}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">function</span> mb_swapWmsById(mapObj_ind,wms1_id,wms2_id){<span class="reserved">return</span> mb_swapWmsByIndex(mapObj_ind,getWMSIndexById(mapObj_ind,wms1_id),getWMSIndexById(mapObj_ind,wms2_id));}
++<span class="reserved">function</span> mb_swapWmsByIndex(mapObj_ind,indexA,indexB){<span class="reserved">if</span>(indexA!=indexB&amp;&amp;indexA&gt;=0&amp;&amp;indexA&lt;mb_mapObj[mapObj_ind].wms.length&amp;&amp;indexB&gt;=0&amp;&amp;indexB&lt;mb_mapObj[mapObj_ind].wms.length){upper=mb_mapObj[mapObj_ind].wms[indexA];mb_mapObj[mapObj_ind].wms[indexA]=mb_mapObj[mapObj_ind].wms[indexB];mb_mapObj[mapObj_ind].wms[indexB]=upper;var upperLayers=mb_mapObj[mapObj_ind].layers[indexA];var upperStyles=mb_mapObj[mapObj_ind].styles[indexA];var upperQuerylayers=mb_mapObj[mapObj_ind].querylayers[indexA];mb_mapObj[mapObj_ind].layers[indexA]=mb_mapObj[mapObj_ind].layers[indexB];mb_mapObj[mapObj_ind].styles[indexA]=mb_mapObj[mapObj_ind].styles[indexB];mb_mapObj[mapObj_ind].querylayers[indexA]=mb_mapObj[mapObj_ind].querylayers[indexB];mb_mapObj[mapObj_ind].layers[indexB]=upperLayers;mb_mapObj[mapObj_ind].styles[indexB]=upperStyles;mb_mapObj[mapObj_ind].querylayers[indexB]=upperQuerylayers;<span class="reserved">return</span> true;}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">function</span> mb_moveUpWmsByIndex(mapObj_ind,index){<span class="reserved">if</span>(index&gt;0&amp;&amp;index&lt;wms.length){<span class="reserved">return</span> mb_swapWmsByIndex(mapObj_ind,index-1,index);}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">function</span> mb_moveDownWmsByIndex(mapObj_ind,index){<span class="reserved">if</span>(index&gt;=0&amp;&amp;index&lt;wms.length-1){<span class="reserved">return</span> mb_swapWmsByIndex(mapObj_ind,index,index+1);}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">function</span> mb_mapObjaddWMS(obj){var cnt_layers=0;var cnt_querylayers=0;var styles=<span class="literal">""</span>;var layers=<span class="literal">""</span>;var querylayers=<span class="literal">""</span>;var ind=getMapObjIndexByName(obj);<span class="reserved">for</span>(var i=0;i&lt;(wms.length-1);i++){<span class="reserved">if</span>(parseInt(wms[i].wms_id)&gt;=parseInt(wms[wms.length-1].wms_id)){wms[wms.length-1].wms_id=parseInt(mb_mapObj[ind].wms[i].wms_id)+1;}}
++mb_mapObj[ind].wms[mb_mapObj[ind].wms.length]=wms[wms.length-1];mb_mapObj[ind].layers[mb_mapObj[ind].layers.length]=layers;mb_mapObj[ind].styles[mb_mapObj[ind].styles.length]=styles;mb_mapObj[ind].querylayers[mb_mapObj[ind].querylayers.length]=querylayers;mb_execloadWmsSubFunctions();<span class="reserved">return</span> true;}
++<span class="reserved">function</span> mb_mapObjaddWMSwithLayers(obj,layers,querylayers){var cnt_layers=0;var cnt_querylayers=0;var styles=<span class="literal">""</span>;var ind=getMapObjIndexByName(obj);mb_mapObj[ind].wms[mb_mapObj[ind].wms.length]=wms[wms.length-1];mb_mapObj[ind].layers[mb_mapObj[ind].layers.length]=layers;mb_mapObj[ind].styles[mb_mapObj[ind].styles.length]=styles;mb_mapObj[ind].querylayers[mb_mapObj[ind].querylayers.length]=querylayers;}
++<span class="reserved">function</span> mb_mapObjremoveWMS(objind,wmsind){var wms_ID=null;var new_wmsarray=[];var new_layerarray=[];var new_querylayerarray=[];var new_stylesarray=[];var new_mapURLarray=[];<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[objind].wms.length;i++){<span class="reserved">if</span>(i!=wmsind){new_wmsarray[new_wmsarray.length]=mb_mapObj[objind].wms[i];new_layerarray[new_layerarray.length]=mb_mapObj[objind].layers[i];new_querylayerarray[new_querylayerarray.length]=mb_mapObj[objind].querylayers[i];new_stylesarray[new_stylesarray.length]=mb_mapObj[objind].styles[i];new_mapURLarray[new_mapURLarray.length]=mb_mapObj[objind].mapURL[i]}
++<span class="reserved">else</span>{wms_ID=mb_mapObj[objind].wms[i].wms_id;}}
++mb_mapObj[objind].wms=new_wmsarray;mb_mapObj[objind].layers=new_layerarray;mb_mapObj[objind].querylayers=new_querylayerarray;mb_mapObj[objind].styles=new_stylesarray;mb_mapObj[objind].mapURL=new_mapURLarray;var another_new_wmsarray=[];<span class="reserved">for</span>(var i=0;i&lt;wms.length;i++){<span class="reserved">if</span>(wms[i].wms_id!=wms_ID){another_new_wmsarray[another_new_wmsarray.length]=wms[i];}}
++wms=another_new_wmsarray;}
++<span class="reserved">function</span> setExtent(width,height,epsg){<span class="reserved">for</span>(var i=0;i&lt;wms[0].gui_epsg.length;i++){<span class="reserved">if</span>(wms[0].gui_epsg[i]==epsg){var bbox_minx=parseFloat(wms[0].gui_minx[i]);var bbox_miny=parseFloat(wms[0].gui_miny[i]);var bbox_maxx=parseFloat(wms[0].gui_maxx[i]);var bbox_maxy=parseFloat(wms[0].gui_maxy[i]);var extenty=bbox_maxy-bbox_miny;var extentx=bbox_maxx-bbox_minx;var relation_px_x=width/height;var relation_px_y=height/width;var relation_bbox_x=extentx/extenty;var centerx=bbox_minx+(extentx/2);var centery=bbox_miny+(extenty/2);<span class="reserved">if</span>(relation_bbox_x&lt;=relation_px_x){bbox_minx=centerx-relation_px_x*extenty/2;bbox_maxx=centerx+relation_px_x*extenty/2;}
++<span class="reserved">if</span>(relation_bbox_x&gt;relation_px_x){bbox_miny=centery-relation_px_y*extentx/2;bbox_maxy=centery+relation_px_y*extentx/2;}
++<span class="reserved">return</span> bbox_minx+<span class="literal">","</span>+bbox_miny+<span class="literal">","</span>+bbox_maxx+<span class="literal">","</span>+bbox_maxy;}}}
++<span class="reserved">function</span> setMapRequest(frameName){var functionName=<span class="literal">'setMapRequest'</span>;var ts=mb_timestamp();<span class="reserved">for</span>(var i=0;i&lt;mb_MapRequestPreFunctions.length;i++){var ret=eval(mb_MapRequestPreFunctions[i]);<span class="reserved">if</span>(ret==false){<span class="reserved">return</span> true;}}
++<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){var newMapRequest=<span class="literal">""</span>;<span class="reserved">if</span>(mb_mapObj[i].frameName==frameName){<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[i].wms.length;ii++){<span class="reserved">if</span>(mb_mapObj[i].wms[ii].gui_wms_visible&gt;0){var myDivId=<span class="literal">"div_"</span>+ii;var myMapId=<span class="literal">"map_"</span>+ii;var str_LayerStyles=mb_checkScale(frameName,i,ii);<span class="reserved">if</span>(mb_mapObj[i].layers[ii]!=<span class="literal">""</span>&amp;&amp;str_LayerStyles[0]!=<span class="literal">''</span>){var newMapURL=<span class="literal">""</span>;<span class="reserved">if</span>(mb_mapObj[i].wms[ii].gui_wms_mapopacity!=1){var cadenaOpacity=<span class="literal">"opacity:"</span>+mb_mapObj[i].wms[ii].gui_wms_mapopacity+<span class="literal">"; Filter: Alpha(Opacity="</span>+mb_mapObj[i].wms[ii].gui_wms_mapopacity*100+<span class="literal">"); -moz-opacity:"</span>+mb_mapObj[i].wms[ii].gui_wms_mapopacity+<span class="literal">" ; -khtml-opacity:"</span>+mb_mapObj[i].wms[ii].gui_wms_mapopacity;newMapRequest+=<span class="literal">"&lt;div id='"</span>+myDivId+<span class="literal">"' style=\"</span>position:absolute; top:0px; left:0px; z-index:<span class="literal">"+ii+"</span>;<span class="literal">"+cadenaOpacity+"</span>\<span class="literal">"&gt;"</span>;}
++<span class="reserved">else</span>{newMapRequest+=<span class="literal">"&lt;div id='"</span>+myDivId+<span class="literal">"' style='position:absolute; top:0px; left:0px; z-index:"</span>+ii+<span class="literal">"'&gt;"</span>;}
++newMapRequest+=<span class="literal">"&lt;img id='"</span>+myMapId+<span class="literal">"' name='mapimage' src='"</span>;newMapURL+=mb_mapObj[i].wms[ii].wms_getmap;newMapURL+=mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version==<span class="literal">"1.0.0"</span>){newMapURL+=<span class="literal">"WMTVER="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=map&amp;"</span>;}
++<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version!=<span class="literal">"1.0.0"</span>){newMapURL+=<span class="literal">"VERSION="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=GetMap&amp;SERVICE=WMS&amp;"</span>;}
++newMapURL+=<span class="literal">"LAYERS="</span>+str_LayerStyles[0]+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"STYLES="</span>+str_LayerStyles[1]+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"SRS="</span>+mb_mapObj[i].epsg+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"BBOX="</span>+mb_mapObj[i].extent+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"WIDTH="</span>+mb_mapObj[i].width+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"HEIGHT="</span>+mb_mapObj[i].height+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"FORMAT="</span>+mb_mapObj[i].wms[ii].gui_wms_mapformat+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"BGCOLOR=0xffffff&amp;"</span>;<span class="reserved">if</span>(mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/gif/i)&gt;-1||mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/png/i)&gt;-1){newMapURL+=<span class="literal">"TRANSPARENT=TRUE&amp;"</span>;}
++newMapURL+=<span class="literal">"EXCEPTIONS="</span>+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;<span class="reserved">for</span>(var v=0;v&lt;mb_vendorSpecific.length;v++){var vendorSpecificString=eval(mb_vendorSpecific[v]);<span class="reserved">if</span>(typeof(vendorSpecificString)!=<span class="literal">"undefined"</span>){newMapURL+=<span class="literal">"&amp;"</span>+vendorSpecificString;}}
++<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_filter!=<span class="literal">""</span>){var tmp=mb_mapObj[i].wms[ii].wms_filter+<span class="literal">"?id="</span>+mb_styleID;var temp=<span class="literal">"&amp;SLD="</span>+tmp+<span class="literal">"&amp;"</span>;newMapURL+=temp;}
++<span class="reserved">if</span>(mb_log){var tmp=eval(mb_log+<span class="literal">"('"</span>+newMapURL+<span class="literal">"','"</span>+ts+<span class="literal">"')"</span>);}
++newMapRequest+=newMapURL;mb_mapObj[i].mapURL[ii]=newMapURL;mb_mapObj[i].wms[ii].mapURL=newMapURL;newMapRequest+=<span class="literal">"' width='"</span>+mb_mapObj[i].width+<span class="literal">"' height='"</span>+mb_mapObj[i].height+<span class="literal">"' border='0'&gt;&lt;/div&gt;"</span>;}
++<span class="reserved">else</span>{mb_mapObj[i].mapURL[ii]=false;mb_mapObj[i].wms[ii].mapURL=false;newMapRequest+=<span class="literal">"&lt;div id='"</span>+myDivId+<span class="literal">"' style='position:absolute; top:0px; left:0px; z-index:"</span>+ii+<span class="literal">"'&gt;"</span>;newMapRequest+=<span class="literal">"&lt;img id='"</span>+myMapId+<span class="literal">"' name='mapimage' src='"</span>+mb_trans.src;newMapRequest+=<span class="literal">"' width='"</span>+mb_mapObj[i].width+<span class="literal">"' height='"</span>+mb_mapObj[i].height+<span class="literal">"' border='0'&gt;"</span>;newMapRequest+=<span class="literal">"&lt;/div&gt;"</span>;}}}
++writeTag(mb_mapObj[i].frameName,mb_mapObj[i].elementName,newMapRequest);}}
++<span class="reserved">for</span>(var i=0;i&lt;mb_MapRequestSubFunctions.length;i++){eval(mb_MapRequestSubFunctions[i]);}}
++<span class="reserved">function</span> setSingleMapRequest(frameName,wms_id){var functionName=<span class="literal">'setSingleMapRequest'</span>;var ts=mb_timestamp();<span class="reserved">for</span>(var i=0;i&lt;mb_MapRequestPreFunctions.length;i++){eval(mb_MapRequestPreFunctions[i]);}
++<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){var newMapRequest=<span class="literal">""</span>;<span class="reserved">if</span>(mb_mapObj[i].frameName==frameName){<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[i].wms.length;ii++){var myDivId=<span class="literal">"div_"</span>+ii;var myMapId=<span class="literal">"map_"</span>+ii;<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_id==wms_id){var newMapURL=<span class="literal">""</span>;newMapRequest+=<span class="literal">"&lt;img id='"</span>+myMapId+<span class="literal">"' name='mapimage' src='"</span>;newMapURL+=mb_mapObj[i].wms[ii].wms_getmap;newMapURL+=mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version==<span class="literal">"1.0.0"</span>){newMapURL+=<span class="literal">"WMTVER="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=map&amp;"</span>;}
++<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version!=<span class="literal">"1.0.0"</span>){newMapURL+=<span class="literal">"VERSION="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=GetMap&amp;SERVICE=WMS&amp;"</span>;}
++var str_LayerStyles=mb_checkScale(frameName,i,ii);newMapURL+=<span class="literal">"LAYERS="</span>+str_LayerStyles[0]+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"STYLES="</span>+str_LayerStyles[1]+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"SRS="</span>+mb_mapObj[i].epsg+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"BBOX="</span>+mb_mapObj[i].extent+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"WIDTH="</span>+mb_mapObj[i].width+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"HEIGHT="</span>+mb_mapObj[i].height+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"FORMAT="</span>+mb_mapObj[i].wms[ii].gui_wms_mapformat+<span class="literal">"&amp;"</span>;newMapURL+=<span class="literal">"BGCOLOR=0xffffff&amp;"</span>;<span class="reserved">if</span>(mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/gif/i)&gt;-1||mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/png/i)&gt;-1){newMapURL+=<span class="literal">"TRANSPARENT=TRUE&amp;"</span>;}
++newMapURL+=<span class="literal">"EXCEPTIONS="</span>+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;<span class="reserved">for</span>(var v=0;v&lt;mb_vendorSpecific.length;v++){var vendorSpecificString=eval(mb_vendorSpecific[v]);<span class="reserved">if</span>(typeof(vendorSpecificString)!=<span class="literal">"undefined"</span>){newMapURL+=<span class="literal">"&amp;"</span>+vendorSpecificString;}}
++<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_filter!=<span class="literal">""</span>){var tmp=mb_mapObj[i].wms[ii].wms_filter+<span class="literal">"?id="</span>+mb_styleID;var temp=<span class="literal">"&amp;SLD="</span>+tmp+<span class="literal">"&amp;"</span>;newMapURL+=temp;}
++<span class="reserved">if</span>(mb_mapObj[i].layers[ii]!=<span class="literal">""</span>&amp;&amp;str_LayerStyles[0]!=<span class="literal">""</span>){newMapRequest+=newMapURL;mb_mapObj[i].mapURL[ii]=newMapURL;mb_mapObj[i].wms[ii].mapURL=newMapURL;newMapRequest+=<span class="literal">"' width='"</span>+mb_mapObj[i].width+<span class="literal">"' height='"</span>+mb_mapObj[i].height+<span class="literal">"' border='0'&gt;"</span>;}
++<span class="reserved">else</span>{mb_mapObj[i].mapURL[ii]=false;mb_mapObj[i].wms[ii].mapURL=false;newMapRequest=<span class="literal">"&lt;img id='"</span>+myMapId+<span class="literal">"' name='mapimage' src='"</span>+mb_trans.src;newMapRequest+=<span class="literal">"' width='"</span>+mb_mapObj[i].width+<span class="literal">"' height='"</span>+mb_mapObj[i].height+<span class="literal">"' border='0'&gt;"</span>;}
++<span class="reserved">if</span>(mb_log){var tmp=eval(mb_log+<span class="literal">"('"</span>+newMapURL+<span class="literal">"','"</span>+ts+<span class="literal">"')"</span>);}
++writeTag(mb_mapObj[i].frameName,myDivId,newMapRequest);}}}}
++<span class="reserved">for</span>(var i=0;i&lt;mb_MapRequestSubFunctions.length;i++){eval(mb_MapRequestSubFunctions[i]);}}
++<span class="reserved">function</span> mb_restateLayers(frameName,wms_id){var ind=getMapObjIndexByName(frameName);<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[ind].wms.length;i++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_id==wms_id){var cnt_layers=0;var cnt_querylayers=0;var layers=<span class="literal">""</span>;var styles=<span class="literal">""</span>;var querylayers=<span class="literal">""</span>;<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[ind].wms[i].objLayer.length;ii++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_visible==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_layers&gt;0){layers+=<span class="literal">","</span>;styles+=<span class="literal">","</span>;}
++layers+=mb_mapObj[ind].wms[i].objLayer[ii].layer_name;styles+=<span class="literal">""</span>;cnt_layers++;}
++<span class="reserved">if</span>(mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_querylayer==1&amp;&amp;ii&gt;0){<span class="reserved">if</span>(cnt_querylayers&gt;0){querylayers+=<span class="literal">","</span>;}
++querylayers+=mb_mapObj[ind].wms[i].objLayer[ii].layer_name;cnt_querylayers++;}
++mb_mapObj[ind].layers[i]=layers;mb_mapObj[ind].querylayers[i]=querylayers;mb_mapObj[ind].styles[i]=styles;}}}}
++<span class="reserved">function</span> mb_checkScale(frameName,mObj,wmsObj){var thisLayer=mb_mapObj[mObj].layers[wmsObj].split(<span class="literal">","</span>);var thisScale=mb_getScale(frameName);var str_layer=<span class="literal">""</span>;var str_styles=<span class="literal">""</span>;var str_titles=<span class="literal">""</span>;var str_legendurls=<span class="literal">""</span>;var str_parent=<span class="literal">""</span>;var cnt_layer=0;<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[mObj].wms[wmsObj].objLayer.length;i++){var myLayername=mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_name;var myMinscale=mb_mapObj[mObj].wms[wmsObj].objLayer[i].gui_layer_minscale;var myMaxscale=mb_mapObj[mObj].wms[wmsObj].objLayer[i].gui_layer_maxscale;<span class="reserved">for</span>(var ii=0;ii&lt;thisLayer.length;ii++){var minscaleOK=false;var maxscaleOK=false;<span class="reserved">if</span>(thisLayer[ii]==myLayername){<span class="reserved">if</span>(myMinscale==0||thisScale&gt;=myMinscale){minscaleOK=true;}
++<span class="reserved">if</span>(myMaxscale==0||thisScale&lt;=myMaxscale){maxscaleOK=true;}
++<span class="reserved">if</span>(maxscaleOK==true&amp;&amp;minscaleOK==true){<span class="reserved">if</span>(cnt_layer&gt;0){str_layer+=<span class="literal">","</span>;str_styles+=<span class="literal">","</span>;str_titles+=<span class="literal">","</span>;str_parent+=<span class="literal">","</span>;str_legendurls+=<span class="literal">","</span>;}
++str_layer+=thisLayer[ii];str_styles+=<span class="literal">""</span>;str_titles+=mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_title;str_parent+=mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_parent;<span class="reserved">if</span>(mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_style.length&gt;0){str_legendurls+=mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_style[0][<span class="literal">"legendurl"</span>];}
++cnt_layer++;}}}}
++var str_layerstyles=[];str_layerstyles[0]=str_layer;str_layerstyles[1]=str_styles;str_layerstyles[2]=str_titles;str_layerstyles[3]=str_legendurls;str_layerstyles[4]=str_parent;<span class="reserved">return</span> str_layerstyles;}
++<span class="reserved">function</span> setFeatureInfoRequest(fName,x,y,path){var functionName=<span class="literal">'setFeatureInfoRequest'</span>;var ts=mb_timestamp();<span class="reserved">for</span>(var i=0;i&lt;mb_FeatureInfoPreFunctions.length;i++){eval(mb_FeatureInfoPreFunctions[i]);}
++var cnt_fi=0;<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){<span class="reserved">if</span>(mb_mapObj[i].frameName==fName){<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[i].wms.length;ii++){var newfeatureInfoRequest=<span class="literal">""</span>;var requestParams=<span class="literal">""</span>;var validation=false;newfeatureInfoRequest+=mb_mapObj[i].wms[ii].wms_getfeatureinfo;newfeatureInfoRequest+=mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getfeatureinfo);<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version==<span class="literal">"1.0.0"</span>){requestParams+=<span class="literal">"WMTVER="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=feature_info&amp;"</span>;}
++<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_version!=<span class="literal">"1.0.0"</span>){requestParams+=<span class="literal">"VERSION="</span>+mb_mapObj[i].wms[ii].wms_version+<span class="literal">"&amp;REQUEST=GetFeatureInfo&amp;SERVICE=WMS&amp;"</span>;}
++requestParams+=<span class="literal">"SRS="</span>+mb_mapObj[i].epsg+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"BBOX="</span>+mb_mapObj[i].extent+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"WIDTH="</span>+mb_mapObj[i].width+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"HEIGHT="</span>+mb_mapObj[i].height+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"LAYERS="</span>+mb_mapObj[i].layers[ii]+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"STYLES="</span>+mb_mapObj[i].styles[ii]+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"FORMAT="</span>+mb_mapObj[i].wms[ii].gui_wms_mapformat+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"INFO_FORMAT="</span>+mb_mapObj[i].wms[ii].gui_wms_featureinfoformat+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"EXCEPTIONS=application/vnd.ogc.se_xml&amp;"</span>;<span class="reserved">if</span>(mb_feature_count&gt;0){requestParams+=<span class="literal">"FEATURE_COUNT="</span>+mb_feature_count+<span class="literal">"&amp;"</span>;}
++requestParams+=<span class="literal">"QUERY_LAYERS="</span>+mb_mapObj[i].querylayers[ii]+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"X="</span>+x+<span class="literal">"&amp;"</span>;requestParams+=<span class="literal">"Y="</span>+y;<span class="reserved">if</span>(mb_mapObj[i].querylayers[ii]!=<span class="literal">""</span>&amp;&amp;mb_mapObj[i].layers[ii]!=<span class="literal">""</span>){validation=true;}
++<span class="reserved">for</span>(var v=0;v&lt;mb_vendorSpecific.length;v++){var vendorSpecificString=eval(mb_vendorSpecific[v]);requestParams+=<span class="literal">"&amp;"</span>+vendorSpecificString;}
++<span class="reserved">if</span>(mb_log&amp;&amp;validation){var tmp=eval(mb_log+<span class="literal">"('"</span>+newfeatureInfoRequest+requestParams+<span class="literal">"','"</span>+ts+<span class="literal">"')"</span>);}
++<span class="reserved">if</span>(document.getElementById(<span class="literal">"FeatureInfoRedirect"</span>)&amp;&amp;validation){newfeatureInfoRequest+=requestParams;<span class="reserved">if</span>(path){window.frames[<span class="literal">"FeatureInfoRedirect"</span>].document.getElementById(mb_mapObj[i].wms[ii].wms_id).src=path+<span class="literal">"?url="</span>+escape(newfeatureInfoRequest)+<span class="literal">"&amp;"</span>+mb_nr;}
++<span class="reserved">else</span>{window.frames[<span class="literal">"FeatureInfoRedirect"</span>].document.getElementById(mb_mapObj[i].wms[ii].wms_id).src=newfeatureInfoRequest;}
++cnt_fi++;}
++<span class="reserved">else</span> <span class="reserved">if</span>(path&amp;&amp;validation){newfeatureInfoRequest+=requestParams
++window.open(path+<span class="literal">"?url="</span>+escape(newfeatureInfoRequest)+<span class="literal">"&amp;"</span>+mb_nr,<span class="literal">""</span>,<span class="literal">"width=300,height=400,scrollbars=yes,resizable=yes"</span>);cnt_fi++;}
++<span class="reserved">else</span> <span class="reserved">if</span>(validation){newfeatureInfoRequest+=requestParams;window.open(newfeatureInfoRequest,<span class="literal">""</span>,<span class="literal">"width=300,height=400,scrollbars=yes,resizable=yes"</span>);cnt_fi++;}}}}
++<span class="reserved">if</span>(cnt_fi==0){alert(unescape(<span class="literal">"Please select a layer! \n Bitte waehlen Sie eine Ebene zur Abfrage aus!"</span>));}}
++<span class="reserved">function</span> writeTag(frameName,elName,tagSource){<span class="reserved">if</span>(frameName&amp;&amp;frameName!=<span class="literal">""</span>){window.frames[frameName].document.getElementById(elName).innerHTML=tagSource;}
++<span class="reserved">else</span> <span class="reserved">if</span>(!frameName||frameName==<span class="literal">""</span>){document.getElementById(elName).innerHTML=tagSource;}}
++<span class="reserved">function</span> zoom(frameName,in_,factor,x,y){var x=parseFloat(x);var y=parseFloat(y);var ind=getMapObjIndexByName(frameName);var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);var xtentx=parseFloat(arrayBBox[2])-parseFloat(arrayBBox[0]);var xtenty=parseFloat(arrayBBox[3])-parseFloat(arrayBBox[1]);var centerx=parseFloat(arrayBBox[0])+xtentx/2;var centery=parseFloat(arrayBBox[1])+xtenty/2;var factor=parseFloat(factor);<span class="reserved">if</span>(x){centerx=x;centery=y;}
++<span class="reserved">if</span>(!in_){factor=1/factor;}
++var new_xtentx=xtentx/factor;var new_xtenty=xtenty/factor;var minx=centerx-new_xtentx/2;var miny=centery-new_xtenty/2;var maxx=centerx+new_xtentx/2;var maxy=centery+new_xtenty/2;mb_mapObj[ind].extent=minx+<span class="literal">","</span>+miny+<span class="literal">","</span>+maxx+<span class="literal">","</span>+maxy;setMapRequest(frameName);}
++<span class="reserved">function</span> mb_panMap(frameName,dir){var ind=getMapObjIndexByName(frameName);var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);var minx=parseFloat(arrayBBox[0]);var miny=parseFloat(arrayBBox[1]);var maxx=parseFloat(arrayBBox[2]);var maxy=parseFloat(arrayBBox[3]);var xtentx=parseFloat(arrayBBox[2])-parseFloat(arrayBBox[0]);var xtenty=parseFloat(arrayBBox[3])-parseFloat(arrayBBox[1]);<span class="reserved">if</span>(dir==<span class="literal">"NW"</span>){minx=minx-(xtentx/2);maxx=maxx-(xtentx/2);miny=miny+(xtenty/2);maxy=maxy+(xtenty/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"N"</span>){miny=miny+(xtenty/2);maxy=maxy+(xtenty/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"NE"</span>){minx=minx+(xtentx/2);maxx=maxx+(xtentx/2);miny=miny+(xtenty/2);maxy=maxy+(xtenty/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"W"</span>){minx=minx-(xtentx/2);maxx=maxx-(xtentx/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"E"</span>){minx=minx+(xtentx/2);maxx=maxx+(xtentx/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"SW"</span>){minx=minx-(xtentx/2);maxx=maxx-(xtentx/2);miny=miny-(xtenty/2);maxy=maxy-(xtenty/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"S"</span>){miny=miny-(xtenty/2);maxy=maxy-(xtenty/2);}
++<span class="reserved">if</span>(dir==<span class="literal">"SE"</span>){minx=minx+(xtentx/2);maxx=maxx+(xtentx/2);miny=miny-(xtenty/2);maxy=maxy-(xtenty/2);}
++mb_mapObj[ind].extent=minx+<span class="literal">","</span>+miny+<span class="literal">","</span>+maxx+<span class="literal">","</span>+maxy;setMapRequest(frameName);}
++<span class="reserved">function</span> handleSelectedLayer(frameName,wms_title,layerName,type,status){<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){<span class="reserved">if</span>(mb_mapObj[i].frameName==frameName){var cnt_layer=0;var str_layer=<span class="literal">""</span>;var myMapObj=i;<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[i].wms.length;ii++){<span class="reserved">if</span>(mb_mapObj[i].wms[ii].wms_title==wms_title){var myWMS=ii;<span class="reserved">if</span>(type==<span class="literal">"visible"</span>){var arrayLayer=mb_mapObj[i].layers[ii].split(<span class="literal">","</span>);}
++<span class="reserved">if</span>(type==<span class="literal">"querylayer"</span>){var arrayLayer=mb_mapObj[i].querylayers[ii].split(<span class="literal">","</span>);}
++<span class="reserved">for</span>(var iii=1;iii&lt;mb_mapObj[i].wms[ii].objLayer.length;iii++){var layer_name=mb_mapObj[i].wms[ii].objLayer[iii].layer_name;<span class="reserved">if</span>(type==<span class="literal">"querylayer"</span>){<span class="reserved">if</span>(layer_name==layerName&amp;&amp;status==1&amp;&amp;mb_mapObj[i].wms[ii].objLayer[iii].layer_queryable==1){<span class="reserved">if</span>(cnt_layer&gt;0){str_layer+=<span class="literal">","</span>;}
++str_layer+=layer_name;cnt_layer++;}}
++<span class="reserved">else</span> <span class="reserved">if</span>(type==<span class="literal">"visible"</span>){<span class="reserved">if</span>(layer_name==layerName&amp;&amp;status==1){<span class="reserved">if</span>(cnt_layer&gt;0){str_layer+=<span class="literal">","</span>;}
++str_layer+=layer_name;cnt_layer++;}}
++<span class="reserved">for</span>(var iiii=0;iiii&lt;arrayLayer.length;iiii++){<span class="reserved">if</span>(layer_name==arrayLayer[iiii]&amp;&amp;layer_name!=layerName){<span class="reserved">if</span>(cnt_layer&gt;0){str_layer+=<span class="literal">","</span>;}
++str_layer+=layer_name;cnt_layer++;}}}}}}}
++<span class="reserved">if</span>(type==<span class="literal">"visible"</span>){mb_mapObj[myMapObj].layers[myWMS]=str_layer;var array_str_layer=str_layer.split(<span class="literal">","</span>);var str_styles=<span class="literal">""</span>;<span class="reserved">for</span>(var cnt=0;cnt&lt;array_str_layer.length;cnt++){<span class="reserved">if</span>(cnt&gt;0){str_styles+=<span class="literal">","</span>;}
++str_styles+=<span class="literal">""</span>;}
++mb_mapObj[myMapObj].styles[myWMS]=str_styles;}
++<span class="reserved">if</span>(type==<span class="literal">"querylayer"</span>){mb_mapObj[myMapObj].querylayers[myWMS]=str_layer;}}
++<span class="reserved">function</span> handleSelectedLayer_array(mapObj,array_wms,array_layer,type,status){var ind=getMapObjIndexByName(mapObj);<span class="reserved">for</span>(var j=0;j&lt;array_wms.length;j++){<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[ind].wms.length;i++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_id==array_wms[j]){var check=false;<span class="reserved">for</span>(var ii=0;ii&lt;mb_mapObj[ind].wms[i].objLayer.length;ii++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_id==array_wms[j]&amp;&amp;mb_mapObj[ind].wms[i].objLayer[ii].layer_name==array_layer[j]){<span class="reserved">if</span>(type==<span class="literal">"visible"</span>){mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_visible=parseInt(status);check=true;}
++<span class="reserved">if</span>(type==<span class="literal">"querylayer"</span>&amp;&amp;(mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_queryable==<span class="literal">"1"</span>||mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_queryable==1)){mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_querylayer=parseInt(status);}}}
++mb_restateLayers(mapObj,array_wms[j]);<span class="reserved">if</span>(check==true){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].gui_wms_visible==1){setSingleMapRequest(mapObj,mb_mapObj[ind].wms[i].wms_id);}}}}}}
++<span class="reserved">function</span> makeClickPos2RealWorldPos(frameName,myClickX,myClickY){var ind=getMapObjIndexByName(frameName);var width=parseInt(mb_mapObj[ind].width);var height=parseInt(mb_mapObj[ind].height);var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);var minX=parseFloat(arrayBBox[0]);var minY=parseFloat(arrayBBox[1]);var maxX=parseFloat(arrayBBox[2]);var maxY=parseFloat(arrayBBox[3]);var deltaX=(maxX-minX)/width;var deltaY=(maxY-minY)/height;<span class="reserved">if</span>(deltaX&gt;0){var roundx=1/Math.pow(10,(Math.round(Math.log(deltaX)/Math.log(10))));}
++<span class="reserved">else</span>{var roundx=Math.pow(10,(Math.round(Math.log(deltaX)/Math.log(10))));}
++<span class="reserved">if</span>(deltaY&gt;0){var roundy=1/Math.pow(10,(Math.round(Math.log(deltaY)/Math.log(10))));}
++<span class="reserved">else</span>{var roundy=Math.pow(10,(Math.round(Math.log(deltaY)/Math.log(10))));}
++var xtentx=maxX-minX;var xtenty=maxY-minY;var posX=parseFloat(minX+(myClickX/width)*xtentx);var posY=parseFloat(maxY-(myClickY/height)*xtenty);posX=Math.round(posX*roundx)/roundx;posY=Math.round(posY*roundy)/roundy;<span class="reserved">return</span> new Array(posX,posY);}
++<span class="reserved">function</span> makeRealWorld2mapPos(frameName,rw_posx,rw_posy){var ind=getMapObjIndexByName(frameName);var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);var minX=parseFloat(arrayBBox[0]);var minY=parseFloat(arrayBBox[1]);var maxX=parseFloat(arrayBBox[2]);var maxY=parseFloat(arrayBBox[3]);var xtentx=parseFloat(arrayBBox[2])-parseFloat(arrayBBox[0]);var xtenty=parseFloat(arrayBBox[3])-parseFloat(arrayBBox[1]);var width=mb_mapObj[ind].width;var height=mb_mapObj[ind].height;pixPos_x=Math.round(parseFloat(((rw_posx-minX)/xtentx)*width));pixPos_y=Math.round(parseFloat(((maxY-rw_posy)/xtenty)*height));<span class="reserved">return</span> new Array(pixPos_x,pixPos_y);}
++<span class="reserved">function</span> mb_arrangeElement(frameName,elName,left,top){<span class="reserved">if</span>(frameName!=<span class="literal">""</span>){window.frames[frameName].document.getElementById(elName).style.top=top;window.frames[frameName].document.getElementById(elName).style.left=left;}
++<span class="reserved">else</span>{document.getElementById(elName).style.top=top;document.getElementById(elName).style.left=left;}}
++<span class="reserved">function</span> mb_getMousePos(e,fName){<span class="reserved">if</span>(fName){<span class="reserved">if</span>(ie){clickX=window.frames[fName].event.clientX;clickY=window.frames[fName].event.clientY;}
++<span class="reserved">else</span>{clickX=e.pageX;clickY=e.pageY;}}
++<span class="reserved">else</span>{<span class="reserved">if</span>(ie){clickX=event.clientX;clickY=event.clientY;}
++<span class="reserved">else</span>{clickX=e.pageX;clickY=e.pageY;}}
++var pos=new Array(clickX,clickY);<span class="reserved">return</span> pos;}
++<span class="reserved">function</span> getMapObjIndexByName(frameName){<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj.length;i++){<span class="reserved">if</span>(mb_mapObj[i].frameName==frameName){<span class="reserved">return</span> i;}}}
++<span class="reserved">function</span> mb_getLayerTitleByName(map_index,wms_index,myLayer_name){<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[map_index].wms[wms_index].objLayer.length;i++){<span class="reserved">if</span>(mb_mapObj[map_index].wms[wms_index].objLayer[i].layer_name==myLayer_name){<span class="reserved">return</span> mb_mapObj[map_index].wms[wms_index].objLayer[i].layer_title;}}}
++<span class="reserved">function</span> getWMSIDByTitle(frameName,wms_title){var ind=getMapObjIndexByName(frameName);<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[ind].wms.length;i++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_title==wms_title){<span class="reserved">return</span> mb_mapObj[ind].wms[i].wms_id;}}}
++<span class="reserved">function</span> getWMSIndexByTitle(frameName,wms_title){var ind=getMapObjIndexByName(frameName);<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[ind].wms.length;i++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_title==wms_title){<span class="reserved">return</span> i;}}}
++<span class="reserved">function</span> getWMSIndexById(frameName,wms_id){var ind=getMapObjIndexByName(frameName);<span class="reserved">for</span>(var i=0;i&lt;mb_mapObj[ind].wms.length;i++){<span class="reserved">if</span>(mb_mapObj[ind].wms[i].wms_id==wms_id){<span class="reserved">return</span> i;}}}
++<span class="reserved">function</span> mb_getScale(frameName){<span class="reserved">for</span>(var i=0;i&lt;mb_GetScalePreFunctions.length;i++){var myScale=eval(mb_GetScalePreFunctions[i]);}
++<span class="reserved">if</span>(myScale){var Y_str=myScale;}
++<span class="reserved">else</span>{var ind=getMapObjIndexByName(frameName);var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);var xtenty=parseFloat(arrayBBox[3])-parseFloat(arrayBBox[1]);var scaleY=(xtenty/mb_mapObj[ind].height)*(mb_resolution*100);<span class="reserved">if</span>(scaleY&lt;1){var Y_str=scaleY;}<span class="reserved">else</span>{var Y_str=Math.round(scaleY);}}
++<span class="reserved">return</span> Y_str;}
++<span class="reserved">function</span> mb_repaintScale(frameName,x,y,scale){var ind=getMapObjIndexByName(frameName);<span class="reserved">if</span>(x==null&amp;&amp;y==null){var arrayBBox=mb_mapObj[ind].extent.split(<span class="literal">","</span>);x=parseFloat(arrayBBox[0])+((parseFloat(arrayBBox[2])-parseFloat(arrayBBox[0]))/2);y=parseFloat(arrayBBox[1])+((parseFloat(arrayBBox[3])-parseFloat(arrayBBox[1]))/2);}
++var minx=parseFloat(x)-(mb_mapObj[ind].width/(mb_resolution*100*2)*scale);var miny=parseFloat(y)-(mb_mapObj[ind].height/(mb_resolution*100*2)*scale);var maxx=parseFloat(x)+(mb_mapObj[ind].width/(mb_resolution*100*2)*scale);var maxy=parseFloat(y)+(mb_mapObj[ind].height/(mb_resolution*100*2)*scale);mb_repaint(frameName,minx,miny,maxx,maxy);}
++<span class="reserved">function</span> mb_repaint(frameName,minx,miny,maxx,maxy){var ind=getMapObjIndexByName(frameName);mb_mapObj[ind].extent=minx+<span class="literal">","</span>+miny+<span class="literal">","</span>+maxx+<span class="literal">","</span>+maxy;setMapRequest(frameName);}
++<span class="reserved">function</span> mb_calculateExtent(frameName,minx,miny,maxx,maxy){var ind=getMapObjIndexByName(frameName);var extenty=parseFloat(maxy)-parseFloat(miny);var extentx=parseFloat(maxx)-parseFloat(minx);var relation_px_x=mb_mapObj[ind].width/mb_mapObj[ind].height;var relation_px_y=mb_mapObj[ind].height/mb_mapObj[ind].width;var relation_bbox_x=extentx/extenty;var centerx=parseFloat(minx)+(extentx/2);var centery=parseFloat(miny)+(extenty/2);<span class="reserved">if</span>(relation_bbox_x&lt;=relation_px_x){minx=centerx-relation_px_x*extenty/2;maxx=centerx+relation_px_x*extenty/2;}
++<span class="reserved">if</span>(relation_bbox_x&gt;relation_px_x){miny=centery-relation_px_y*extentx/2;maxy=centery+relation_px_y*extentx/2;}
++mb_mapObj[ind].extent=minx+<span class="literal">","</span>+miny+<span class="literal">","</span>+maxx+<span class="literal">","</span>+maxy;}
++<span class="reserved">function</span> mb_showHighlight(frameName,x,y){var pos=makeRealWorld2mapPos(frameName,x,y);mb_arrangeElement(frameName,<span class="literal">"highlight"</span>,pos[0]-7,pos[1]-7);window.frames[frameName].document.getElementById(<span class="literal">"highlight"</span>).style.visibility=<span class="literal">'visible'</span>;}
++<span class="reserved">function</span> mb_hideHighlight(frameName){mb_arrangeElement(frameName,<span class="literal">"highlight"</span>,-20,-20);mb_arrangeElement(frameName,<span class="literal">"highlight"</span>,-20,-20);window.frames[frameName].document.getElementById(<span class="literal">"highlight"</span>).style.visibility=<span class="literal">'hidden'</span>;}
++<span class="reserved">function</span> mb_permanentHighlight(frameName,x,y){var pos=makeRealWorld2mapPos(frameName,x,y);mb_arrangeElement(frameName,<span class="literal">"permanent"</span>,pos[0]-7,pos[1]-7);window.frames[frameName].document.getElementById(<span class="literal">"permanent"</span>).style.visibility=<span class="literal">'visible'</span>;}
++<span class="reserved">function</span> mb_markResult(frameName,geom,col){var x=<span class="literal">""</span>;var y=<span class="literal">""</span>;var tmp=[];var ind=getMapObjIndexByName(frameName);<span class="reserved">for</span>(var i=0;i&lt;geom.length;i++){<span class="reserved">if</span>(i&gt;0){x+=<span class="literal">":"</span>;y+=<span class="literal">":"</span>;}
++tmp=geom[i].split(<span class="literal">","</span>);<span class="reserved">for</span>(var ii=0;ii&lt;tmp.length;ii+=2){var pos=makeRealWorld2mapPos(frameName,tmp[ii],tmp[ii+1]);<span class="reserved">if</span>(ii&gt;0){x+=<span class="literal">","</span>;y+=<span class="literal">","</span>;}
++x+=pos[0];y+=pos[1];}}
++var source=<span class="literal">"&lt;img src='../extensions/markResult.php?x="</span>+x+<span class="literal">"&amp;y="</span>+y+<span class="literal">"&amp;width="</span>+mb_mapObj[ind].width+<span class="literal">"&amp;height="</span>+mb_mapObj[ind].height+<span class="literal">"&amp;color="</span>+col+<span class="literal">"'&gt;"</span>;writeTag(frameName,<span class="literal">"markResult"</span>,source);}
++<span class="reserved">function</span> mb_disableResult(frameName){writeTag(frameName,<span class="literal">"markResult"</span>,<span class="literal">""</span>);}
++<span class="reserved">function</span> mb_registerGML(frameName,obj){var ind=getMapObjIndexByName(frameName);mb_mapObj[ind].geom=obj;}
++<span class="reserved">function</span> mb_timestamp(){var d=new Date();var ts=Math.round(Date.parse(d)/1000);<span class="reserved">return</span> ts;}
++<span class="reserved">function</span> mb_getlayerposbyname(objInd,wmsInd,lname){var t=mb_mapObj[objInd].wms[wmsInd];<span class="reserved">for</span>(var i=0;i&lt;t.objLayer.length;i++){<span class="reserved">if</span>(t.objLayer[i].layer_name==lname){<span class="reserved">return</span> t.objLayer[i].layer_pos;}}}
++<span class="reserved">function</span> mb_getLayerObjByName(fname,wms_id,layer_name){var ind=getMapObjIndexByName(fname);var wmsInd=getWMSIndexById(fname,wms_id);var t=mb_mapObj[ind].wms[wmsInd];<span class="reserved">for</span>(var i=0;i&lt;t.objLayer.length;i++){<span class="reserved">if</span>(t.objLayer[i].layer_name==layer_name){<span class="reserved">return</span> t.objLayer[i];}}}
++<span class="reserved">function</span> mb_getchildsbyname(objInd,wmsInd,lname){var t=mb_mapObj[objInd].wms[wmsInd];var pos=mb_getlayerposbyname(objInd,wmsInd,lname);var l=[];l[<span class="literal">"name"</span>]=[];l[<span class="literal">"title"</span>]=[];l[<span class="literal">"legendurl"</span>]=[];<span class="reserved">for</span>(var i=0;i&lt;t.objLayer.length;i++){<span class="reserved">if</span>(t.objLayer[i].layer_parent==pos){l[<span class="literal">"name"</span>][l[<span class="literal">"name"</span>].length]=t.objLayer[i].layer_name;l[<span class="literal">"title"</span>][l[<span class="literal">"title"</span>].length]=t.objLayer[i].layer_title;<span class="reserved">if</span>(t.objLayer[i].layer_style.length&gt;0){l[<span class="literal">"legendurl"</span>][l[<span class="literal">"legendurl"</span>].length]=t.objLayer[i].layer_style[0][<span class="literal">"legendurl"</span>];}<span class="reserved">else</span>{l[<span class="literal">"legendurl"</span>][l[<span class="literal">"legendurl"</span>].length]=0;}}}
++<span class="reserved">if</span>(l[<span class="literal">"name"</span>].length&gt;0){<span class="reserved">return</span> l;}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++<span class="reserved">function</span> DivTag(aTagName,aFrameName,aStyle){<span class="reserved">this</span>.exists=<span class="reserved">function</span>(){<span class="reserved">return</span>(rootNode.getElementById(tagName))?true:false;};<span class="reserved">this</span>.getTag=<span class="reserved">function</span>(){<span class="reserved">return</span> rootNode.getElementById(tagName);};var determineRootNode=<span class="reserved">function</span>(){node=document;<span class="reserved">if</span>(frameName!==<span class="literal">""</span>){<span class="reserved">if</span>(checkFrame()){node=window.frames[frameName].document;}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">"frame "</span>+frameName+<span class="literal">" doesn't exist."</span>);}}
++<span class="reserved">return</span> node;};var toCamelCase=<span class="reserved">function</span>(aString){var newString=<span class="literal">""</span>;<span class="reserved">for</span>(var i=0;i&lt;aString.length;i++){<span class="reserved">if</span>(aString.substr(i,1)!=<span class="literal">"-"</span>){newString+=aString.substr(i,1);}
++<span class="reserved">else</span>{i++;newString+=aString.substr(i,1).toUpperCase();}}
++<span class="reserved">return</span> newString;}
++var setStyle=<span class="reserved">function</span>(){<span class="reserved">if</span>(that.exists()){var node=rootNode.getElementById(tagName);node.setAttribute(<span class="literal">"style"</span>,<span class="literal">""</span>);<span class="reserved">for</span>(var attr in tagStyle){<span class="reserved">if</span>(typeof(tagStyle[attr])!=<span class="literal">"function"</span>&amp;&amp;typeof(tagStyle[attr])!=<span class="literal">"object"</span>){var evalString=<span class="literal">"node.style."</span>+toCamelCase(attr)+<span class="literal">" = \"</span><span class="literal">"+tagStyle[attr]+"</span>\<span class="literal">";"</span>;eval(evalString);}}}}
++var create=<span class="reserved">function</span>(){<span class="reserved">if</span>(!that.exists()){var divTag=rootNode.createElement(<span class="literal">"div"</span>);var divTagAppended=rootNode.getElementsByTagName(<span class="literal">"body"</span>)[0].appendChild(divTag);divTagAppended.id=tagName;}
++<span class="reserved">else</span>{that.clean();}
++setStyle();};var checkFrame=<span class="reserved">function</span>(){<span class="reserved">if</span>(frameName!==<span class="literal">""</span>){<span class="reserved">return</span>(typeof(window.frames[frameName])!=<span class="literal">'undefined'</span>);}
++<span class="reserved">return</span> true;};var that=<span class="reserved">this</span>;var tagName=aTagName;var frameName=aFrameName;var rootNode=determineRootNode();var tagStyle=aStyle;create();}
++DivTag.<span class="reserved">prototype</span>.write=<span class="reserved">function</span>(someText){<span class="reserved">if</span>(<span class="reserved">this</span>.exists()){<span class="reserved">this</span>.getTag().innerHTML=someText;}};DivTag.<span class="reserved">prototype</span>.clean=<span class="reserved">function</span>(){<span class="reserved">this</span>.write(<span class="literal">""</span>);};var Mb_log=<span class="reserved">function</span>(){var that=<span class="reserved">this</span>;var levelArray=global_log_levels.split(<span class="literal">","</span>);var log_level=global_mb_log_level;var log_js=global_mb_log_js;var indexOfLevel=<span class="reserved">function</span>(aLevel){<span class="reserved">for</span>(var i=0;i&lt;levelArray.length;i++){<span class="reserved">if</span>(aLevel==levelArray[i]){<span class="reserved">return</span> i;}}
++<span class="reserved">return</span> false;};var isValidLevel=<span class="reserved">function</span>(aLevel){var isNotOff=typeof(log_js)!=<span class="literal">'undefined'</span>&amp;&amp;log_js!=<span class="literal">"off"</span>;var levelIndex=indexOfLevel(aLevel);var isAppropriate=(typeof(levelIndex)==<span class="literal">'number'</span>&amp;&amp;levelIndex&lt;indexOfLevel(log_level));<span class="reserved">return</span>(isNotOff&amp;&amp;isAppropriate);};<span class="reserved">this</span>.throwException=<span class="reserved">function</span>(message,level){<span class="reserved">if</span>(isValidLevel(level)){<span class="reserved">if</span>(log_js==<span class="literal">"on"</span>){try{mb_ajaxWrap_post(<span class="literal">'../php/mb_js_exception.php'</span>,{level:level,text:message});}
++catch(e){alert(e+<span class="literal">": "</span>+message);}}
++<span class="reserved">else</span> <span class="reserved">if</span>(log_js==<span class="literal">"alert"</span>){alert(message);}
++<span class="reserved">else</span> <span class="reserved">if</span>(log_js==<span class="literal">"console"</span>){<span class="reserved">if</span>(level==<span class="literal">"warning"</span>){console.warn(<span class="literal">"%s"</span>,message);}
++<span class="reserved">else</span> <span class="reserved">if</span>(level==<span class="literal">"error"</span>){console.error(<span class="literal">"%s"</span>,message);}
++<span class="reserved">else</span>{console.log(<span class="literal">"%s"</span>,message);}}}};}
++<span class="reserved">function</span> Mb_exception(message){var level=<span class="literal">"error"</span>;<span class="reserved">this</span>.throwException(message,level);}
++Mb_exception.<span class="reserved">prototype</span>=new Mb_log();<span class="reserved">function</span> Mb_warning(message){var level=<span class="literal">"warning"</span>;<span class="reserved">this</span>.throwException(message,level);}
++Mb_warning.<span class="reserved">prototype</span>=new Mb_log();<span class="reserved">function</span> Mb_notice(message){var level=<span class="literal">"notice"</span>;<span class="reserved">this</span>.throwException(message,level);}
++Mb_notice.<span class="reserved">prototype</span>=new Mb_log();<span class="reserved">function</span> mb_ajax_get(url,param,callback){try{mb_ajaxWrap_get(url,param,callback);}
++catch(e){var error=new Mb_exception(<span class="literal">'map.php: mb_ajax_get:'</span>+e);}}
++<span class="reserved">function</span> mb_ajax_post(url,param,callback){try{mb_ajaxWrap_post(url,param,callback);}
++catch(e){var error=new Mb_exception(<span class="literal">'map.php: mb_ajax_post:'</span>+e);}}
++<span class="reserved">function</span> mb_ajax_json(url,param,callback){try{mb_ajaxWrap_json(url,param,callback);}
++catch(e){var error=new Mb_exception(<span class="literal">'map.php: mb_ajax_json:'</span>+e);}}
++var mb_button=[];<span class="reserved">function</span> mb_regButton_frame(wii,frameName,param){var ind=mb_button.length;mb_button[ind]=new mb_conButton(wii,ind);<span class="reserved">if</span>(frameName==null){<span class="reserved">if</span>(param==null){eval(wii+<span class="literal">"("</span>+ind+<span class="literal">")"</span>);}
++<span class="reserved">else</span>{eval(wii+<span class="literal">"("</span>+ind+<span class="literal">", "</span>+param+<span class="literal">")"</span>);}}
++<span class="reserved">else</span> <span class="reserved">if</span>(param==null){eval(<span class="literal">"window.frames['"</span>+frameName+<span class="literal">"']."</span>+wii+<span class="literal">"("</span>+ind+<span class="literal">")"</span>);}
++<span class="reserved">else</span>{eval(<span class="literal">"window.frames['"</span>+frameName+<span class="literal">"']."</span>+wii+<span class="literal">"("</span>+ind+<span class="literal">", "</span>+param+<span class="literal">")"</span>);}
++mb_button[ind].prev=mb_button[ind].src;mb_button[ind].src=mb_button[ind].img_off;mb_button[ind].onmouseover=new Function(<span class="literal">"mb_button_over("</span>+ind+<span class="literal">")"</span>);mb_button[ind].onmouseout=new Function(<span class="literal">"mb_button_out("</span>+ind+<span class="literal">")"</span>);mb_button[ind].onclick=new Function(<span class="literal">"mb_button_click("</span>+ind+<span class="literal">")"</span>);<span class="reserved">if</span>(frameName==null){mb_button[ind].frameName=<span class="literal">""</span>;}
++<span class="reserved">else</span>{mb_button[ind].frameName=frameName;}}
++<span class="reserved">function</span> mb_regButton(wii){mb_regButton_frame(wii,null,null);}
++<span class="reserved">function</span> mb_conButton(wii,ind){<span class="reserved">this</span>.wii=wii;<span class="reserved">return</span> true;}
++<span class="reserved">function</span> mb_button_over(ind){<span class="reserved">if</span>(mb_button[ind].status==0){mb_button[ind].prev=mb_button[ind].src;mb_button[ind].src=mb_button[ind].img_over;}}
++<span class="reserved">function</span> mb_button_out(ind){mb_button[ind].src=mb_button[ind].prev;}
++<span class="reserved">function</span> mb_button_click(ind){var mbStatus=mb_button[ind].status;<span class="reserved">if</span>(mbStatus==0){mb_disableButton(mb_button[ind].elName);mb_button[ind].prev=mb_button[ind].img_on;mb_button[ind].src=mb_button[ind].img_on;mb_button[ind].status=1;<span class="reserved">if</span>(mb_button[ind].frameName!=<span class="literal">""</span>){window.frames[mb_button[ind].frameName].document.getElementById(mb_button[ind].elName).go();}
++<span class="reserved">else</span>{document.getElementById(mb_button[ind].elName).go();}}
++<span class="reserved">else</span>{mb_button[ind].prev=mb_button[ind].img_off;mb_button[ind].src=mb_button[ind].img_off;mb_button[ind].status=0;<span class="reserved">if</span>(mb_button[ind].frameName!=<span class="literal">""</span>){window.frames[mb_button[ind].frameName].document.getElementById(mb_button[ind].elName).stop();}
++<span class="reserved">else</span>{document.getElementById(mb_button[ind].elName).stop();}}}
++<span class="reserved">function</span> mb_disableButton(elName){<span class="reserved">for</span>(var i=0;i&lt;mb_button.length;i++){<span class="reserved">if</span>(mb_button[i].elName!=elName&amp;&amp;mb_button[i].status==1){mb_button[i].status=0;<span class="reserved">if</span>(mb_button[i].frameName!=<span class="literal">""</span>){window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).src=mb_button[i].img_off;window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).stop();}
++<span class="reserved">else</span>{document.getElementById(mb_button[i].elName).src=mb_button[i].img_off;document.getElementById(mb_button[i].elName).stop();}
++<span class="reserved">return</span> true;}}}
++<span class="reserved">function</span> mb_disableThisButton(elName){<span class="reserved">for</span>(var i=0;i&lt;mb_button.length;i++){<span class="reserved">if</span>(mb_button[i].elName==elName&amp;&amp;mb_button[i].status==1){mb_button[i].status=0;<span class="reserved">if</span>(mb_button[i].frameName!=<span class="literal">""</span>){window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).src=mb_button[i].img_off;window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).stop();}
++<span class="reserved">else</span>{document.getElementById(mb_button[i].elName).src=mb_button[i].img_off;document.getElementById(mb_button[i].elName).stop();}
++<span class="reserved">return</span> true;}}}
++<span class="reserved">function</span> cloneObject(someObject){var clone=[];<span class="reserved">for</span>(attribute in someObject){var currentElement=someObject[attribute];<span class="reserved">if</span>(typeof(currentElement)==<span class="literal">"object"</span>){clone[attribute]=cloneObject(currentElement);}
++<span class="reserved">else</span>{clone[attribute]=currentElement;}}
++<span class="reserved">return</span> clone;}
++var List=<span class="reserved">function</span>(){<span class="reserved">this</span>.count=<span class="reserved">function</span>(){<span class="reserved">return</span> <span class="reserved">this</span>.list.length;};<span class="reserved">this</span>.del=<span class="reserved">function</span>(i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">for</span>(var z=i;z&lt;<span class="reserved">this</span>.count()-1;z++){<span class="reserved">this</span>.list[z]=<span class="reserved">this</span>.list[z+1];}
++<span class="reserved">this</span>.list.length-=1;};<span class="reserved">this</span>.empty=<span class="reserved">function</span>(){<span class="reserved">while</span>(<span class="reserved">this</span>.list!=null&amp;&amp;<span class="reserved">this</span>.count()&gt;0){<span class="reserved">this</span>.list.pop();}}
++<span class="reserved">this</span>.get=<span class="reserved">function</span>(i){i=<span class="reserved">this</span>.getIndex(i);<span class="reserved">if</span>(i!==false){<span class="reserved">return</span> <span class="reserved">this</span>.list[i];}
++<span class="reserved">return</span> false;};<span class="reserved">this</span>.add=<span class="reserved">function</span>(item){<span class="reserved">this</span>.list.push(item);};<span class="reserved">this</span>.addCopy=<span class="reserved">function</span>(item){<span class="reserved">this</span>.list.push(cloneObject(item));};<span class="reserved">this</span>.union=<span class="reserved">function</span>(aList){<span class="reserved">for</span>(var i=0;i&lt;aList.count();i++){<span class="reserved">this</span>.addCopy(aList.get(i));}};<span class="reserved">this</span>.getIndex=<span class="reserved">function</span>(i){<span class="reserved">if</span>((i&gt;=0&amp;&amp;i&lt;<span class="reserved">this</span>.list.length)||(i*(-1)&gt;0&amp;&amp;i*(-1)&lt;=<span class="reserved">this</span>.list.length)){<span class="reserved">if</span>(i&gt;=0){<span class="reserved">return</span> i;}<span class="reserved">else</span>{<span class="reserved">return</span> <span class="reserved">this</span>.list.length+i;}}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">"class List: function getIndex: member index "</span>+i+<span class="literal">" is not valid"</span>);<span class="reserved">return</span> false;}};<span class="reserved">this</span>.toString=<span class="reserved">function</span>(){var str=<span class="literal">""</span>;<span class="reserved">for</span>(var i=0;i&lt;<span class="reserved">this</span>.count();i++){str+=<span class="reserved">this</span>.get(i).toString();}
++<span class="reserved">return</span> str;};<span class="reserved">this</span>.list=null;};var mb_MapRequestSubFunctions=[];var mb_WfsReadSubFunctions=[];var mb_WfsWriteSubFunctions=[];var mb_MapRequestPreFunctions=[];var mb_FeatureInfoPreFunctions=[];var mb_InitFunctions=[];var mb_MapObjectSubFunctions=[];var mb_GetScalePreFunctions=[];var mb_loadWmsSubFunctions=[];<span class="reserved">function</span> mb_registerInitFunctions(stringFunction){mb_InitFunctions[mb_InitFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerPreFunctions(stringFunction){mb_MapRequestPreFunctions[mb_MapRequestPreFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerFeatureInfoPreFunctions(stringFunction){mb_FeatureInfoPreFunctions[mb_FeatureInfoPreFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerSubFunctions(stringFunction){mb_MapRequestSubFunctions[mb_MapRequestSubFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerMapObjectSubFunctions(stringFunction){mb_MapObjectSubFunctions[mb_MapObjectSubFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerGetScalePreFunctions(stringFunction){mb_GetScalePreFunctions[mb_GetScalePreFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerloadWmsSubFunctions(stringFunction){mb_loadWmsSubFunctions[mb_loadWmsSubFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerWfsReadSubFunctions(stringFunction){mb_WfsReadSubFunctions[mb_WfsReadSubFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_registerWfsWriteSubFunctions(stringFunction){mb_WfsWriteSubFunctions[mb_WfsWriteSubFunctions.length]=stringFunction;}
++<span class="reserved">function</span> mb_removeFunctionFromArray(arrayname,stringFunction){var length=eval(arrayname+<span class="literal">".length"</span>);<span class="reserved">for</span>(var i=0;i&lt;length;i++){<span class="reserved">if</span>(eval(arrayname+<span class="literal">"["</span>+i+<span class="literal">"]"</span>)==stringFunction){var newArray1=eval(arrayname+<span class="literal">".slice(0, "</span>+(i-1)+<span class="literal">")"</span>);var newArray2=eval(arrayname+<span class="literal">".slice("</span>+(i+1)+<span class="literal">", "</span>+length+<span class="literal">")"</span>);eval(arrayname+<span class="literal">" = newArray1.concat(newArray2)"</span>);i--;length--;}}}
++<span class="reserved">function</span> mb_execloadWmsSubFunctions(){<span class="reserved">for</span>(var i=0;i&lt;mb_loadWmsSubFunctions.length;i++){eval(mb_loadWmsSubFunctions[i]);}}
++<span class="reserved">function</span> mb_execWfsReadSubFunctions(geom){<span class="reserved">for</span>(var i=0;i&lt;mb_WfsReadSubFunctions.length;i++){mb_WfsReadSubFunctions[i](geom);}}
++<span class="reserved">function</span> mb_execWfsWriteSubFunctions(){<span class="reserved">for</span>(var i=0;i&lt;mb_WfsWriteSubFunctions.length;i++){mb_WfsWriteSubFunctions[i]();}}
++<span class="reserved">function</span> mb_checkTag(frameName,tagName,elementId,appendAtTagName,attributes){var oldElement;var newElement;var prefix;<span class="reserved">if</span>(frameName&amp;&amp;frameName!=<span class="literal">""</span>){prefix=window.frames[frameName].document;}
++<span class="reserved">else</span> <span class="reserved">if</span>(!frameName||frameName==<span class="literal">""</span>){prefix=document;}
++oldElement=prefix.getElementById(elementId);<span class="reserved">if</span>(oldElement==null){newElement=prefix.createElement(tagName);newElement=prefix.getElementsByTagName(appendAtTagName)[0].appendChild(newElement);}
++<span class="reserved">else</span>{<span class="reserved">if</span>(oldElement.nodeName.toLowerCase()==tagName.toLowerCase()){<span class="reserved">for</span>(var i=0;i&lt;attributes.length;i++){oldElement.setAttribute(attributes[i][0],attributes[i][1]);}
++<span class="reserved">return</span> oldElement;}
++<span class="reserved">else</span>{<span class="reserved">return</span> false;}}
++var newElementAttributeNode=document.createAttribute(<span class="literal">"id"</span>);newElementAttributeNode.value=elementId;newElement.setAttributeNode(newElementAttributeNode);<span class="reserved">for</span>(var i=0;i&lt;attributes.length;i++){newElement.setAttribute(attributes[i][0],attributes[i][1]);}
++<span class="reserved">return</span> newElement;}</pre>
++	<hr>
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-summary-map_obj.js.html
+===================================================================
+--- documents/jsdoc/overview-summary-map_obj.js.html	(revision 0)
++++ documents/jsdoc/overview-summary-map_obj.js.html	(revision 0)
+@@ -0,0 +1,302 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title="map_obj.js Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>map_obj.js</h2>
++	
++</center>
++
++	
++
++
++<h4>Summary</h4>
++<p>
++	
++		No overview generated for 'map_obj.js'<BR/><BR/>
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>Class Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="wms_const.html">wms_const</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="wms_layer.html">wms_layer</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++	<a name="method_summary"><!-- --></a>
++	<table border="1" cellpadding="3" cellspacing="0" width="100%">
++		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
++			<td colspan=2>
++				<font size="+2">
++					<b>Method Summary</b>
++				</font>
++			</td>
++		</tr>
++	
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!add_wms">add_wms</a></b>(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!layer_addEpsg">layer_addEpsg</a></b>(epsg,minx,miny,maxx,maxy)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!wms_add_data_type_format">wms_add_data_type_format</a></b>(datatype,dataformat)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!wms_add_layer">wms_add_layer</a></b>(layer_parent,layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!wms_addLayerStyle">wms_addLayerStyle</a></b>(styleName,styleTitle,count,layerCount,styleLegendUrl,styleLegendUrlFormat)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!wms_addSRS">wms_addSRS</a></b>(epsg,minx,miny,maxx,maxy)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++	
++	</table>
++    <p>
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++        <pre class="sourceview">var wms=new Array();var wms_layer_count=0;<span class="reserved">function</span> add_wms(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible){wms[wms.length]=new wms_const(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible);wms_layer[wms.length-1]=new Array();}
++<span class="reserved">function</span> wms_const(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible){<span class="reserved">if</span>(!wms_id){var id_ok=false;<span class="reserved">while</span>(id_ok==false){wms_id=<span class="literal">"a"</span>+Math.round(10000*Math.random());id_ok=true;<span class="reserved">for</span>(var i=0;i&lt;wms.length&amp;&amp;id_ok==true;i++){<span class="reserved">if</span>(wms_id==wms[i].wms_id)id_ok=false;}}}
++<span class="reserved">this</span>.wms_id=wms_id;<span class="reserved">this</span>.wms_version=wms_version;<span class="reserved">this</span>.wms_title=wms_title;<span class="reserved">this</span>.wms_abstract=wms_abstract;<span class="reserved">this</span>.wms_getmap=wms_getmap;<span class="reserved">this</span>.wms_getfeatureinfo=wms_getfeatureinfo;<span class="reserved">this</span>.wms_getlegendurl=wms_getlegendurl;<span class="reserved">this</span>.wms_filter=wms_filter;<span class="reserved">this</span>.data_type=new Array();<span class="reserved">this</span>.data_format=new Array();<span class="reserved">this</span>.objLayer=new Array();<span class="reserved">this</span>.gui_wms_mapformat=gui_wms_mapformat;<span class="reserved">this</span>.gui_wms_featureinfoformat=gui_wms_featureinfoformat;<span class="reserved">this</span>.gui_wms_exceptionformat=gui_wms_exceptionformat;<span class="reserved">this</span>.gui_wms_epsg=gui_wms_epsg;<span class="reserved">this</span>.gui_wms_visible=gui_wms_visible;<span class="reserved">this</span>.gui_epsg=new Array();<span class="reserved">this</span>.gui_minx=new Array();<span class="reserved">this</span>.gui_miny=new Array();<span class="reserved">this</span>.gui_maxx=new Array();<span class="reserved">this</span>.gui_maxy=new Array();<span class="reserved">this</span>.gui_wms_mapopacity=1;}
++<span class="reserved">function</span> wms_add_data_type_format(datatype,dataformat){var insertDataFormat=true;<span class="reserved">for</span>(var i=0;i&lt;wms[wms.length-1].data_type.length;i++){<span class="reserved">if</span>(wms[wms.length-1].data_type[i]==datatype&amp;&amp;wms[wms.length-1].data_format[i]==dataformat){insertDataFormat=false;}}
++<span class="reserved">if</span>(insertDataFormat==true){wms[wms.length-1].data_type[wms[wms.length-1].data_type.length]=datatype;wms[wms.length-1].data_format[wms[wms.length-1].data_format.length]=dataformat;}}
++<span class="reserved">function</span> wms_addSRS(epsg,minx,miny,maxx,maxy){wms[wms.length-1].gui_epsg[wms[wms.length-1].gui_epsg.length]=epsg;wms[wms.length-1].gui_minx[wms[wms.length-1].gui_minx.length]=minx;wms[wms.length-1].gui_miny[wms[wms.length-1].gui_miny.length]=miny;wms[wms.length-1].gui_maxx[wms[wms.length-1].gui_maxx.length]=maxx;wms[wms.length-1].gui_maxy[wms[wms.length-1].gui_maxy.length]=maxy;}
++<span class="reserved">function</span> wms_addLayerStyle(styleName,styleTitle,count,layerCount,styleLegendUrl,styleLegendUrlFormat){<span class="reserved">if</span>(wms[wms.length-1].objLayer[layerCount]){wms[wms.length-1].objLayer[layerCount].layer_style[count]=new Array();wms[wms.length-1].objLayer[layerCount].layer_style[count][<span class="literal">"name"</span>]=styleName;wms[wms.length-1].objLayer[layerCount].layer_style[count][<span class="literal">"title"</span>]=styleTitle;wms[wms.length-1].objLayer[layerCount].layer_style[count][<span class="literal">"legendurl"</span>]=styleLegendUrl;wms[wms.length-1].objLayer[layerCount].layer_style[count][<span class="literal">"legendurlformat"</span>]=styleLegendUrlFormat;}}
++<span class="reserved">function</span> wms_add_layer(layer_parent,layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype){wms[wms.length-1].objLayer[wms[wms.length-1].objLayer.length]=new wms_layer(layer_parent,layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype);}
++<span class="reserved">function</span> layer_addEpsg(epsg,minx,miny,maxx,maxy){var j=wms[wms.length-1].objLayer.length-1;var k=wms[wms.length-1].objLayer[j].layer_epsg.length;wms[wms.length-1].objLayer[j].layer_epsg[k]=new Array();wms[wms.length-1].objLayer[j].layer_epsg[k][<span class="literal">"epsg"</span>]=epsg;wms[wms.length-1].objLayer[j].layer_epsg[k][<span class="literal">"minx"</span>]=minx;wms[wms.length-1].objLayer[j].layer_epsg[k][<span class="literal">"miny"</span>]=miny;wms[wms.length-1].objLayer[j].layer_epsg[k][<span class="literal">"maxx"</span>]=maxx;wms[wms.length-1].objLayer[j].layer_epsg[k][<span class="literal">"maxy"</span>]=maxy;}
++<span class="reserved">function</span> wms_layer(layer_parent,wms_layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype){<span class="reserved">this</span>.layer_id=wms_layer_count;<span class="reserved">this</span>.layer_uid=wms_layer_uid;<span class="reserved">this</span>.layer_parent=layer_parent;<span class="reserved">this</span>.layer_name=layer_name;<span class="reserved">this</span>.layer_title=layer_title;<span class="reserved">this</span>.layer_dataurl_href=layer_dataurl_href;<span class="reserved">this</span>.layer_pos=layer_pos;<span class="reserved">this</span>.layer_queryable=layer_queryable;<span class="reserved">this</span>.layer_minscale=layer_minscale;<span class="reserved">this</span>.layer_maxscale=layer_maxscale;<span class="reserved">this</span>.layer_metadataurl=layer_metadataurl;<span class="reserved">this</span>.layer_epsg=new Array();<span class="reserved">this</span>.gui_layer_wms_id=gui_layer_wms_id;<span class="reserved">this</span>.gui_layer_status=gui_layer_status;<span class="reserved">this</span>.gui_layer_selectable=gui_layer_selectable;<span class="reserved">this</span>.gui_layer_visible=gui_layer_visible;<span class="reserved">this</span>.gui_layer_queryable=gui_layer_queryable;<span class="reserved">this</span>.gui_layer_querylayer=gui_layer_querylayer;<span class="reserved">this</span>.gui_layer_minscale=gui_layer_minscale;<span class="reserved">this</span>.gui_layer_maxscale=gui_layer_maxscale;<span class="reserved">this</span>.gui_layer_wfs_featuretype=gui_layer_wfs_featuretype;<span class="reserved">this</span>.layer_style=new Array();wms_layer_count++;}</pre>
++	<hr>
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-summary-point.js.html
+===================================================================
+--- documents/jsdoc/overview-summary-point.js.html	(revision 0)
++++ documents/jsdoc/overview-summary-point.js.html	(revision 0)
+@@ -0,0 +1,276 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title="point.js Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>point.js</h2>
++	
++</center>
++
++	
++
++
++<h4>Summary</h4>
++<p>
++	
++		No overview generated for 'point.js'<BR/><BR/>
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>Class Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="Point.html">Point</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++	<a name="method_summary"><!-- --></a>
++	<table border="1" cellpadding="3" cellspacing="0" width="100%">
++		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
++			<td colspan=2>
++				<font size="+2">
++					<b>Method Summary</b>
++				</font>
++			</td>
++		</tr>
++	
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mapToReal">mapToReal</a></b>(frameName,aPoint)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mb_calcExtent">mb_calcExtent</a></b>(frameName,min,max)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!realToMap">realToMap</a></b>(frameName,aPoint)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!roundToDigits">roundToDigits</a></b>(aFloat,numberOfDigits)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++	
++	</table>
++    <p>
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++        <pre class="sourceview"><span class="reserved">function</span> Point(x,y){<span class="reserved">this</span>.x=parseFloat(x);<span class="reserved">this</span>.y=parseFloat(y);}
++Point.<span class="reserved">prototype</span>.dist=<span class="reserved">function</span>(p){<span class="reserved">return</span> Math.sqrt(Math.pow(<span class="reserved">this</span>.y-p.y,2)+Math.pow(<span class="reserved">this</span>.x-p.x,2));}
++Point.<span class="reserved">prototype</span>.equals=<span class="reserved">function</span>(p){<span class="reserved">if</span>(<span class="reserved">this</span>.x==p.x&amp;&amp;<span class="reserved">this</span>.y==p.y){<span class="reserved">return</span> true;}
++<span class="reserved">return</span> false;}
++Point.<span class="reserved">prototype</span>.minus=<span class="reserved">function</span>(p){<span class="reserved">return</span> new Point(<span class="reserved">this</span>.x-p.x,<span class="reserved">this</span>.y-p.y);}
++Point.<span class="reserved">prototype</span>.plus=<span class="reserved">function</span>(p){<span class="reserved">return</span> new Point(<span class="reserved">this</span>.x+p.x,<span class="reserved">this</span>.y+p.y);}
++Point.<span class="reserved">prototype</span>.dividedBy=<span class="reserved">function</span>(c){<span class="reserved">if</span>(c!=0){<span class="reserved">return</span> new Point(<span class="reserved">this</span>.x/c,<span class="reserved">this</span>.y/c);}
++var e=new Mb_exception(<span class="literal">"Point.dividedBy: Division by zero"</span>);<span class="reserved">return</span> false;}
++Point.<span class="reserved">prototype</span>.times=<span class="reserved">function</span>(c){<span class="reserved">return</span> new Point(<span class="reserved">this</span>.x*c,<span class="reserved">this</span>.y*c);}
++Point.<span class="reserved">prototype</span>.round=<span class="reserved">function</span>(numOfDigits){<span class="reserved">return</span> new Point(roundToDigits(<span class="reserved">this</span>.x,numOfDigits),roundToDigits(<span class="reserved">this</span>.y,numOfDigits));}
++Point.<span class="reserved">prototype</span>.toString=<span class="reserved">function</span>(){<span class="reserved">return</span><span class="literal">"("</span>+<span class="reserved">this</span>.x+<span class="literal">", "</span>+<span class="reserved">this</span>.y+<span class="literal">")"</span>;}
++<span class="reserved">function</span> mapToReal(frameName,aPoint){var v;<span class="reserved">if</span>(typeof(mb_mapObj)==<span class="literal">'object'</span>)v=makeClickPos2RealWorldPos(frameName,aPoint.x,aPoint.y);<span class="reserved">else</span> <span class="reserved">if</span>(typeof(parent.mb_mapObj)==<span class="literal">'object'</span>)v=parent.makeClickPos2RealWorldPos(frameName,aPoint.x,aPoint.y);<span class="reserved">else</span> alert(<span class="literal">'where am i?'</span>);<span class="reserved">return</span> new Point(v[0],v[1]);}
++<span class="reserved">function</span> realToMap(frameName,aPoint){var v;<span class="reserved">if</span>(typeof(mb_mapObj)==<span class="literal">'object'</span>){v=makeRealWorld2mapPos(frameName,aPoint.x,aPoint.y);}
++<span class="reserved">else</span> <span class="reserved">if</span>(typeof(parent.mb_mapObj)==<span class="literal">'object'</span>){v=parent.makeRealWorld2mapPos(frameName,aPoint.x,aPoint.y);}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">'Point.realToMap:where am i?'</span>);}
++<span class="reserved">return</span> new Point(v[0],v[1]);}
++<span class="reserved">function</span> mb_calcExtent(frameName,min,max){var ind;<span class="reserved">if</span>(typeof(mb_mapObj)==<span class="literal">'object'</span>){ind=getMapObjIndexByName(frameName);}
++<span class="reserved">else</span> <span class="reserved">if</span>(typeof(parent.mb_mapObj)==<span class="literal">'object'</span>){ind=parent.getMapObjIndexByName(frameName);}
++<span class="reserved">else</span>{var e=new Mb_exception(<span class="literal">'Point.mb_calcExtent: function getMapObjIndexByName not found'</span>);}
++var extent=max.minus(min);var center=extent.dividedBy(2).plus(min);var relation_px_x=mb_mapObj[ind].width/mb_mapObj[ind].height;var relation_px_y=mb_mapObj[ind].height/mb_mapObj[ind].width;var relation_bbox_x=extent.x/extent.y;var new_min;var new_max;<span class="reserved">if</span>(relation_bbox_x&lt;=relation_px_x){new_min=new Point(center.x-relation_px_x*extent.y/2,min.y);new_max=new Point(center.x+relation_px_x*extent.y/2,max.y);}
++<span class="reserved">else</span> <span class="reserved">if</span>(relation_bbox_x&gt;relation_px_x){new_min=new Point(min.x,center.y-relation_px_y*extent.x/2);new_max=new Point(max.x,center.y+relation_px_y*extent.x/2);}
++mb_mapObj[ind].extent=new_min.x+<span class="literal">","</span>+new_min.y+<span class="literal">","</span>+new_max.x+<span class="literal">","</span>+new_max.y;}
++<span class="reserved">function</span> roundToDigits(aFloat,numberOfDigits){<span class="reserved">return</span> Math.round(aFloat*Math.pow(10,parseInt(numberOfDigits)))/Math.pow(10,parseInt(numberOfDigits));}</pre>
++	<hr>
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-summary-wz_jsgraphics.js.html
+===================================================================
+--- documents/jsdoc/overview-summary-wz_jsgraphics.js.html	(revision 0)
++++ documents/jsdoc/overview-summary-wz_jsgraphics.js.html	(revision 0)
+@@ -0,0 +1,1503 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title="wz_jsgraphics.js Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>wz_jsgraphics.js</h2>
++	
++</center>
++
++	
++
++
++<h4>Summary</h4>
++<p>
++	
++		No overview generated for 'wz_jsgraphics.js'<BR/><BR/>
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>Class Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="jsgFont.html">jsgFont</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="jsgStroke.html">jsgStroke</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++	<a name="method_summary"><!-- --></a>
++	<table border="1" cellpadding="3" cellspacing="0" width="100%">
++		<tr bgcolor="#CCCCFF" class="TableHeadingColor">
++			<td colspan=2>
++				<font size="+2">
++					<b>Method Summary</b>
++				</font>
++			</td>
++		</tr>
++	
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!chkDHTM">chkDHTM</a></b>(x, i)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!htmPrtRpc">htmPrtRpc</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!htmRpc">htmRpc</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;Object</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!integer_compare">integer_compare</a></b>(x,y)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!jsGraphics">jsGraphics</a></b>(id, wnd)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkDiv">mkDiv</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkDivIe">mkDivIe</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkDivPrt">mkDivPrt</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkLin">mkLin</a></b>(x1, y1, x2, y2)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkLin2D">mkLin2D</a></b>(x1, y1, x2, y2)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkLinDott">mkLinDott</a></b>(x1, y1, x2, y2)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkLyr">mkLyr</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkOv">mkOv</a></b>(left, top, width, height)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkOv2D">mkOv2D</a></b>(left, top, width, height)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkOvDott">mkOvDott</a></b>(left, top, width, height)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkRect">mkRect</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!mkRectDott">mkRectDott</a></b>(x, y, w, h)
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!pntCnv">pntCnv</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!pntCnvDom">pntCnvDom</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!pntCnvIe">pntCnvIe</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!pntCnvIhtm">pntCnvIhtm</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++		   <tr bgcolor="white" class="TableRowColor">
++		      <td align="right" valign="top" width="1%">
++			 <font size="-1">
++			    <code>static&nbsp;void</code>
++			 </font>
++		      </td>
++		      <td>
++			 <code>
++			    <b>
++			       <a href="GLOBALS.html#!s!pntDoc">pntDoc</a></b>()
++			 </code>
++			 <br>
++			 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++			 
++		      </td>
++		   </tr>
++		
++	
++	</table>
++    <p>
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++        <pre class="sourceview"><span class="comment">/* This notice must be untouched at all times.
++
++wz_jsgraphics.js    v. 2.3
++The latest version is available at
++http://www.walterzorn.com
++or http://www.devira.com
++or http://www.walterzorn.de
++
++Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
++Created 3. 11. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
++Last modified: 29. 9. 2004
++
++Performance optimizations for Internet Explorer
++by Thomas Frank and John Holdsworth.
++fillPolygon method implemented by Matthieu Haller.
++
++High Performance JavaScript Graphics Library.
++Provides methods
++- to draw lines, rectangles, ellipses, polygons
++  with specifiable line thickness,
++- to fill rectangles and ellipses
++- to draw text.
++NOTE: Operations, functions and branching have rather been optimized
++to efficiency and speed than to shortness of source code.
++
++LICENSE: LGPL
++
++This library is free software; you can redistribute it and/or
++modify it under the terms of the GNU Lesser General Public
++License (LGPL) as published by the Free Software Foundation; either
++version 2.1 of the License, or (at your option) any later version.
++
++This library is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++Lesser General Public License for more details.
++
++You should have received a copy of the GNU Lesser General Public
++License along with this library; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,
++or see http://www.gnu.org/copyleft/lesser.html
++*/</span>
++
++
++var jg_ihtm, jg_ie, jg_fast, jg_dom, jg_moz,
++jg_n4 = (document.layers &amp;&amp; typeof document.classes != <span class="literal">"undefined"</span>);
++
++
++<span class="reserved">function</span> chkDHTM(x, i)
++{
++        x = document.body || null;
++        jg_ie = x &amp;&amp; typeof x.insertAdjacentHTML != <span class="literal">"undefined"</span>;
++        jg_dom = (x &amp;&amp; !jg_ie &amp;&amp;
++                typeof x.appendChild != <span class="literal">"undefined"</span> &amp;&amp;
++                typeof document.createRange != <span class="literal">"undefined"</span> &amp;&amp;
++                typeof (i = document.createRange()).setStartBefore != <span class="literal">"undefined"</span> &amp;&amp;
++                typeof i.createContextualFragment != <span class="literal">"undefined"</span>);
++        jg_ihtm = !jg_ie &amp;&amp; !jg_dom &amp;&amp; x &amp;&amp; typeof x.innerHTML != <span class="literal">"undefined"</span>;
++        jg_fast = jg_ie &amp;&amp; document.all &amp;&amp; !window.opera;
++        jg_moz = jg_dom &amp;&amp; typeof x.style.MozOpacity != <span class="literal">"undefined"</span>;
++}
++
++
++<span class="reserved">function</span> pntDoc()
++{
++        <span class="reserved">this</span>.wnd.document.write(jg_fast? <span class="reserved">this</span>.htmRpc() : <span class="reserved">this</span>.htm);
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++}
++
++
++<span class="reserved">function</span> pntCnvDom()
++{
++        var x = document.createRange();
++        x.setStartBefore(<span class="reserved">this</span>.cnv);
++        x = x.createContextualFragment(jg_fast? <span class="reserved">this</span>.htmRpc() : <span class="reserved">this</span>.htm);
++        <span class="reserved">this</span>.cnv.appendChild(x);
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++}
++
++
++<span class="reserved">function</span> pntCnvIe()
++{
++        <span class="reserved">this</span>.cnv.insertAdjacentHTML(<span class="literal">"BeforeEnd"</span>, jg_fast? <span class="reserved">this</span>.htmRpc() : <span class="reserved">this</span>.htm);
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++}
++
++
++<span class="reserved">function</span> pntCnvIhtm()
++{
++        <span class="reserved">this</span>.cnv.innerHTML += <span class="reserved">this</span>.htm;
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++}
++
++
++<span class="reserved">function</span> pntCnv()
++{
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++}
++
++
++<span class="reserved">function</span> mkDiv(x, y, w, h)
++{
++		<span class="reserved">if</span> (!isNaN(h)) {
++	        <span class="reserved">this</span>.htm += <span class="literal">'&lt;div style="position:absolute;'</span>+
++	                <span class="literal">'left:'</span> + x + <span class="literal">'px;'</span>+
++	                <span class="literal">'top:'</span> + y + <span class="literal">'px;'</span>+
++	                <span class="literal">'width:'</span> + w + <span class="literal">'px;'</span>+
++	                <span class="literal">'height:'</span> + h + <span class="literal">'px;'</span>;
++	        <span class="reserved">if</span> (ie) {
++	        		<span class="reserved">this</span>.htm += <span class="literal">'-opacity:'</span> + cw_opacity + <span class="literal">';'</span> + 
++	                <span class="literal">'-khtml-opacity:'</span> + cw_opacity + <span class="literal">';'</span>+
++	                <span class="literal">'filter: alpha(opacity='</span> + (cw_opacity * 100) + <span class="literal">');'</span>;
++	        }
++	
++	<span class="comment">//'-moz-opacity:' + window.cw_opacity + ';'+</span>
++	        <span class="reserved">this</span>.htm += 
++	                <span class="literal">'clip:rect(0,'</span>+w+<span class="literal">'px,'</span>+h+<span class="literal">'px,0);'</span>+
++	                <span class="literal">'background-color:'</span> + <span class="reserved">this</span>.color +
++	                (!jg_moz? <span class="literal">';overflow:hidden'</span> : <span class="literal">''</span>)+
++	                <span class="literal">';"&gt;&lt;\/div&gt;'</span>;
++		}
++}
++
++
++<span class="reserved">function</span> mkDivIe(x, y, w, h)
++{
++		<span class="reserved">if</span> (!isNaN(h)) {
++	        <span class="reserved">this</span>.htm += <span class="literal">'%%'</span>+<span class="reserved">this</span>.color+<span class="literal">';'</span>+x+<span class="literal">';'</span>+y+<span class="literal">';'</span>+w+<span class="literal">';'</span>+h+<span class="literal">';'</span>;
++		}
++}
++
++
++<span class="reserved">function</span> mkDivPrt(x, y, w, h)
++{
++        <span class="reserved">this</span>.htm += <span class="literal">'&lt;div style="position:absolute;'</span>+
++                <span class="literal">'border-left:'</span> + w + <span class="literal">'px solid '</span> + <span class="reserved">this</span>.color + <span class="literal">';'</span>+
++                <span class="literal">'left:'</span> + x + <span class="literal">'px;'</span>+
++                <span class="literal">'top:'</span> + y + <span class="literal">'px;'</span>+
++                <span class="literal">'width:0px;'</span>+
++                <span class="literal">'height:'</span> + h + <span class="literal">'px;'</span>+
++                <span class="literal">'clip:rect(0,'</span>+w+<span class="literal">'px,'</span>+h+<span class="literal">'px,0);'</span>+
++                <span class="literal">'background-color:'</span> + <span class="reserved">this</span>.color +
++                (!jg_moz? <span class="literal">';overflow:hidden'</span> : <span class="literal">''</span>)+
++                <span class="literal">';"&gt;&lt;\/div&gt;'</span>;
++}
++
++
++<span class="reserved">function</span> mkLyr(x, y, w, h)
++{
++        <span class="reserved">this</span>.htm += <span class="literal">'&lt;layer '</span>+
++                <span class="literal">'left="'</span> + x + <span class="literal">'" '</span>+
++                <span class="literal">'top="'</span> + y + <span class="literal">'" '</span>+
++                <span class="literal">'width="'</span> + w + <span class="literal">'" '</span>+
++                <span class="literal">'height="'</span> + h + <span class="literal">'" '</span>+
++                <span class="literal">'bgcolor="'</span> + <span class="reserved">this</span>.color + <span class="literal">'"&gt;&lt;\/layer&gt;\n'</span>;
++}
++
++
++var regex =  /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
++<span class="reserved">function</span> htmRpc()
++{
++        <span class="reserved">return</span> <span class="reserved">this</span>.htm.replace(
++                regex,
++                <span class="literal">'&lt;div style="overflow:hidden;position:absolute;background-color:'</span>+
++                <span class="literal">'$1;left:$2;top:$3;width:$4;height:$5"&gt;&lt;/div&gt;\n'</span>);
++}
++
++
++<span class="reserved">function</span> htmPrtRpc()
++{
++        <span class="reserved">return</span> <span class="reserved">this</span>.htm.replace(
++                regex,
++                <span class="literal">'&lt;div style="overflow:hidden;position:absolute;background-color:'</span>+
++                <span class="literal">'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"&gt;&lt;/div&gt;\n'</span>);
++}
++
++
++<span class="reserved">function</span> mkLin(x1, y1, x2, y2)
++{
++        <span class="reserved">if</span> (x1 &gt; x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 &gt; y2)? -1 : 1;
++
++        <span class="reserved">if</span> (dx &gt;= dy)
++        {
++                var pr = dy&lt;&lt;1,
++                pru = pr - (dx&lt;&lt;1),
++                p = pr-dx,
++                ox = x;
++                <span class="reserved">while</span> ((dx--) &gt; 0)
++                {
++                        ++x;
++                        <span class="reserved">if</span> (p &gt; 0)
++                        {
++                                <span class="reserved">this</span>.mkDiv(ox, y, x-ox, 1);
++                                y += yIncr;
++                                p += pru;
++                                ox = x;
++                        }
++                        <span class="reserved">else</span> p += pr;
++                }
++                <span class="reserved">this</span>.mkDiv(ox, y, x2-ox+1, 1);
++        }
++
++        <span class="reserved">else</span>
++        {
++                var pr = dx&lt;&lt;1,
++                pru = pr - (dy&lt;&lt;1),
++                p = pr-dy,
++                oy = y;
++                <span class="reserved">if</span> (y2 &lt;= y1)
++                {
++                        <span class="reserved">while</span> ((dy--) &gt; 0)
++                        {
++                                <span class="reserved">if</span> (p &gt; 0)
++                                {
++                                        <span class="reserved">this</span>.mkDiv(x++, y, 1, oy-y+1);
++                                        y += yIncr;
++                                        p += pru;
++                                        oy = y;
++                                }
++                                <span class="reserved">else</span>
++                                {
++                                        y += yIncr;
++                                        p += pr;
++                                }
++                        }
++                        <span class="reserved">this</span>.mkDiv(x2, y2, 1, oy-y2+1);
++                }
++                <span class="reserved">else</span>
++                {
++                        <span class="reserved">while</span> ((dy--) &gt; 0)
++                        {
++                                y += yIncr;
++                                <span class="reserved">if</span> (p &gt; 0)
++                                {
++                                        <span class="reserved">this</span>.mkDiv(x++, oy, 1, y-oy);
++                                        p += pru;
++                                        oy = y;
++                                }
++                                <span class="reserved">else</span> p += pr;
++                        }
++                        <span class="reserved">this</span>.mkDiv(x2, oy, 1, y2-oy+1);
++                }
++        }
++}
++
++
++<span class="reserved">function</span> mkLin2D(x1, y1, x2, y2)
++{
++        <span class="reserved">if</span> (x1 &gt; x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 &gt; y2)? -1 : 1;
++
++        var s = <span class="reserved">this</span>.stroke;
++        <span class="reserved">if</span> (dx &gt;= dy)
++        {
++                <span class="reserved">if</span> (s-3 &gt; 0)
++                {
++                        var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s&gt;&gt;1)*dy) / dx;
++                        _s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
++                }
++                <span class="reserved">else</span> var _s = s;
++                var ad = Math.ceil(s/2);
++
++                var pr = dy&lt;&lt;1,
++                pru = pr - (dx&lt;&lt;1),
++                p = pr-dx,
++                ox = x;
++                <span class="reserved">while</span> ((dx--) &gt; 0)
++                {
++                        ++x;
++                        <span class="reserved">if</span> (p &gt; 0)
++                        {
++                                <span class="reserved">this</span>.mkDiv(ox, y, x-ox+ad, _s);
++                                y += yIncr;
++                                p += pru;
++                                ox = x;
++                        }
++                        <span class="reserved">else</span> p += pr;
++                }
++                <span class="reserved">this</span>.mkDiv(ox, y, x2-ox+ad+1, _s);
++        }
++
++        <span class="reserved">else</span>
++        {
++                <span class="reserved">if</span> (s-3 &gt; 0)
++                {
++                        var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s&gt;&gt;1)*dx-dy) / dy;
++                        _s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
++                }
++                <span class="reserved">else</span> var _s = s;
++                var ad = Math.round(s/2);
++
++                var pr = dx&lt;&lt;1,
++                pru = pr - (dy&lt;&lt;1),
++                p = pr-dy,
++                oy = y;
++                <span class="reserved">if</span> (y2 &lt;= y1)
++                {
++                        ++ad;
++                        <span class="reserved">while</span> ((dy--) &gt; 0)
++                        {
++                                <span class="reserved">if</span> (p &gt; 0)
++                                {
++                                        <span class="reserved">this</span>.mkDiv(x++, y, _s, oy-y+ad);
++                                        y += yIncr;
++                                        p += pru;
++                                        oy = y;
++                                }
++                                <span class="reserved">else</span>
++                                {
++                                        y += yIncr;
++                                        p += pr;
++                                }
++                        }
++                        <span class="reserved">this</span>.mkDiv(x2, y2, _s, oy-y2+ad);
++                }
++                <span class="reserved">else</span>
++                {
++                        <span class="reserved">while</span> ((dy--) &gt; 0)
++                        {
++                                y += yIncr;
++                                <span class="reserved">if</span> (p &gt; 0)
++                                {
++                                        <span class="reserved">this</span>.mkDiv(x++, oy, _s, y-oy+ad);
++                                        p += pru;
++                                        oy = y;
++                                }
++                                <span class="reserved">else</span> p += pr;
++                        }
++                        <span class="reserved">this</span>.mkDiv(x2, oy, _s, y2-oy+ad+1);
++                }
++        }
++}
++
++
++<span class="reserved">function</span> mkLinDott(x1, y1, x2, y2)
++{
++        <span class="reserved">if</span> (x1 &gt; x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 &gt; y2)? -1 : 1,
++        drw = true;
++        <span class="reserved">if</span> (dx &gt;= dy)
++        {
++                var pr = dy&lt;&lt;1,
++                pru = pr - (dx&lt;&lt;1),
++                p = pr-dx;
++                <span class="reserved">while</span> ((dx--) &gt; 0)
++                {
++                        <span class="reserved">if</span> (drw) <span class="reserved">this</span>.mkDiv(x, y, 1, 1);
++                        drw = !drw;
++                        <span class="reserved">if</span> (p &gt; 0)
++                        {
++                                y += yIncr;
++                                p += pru;
++                        }
++                        <span class="reserved">else</span> p += pr;
++                        ++x;
++                }
++                <span class="reserved">if</span> (drw) <span class="reserved">this</span>.mkDiv(x, y, 1, 1);
++        }
++
++        <span class="reserved">else</span>
++        {
++                var pr = dx&lt;&lt;1,
++                pru = pr - (dy&lt;&lt;1),
++                p = pr-dy;
++                <span class="reserved">while</span> ((dy--) &gt; 0)
++                {
++                        <span class="reserved">if</span> (drw) <span class="reserved">this</span>.mkDiv(x, y, 1, 1);
++                        drw = !drw;
++                        y += yIncr;
++                        <span class="reserved">if</span> (p &gt; 0)
++                        {
++                                ++x;
++                                p += pru;
++                        }
++                        <span class="reserved">else</span> p += pr;
++                }
++                <span class="reserved">if</span> (drw) <span class="reserved">this</span>.mkDiv(x, y, 1, 1);
++        }
++}
++
++
++<span class="reserved">function</span> mkOv(left, top, width, height)
++{
++        var a = width&gt;&gt;1, b = height&gt;&gt;1,
++        wod = width&amp;1, hod = (height&amp;1)+1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        ox = 0, oy = b,
++        aa = (a*a)&lt;&lt;1, bb = (b*b)&lt;&lt;1,
++        st = (aa&gt;&gt;1)*(1-(b&lt;&lt;1)) + bb,
++        tt = (bb&gt;&gt;1) - aa*((b&lt;&lt;1)-1),
++        w, h;
++        <span class="reserved">while</span> (y &gt; 0)
++        {
++                <span class="reserved">if</span> (st &lt; 0)
++                {
++                        st += bb*((x&lt;&lt;1)+3);
++                        tt += (bb&lt;&lt;1)*(++x);
++                }
++                <span class="reserved">else</span> <span class="reserved">if</span> (tt &lt; 0)
++                {
++                        st += bb*((x&lt;&lt;1)+3) - (aa&lt;&lt;1)*(y-1);
++                        tt += (bb&lt;&lt;1)*(++x) - aa*(((y--)&lt;&lt;1)-3);
++                        w = x-ox;
++                        h = oy-y;
++                        <span class="reserved">if</span> (w&amp;2 &amp;&amp; h&amp;2)
++                        {
++                                <span class="reserved">this</span>.mkOvQds(cx, cy, -x+2, ox+wod, -oy, oy-1+hod, 1, 1);
++                                <span class="reserved">this</span>.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1);
++                        }
++                        <span class="reserved">else</span> <span class="reserved">this</span>.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h);
++                        ox = x;
++                        oy = y;
++                }
++                <span class="reserved">else</span>
++                {
++                        tt -= aa*((y&lt;&lt;1)-3);
++                        st -= (aa&lt;&lt;1)*(--y);
++                }
++        }
++        <span class="reserved">this</span>.mkDiv(cx-a, cy-oy, a-ox+1, (oy&lt;&lt;1)+hod);
++        <span class="reserved">this</span>.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy&lt;&lt;1)+hod);
++}
++
++
++<span class="reserved">function</span> mkOv2D(left, top, width, height)
++{
++        var s = <span class="reserved">this</span>.stroke;
++        width += s-1;
++        height += s-1;
++        var a = width&gt;&gt;1, b = height&gt;&gt;1,
++        wod = width&amp;1, hod = (height&amp;1)+1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        aa = (a*a)&lt;&lt;1, bb = (b*b)&lt;&lt;1,
++        st = (aa&gt;&gt;1)*(1-(b&lt;&lt;1)) + bb,
++        tt = (bb&gt;&gt;1) - aa*((b&lt;&lt;1)-1);
++
++        <span class="reserved">if</span> (s-4 &lt; 0 &amp;&amp; (!(s-2) || width-51 &gt; 0 &amp;&amp; height-51 &gt; 0))
++        {
++                var ox = 0, oy = b,
++                w, h,
++                pxl, pxr, pxt, pxb, pxw;
++                <span class="reserved">while</span> (y &gt; 0)
++                {
++                        <span class="reserved">if</span> (st &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3);
++                                tt += (bb&lt;&lt;1)*(++x);
++                        }
++                        <span class="reserved">else</span> <span class="reserved">if</span> (tt &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3) - (aa&lt;&lt;1)*(y-1);
++                                tt += (bb&lt;&lt;1)*(++x) - aa*(((y--)&lt;&lt;1)-3);
++                                w = x-ox;
++                                h = oy-y;
++
++                                <span class="reserved">if</span> (w-1)
++                                {
++                                        pxw = w+1+(s&amp;1);
++                                        h = s;
++                                }
++                                <span class="reserved">else</span> <span class="reserved">if</span> (h-1)
++                                {
++                                        pxw = s;
++                                        h += 1+(s&amp;1);
++                                }
++                                <span class="reserved">else</span> pxw = h = s;
++                                <span class="reserved">this</span>.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h);
++                                ox = x;
++                                oy = y;
++                        }
++                        <span class="reserved">else</span>
++                        {
++                                tt -= aa*((y&lt;&lt;1)-3);
++                                st -= (aa&lt;&lt;1)*(--y);
++                        }
++                }
++                <span class="reserved">this</span>.mkDiv(cx-a, cy-oy, s, (oy&lt;&lt;1)+hod);
++                <span class="reserved">this</span>.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy&lt;&lt;1)+hod);
++        }
++
++        <span class="reserved">else</span>
++        {
++                var _a = (width-((s-1)&lt;&lt;1))&gt;&gt;1,
++                _b = (height-((s-1)&lt;&lt;1))&gt;&gt;1,
++                _x = 0, _y = _b,
++                _aa = (_a*_a)&lt;&lt;1, _bb = (_b*_b)&lt;&lt;1,
++                _st = (_aa&gt;&gt;1)*(1-(_b&lt;&lt;1)) + _bb,
++                _tt = (_bb&gt;&gt;1) - _aa*((_b&lt;&lt;1)-1),
++
++                pxl = new Array(),
++                pxt = new Array(),
++                _pxb = new Array();
++                pxl[0] = 0;
++                pxt[0] = b;
++                _pxb[0] = _b-1;
++                <span class="reserved">while</span> (y &gt; 0)
++                {
++                        <span class="reserved">if</span> (st &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3);
++                                tt += (bb&lt;&lt;1)*(++x);
++                                pxl[pxl.length] = x;
++                                pxt[pxt.length] = y;
++                        }
++                        <span class="reserved">else</span> <span class="reserved">if</span> (tt &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3) - (aa&lt;&lt;1)*(y-1);
++                                tt += (bb&lt;&lt;1)*(++x) - aa*(((y--)&lt;&lt;1)-3);
++                                pxl[pxl.length] = x;
++                                pxt[pxt.length] = y;
++                        }
++                        <span class="reserved">else</span>
++                        {
++                                tt -= aa*((y&lt;&lt;1)-3);
++                                st -= (aa&lt;&lt;1)*(--y);
++                        }
++
++                        <span class="reserved">if</span> (_y &gt; 0)
++                        {
++                                <span class="reserved">if</span> (_st &lt; 0)
++                                {
++                                        _st += _bb*((_x&lt;&lt;1)+3);
++                                        _tt += (_bb&lt;&lt;1)*(++_x);
++                                        _pxb[_pxb.length] = _y-1;
++                                }
++                                <span class="reserved">else</span> <span class="reserved">if</span> (_tt &lt; 0)
++                                {
++                                        _st += _bb*((_x&lt;&lt;1)+3) - (_aa&lt;&lt;1)*(_y-1);
++                                        _tt += (_bb&lt;&lt;1)*(++_x) - _aa*(((_y--)&lt;&lt;1)-3);
++                                        _pxb[_pxb.length] = _y-1;
++                                }
++                                <span class="reserved">else</span>
++                                {
++                                        _tt -= _aa*((_y&lt;&lt;1)-3);
++                                        _st -= (_aa&lt;&lt;1)*(--_y);
++                                        _pxb[_pxb.length-1]--;
++                                }
++                        }
++                }
++
++                var ox = 0, oy = b,
++                _oy = _pxb[0],
++                l = pxl.length,
++                w, h;
++                <span class="reserved">for</span> (var i = 0; i &lt; l; i++)
++                {
++                        <span class="reserved">if</span> (typeof _pxb[i] != <span class="literal">"undefined"</span>)
++                        {
++                                <span class="reserved">if</span> (_pxb[i] &lt; _oy || pxt[i] &lt; oy)
++                                {
++                                        x = pxl[i];
++                                        <span class="reserved">this</span>.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy);
++                                        ox = x;
++                                        oy = pxt[i];
++                                        _oy = _pxb[i];
++                                }
++                        }
++                        <span class="reserved">else</span>
++                        {
++                                x = pxl[i];
++                                <span class="reserved">this</span>.mkDiv(cx-x+1, cy-oy, 1, (oy&lt;&lt;1)+hod);
++                                <span class="reserved">this</span>.mkDiv(cx+ox+wod, cy-oy, 1, (oy&lt;&lt;1)+hod);
++                                ox = x;
++                                oy = pxt[i];
++                        }
++                }
++                <span class="reserved">this</span>.mkDiv(cx-a, cy-oy, 1, (oy&lt;&lt;1)+hod);
++                <span class="reserved">this</span>.mkDiv(cx+ox+wod, cy-oy, 1, (oy&lt;&lt;1)+hod);
++        }
++}
++
++
++<span class="reserved">function</span> mkOvDott(left, top, width, height)
++{
++        var a = width&gt;&gt;1, b = height&gt;&gt;1,
++        wod = width&amp;1, hod = height&amp;1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        aa2 = (a*a)&lt;&lt;1, aa4 = aa2&lt;&lt;1, bb = (b*b)&lt;&lt;1,
++        st = (aa2&gt;&gt;1)*(1-(b&lt;&lt;1)) + bb,
++        tt = (bb&gt;&gt;1) - aa2*((b&lt;&lt;1)-1),
++        drw = true;
++        <span class="reserved">while</span> (y &gt; 0)
++        {
++                <span class="reserved">if</span> (st &lt; 0)
++                {
++                        st += bb*((x&lt;&lt;1)+3);
++                        tt += (bb&lt;&lt;1)*(++x);
++                }
++                <span class="reserved">else</span> <span class="reserved">if</span> (tt &lt; 0)
++                {
++                        st += bb*((x&lt;&lt;1)+3) - aa4*(y-1);
++                        tt += (bb&lt;&lt;1)*(++x) - aa2*(((y--)&lt;&lt;1)-3);
++                }
++                <span class="reserved">else</span>
++                {
++                        tt -= aa2*((y&lt;&lt;1)-3);
++                        st -= aa4*(--y);
++                }
++                <span class="reserved">if</span> (drw) <span class="reserved">this</span>.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1);
++                drw = !drw;
++        }
++}
++
++
++<span class="reserved">function</span> mkRect(x, y, w, h)
++{
++        var s = <span class="reserved">this</span>.stroke;
++        <span class="reserved">this</span>.mkDiv(x, y, w, s);
++        <span class="reserved">this</span>.mkDiv(x+w, y, s, h);
++        <span class="reserved">this</span>.mkDiv(x, y+h, w+s, s);
++        <span class="reserved">this</span>.mkDiv(x, y+s, s, h-s);
++}
++
++
++<span class="reserved">function</span> mkRectDott(x, y, w, h)
++{
++        <span class="reserved">this</span>.drawLine(x, y, x+w, y);
++        <span class="reserved">this</span>.drawLine(x+w, y, x+w, y+h);
++        <span class="reserved">this</span>.drawLine(x, y+h, x+w, y+h);
++        <span class="reserved">this</span>.drawLine(x, y, x, y+h);
++}
++
++
++<span class="reserved">function</span> jsgFont()
++{
++        <span class="reserved">this</span>.PLAIN = <span class="literal">'font-weight:normal;'</span>;
++        <span class="reserved">this</span>.BOLD = <span class="literal">'font-weight:bold;'</span>;
++        <span class="reserved">this</span>.ITALIC = <span class="literal">'font-style:italic;'</span>;
++        <span class="reserved">this</span>.ITALIC_BOLD = <span class="reserved">this</span>.ITALIC + <span class="reserved">this</span>.BOLD;
++        <span class="reserved">this</span>.BOLD_ITALIC = <span class="reserved">this</span>.ITALIC_BOLD;
++}
++var Font = new jsgFont();
++
++
++<span class="reserved">function</span> jsgStroke()
++{
++        <span class="reserved">this</span>.DOTTED = -1;
++}
++var Stroke = new jsgStroke();
++
++
++<span class="reserved">function</span> jsGraphics(id, wnd)
++{
++        <span class="reserved">this</span>.setColor = new Function(<span class="literal">'arg'</span>, <span class="literal">'this.color = arg.toLowerCase();'</span>);
++
++        <span class="reserved">this</span>.setStroke = <span class="reserved">function</span>(x)
++        {
++                <span class="reserved">this</span>.stroke = x;
++                <span class="reserved">if</span> (!(x+1))
++                {
++                        <span class="reserved">this</span>.drawLine = mkLinDott;
++                        <span class="reserved">this</span>.mkOv = mkOvDott;
++                        <span class="reserved">this</span>.drawRect = mkRectDott;
++                }
++                <span class="reserved">else</span> <span class="reserved">if</span> (x-1 &gt; 0)
++                {
++                        <span class="reserved">this</span>.drawLine = mkLin2D;
++                        <span class="reserved">this</span>.mkOv = mkOv2D;
++                        <span class="reserved">this</span>.drawRect = mkRect;
++                }
++                <span class="reserved">else</span>
++                {
++                        <span class="reserved">this</span>.drawLine = mkLin;
++                        <span class="reserved">this</span>.mkOv = mkOv;
++                        <span class="reserved">this</span>.drawRect = mkRect;
++                }
++        };
++
++
++        <span class="reserved">this</span>.setPrintable = <span class="reserved">function</span>(arg)
++        {
++                <span class="reserved">this</span>.printable = arg;
++                <span class="reserved">if</span> (jg_fast)
++                {
++                        <span class="reserved">this</span>.mkDiv = mkDivIe;
++                        <span class="reserved">this</span>.htmRpc = arg? htmPrtRpc : htmRpc;
++                }
++                <span class="reserved">else</span> <span class="reserved">this</span>.mkDiv = jg_n4? mkLyr : arg? mkDivPrt : mkDiv;
++        };
++
++
++        <span class="reserved">this</span>.setFont = <span class="reserved">function</span>(fam, sz, sty)
++        {
++                <span class="reserved">this</span>.ftFam = fam;
++                <span class="reserved">this</span>.ftSz = sz;
++                <span class="reserved">this</span>.ftSty = sty || Font.PLAIN;
++        };
++
++
++        <span class="reserved">this</span>.drawPolyline = <span class="reserved">this</span>.drawPolyLine = <span class="reserved">function</span>(x, y, s)
++        {
++                <span class="reserved">for</span> (var i=0 ; i&lt;x.length-1 ; i++ )
++                        <span class="reserved">this</span>.drawLine(x[i], y[i], x[i+1], y[i+1]);
++        };
++
++
++        <span class="reserved">this</span>.fillRect = <span class="reserved">function</span>(x, y, w, h)
++        {
++                <span class="reserved">this</span>.mkDiv(x, y, w, h);
++        };
++
++
++        <span class="reserved">this</span>.drawPolygon = <span class="reserved">function</span>(x, y)
++        {
++                <span class="reserved">this</span>.drawPolyline(x, y);
++                <span class="reserved">this</span>.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]);
++        };
++
++
++        <span class="reserved">this</span>.drawEllipse = <span class="reserved">this</span>.drawOval = <span class="reserved">function</span>(x, y, w, h)
++        {
++                <span class="reserved">this</span>.mkOv(x, y, w, h);
++        };
++
++
++        <span class="reserved">this</span>.fillEllipse = <span class="reserved">this</span>.fillOval = <span class="reserved">function</span>(left, top, w, h)
++        {
++                var a = (w -= 1)&gt;&gt;1, b = (h -= 1)&gt;&gt;1,
++                wod = (w&amp;1)+1, hod = (h&amp;1)+1,
++                cx = left+a, cy = top+b,
++                x = 0, y = b,
++                ox = 0, oy = b,
++                aa2 = (a*a)&lt;&lt;1, aa4 = aa2&lt;&lt;1, bb = (b*b)&lt;&lt;1,
++                st = (aa2&gt;&gt;1)*(1-(b&lt;&lt;1)) + bb,
++                tt = (bb&gt;&gt;1) - aa2*((b&lt;&lt;1)-1),
++                pxl, dw, dh;
++                <span class="reserved">if</span> (w+1) <span class="reserved">while</span> (y &gt; 0)
++                {
++                        <span class="reserved">if</span> (st &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3);
++                                tt += (bb&lt;&lt;1)*(++x);
++                        }
++                        <span class="reserved">else</span> <span class="reserved">if</span> (tt &lt; 0)
++                        {
++                                st += bb*((x&lt;&lt;1)+3) - aa4*(y-1);
++                                pxl = cx-x;
++                                dw = (x&lt;&lt;1)+wod;
++                                tt += (bb&lt;&lt;1)*(++x) - aa2*(((y--)&lt;&lt;1)-3);
++                                dh = oy-y;
++                                <span class="reserved">this</span>.mkDiv(pxl, cy-oy, dw, dh);
++                                <span class="reserved">this</span>.mkDiv(pxl, cy+oy-dh+hod, dw, dh);
++                                ox = x;
++                                oy = y;
++                        }
++                        <span class="reserved">else</span>
++                        {
++                                tt -= aa2*((y&lt;&lt;1)-3);
++                                st -= aa4*(--y);
++                        }
++                }
++                <span class="reserved">this</span>.mkDiv(cx-a, cy-oy, w+1, (oy&lt;&lt;1)+hod);
++        };
++
++
++
++<span class="comment">/* fillPolygon method, implemented by Matthieu Haller.
++This javascript function is an adaptation of the gdImageFilledPolygon for Walter Zorn lib.
++C source of GD 1.8.4 found at http://www.boutell.com/gd/
++
++THANKS to Kirsten Schulz for the polygon fixes!
++
++The intersection finding technique of this code could be improved
++by remembering the previous intertersection, and by using the slope.
++That could help to adjust intersections to produce a nice
++interior_extrema. */</span>
++        <span class="reserved">this</span>.fillPolygon = <span class="reserved">function</span>(array_x, array_y)
++        {
++                var i;
++                var y;
++                var miny, maxy;
++                var x1, y1;
++                var x2, y2;
++                var ind1, ind2;
++                var ints;
++
++                var n = array_x.length;
++
++                <span class="reserved">if</span> (!n) <span class="reserved">return</span>;
++
++
++                miny = array_y[0];
++                maxy = array_y[0];
++                <span class="reserved">for</span> (i = 1; i &lt; n; i++)
++                {
++                        <span class="reserved">if</span> (array_y[i] &lt; miny)
++                                miny = array_y[i];
++
++                        <span class="reserved">if</span> (array_y[i] &gt; maxy)
++                                maxy = array_y[i];
++                }
++                <span class="reserved">for</span> (y = miny; y &lt;= maxy; y++)
++                {
++                        var polyInts = new Array();
++                        ints = 0;
++                        <span class="reserved">for</span> (i = 0; i &lt; n; i++)
++                        {
++                                <span class="reserved">if</span> (!i)
++                                {
++                                        ind1 = n-1;
++                                        ind2 = 0;
++                                }
++                                <span class="reserved">else</span>
++                                {
++                                        ind1 = i-1;
++                                        ind2 = i;
++                                }
++                                y1 = array_y[ind1];
++                                y2 = array_y[ind2];
++                                <span class="reserved">if</span> (y1 &lt; y2)
++                                {
++                                        x1 = array_x[ind1];
++                                        x2 = array_x[ind2];
++                                }
++                                <span class="reserved">else</span> <span class="reserved">if</span> (y1 &gt; y2)
++                                {
++                                        y2 = array_y[ind1];
++                                        y1 = array_y[ind2];
++                                        x2 = array_x[ind1];
++                                        x1 = array_x[ind2];
++                                }
++                                <span class="reserved">else</span> continue;
++
++                                 <span class="comment">// modified 11. 2. 2004 Walter Zorn</span>
++                                <span class="reserved">if</span> ((y &gt;= y1) &amp;&amp; (y &lt; y2))
++                                        polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
++
++                                <span class="reserved">else</span> <span class="reserved">if</span> ((y == maxy) &amp;&amp; (y &gt; y1) &amp;&amp; (y &lt;= y2))
++                                        polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
++                        }
++                        polyInts.sort(integer_compare);
++                        <span class="reserved">for</span> (i = 0; i &lt; ints; i+=2)
++                                <span class="reserved">this</span>.mkDiv(polyInts[i], y, polyInts[i+1]-polyInts[i]+1, 1);
++                }
++        };
++
++
++        <span class="reserved">this</span>.drawString = <span class="reserved">function</span>(txt, x, y)
++        {
++                <span class="reserved">this</span>.htm += <span class="literal">'&lt;div style="position:absolute;white-space:nowrap;'</span>+
++                        <span class="literal">'left:'</span> + x + <span class="literal">'px;'</span>+
++                        <span class="literal">'top:'</span> + y + <span class="literal">'px;'</span>+
++                        <span class="literal">'font-family:'</span> +  <span class="reserved">this</span>.ftFam + <span class="literal">';'</span>+
++                        <span class="literal">'font-size:'</span> + <span class="reserved">this</span>.ftSz + <span class="literal">';'</span>+
++                        <span class="literal">'color:'</span> + <span class="reserved">this</span>.color + <span class="literal">';'</span> + <span class="reserved">this</span>.ftSty + <span class="literal">'"&gt;'</span>+
++                        txt +
++                        <span class="literal">'&lt;\/div&gt;'</span>;
++        }
++
++
++        <span class="reserved">this</span>.drawImage = <span class="reserved">function</span>(imgSrc, x, y, w, h)
++        {
++                <span class="reserved">this</span>.htm += <span class="literal">'&lt;div style="position:absolute;'</span>+
++                        <span class="literal">'left:'</span> + x + <span class="literal">'px;'</span>+
++                        <span class="literal">'top:'</span> + y + <span class="literal">'px;'</span>+
++                        <span class="literal">'width:'</span> +  w + <span class="literal">';'</span>+
++                        <span class="literal">'height:'</span> + h + <span class="literal">';"&gt;'</span>+
++                        <span class="literal">'&lt;img src="'</span> + imgSrc + <span class="literal">'" width="'</span> + w + <span class="literal">'" height="'</span> + h + <span class="literal">'"&gt;'</span>+
++                        <span class="literal">'&lt;\/div&gt;'</span>;
++        }
++
++
++        <span class="reserved">this</span>.clear = <span class="reserved">function</span>()
++        {
++                <span class="reserved">this</span>.htm = <span class="literal">""</span>;
++                <span class="reserved">if</span> (<span class="reserved">this</span>.cnv) <span class="reserved">this</span>.cnv.innerHTML = <span class="reserved">this</span>.defhtm;
++        };
++
++
++        <span class="reserved">this</span>.mkOvQds = <span class="reserved">function</span>(cx, cy, xl, xr, yt, yb, w, h)
++        {
++                <span class="reserved">this</span>.mkDiv(xr+cx, yt+cy, w, h);
++                <span class="reserved">this</span>.mkDiv(xr+cx, yb+cy, w, h);
++                <span class="reserved">this</span>.mkDiv(xl+cx, yb+cy, w, h);
++                <span class="reserved">this</span>.mkDiv(xl+cx, yt+cy, w, h);
++        };
++
++        <span class="reserved">this</span>.setStroke(1);
++        <span class="reserved">this</span>.setFont(<span class="literal">'verdana,geneva,helvetica,sans-serif'</span>, String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN);
++        <span class="reserved">this</span>.color = <span class="literal">'#000000'</span>;
++        <span class="reserved">this</span>.htm = <span class="literal">''</span>;
++        <span class="reserved">this</span>.wnd = wnd || window;
++
++        <span class="reserved">if</span> (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM();
++        <span class="reserved">if</span> (typeof id != <span class="literal">'string'</span> || !id) <span class="reserved">this</span>.paint = pntDoc;
++        <span class="reserved">else</span>
++        {
++                <span class="reserved">this</span>.cnv = document.all? (<span class="reserved">this</span>.wnd.document.all[id] || null)
++                        : document.getElementById? (<span class="reserved">this</span>.wnd.document.getElementById(id) || null)
++                        : null;
++                <span class="reserved">this</span>.defhtm = (<span class="reserved">this</span>.cnv &amp;&amp; <span class="reserved">this</span>.cnv.innerHTML)? <span class="reserved">this</span>.cnv.innerHTML : <span class="literal">''</span>;
++                <span class="reserved">this</span>.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv;
++        }
++
++        <span class="reserved">this</span>.setPrintable(false);
++}
++
++
++
++<span class="reserved">function</span> integer_compare(x,y)
++{
++        <span class="reserved">return</span> (x &lt; y) ? -1 : ((x &gt; y)*1);
++}
++
++</pre>
++	<hr>
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-summary.html
+===================================================================
+--- documents/jsdoc/overview-summary.html	(revision 0)
++++ documents/jsdoc/overview-summary.html	(revision 0)
+@@ -0,0 +1,166 @@
++<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<html>
++<head>
++<title>
++ Overview
++</title>
++<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
++<script>
++function asd() {
++	
++		parent.document.title=" Overview";
++	
++}
++</script>
++</head>
++<body bgcolor="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev">	&nbsp;<font class="NavBarFont1Rev"><b>Overview</b></font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> 	<font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top">
++<em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<center>
++	
++	   <h2>JSDoc Documentation</h2>
++	
++</center>
++
++
++<h4>Summary</h4>
++<p>
++	
++    	No summary generated for these documents.
++	
++</p>
++
++<hr>
++
++
++    <table border="1" cellpadding="3" cellspacing="0" width="100%">
++    <tr bgcolor="#CCCCFF" class="TableHeadingColor">
++    <td colspan=2><font size="+2">
++    
++        <b>File Summary</b>
++    
++    </font></td>
++    </tr>
++    
++    <tr bgcolor="white" class="TableRowColor">
++    <td width="15%"><b><a href="overview-summary-geometry.js.html">geometry.js</a></b></td>
++    <td>&nbsp;</td>
++    </tr>
++    
++    </table>
++    <hr/> 
++
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++
++
++<!-- ========== START OF NAVBAR ========== -->
++<a name="navbar_top"><!-- --></a>
++<table border="0" width="100%" cellpadding="1" cellspacing="0">
++<tr>
++<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
++<a name="navbar_top_firstrow"><!-- --></a>
++<table border="0" cellpadding="0" cellspacing="3">
++  <tr align="center" valign="top">
++  
++  
++  <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>Overview</b></font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1"> <font class="NavBarFont1">File</font>&nbsp;</td>
++  
++
++  <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
++  <td bgcolor="#EEEEFF" class="NavBarCell1">    <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
++  </tr>
++</table>
++</td>
++<td bgcolor="#EEEEFF" align="right" valign="top"><em>
++<b></b></em>
++</td>
++</tr>
++
++<tr>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</font></td>
++<td bgcolor="white" class="NavBarCell2"><font size="-2">
++  <a href="index.html" target="_top"><b>FRAMES</b></a>  &nbsp;
++&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
++&nbsp;&nbsp;
++<script>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</script>
++<noscript>
++<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
++</noscript>
++</font></td>
++</tr>
++</table>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<font size="-1">
++
++</font>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</body>
++</html>
+Index: documents/jsdoc/overview-tree.html
+===================================================================
+--- documents/jsdoc/overview-tree.html	(revision 0)
++++ documents/jsdoc/overview-tree.html	(revision 0)
+@@ -0,0 +1,132 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++ Class Hierarchy
++</TITLE>
++<LINK REL="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++<SCRIPT>
++function asd()
++{
++parent.document.title=" Class Hierarchy";
++}
++</SCRIPT>
++</HEAD>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_top"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_top_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"><A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><b>Overview</b></A></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev">  &nbsp;<FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
++<B></B></EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
++&nbsp;&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<H2>Class Hierarchy</H2>
++
++<UL><LI TYPE="circle">Object</LI><UL>
++                <LI TYPE="circle"><B><a href='Canvas.html'>Canvas</a></B></LI> 
++                <LI TYPE="circle"><B><a href='GeomType.html'>GeomType</a></B></LI> 
++                <LI TYPE="circle"><B><a href='Highlight.html'>Highlight</a></B></LI> 
++                <LI TYPE="circle">
++                List</LI>
++            <UL>
++                <LI TYPE="circle"><B><a href='Geometry.html'>Geometry</a></B></LI> 
++                <LI TYPE="circle"><B><a href='GeometryArray.html'>GeometryArray</a></B></LI> 
++                <LI TYPE="circle"><B><a href='MultiGeometry.html'>MultiGeometry</a></B></LI> </UL>
++                <LI TYPE="circle"><B><a href='Snapping.html'>Snapping</a></B></LI> 
++                <LI TYPE="circle"><B><a href='Wfs_element.html'>Wfs_element</a></B></LI> </UL></UL>
++
++<HR>
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_top"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_top_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"><A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><b>Overview</b></A></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">File</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev">  &nbsp;<FONT CLASS="NavBarFont1Rev"><b>Tree</b></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><b>Index</b></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><b>Help</b></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD BGCOLOR="#FFFFFF" ALIGN="right" VALIGN="top"><EM>
++<B></B></EM>
++</TD>
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;PREV&nbsp;
++&nbsp;NEXT</FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="overview-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
++&nbsp;&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++
++<hr>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" parent="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Point.html
+===================================================================
+--- documents/jsdoc/Point.html	(revision 0)
++++ documents/jsdoc/Point.html	(revision 0)
+@@ -0,0 +1,576 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Point
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Point";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-point.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Point</H2>
++<PRE>Object
++   |
++   +--<b>Point</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Point</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-point.js.html'>point.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#x">x</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Point()">Point</A></B>(x,y)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#dist">dist</A></B>(p)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#dividedBy">dividedBy</A></B>(c)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#equals">equals</A></B>(p)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#minus">minus</A></B>(p)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#plus">plus</A></B>(p)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#round">round</A></B>(numOfDigits)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#times">times</A></B>(c)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#toString">toString</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="x"><!-- --></A>
++   <H3>x</H3>
++   <PRE>Object&nbsp;<B>x</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Point()"><!-- --></A><H3>
++Point</H3>
++<PRE><B>Point</B>(x,y)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="dist"><!-- --></A>
++   <H3>dist</H3>
++   <PRE>Object <B>dist</B>(p)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="dividedBy"><!-- --></A>
++   <H3>dividedBy</H3>
++   <PRE>Object <B>dividedBy</B>(c)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="equals"><!-- --></A>
++   <H3>equals</H3>
++   <PRE>Object <B>equals</B>(p)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="minus"><!-- --></A>
++   <H3>minus</H3>
++   <PRE>Object <B>minus</B>(p)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="plus"><!-- --></A>
++   <H3>plus</H3>
++   <PRE>Object <B>plus</B>(p)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="round"><!-- --></A>
++   <H3>round</H3>
++   <PRE>Object <B>round</B>(numOfDigits)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="times"><!-- --></A>
++   <H3>times</H3>
++   <PRE>Object <B>times</B>(c)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="toString"><!-- --></A>
++   <H3>toString</H3>
++   <PRE>void <B>toString</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-point.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:22 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/Snapping.html
+===================================================================
+--- documents/jsdoc/Snapping.html	(revision 0)
++++ documents/jsdoc/Snapping.html	(revision 0)
+@@ -0,0 +1,471 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Snapping
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Snapping";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="MultiGeometry.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Wfs_element.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Snapping</H2>
++<PRE>Object
++   |
++   +--<b>Snapping</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Snapping</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Snapping()">Snapping</A></B>(aTarget,aTolerance,aColor,aZIndex)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#add">add</A></B>(aPoint)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#check">check</A></B>(currPoint)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#clean">clean</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getSnappedPoint">getSnappedPoint</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#isSnapped">isSnapped</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;void</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#store">store</A></B>(geom,point)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Snapping()"><!-- --></A><H3>
++Snapping</H3>
++<PRE><B>Snapping</B>(aTarget,aTolerance,aColor,aZIndex)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="add"><!-- --></A>
++   <H3>add</H3>
++   <PRE>void <B>add</B>(aPoint)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="check"><!-- --></A>
++   <H3>check</H3>
++   <PRE>void <B>check</B>(currPoint)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="clean"><!-- --></A>
++   <H3>clean</H3>
++   <PRE>void <B>clean</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getSnappedPoint"><!-- --></A>
++   <H3>getSnappedPoint</H3>
++   <PRE>Object <B>getSnappedPoint</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="isSnapped"><!-- --></A>
++   <H3>isSnapped</H3>
++   <PRE>Object <B>isSnapped</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="store"><!-- --></A>
++   <H3>store</H3>
++   <PRE>void <B>store</B>(geom,point)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="MultiGeometry.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="Wfs_element.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/stylesheet.css
+===================================================================
+--- documents/jsdoc/stylesheet.css	(revision 0)
++++ documents/jsdoc/stylesheet.css	(revision 0)
+@@ -0,0 +1,39 @@
++/* JSDoc style sheet */
++
++/* Define colors, fonts and other style attributes here to override the defaults */
++
++/* Page background color */
++body { background-color: #FFFFFF }
++
++/* Table colors */
++.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
++.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
++.TableRowColor         { background: #FFFFFF } /* White */
++
++/* Font used in left-hand frame lists */
++.FrameTitleFont   { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
++.FrameHeadingFont { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
++.FrameItemFont    { font-size: 10pt; font-family: Helvetica, Arial, san-serif }
++
++/* Example of smaller, sans-serif font in frames */
++/* .FrameItemFont  { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */
++
++/* Navigation bar fonts and colors */
++.NavBarCell1    { background-color:#EEEEFF;}/* Light mauve */
++.NavBarCell1Rev { background-color:#00008B;}/* Dark Blue */
++.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
++.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
++
++.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
++.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
++
++.jsdoc_ctime    { font-family: Arial, Helvetica, sans-serif; font-size: 9pt;
++                    text-align: right }
++
++/* Sourcecode view */
++.sourceview { background: #FFFFFF }
++.attrib { color: #DD7777 }
++.comment { color: #55AA55 }
++.reserved { color: #FF5555 }
++.literal { color: #5555FF }
++
+Index: documents/jsdoc/Wfs_element.html
+===================================================================
+--- documents/jsdoc/Wfs_element.html	(revision 0)
++++ documents/jsdoc/Wfs_element.html	(revision 0)
+@@ -0,0 +1,372 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++Wfs_element
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="Wfs_element";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Snapping.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class Wfs_element</H2>
++<PRE>Object
++   |
++   +--<b>Wfs_element</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>Wfs_element</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-geometry.js.html'>geometry.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#Wfs_element()">Wfs_element</A></B>()
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++<A NAME="method_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Method Summary</B></FONT></TD>
++</TR>
++
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#count">count</A></B>()
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getElementIndexByName">getElementIndexByName</A></B>(elementName)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++      <TD ALIGN="right" VALIGN="top" WIDTH="1%">
++	 <FONT SIZE="-1">
++	    <CODE>&nbsp;Object</CODE>
++	 </FONT>
++      </TD>
++      <TD>
++	 <CODE>
++	    <B>
++	       <A HREF="#getElementValueByName">getElementValueByName</A></B>(elementName)
++	 </CODE>
++	 <BR>
++	 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++	 
++      </TD>
++   </TR>
++
++
++</TABLE>
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="Wfs_element()"><!-- --></A><H3>
++Wfs_element</H3>
++<PRE><B>Wfs_element</B>()</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++<A NAME="method_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1><FONT SIZE="+2">
++         <B>Method Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<!-- One single method detail entry -->
++
++   <A NAME="count"><!-- --></A>
++   <H3>count</H3>
++   <PRE>Object <B>count</B>()</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getElementIndexByName"><!-- --></A>
++   <H3>getElementIndexByName</H3>
++   <PRE>Object <B>getElementIndexByName</B>(elementName)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++   <A NAME="getElementValueByName"><!-- --></A>
++   <H3>getElementValueByName</H3>
++   <PRE>Object <B>getElementValueByName</B>(elementName)</PRE>
++   
++
++   <!-- METHOD PARAMETERS START -->
++   
++   <!-- METHOD PARAMETERS END -->
++
++   
++
++   <!-- ADDITIONAL ATTRIBUTES START -->
++   
++   <!-- ADDITIONAL ATTRIBUTES  END -->
++<HR>
++
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-geometry.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="Snapping.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 15:41:17 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/wms_const.html
+===================================================================
+--- documents/jsdoc/wms_const.html	(revision 0)
++++ documents/jsdoc/wms_const.html	(revision 0)
+@@ -0,0 +1,289 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++wms_const
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="wms_const";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map_obj.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="wms_layer.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class wms_const</H2>
++<PRE>Object
++   |
++   +--<b>wms_const</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>wms_const</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map_obj.js.html'>map_obj.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#wms_id">wms_id</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#wms_const()">wms_const</A></B>(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="wms_id"><!-- --></A>
++   <H3>wms_id</H3>
++   <PRE>Object&nbsp;<B>wms_id</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="wms_const()"><!-- --></A><H3>
++wms_const</H3>
++<PRE><B>wms_const</B>(wms_id,wms_version,wms_title,wms_abstract,wms_getmap,wms_getfeatureinfo,wms_getlegendurl,wms_filter,gui_wms_mapformat,gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map_obj.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="GLOBALS.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<A HREF="wms_layer.html"><B>NEXT CLASS</B></A></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</BODY>
++</HTML>
+Index: documents/jsdoc/wms_layer.html
+===================================================================
+--- documents/jsdoc/wms_layer.html	(revision 0)
++++ documents/jsdoc/wms_layer.html	(revision 0)
+@@ -0,0 +1,289 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
++<!--NewPage-->
++<HTML>
++<HEAD>
++<TITLE>
++wms_layer
++</TITLE>
++<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
++</HEAD>
++<SCRIPT>
++function asd()
++{
++parent.document.title="wms_layer";
++}
++</SCRIPT>
++<BODY BGCOLOR="white" onload="asd();">
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map_obj.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev">&nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"--><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="wms_const.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++<!-- =========== END OF NAVBAR =========== -->
++<HR>
++
++<!-- ======== START OF CLASS DATA ======== -->
++<H2>Class wms_layer</H2>
++<PRE>Object
++   |
++   +--<b>wms_layer</b>
++</PRE>
++
++
++<HR>
++<DL>
++   <!-- Class definition -->
++   <DT>class 
++   <B>wms_layer</B>
++   
++
++</DL>
++   
++   <P>
++   <I>Defined in <a href='overview-summary-map_obj.js.html'>map_obj.js</a></I><BR/><BR/>
++   </P>
++   
++   <HR>
++
++<!-- ======== NESTED CLASS SUMMARY ======== -->
++
++<!-- ======== END NESTED CLASS SUMMARY ======== -->
++
++
++<!-- =========== FIELD SUMMARY =========== -->
++
++   <A NAME="field_summary"><!-- --></A>
++      <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++         <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++            <TD COLSPAN=2><FONT SIZE="+2">
++               <B>Field Summary</B></FONT></TD>
++         </TR>
++
++   <!-- This is one instance field summary -->
++   
++   <TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
++   <CODE>&nbsp;Object</CODE></FONT></TD>
++   <TD><CODE><B><A HREF="#layer_id">layer_id</A></B></CODE>
++   <BR>
++   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
++   </TR>
++   
++
++   </TABLE>
++   &nbsp;
++   
++
++   
++
++<!-- =========== END FIELD SUMMARY =========== -->
++
++
++<!-- ======== CONSTRUCTOR SUMMARY ======== -->
++
++<A NAME="constructor_summary"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++<TD COLSPAN=2><FONT SIZE="+2">
++<B>Constructor Summary</B></FONT></TD>
++</TR>
++<TR BGCOLOR="white" CLASS="TableRowColor">
++   <TD>
++      <CODE>
++	 <B>
++	    <A HREF="#wms_layer()">wms_layer</A></B>(layer_parent,wms_layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype)
++      </CODE>
++      <BR>
++      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++      
++      </TD>
++</TR>
++</TABLE>
++
++<!-- ======== END CONSTRUCTOR SUMMARY ======== -->
++
++&nbsp;
++
++<!-- ========== METHOD SUMMARY =========== -->
++
++
++
++<P>
++<!-- ========== END METHOD SUMMARY =========== -->
++
++
++<!-- ============ FIELD DETAIL START =========== -->
++
++   <A NAME="field_detail"><!-- --></A>
++   <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++      <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++         <TD COLSPAN=1><FONT SIZE="+2"><B>Field Detail</B></FONT></TD>
++      </TR>
++   </TABLE>
++
++   
++   <A NAME="layer_id"><!-- --></A>
++   <H3>layer_id</H3>
++   <PRE>Object&nbsp;<B>layer_id</B></PRE>
++   <UL>
++   
++   
++   </UL>
++   <HR>
++   
++
++
++<!-- ============ FIELD DETAIL END =========== -->
++
++    <!-- ========= CONSTRUCTOR DETAIL START ======== -->
++
++<A NAME="constructor_detail"><!-- --></A>
++<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
++   <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
++      <TD COLSPAN=1>
++      <FONT SIZE="+2"><B>Constructor Detail</B></FONT>
++      </TD>
++   </TR>
++</TABLE>
++
++<A NAME="wms_layer()"><!-- --></A><H3>
++wms_layer</H3>
++<PRE><B>wms_layer</B>(layer_parent,wms_layer_uid,layer_name,layer_title,layer_dataurl_href,layer_pos,layer_queryable,layer_minscale,layer_maxscale,layer_metadataurl,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,gui_layer_visible,gui_layer_queryable,gui_layer_querylayer,gui_layer_minscale,gui_layer_maxscale,gui_layer_wfs_featuretype)</PRE>
++
++
++
++
++   </UL>
++
++
++<!-- Constructor return value(s) -->
++
++<!-- End constructor return value(s) -->
++
++<!-- ADDITIONAL ATTRIBUTES -->
++
++<HR/>
++<!-- END ADDITIONAL ATTRIBUTES  -->
++
++<!-- ========= CONSTRUCTOR DETAIL END ======== -->
++
++
++<!-- ============ METHOD DETAIL START ========== -->
++
++
++<!-- ============ METHOD DETAIL END ========== -->
++
++<!-- ========= END OF CLASS DATA ========= -->
++
++<!-- ========== START OF NAVBAR ========== -->
++<A NAME="navbar_bottom"><!-- --></A>
++<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
++<TR>
++<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
++<A NAME="navbar_bottom_firstrow"><!-- --></A>
++<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
++  <TR ALIGN="center" VALIGN="top">
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">  <A HREF="overview-summary-map_obj.js.html"><FONT CLASS="NavBarFont1"><B>File</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><b>Tree</b></FONT></A>&nbsp;</TD>
++  <!--TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"-->    <!--A HREF="deprecated-list.html"--><!--FONT CLASS="NavBarFont1">Deprecated</FONT--><!--/A--><!--&nbsp;</TD-->
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
++  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
++  </TR>
++</TABLE>
++</TD>
++<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
++<B></B>
++</EM>
++</TD
++</TR>
++
++<TR>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++&nbsp;<A HREF="wms_const.html"><B>PREV CLASS</B></A><!-- 
++   NEXT CLASS 
++-->
++&nbsp;<B>NEXT CLASS</B></FONT></TD>
++<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
++  <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
++&nbsp;<A HREF="" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
++&nbsp;
++<SCRIPT>
++  <!--
++  if(window==top) {
++    document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
++  }
++  //-->
++</SCRIPT>
++<NOSCRIPT>
++<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
++</NOSCRIPT>
++</FONT></TD>
++</TR>
++<TR>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++  SUMMARY:&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
++<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
++DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
++</TR>
++</TABLE>
++
++<!-- =========== END OF NAVBAR =========== -->
++
++<HR>
++<FONT SIZE="-1">
++
++</FONT>
++<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Apr  7 14:39:23 2008</div>
++</BODY>
++</HTML>
+Index: http/classes/class_administration.php
+===================================================================
+--- http/classes/class_administration.php	(revision 2361)
++++ http/classes/class_administration.php	(working copy)
+@@ -760,9 +760,13 @@
+  	}
+ 
+    	function checkModulePermission($arrayGuis, $modulePath, $column){
+-   		$check = true;
++   		$check = CHECK;
++		
+    		if($check == true){
+ 	   		$perm = false;
++			if (!preg_match("/[a-z_]+/", $column)) {
++				return false;
++			}
+ 	   		if(count($arrayGuis)>0){
+ 	   			$v = array();
+ 	   			$t = array();
+@@ -790,6 +794,61 @@
+    		}
+    	}
+ 
++	/**
++	 * Checks if a user is allowed to access a GUI element
++	 * 
++	 * @return boolean 
++	 * @param $arrayGuis Object
++	 * @param $modulePath Object
++	 * @param $elementTag Object
++	 */
++   	function checkModulePermission_new($userId, $modulePath, $elementTag){
++   		if (CHECK) {
++			$arrayGuis = $this->getGuisByPermission($userId, true);
++
++			switch ($elementTag) {
++				case "a" :
++					$column = "e_attributes";
++					$pattern = "/^.*href\s*=\s*(\'|\")\.\.((\/[a-zA-Z0-9_\/\.]+)+)(\?|\'|\").*$/";
++					$replace = "$2";
++					break;
++				case "iframe" :
++					$column = "e_src";
++					$pattern = "/^\.\.((\/[a-zA-Z0-9_\/\.]+)+)(\?|\'|\").*$/";
++					$replace = "$1";
++					break;
++			}
++
++	   		if ($column && count($arrayGuis) > 0) {
++	   			$v = array();
++	   			$t = array();
++		   		$sql = "SELECT DISTINCT ".$column." FROM gui_element WHERE fkey_gui_id IN (";
++		   		for($i=0; $i<count($arrayGuis); $i++){
++		   			if($i > 0){ $sql .= ","; }
++		   			$sql .= "$".($i+1);
++		   			array_push($v,$arrayGuis[$i]);
++		   			array_push($t,'s');
++		   		}
++		   		$sql .= ") ORDER BY " . $column;
++				$res = db_prep_query($sql,$v,$t);
++				while($row = db_fetch_array($res)){
++					if ($row[$column]) {
++						if (preg_match($pattern, stripslashes($row[$column]))) {
++							$dbFilename = preg_replace($pattern, $replace, stripslashes($row[$column]));
++//							$e = new mb_notice($dbFilename . " - " . $modulePath);
++
++							if(strpos($modulePath, $dbFilename) !== false){
++								return true;
++							}
++						}
++					}
++				}
++	   		}
++			return false;
++   		}
++		return true;
++   	}
++
+    	function getWMSOWSstring($wms_id){
+    		$sql = "SELECT wms_owsproxy FROM wms WHERE wms_id = $1 ";
+    		$v = array($wms_id);
+Index: http/classes/class_gui.php
+===================================================================
+--- http/classes/class_gui.php	(revision 2361)
++++ http/classes/class_gui.php	(working copy)
+@@ -1,5 +1,4 @@
+ <?php
+-
+ # $Id$
+ # http://www.mapbender.org/index.php/class_gui.php
+ # Copyright (C) 2002 CCGIS
+@@ -19,18 +18,26 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+-class gui{
++/**
++ * GUI is a set of GUI elements and services. 
++ */
++class gui {
+ 
+-	function gui() {
++	public function __construct () {
+ 	}
+ 
+- 	// CB - returns true if a gui '$gui_id' exists
+- 	function guiExists($gui_id){
+-		$sql = "SELECT * FROM gui ";
+-		$sql .= "WHERE gui_id = $1";
++ 	/**
++ 	 * Checks if a GUI with a given ID exists in the database
++ 	 * 
++ 	 * @param integer $gui_id the ID of the GUI that is being checked
++ 	 * @return boolean true if a gui '$gui_id' exists; else false
++ 	 */
++ 	public function guiExists ($gui_id){
++		$sql = "SELECT * FROM gui WHERE gui_id = $1";
+ 		$v = array($gui_id);
+ 		$t = array('s');
+ 		$res = db_prep_query($sql,$v,$t);
+@@ -35,236 +42,177 @@
+ 		$t = array('s');
+ 		$res = db_prep_query($sql,$v,$t);
+ 		$row = db_fetch_array($res);
+-		if ($row) return true;
+-		else return false;
++		if ($row) {
++			return true;	
++		}
++		return false;
+  	}
+ 
+-	// CB - deletes a GUI $guiId and all its links to users, layers etc.
+-	function deleteGui ($guiId) {
++	
++	/**
++	 * Deletes a GUI $guiId and all its links to users, layers etc.
++	 * 
++	 * @param Integer $guiId the GUI that is going to be deleted
++	 * @return boolean true if the deletion succeded, else false
++	 */
++	public function deleteGui ($guiId) {
+ 		$guiList = $guiId;
+ 
+-		$sql = "BEGIN";
+-		$res = db_query($sql);
+-		if (!$res) {
+-			$report .=  "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		$sql = array();
++		$v = array();			
++		$t = array();
+ 
+-		$sql = "DELETE FROM gui WHERE gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "BEGIN");
++		array_push($v, array());
++		array_push($t, array());
++		
++		array_push($sql, "DELETE FROM gui WHERE gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_element WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_element WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
++
++		array_push($sql, "DELETE FROM gui_element_vars WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_element_vars WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_layer WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_layer WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_mb_group WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_mb_group WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_mb_user WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_mb_user WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_treegde WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_treegde WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_wfs WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_wfs WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "DELETE FROM gui_wms WHERE fkey_gui_id = $1");
++		array_push($v, array($guiList));
++		array_push($t, array('s'));
+ 
+-		$sql = "DELETE FROM gui_wms WHERE fkey_gui_id = $1";
+-		$v = array($guiList);
+-		$t = array('s');
+-		$res = db_prep_query($sql,$v,$t);
+-		if (!$res) {
+-			$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-			$error = true;
+-		}
++		array_push($sql, "COMMIT");
++		array_push($v, array());
++		array_push($t, array());
+ 
+-		// if $error is true, the transaction is aborted -> rollback
+-		if (!$error) {
+-			$sql = "COMMIT";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
+-		}
+-		//if $error is false, the transaction is executed -> commit
+-		else {
+-			$sql = "ROLLBACK";
+-			$res = db_query($sql);
++		// execute all SQLs
++		for ($i = 0; $i < count($sql); $i++) {
++			$res = db_prep_query($sql[$i], $v[$i], $t[$i]);
++			// if an SQL fails, send a ROLLBACK and return false
+ 			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
++				db_query("ROLLBACK");
++				return false;
+ 			}
+ 		}
+-		return !$error;
++		return true;
+ 	}
+ 
+-	// CB - rename a GUI
+-	function renameGui ($guiId, $newGuiName) {
+-		$error = false;
++	/** Renames the GUI $guiID to $newGUIName
++	 * 
++	 * @param Integer $guiId ID of the GUI
++	 * @param String $newGuiName the new name of the GUI
++	 * @return boolean true if the renaming succeded, else false
++	 */
++	public function renameGui ($guiId, $newGuiName) {
+ 		if ($this->copyGui($guiId, $newGuiName, true)) {
+ 			$this->deleteGui($guiId);
++			return true;
+ 		}
+-		else {
+-			$error = true;
+-		}
+-		return !$error;
++		return false;
+ 	}
+ 
+-	// CB - copies a GUI $guiId and all its links to users, layers etc. to GUI $newGuiName
+- 	function copyGui ($guiId, $newGuiName, $withUsers) {
+-		$error = false;
++	/**
++	 * 
++ 	 * Copies a GUI $guiId and all its links to users, layers etc. to GUI $newGuiName
++ 	 * 
++	 * @param Integer $guiId ID of the GUI
++	 * @param String $newGuiName the new name of the GUI
++	 * @param boolean $withUsers true if the users, that may access the GUI $guiId, shall have access to the new GUI; else false.
++	 * 
++	 * @return boolean true if the renaming succeded, else false
++	 */ 
++ 	public function copyGui ($guiId, $newGuiName, $withUsers) {
+ 		$guiList = $guiId;
+ 		if (!$this->guiExists($newGuiName)) {
+-			$sql = "BEGIN";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .=  "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			
++			$sql = array();
++			$v = array();			
++			$t = array();
++						
++			array_push($sql, "BEGIN");
++			array_push($v, array());
++			array_push($t, array());
+ 
+-			$sql = "INSERT INTO gui (gui_id, gui_name, gui_description, gui_public) SELECT '" . $newGuiName . "', '" . $newGuiName . "',gui_description, gui_public FROM gui WHERE gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			array_push($sql, "INSERT INTO gui (gui_id, gui_name, gui_description, gui_public) SELECT $1, $2, gui_description, gui_public FROM gui WHERE gui_id = $3;");
++			array_push($v, array ($newGuiName, $newGuiName, $guiList));
++			array_push($t, array ("s", "s", "s"));;
++			
++			array_push($sql, "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) SELECT $1, e_id, e_pos, e_public, e_comment, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url FROM gui_element WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
+ 
+-			$sql = "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) SELECT '" . $newGuiName . "', e_id, e_pos, e_public, e_comment, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url FROM gui_element WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			array_push($sql, "INSERT INTO gui_element_vars (fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) SELECT $1, fkey_e_id, var_name, var_value, context, var_type FROM gui_element_vars WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
+ 
+-			$sql = "INSERT INTO gui_element_vars (fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) SELECT '" . $newGuiName . "', fkey_e_id, var_name, var_value, context, var_type FROM gui_element_vars WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			array_push($sql, "INSERT INTO gui_layer (fkey_gui_id, fkey_layer_id, gui_layer_wms_id, gui_layer_status, gui_layer_selectable, gui_layer_visible, gui_layer_queryable, gui_layer_querylayer, gui_layer_minscale, gui_layer_maxscale, gui_layer_priority, gui_layer_style, gui_layer_wfs_featuretype) SELECT $1, fkey_layer_id, gui_layer_wms_id, gui_layer_status, gui_layer_selectable, gui_layer_visible, gui_layer_queryable, gui_layer_querylayer, gui_layer_minscale, gui_layer_maxscale, gui_layer_priority, gui_layer_style, gui_layer_wfs_featuretype FROM gui_layer WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
+ 
+-			$sql = "INSERT INTO gui_layer (fkey_gui_id, fkey_layer_id, gui_layer_wms_id, gui_layer_status, gui_layer_selectable, gui_layer_visible, gui_layer_queryable, gui_layer_querylayer, gui_layer_minscale, gui_layer_maxscale, gui_layer_priority, gui_layer_style, gui_layer_wfs_featuretype) SELECT '" . $newGuiName . "', fkey_layer_id, gui_layer_wms_id, gui_layer_status, gui_layer_selectable, gui_layer_visible, gui_layer_queryable, gui_layer_querylayer, gui_layer_minscale, gui_layer_maxscale, gui_layer_priority, gui_layer_style, gui_layer_wfs_featuretype FROM gui_layer WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
+-
+-			$sql = "INSERT INTO gui_mb_group (fkey_gui_id, fkey_mb_group_id, mb_group_type) SELECT '" . $newGuiName . "', fkey_mb_group_id, mb_group_type FROM gui_mb_group WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			if ($withUsers == true) {
++				/* group of original gui is copied as well */
++				array_push($sql, "INSERT INTO gui_mb_group (fkey_gui_id, fkey_mb_group_id, mb_group_type) SELECT $1, fkey_mb_group_id, mb_group_type FROM gui_mb_group WHERE fkey_gui_id = $2;");
++				array_push($v, array($newGuiName, $guiList));
++				array_push($t, array("s", "s"));
+ 
+-			if ($withUsers == true) {
+ 				/* users of original gui are copied as well */
+-				$sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) SELECT '" . $newGuiName . "', fkey_mb_user_id, mb_user_type FROM gui_mb_user WHERE fkey_gui_id = '" . $guiList . "';";
+-				$res = db_query($sql);
+-				if (!$res) {
+-					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-					$error = true;
+-				}
++				array_push($sql, "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) SELECT $1, fkey_mb_user_id, mb_user_type FROM gui_mb_user WHERE fkey_gui_id = $2;");
++				array_push($v, array($newGuiName, $guiList));
++				array_push($t, array("s", "s"));
+ 			}
+ 			else {
+ 				// users of original gui are not copied, the current user is set as owner 
+-				$sql = "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) VALUES ($1, $2, 'owner')";
+-				$v = array($newGuiName, $_SESSION["mb_user_id"]);
+-				$t = array('s', 'i');
+-				$res = db_prep_query($sql,$v,$t);
+-				if (!$res) {
+-					$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-					$error = true;
+-				}
+-			}
+-			$sql = "INSERT INTO gui_treegde (fkey_gui_id, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id) SELECT '" . $newGuiName . "', fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id FROM gui_treegde WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
++				array_push($sql, "INSERT INTO gui_mb_user (fkey_gui_id, fkey_mb_user_id, mb_user_type) VALUES ($1, $2, 'owner')");
++				array_push($v, array($newGuiName, $_SESSION["mb_user_id"]));
++				array_push($t, array('s', 'i'));
+ 			}
++			array_push($sql, "INSERT INTO gui_treegde (fkey_gui_id, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id) SELECT $1, fkey_layer_id, id, lft, rgt, my_layer_title, layer, wms_id FROM gui_treegde WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
+ 
+-			$sql = "INSERT INTO gui_wfs (fkey_gui_id, fkey_wfs_id) SELECT '" . $newGuiName . "', fkey_wfs_id FROM gui_wfs WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			array_push($sql, "INSERT INTO gui_wfs (fkey_gui_id, fkey_wfs_id) SELECT $1, fkey_wfs_id FROM gui_wfs WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
+ 
+-			$sql = "INSERT INTO gui_wms (fkey_gui_id, fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible) SELECT '" . $newGuiName . "', fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible FROM gui_wms WHERE fkey_gui_id = '" . $guiList . "';";
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
+-			}
++			array_push($sql, "INSERT INTO gui_wms (fkey_gui_id, fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible) SELECT $1, fkey_wms_id, gui_wms_position, gui_wms_mapformat, gui_wms_featureinfoformat, gui_wms_exceptionformat, gui_wms_epsg, gui_wms_visible FROM gui_wms WHERE fkey_gui_id = $2;");
++			array_push($v, array($newGuiName, $guiList));
++			array_push($t, array("s", "s"));
++			
++			array_push($sql, "COMMIT");
++			array_push($v, array());
++			array_push($t, array());
+ 
+-			// if $error is false, the transaction is executed -> commit
+-			if (!$error) {
+-				$sql = "COMMIT";
+-			} 
+-			else {
+-				$sql = "ROLLBACK";
+-			}
+-			$res = db_query($sql);
+-			if (!$res) {
+-				$report .= "<br><br>" . $sql . "<br><br>" . db_error() . "<br>";
+-				$error = true;
++			// execute all SQLs
++			for ($i = 0; $i < count($sql); $i++) {
++				$res = db_prep_query($sql[$i], $v[$i], $t[$i]);
++				// if an SQL fails, send a ROLLBACK and return false
++				if (!$res) {
++					db_query("ROLLBACK");
++					return false;
++				}
+ 			}
+-			return !$error;
++			return true;
+ 		}
+ 		else {
+ 	      echo "<script language='javascript'>";
+Index: http/classes/class_log.php
+===================================================================
+--- http/classes/class_log.php	(revision 2361)
++++ http/classes/class_log.php	(working copy)
+@@ -23,7 +23,7 @@
+ *modul "GET /map/http/ HTTP/1.1"
+ */
+ 
+-class log{
++class log {
+ 	var $dir = "../../log/";
+ 	var $log_username = true;
+ 
+@@ -32,12 +32,14 @@
+ 	 * {'file' || 'db'}
+ 	 */
+ 	var $logtype = 'db';
+-
+-	function log($module,$req,$time_client){
++	
++	function log($module,$req,$time_client,$type = ""){
+ 
+ 		$this->url = $req;
++		if($type == "")
++			$type = $this->logtype;
+ 
+-		if($this->logtype == "file"){
++		if($type == "file"){
+ 			if(is_dir($this->dir)){
+ 				$logfile = $this->dir . "mb_access_" . date("Y_m_d") . ".log";
+ 				if(!$h = @fopen($logfile,"a")){
+@@ -65,7 +67,7 @@
+ 				}
+ 			}
+ 		}
+-		else if($this->logtype == 'db'){
++		else if($type == 'db'){
+ 
+ 
+ 			include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+@@ -72,34 +74,14 @@
+ 			$con = db_connect(DBSERVER,OWNER,PW);
+ 			db_select_db(DB,$con);
+ 			for($i = 0; $i < count($this->url); $i++){
+-				$sql = "INSERT INTO mb_log(";
+-
+-				$sql .= "time_client,";
+-				$sql .= "time_server,";
+-				$sql .= "time_readable,";
+-				$sql .= "mb_session,";
+-				$sql .= "gui,";
+-				$sql .= "module,";
+-				$sql .= "ip,";
+-				$sql .= "username,";
+-				$sql .= "userid,";
+-				$sql .= "request";
+-
+-				$sql .= ") VALUES (";
++				$sql = "INSERT INTO mb_log (";
++				$sql .= "time_client, time_server, time_readable, mb_session, ";
++				$sql .= "gui, module, ip, username, userid, request";
++				$sql .= ") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)";
+ 
+-				$sql .= "'".$time_client."',";
+-				$sql .= "'".strtotime("now")."',";
+-				$sql .= "'[".date("d/M/Y:H:i:s O")."]',";
+-				$sql .= "'".SID."',";
+-				$sql .= "'".$_SESSION["mb_user_gui"]."',";
+-				$sql .= "'".$module."',";
+-				$sql .= "'".$_SESSION["mb_user_ip"]."',";
+-				$sql .= "'".$_SESSION["mb_user_name"]."',";
+-				$sql .= "'".$_SESSION["mb_user_id"]."',";
+-				$sql .= "'".$this->url[$i]."'";
+-				$sql .= ")";
+-
+-				$res = db_query($sql)or die(db_error());
++				$v = array($time_client, strtotime("now"), "[".date("d/M/Y:H:i:s O")."]", SID, $_SESSION["mb_user_gui"], $module, $_SESSION["mb_user_ip"], $_SESSION["mb_user_name"], $_SESSION["mb_user_id"], $this->url[$i]);
++				$t = array("s", "s", "s", "s", "s", "s", "s", "s", "s", "s");
++				$res = db_prep_query($sql, $v, $t)or die(db_error());
+ 
+ 				if(!$res){
+ 					include_once(dirname(__FILE__)."/class_mb_exception.php");
+Index: http/classes/class_stripRequest.php
+===================================================================
+--- http/classes/class_stripRequest.php	(revision 2361)
++++ http/classes/class_stripRequest.php	(working copy)
+@@ -80,6 +80,7 @@
+ 			return $output;
+ 		}
+ 	}
++	
+ 	function append($param){
+ 		$this->url .= "&".$param;
+ 		$this->encodeGET();
+Index: http/classes/class_wfs.php
+===================================================================
+--- http/classes/class_wfs.php	(revision 2361)
++++ http/classes/class_wfs.php	(working copy)
+@@ -223,20 +223,14 @@
+ 
+ 	# TABLE wfs
+ 	
+-	$sql = "INSERT INTO wfs (wfs_version, wfs_name, wfs_title, wfs_abstract, wfs_getcapabilities, wfs_describefeaturetype, wfs_getfeature, wfs_transaction) ";
+-	$sql .= "VALUES(";
+-		$sql .= "'" . $this->wfs_version ."', ";
+-		$sql .= "'" . db_escape_string(str_replace("'","",$this->wfs_name)) ."', ";
+-		$sql .= "'" . db_escape_string(str_replace("'","",$this->wfs_title)) ."', ";
+-		$sql .= "'" . db_escape_string(str_replace("'","",$this->wfs_abstract)) .  "', ";
+-		$sql .= "'" . $this->wfs_getcapabilities ."', ";
+-		$sql .= "'" . $this->wfs_describefeaturetype . "', ";
+-		$sql .= "'". $this->wfs_getfeature . "', ";
+-		$sql .= "'". $this->wfs_transaction . "'";
+-	$sql .= ");";
++	$sql = "INSERT INTO wfs (wfs_version, wfs_name, wfs_title, wfs_abstract, ";
++	$sql .= "wfs_getcapabilities, wfs_describefeaturetype, wfs_getfeature, ";
++	$sql .= "wfs_transaction) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)";
++	$v = array($this->wfs_version, db_escape_string(str_replace("'","",$this->wfs_name)), db_escape_string(str_replace("'","",$this->wfs_title)), db_escape_string(str_replace("'","",$this->wfs_abstract)), $this->wfs_getcapabilities, $this->wfs_describefeaturetype, $this->wfs_getfeature, $this->wfs_transaction);
++	$t = array("s", "s", "s", "s", "s", "s", "s", "s");
+ 	#echo "sql wfs: <br>".$sql;
+ 	
+-	$res = db_query($sql)or die(db_error());
++	$res = db_prep_query($sql, $v, $t)or die(db_error());
+ 	
+ 	$myWFS = db_insert_id($con,'wfs','wfs_id');
+ 	#echo "<br> myWFS: ".$myWFS;
+@@ -244,17 +238,14 @@
+ 	# TABLE wfs_featuretype
+ 	
+ 	for($i=0; $i<count($this->wfs_featuretype); $i++){
+-		$sql = "INSERT INTO wfs_featuretype(fkey_wfs_id, featuretype_name, featuretype_title, featuretype_srs) ";
+-		$sql .= "VALUES(";
+-			$sql .= $myWFS . ",";
+-			$sql .= "'".$this->wfs_featuretype[$i]->featuretype_name . "',";
+-			$sql .= "'".$this->wfs_featuretype[$i]->featuretype_title."',";
+-			$sql .= "'".$this->wfs_featuretype[$i]->featuretype_srs."'";
+-		$sql .= ")";
++		$sql = "INSERT INTO wfs_featuretype(fkey_wfs_id, featuretype_name, ";
++		$sql .= "featuretype_title, featuretype_srs) VALUES ($1, $2, $3, $4)";
++		$v = array($myWFS, $this->wfs_featuretype[$i]->featuretype_name, $this->wfs_featuretype[$i]->featuretype_title, $this->wfs_featuretype[$i]->featuretype_srs);
++		$t = array("i", "s", "s", "s");
+ 		
+ 		#$res = mysql_query($sql) or $this->cleanDB($myWFS,$sql);
+ 		
+-		$res = db_query($sql) or $this->cleanDB($myWFS,$sql);
++		$res = db_prep_query($sql, $v, $t) or $this->cleanDB($myWFS,$sql);
+ 
+ 		
+ 		# save the id of each featuretype: 
+@@ -261,26 +252,23 @@
+ 		$this->wfs_featuretype[$i]->mysql_id = db_insert_id($con,'wfs_featuretype','featuretype_id');
+ 		
+ 		for($j=0; $j<count($this->wfs_featuretype[$i]->featuretype_element);$j++){
+-			$sql = "INSERT INTO wfs_element(fkey_featuretype_id, element_name,element_type) ";
+-			$sql .= "VALUES("; 
+-			$sql .= "'" .$this->wfs_featuretype[$i]->mysql_id. "', ";
+-			$sql .= "'" .$this->wfs_featuretype[$i]->featuretype_element[$j]["name"]. "', ";
+-			$sql .= "'" .$this->wfs_featuretype[$i]->featuretype_element[$j]["type"]. "' ";
+-			$sql .= ")";
++			$sql = "INSERT INTO wfs_element(fkey_featuretype_id, ";
++			$sql .= "element_name,element_type) VALUES ($1, $2, $3)"; 
++
++			$v = array($this->wfs_featuretype[$i]->mysql_id, $this->wfs_featuretype[$i]->featuretype_element[$j]["name"], $this->wfs_featuretype[$i]->featuretype_element[$j]["type"]);
++			$t = array("s", "s", "s");
+ 			
+-			$res = db_query($sql) or $this->cleanDB($myWFS,$sql);
++			$res = db_prep_query($sql, $v, $t) or $this->cleanDB($myWFS,$sql);
+ 		}
+ 
+ 		for($j=0; $j<count($this->wfs_featuretype[$i]->featuretype_namespace);$j++){
+-			$sql = "INSERT INTO wfs_featuretype_namespace(fkey_wfs_id, fkey_featuretype_id, namespace, namespace_location) ";
+-			$sql .= "VALUES("; 
+-			$sql .= "'" .$myWFS. "',";
+-			$sql .= "'" .$this->wfs_featuretype[$i]->mysql_id. "', ";
+-			$sql .= "'" .$this->wfs_featuretype[$i]->featuretype_namespace[$j]["name"]. "', ";
+-			$sql .= "'" .$this->wfs_featuretype[$i]->featuretype_namespace[$j]["value"]. "' ";
+-			$sql .= ")";
++			$sql = "INSERT INTO wfs_featuretype_namespace (fkey_wfs_id, ";
++			$sql .= "fkey_featuretype_id, namespace, namespace_location) ";
++			$sql .= "VALUES ($1, $2, $3, $4)"; 
++			$v = array($myWFS, $this->wfs_featuretype[$i]->mysql_id, $this->wfs_featuretype[$i]->featuretype_namespace[$j]["name"], $this->wfs_featuretype[$i]->featuretype_namespace[$j]["value"]);
++			$t = array("i", "s", "s", "s"); 
+ 			
+-			$res = db_query($sql) or $this->cleanDB($myWFS,$sql);
++			$res = db_prep_query($sql, $v, $t) or $this->cleanDB($myWFS,$sql);
+ 		}
+ 	}
+ 	
+@@ -287,12 +275,11 @@
+ 	# TABLE gui_wfs
+ 	
+ 	$sql ="INSERT INTO gui_wfs (fkey_gui_id, fkey_wfs_id)";
+-	$sql .= "VALUES(";
+-		$sql .= "'" . $gui_id . "', ";
+-		$sql .= $myWFS;
+-	$sql .= ");";
++	$sql .= "VALUES ($1, $2)";
++	$v = array($gui_id, $myWFS);
++	$t = array("s", "i");
+ 	
+-	$res = db_query($sql) or $this->cleanDB($myWFS,$sql);
++	$res = db_prep_query($sql, $v, $t) or $this->cleanDB($myWFS,$sql);
+ }
+ function cleanDB($wfsid,$sql){
+ 	global $DBSERVER,$DB,$OWNER,$PW;
+@@ -298,8 +285,10 @@
+ 	global $DBSERVER,$DB,$OWNER,$PW;
+ 	$con = db_connect($DBSERVER,$OWNER,$PW);
+ 	db_select_db($DB,$con);
+-	$s = "DELETE FROM wfs WHERE wfs_id = ".$wfsid;
+-	$res = db_query($s);
++	$s = "DELETE FROM wfs WHERE wfs_id = $1";
++	$v = array($wfsid);
++	$t = array("i");
++	$res = db_prep_query($s, $v, $t);
+ 	echo "<br>Error in :".$sql."<br>";
+ 	echo "<br>Db cleaned.<br>";
+ 	die;
+Index: http/classes/class_wfs_conf.php
+===================================================================
+--- http/classes/class_wfs_conf.php	(revision 2361)
++++ http/classes/class_wfs_conf.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-# $Id: class_wfs_conf.php 530 2006-06-19 15:08:35Z vera_schulze $
++# $Id$
+ # http://www.mapbender.org/index.php/class_wfs_conf.php
+ # Copyright (C) 2002 CCGIS 
+ #
+@@ -91,8 +91,10 @@
+ 		global $DBSERVER,$DB,$OWNER,$PW;
+ 		$con = db_connect($DBSERVER,$OWNER,$PW);
+ 		db_select_db($DB,$con);
+-		$sql = "SELECT * FROM wfs_featuretype WHERE fkey_wfs_id = ".$id;
+-		$res = db_query($sql);
++		$sql = "SELECT * FROM wfs_featuretype WHERE fkey_wfs_id = $1";
++		$v = array($id);
++		$t = array("i");
++		$res = db_prep_query($sql, $v, $t);
+ 		$cnt = 0;
+ 		while ($row = db_fetch_array($res)){
+ 			$this->featuretype_id[$cnt] = $row["featuretype_id"];
+@@ -118,8 +120,10 @@
+ 		global $DBSERVER,$DB,$OWNER,$PW;
+ 		$con = db_connect($DBSERVER,$OWNER,$PW);
+ 		db_select_db($DB,$con);
+-		$sql = "SELECT * FROM wfs_element WHERE fkey_featuretype_id = ".$fid;
+-		$res = db_query($sql);
++		$sql = "SELECT * FROM wfs_element WHERE fkey_featuretype_id = $1";
++		$v = array($fid);
++		$t = array("i");
++		$res = db_prep_query($sql, $v, $t);
+ 		$cnt = 0;
+ 		while ($row = db_fetch_array($res)){
+ 			$this->element_id[$cnt] = $row["element_id"];
+@@ -142,8 +146,10 @@
+ 		global $DBSERVER,$DB,$OWNER,$PW;
+ 		$con = db_connect($DBSERVER,$OWNER,$PW);
+ 		db_select_db($DB,$con);
+-		$sql = "SELECT * FROM wfs_featuretype_namespace WHERE fkey_featuretype_id = ".$fid;
+-		$res = db_query($sql);
++		$sql = "SELECT * FROM wfs_featuretype_namespace WHERE fkey_featuretype_id = $1";
++		$v = array($fid);
++		$t = array("i");
++		$res = db_prep_query($sql, $v, $t);
+ 		$cnt = 0;
+ 		while ($row = db_fetch_array($res)){
+ 			$this->namespace_name[$cnt] = $row["namespace"];
+Index: http/classes/class_wms.php
+===================================================================
+--- http/classes/class_wms.php	(revision 2361)
++++ http/classes/class_wms.php	(working copy)
+@@ -94,7 +94,7 @@
+ 		xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
+ 		xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
+ 		xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,CHARSET);
+-		xml_parse_into_struct($parser,$this->wms_getcapabilities_doc,$values,$tags);
++		xml_parse_into_struct($parser,$data,$values,$tags);
+ 
+ 		$code = xml_get_error_code($parser);
+ 		if ($code) {
+@@ -1340,7 +1340,12 @@
+ 		while($row = db_fetch_array($res)){	
+ 			unset($mySubmit);
+ 			$myGUI[$cnt] = $row["fkey_gui_id"];
+-			$sql = "UPDATE gui_wms SET ";		
++			
++			$sql = "UPDATE gui_wms SET ";
++			$v = array();
++			$t = array();
++			$paramCount = 0;		
++
+ 			for($i=0; $i<count($this->data_type); $i++){
+ 				# gui_wms_mapformat
+ 				if(strtolower($this->data_type[$i]) == "map" && strtolower($this->data_format[$i]) == strtolower($row["gui_wms_mapformat"])){
+@@ -1356,12 +1361,18 @@
+ 				}
+ 			}
+ 			if(!$myMapFormat){
+-				$sql .= "gui_wms_mapformat = '".$this->gui_wms_mapformat."' ";
++				$paramCount++;
++				$sql .= "gui_wms_mapformat = $" . $paramCount . " ";
+ 				$mySubmit = true;
++				array_push($v, $this->gui_wms_mapformat);
++				array_push($t, "s");
+ 			}
+ 			if(!$myFeatureInfoFormat){
+ 				if($mySubmit){ $sql .= ",";}
+-				$sql .= "gui_wms_featureinfoformat = '".$this->gui_wms_featureinfoformat."' ";
++				$paramCount++;
++				$sql .= "gui_wms_featureinfoformat = $" . $paramCount . " ";
++				array_push($v, $this->gui_wms_featureinfoformat);
++				array_push($t, "s");
+ 				$mySubmit = true;
+ 			}
+ 			if(!$myExceptionFormat){
+@@ -1366,7 +1377,10 @@
+ 			}
+ 			if(!$myExceptionFormat){
+ 				if($mySubmit){ $sql .= ",";}
+-				$sql .= "gui_wms_exceptionformat = '".$this->gui_wms_exceptionformat."' ";
++				$paramCount++;
++				$sql .= "gui_wms_exceptionformat = $" . $paramCount ." ";
++				array_push($v, $this->gui_wms_exceptionformat);
++				array_push($t, "s");
+ 				$mySubmit = true;
+ 			}
+ 				
+@@ -1378,12 +1392,30 @@
+ 			}
+ 			if(!$myGUI_EPSG){
+ 				if($mySubmit){ $sql .= ",";}
+-				$sql .= "gui_wms_epsg = '".$this->gui_wms_epsg."' ";
++				$paramCount++;
++				$sql .= "gui_wms_epsg = $" . $paramCount . " ";
++				array_push($v, $this->gui_wms_epsg);
++				array_push($t, "s");
+ 				$mySubmit = true;
+ 			}
+-			$sql .= " WHERE fkey_gui_id = '".$row["fkey_gui_id"]."' AND fkey_wms_id = " . $myWMS;
++			$paramCount++;
++			$sql .= " WHERE fkey_gui_id = $" . $paramCount . " ";
++			array_push($v, $row["fkey_gui_id"]);
++			array_push($t, "s");
++
++			$paramCount++;
++			$sql .= "AND fkey_wms_id = $" . $paramCount;
++			array_push($v, $myWMS);
++			array_push($t, "i");
+ 			if($mySubmit){
+-				$this->transaction($sql);
++				$res = db_prep_query($sql,$v,$t);
++				if(!$res){
++					db_rollback();	
++					echo "<pre>".$sql."</pre><br> <br><p>";
++				 	echo db_error(); 
++				 	echo "<br /> UPDATE ERROR -> KILL PROCESS AND ROLLBACK....................no update<br><br>";
++					$e = new mb_exception("class_wms.php: transaction: Transaction aborted, rollback.");
++				}
+ 			}
+ 			$cnt++;
+ 		}	
+@@ -1399,26 +1431,7 @@
+ 	function getCapabilitiesDoc() {
+ 		return $this->wms_getcapabilities_doc;
+ 	}
+-	function transaction($sql){
+-		#echo "<hr>". $sql;
+-		$ok = db_query($sql);
+-		if(!$ok){
+-			echo "<pre>".$sql."</pre><br> <br><p>";
+-			$error = db_error();
+-			$sql = "ROLLBACK";
+-			$res = db_query($sql);
+-			if(SYS_DBTYPE=="pgsql")
+-				{
+-					$sql = "SET AUTOCOMMIT=0";
+-				}
+-				else
+-				{
+-				 	$sql = "SET AUTOCOMMIT=1";
+-				}
+-		 	echo $error; 
+-		 	echo "<br /> UPDATE ERROR -> KILL PROCESS AND ROLLBACK....................no update<br><br>";
+-			}
+-	}
++
+ 	/**
+ 	* creatObjfromDB
+ 	*
+Index: http/extensions/ext_featureInfoTunnel.php
+===================================================================
+--- http/extensions/ext_featureInfoTunnel.php	(revision 2361)
++++ http/extensions/ext_featureInfoTunnel.php	(working copy)
+@@ -16,7 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once("../classes/class_stripRequest.php");
+ require_once("../classes/class_connector.php");
+ $mr = new stripRequest(urldecode($_REQUEST["url"]));
+Index: http/extensions/ext_weldMaps.php
+===================================================================
+--- http/extensions/ext_weldMaps.php	(revision 2361)
++++ http/extensions/ext_weldMaps.php	(working copy)
+@@ -112,7 +112,7 @@
+ 		return $newResolution;
+ 	}	
+ }
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $map_urls = explode("###",$_SESSION["mb_print_url"]);
+ $output = new weldMaps($map_urls, $_SESSION["mb_print_resolution"]);
+ ?>
+\ No newline at end of file
+Index: http/extensions/geom2wfst.php
+===================================================================
+--- http/extensions/geom2wfst.php	(revision 2361)
++++ http/extensions/geom2wfst.php	(working copy)
+@@ -18,7 +18,7 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+ 
+ 
+Index: http/extensions/markResult.php
+===================================================================
+--- http/extensions/markResult.php	(revision 2361)
++++ http/extensions/markResult.php	(working copy)
+@@ -23,6 +23,8 @@
+ * $color -> Color of the polygon/line, commasaparated RGB-values
+ *
+ */
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ import_request_variables("PG");
+ $tmpx = array();
+ $tmpy = array();
+Index: http/extensions/wz_jsgraphics.js
+===================================================================
+--- http/extensions/wz_jsgraphics.js	(revision 2361)
++++ http/extensions/wz_jsgraphics.js	(working copy)
+@@ -1,211 +1,938 @@
+-var jg_ihtm,jg_ie,jg_fast,jg_dom,jg_moz,jg_n4=(document.layers&&typeof document.classes!="undefined");function chkDHTM(x,i)
+-{x=document.body||null;jg_ie=x&&typeof x.insertAdjacentHTML!="undefined";jg_dom=(x&&!jg_ie&&typeof x.appendChild!="undefined"&&typeof document.createRange!="undefined"&&typeof(i=document.createRange()).setStartBefore!="undefined"&&typeof i.createContextualFragment!="undefined");jg_ihtm=!jg_ie&&!jg_dom&&x&&typeof x.innerHTML!="undefined";jg_fast=jg_ie&&document.all&&!window.opera;jg_moz=jg_dom&&typeof x.style.MozOpacity!="undefined";}
++/* This notice must be untouched at all times.
++
++wz_jsgraphics.js    v. 2.3
++The latest version is available at
++http://www.walterzorn.com
++or http://www.devira.com
++or http://www.walterzorn.de
++
++Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
++Created 3. 11. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
++Last modified: 29. 9. 2004
++
++Performance optimizations for Internet Explorer
++by Thomas Frank and John Holdsworth.
++fillPolygon method implemented by Matthieu Haller.
++
++High Performance JavaScript Graphics Library.
++Provides methods
++- to draw lines, rectangles, ellipses, polygons
++  with specifiable line thickness,
++- to fill rectangles and ellipses
++- to draw text.
++NOTE: Operations, functions and branching have rather been optimized
++to efficiency and speed than to shortness of source code.
++
++LICENSE: LGPL
++
++This library is free software; you can redistribute it and/or
++modify it under the terms of the GNU Lesser General Public
++License (LGPL) as published by the Free Software Foundation; either
++version 2.1 of the License, or (at your option) any later version.
++
++This library is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++Lesser General Public License for more details.
++
++You should have received a copy of the GNU Lesser General Public
++License along with this library; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,
++or see http://www.gnu.org/copyleft/lesser.html
++*/
++
++
++var jg_ihtm, jg_ie, jg_fast, jg_dom, jg_moz,
++jg_n4 = (document.layers && typeof document.classes != "undefined");
++
++
++function chkDHTM(x, i)
++{
++        x = document.body || null;
++        jg_ie = x && typeof x.insertAdjacentHTML != "undefined";
++        jg_dom = (x && !jg_ie &&
++                typeof x.appendChild != "undefined" &&
++                typeof document.createRange != "undefined" &&
++                typeof (i = document.createRange()).setStartBefore != "undefined" &&
++                typeof i.createContextualFragment != "undefined");
++        jg_ihtm = !jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined";
++        jg_fast = jg_ie && document.all && !window.opera;
++        jg_moz = jg_dom && typeof x.style.MozOpacity != "undefined";
++}
++
++
+ function pntDoc()
+-{this.wnd.document.write(jg_fast?this.htmRpc():this.htm);this.htm='';}
++{
++        this.wnd.document.write(jg_fast? this.htmRpc() : this.htm);
++        this.htm = '';
++}
++
++
+ function pntCnvDom()
+-{var x=document.createRange();x.setStartBefore(this.cnv);x=x.createContextualFragment(jg_fast?this.htmRpc():this.htm);this.cnv.appendChild(x);this.htm='';}
++{
++        var x = document.createRange();
++        x.setStartBefore(this.cnv);
++        x = x.createContextualFragment(jg_fast? this.htmRpc() : this.htm);
++        this.cnv.appendChild(x);
++        this.htm = '';
++}
++
++
+ function pntCnvIe()
+-{this.cnv.insertAdjacentHTML("BeforeEnd",jg_fast?this.htmRpc():this.htm);this.htm='';}
++{
++        this.cnv.insertAdjacentHTML("BeforeEnd", jg_fast? this.htmRpc() : this.htm);
++        this.htm = '';
++}
++
++
+ function pntCnvIhtm()
+-{this.cnv.innerHTML+=this.htm;this.htm='';}
++{
++        this.cnv.innerHTML += this.htm;
++        this.htm = '';
++}
++
++
+ function pntCnv()
+-{this.htm='';}
+-function mkDiv(x,y,w,h)
+-{this.htm+='<div style="position:absolute;'+'left:'+x+'px;'+'top:'+y+'px;'+'width:'+w+'px;'+'height:'+h+'px;';if(ie){this.htm+='-opacity:'+cw_opacity+';'+'-khtml-opacity:'+cw_opacity+';'+'filter: alpha(opacity='+(cw_opacity*100)+');';}
+-this.htm+='clip:rect(0,'+w+'px,'+h+'px,0);'+'background-color:'+this.color+
+-(!jg_moz?';overflow:hidden':'')+';"><\/div>';}
+-function mkDivIe(x,y,w,h)
+-{this.htm+='%%'+this.color+';'+x+';'+y+';'+w+';'+h+';';}
+-function mkDivPrt(x,y,w,h)
+-{this.htm+='<div style="position:absolute;'+'border-left:'+w+'px solid '+this.color+';'+'left:'+x+'px;'+'top:'+y+'px;'+'width:0px;'+'height:'+h+'px;'+'clip:rect(0,'+w+'px,'+h+'px,0);'+'background-color:'+this.color+
+-(!jg_moz?';overflow:hidden':'')+';"><\/div>';}
+-function mkLyr(x,y,w,h)
+-{this.htm+='<layer '+'left="'+x+'" '+'top="'+y+'" '+'width="'+w+'" '+'height="'+h+'" '+'bgcolor="'+this.color+'"><\/layer>\n';}
+-var regex=/%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;function htmRpc()
+-{return this.htm.replace(regex,'<div style="overflow:hidden;position:absolute;background-color:'+'$1;left:$2;top:$3;width:$4;height:$5"></div>\n');}
++{
++        this.htm = '';
++}
++
++
++function mkDiv(x, y, w, h)
++{
++		if (!isNaN(h)) {
++	        this.htm += '<div style="position:absolute;'+
++	                'left:' + x + 'px;'+
++	                'top:' + y + 'px;'+
++	                'width:' + w + 'px;'+
++	                'height:' + h + 'px;';
++	        if (ie) {
++	        		this.htm += '-opacity:' + cw_opacity + ';' + 
++	                '-khtml-opacity:' + cw_opacity + ';'+
++	                'filter: alpha(opacity=' + (cw_opacity * 100) + ');';
++	        }
++	
++	//'-moz-opacity:' + window.cw_opacity + ';'+
++	        this.htm += 
++	                'clip:rect(0,'+w+'px,'+h+'px,0);'+
++	                'background-color:' + this.color +
++	                (!jg_moz? ';overflow:hidden' : '')+
++	                ';"><\/div>';
++		}
++}
++
++
++function mkDivIe(x, y, w, h)
++{
++		if (!isNaN(h)) {
++	        this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';';
++		}
++}
++
++
++function mkDivPrt(x, y, w, h)
++{
++        this.htm += '<div style="position:absolute;'+
++                'border-left:' + w + 'px solid ' + this.color + ';'+
++                'left:' + x + 'px;'+
++                'top:' + y + 'px;'+
++                'width:0px;'+
++                'height:' + h + 'px;'+
++                'clip:rect(0,'+w+'px,'+h+'px,0);'+
++                'background-color:' + this.color +
++                (!jg_moz? ';overflow:hidden' : '')+
++                ';"><\/div>';
++}
++
++
++function mkLyr(x, y, w, h)
++{
++        this.htm += '<layer '+
++                'left="' + x + '" '+
++                'top="' + y + '" '+
++                'width="' + w + '" '+
++                'height="' + h + '" '+
++                'bgcolor="' + this.color + '"><\/layer>\n';
++}
++
++
++var regex =  /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
++function htmRpc()
++{
++        return this.htm.replace(
++                regex,
++                '<div style="overflow:hidden;position:absolute;background-color:'+
++                '$1;left:$2;top:$3;width:$4;height:$5"></div>\n');
++}
++
++
+ function htmPrtRpc()
+-{return this.htm.replace(regex,'<div style="overflow:hidden;position:absolute;background-color:'+'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n');}
+-function mkLin(x1,y1,x2,y2)
+-{if(x1>x2)
+-{var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2;}
+-var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1;if(dx>=dy)
+-{var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;while((dx--)>0)
+-{++x;if(p>0)
+-{this.mkDiv(ox,y,x-ox,1);y+=yIncr;p+=pru;ox=x;}
+-else p+=pr;}
+-this.mkDiv(ox,y,x2-ox+1,1);}
+-else
+-{var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;if(y2<=y1)
+-{while((dy--)>0)
+-{if(p>0)
+-{this.mkDiv(x++,y,1,oy-y+1);y+=yIncr;p+=pru;oy=y;}
+-else
+-{y+=yIncr;p+=pr;}}
+-this.mkDiv(x2,y2,1,oy-y2+1);}
+-else
+-{while((dy--)>0)
+-{y+=yIncr;if(p>0)
+-{this.mkDiv(x++,oy,1,y-oy);p+=pru;oy=y;}
+-else p+=pr;}
+-this.mkDiv(x2,oy,1,y2-oy+1);}}}
+-function mkLin2D(x1,y1,x2,y2)
+-{if(x1>x2)
+-{var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2;}
+-var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1;var s=this.stroke;if(dx>=dy)
+-{if(s-3>0)
+-{var _s=(s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy)/dx;_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1;}
+-else var _s=s;var ad=Math.ceil(s/2);var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;while((dx--)>0)
+-{++x;if(p>0)
+-{this.mkDiv(ox,y,x-ox+ad,_s);y+=yIncr;p+=pru;ox=x;}
+-else p+=pr;}
+-this.mkDiv(ox,y,x2-ox+ad+1,_s);}
+-else
+-{if(s-3>0)
+-{var _s=(s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy)/dy;_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1;}
+-else var _s=s;var ad=Math.round(s/2);var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;if(y2<=y1)
+-{++ad;while((dy--)>0)
+-{if(p>0)
+-{this.mkDiv(x++,y,_s,oy-y+ad);y+=yIncr;p+=pru;oy=y;}
+-else
+-{y+=yIncr;p+=pr;}}
+-this.mkDiv(x2,y2,_s,oy-y2+ad);}
+-else
+-{while((dy--)>0)
+-{y+=yIncr;if(p>0)
+-{this.mkDiv(x++,oy,_s,y-oy+ad);p+=pru;oy=y;}
+-else p+=pr;}
+-this.mkDiv(x2,oy,_s,y2-oy+ad+1);}}}
+-function mkLinDott(x1,y1,x2,y2)
+-{if(x1>x2)
+-{var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2;}
+-var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1,drw=true;if(dx>=dy)
+-{var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx;while((dx--)>0)
+-{if(drw)this.mkDiv(x,y,1,1);drw=!drw;if(p>0)
+-{y+=yIncr;p+=pru;}
+-else p+=pr;++x;}
+-if(drw)this.mkDiv(x,y,1,1);}
+-else
+-{var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy;while((dy--)>0)
+-{if(drw)this.mkDiv(x,y,1,1);drw=!drw;y+=yIncr;if(p>0)
+-{++x;p+=pru;}
+-else p+=pr;}
+-if(drw)this.mkDiv(x,y,1,1);}}
+-function mkOv(left,top,width,height)
+-{var a=width>>1,b=height>>1,wod=width&1,hod=(height&1)+1,cx=left+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa=(a*a)<<1,bb=(b*b)<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1),w,h;while(y>0)
+-{if(st<0)
+-{st+=bb*((x<<1)+3);tt+=(bb<<1)*(++x);}
+-else if(tt<0)
+-{st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*(++x)-aa*(((y--)<<1)-3);w=x-ox;h=oy-y;if(w&2&&h&2)
+-{this.mkOvQds(cx,cy,-x+2,ox+wod,-oy,oy-1+hod,1,1);this.mkOvQds(cx,cy,-x+1,x-1+wod,-y-1,y+hod,1,1);}
+-else this.mkOvQds(cx,cy,-x+1,ox+wod,-oy,oy-h+hod,w,h);ox=x;oy=y;}
+-else
+-{tt-=aa*((y<<1)-3);st-=(aa<<1)*(--y);}}
+-this.mkDiv(cx-a,cy-oy,a-ox+1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,a-ox+1,(oy<<1)+hod);}
+-function mkOv2D(left,top,width,height)
+-{var s=this.stroke;width+=s-1;height+=s-1;var a=width>>1,b=height>>1,wod=width&1,hod=(height&1)+1,cx=left+a,cy=top+b,x=0,y=b,aa=(a*a)<<1,bb=(b*b)<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1);if(s-4<0&&(!(s-2)||width-51>0&&height-51>0))
+-{var ox=0,oy=b,w,h,pxl,pxr,pxt,pxb,pxw;while(y>0)
+-{if(st<0)
+-{st+=bb*((x<<1)+3);tt+=(bb<<1)*(++x);}
+-else if(tt<0)
+-{st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*(++x)-aa*(((y--)<<1)-3);w=x-ox;h=oy-y;if(w-1)
+-{pxw=w+1+(s&1);h=s;}
+-else if(h-1)
+-{pxw=s;h+=1+(s&1);}
+-else pxw=h=s;this.mkOvQds(cx,cy,-x+1,ox-pxw+w+wod,-oy,-h+oy+hod,pxw,h);ox=x;oy=y;}
+-else
+-{tt-=aa*((y<<1)-3);st-=(aa<<1)*(--y);}}
+-this.mkDiv(cx-a,cy-oy,s,(oy<<1)+hod);this.mkDiv(cx+a+wod-s+1,cy-oy,s,(oy<<1)+hod);}
+-else
+-{var _a=(width-((s-1)<<1))>>1,_b=(height-((s-1)<<1))>>1,_x=0,_y=_b,_aa=(_a*_a)<<1,_bb=(_b*_b)<<1,_st=(_aa>>1)*(1-(_b<<1))+_bb,_tt=(_bb>>1)-_aa*((_b<<1)-1),pxl=new Array(),pxt=new Array(),_pxb=new Array();pxl[0]=0;pxt[0]=b;_pxb[0]=_b-1;while(y>0)
+-{if(st<0)
+-{st+=bb*((x<<1)+3);tt+=(bb<<1)*(++x);pxl[pxl.length]=x;pxt[pxt.length]=y;}
+-else if(tt<0)
+-{st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*(++x)-aa*(((y--)<<1)-3);pxl[pxl.length]=x;pxt[pxt.length]=y;}
+-else
+-{tt-=aa*((y<<1)-3);st-=(aa<<1)*(--y);}
+-if(_y>0)
+-{if(_st<0)
+-{_st+=_bb*((_x<<1)+3);_tt+=(_bb<<1)*(++_x);_pxb[_pxb.length]=_y-1;}
+-else if(_tt<0)
+-{_st+=_bb*((_x<<1)+3)-(_aa<<1)*(_y-1);_tt+=(_bb<<1)*(++_x)-_aa*(((_y--)<<1)-3);_pxb[_pxb.length]=_y-1;}
+-else
+-{_tt-=_aa*((_y<<1)-3);_st-=(_aa<<1)*(--_y);_pxb[_pxb.length-1]--;}}}
+-var ox=0,oy=b,_oy=_pxb[0],l=pxl.length,w,h;for(var i=0;i<l;i++)
+-{if(typeof _pxb[i]!="undefined")
+-{if(_pxb[i]<_oy||pxt[i]<oy)
+-{x=pxl[i];this.mkOvQds(cx,cy,-x+1,ox+wod,-oy,_oy+hod,x-ox,oy-_oy);ox=x;oy=pxt[i];_oy=_pxb[i];}}
+-else
+-{x=pxl[i];this.mkDiv(cx-x+1,cy-oy,1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,1,(oy<<1)+hod);ox=x;oy=pxt[i];}}
+-this.mkDiv(cx-a,cy-oy,1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,1,(oy<<1)+hod);}}
+-function mkOvDott(left,top,width,height)
+-{var a=width>>1,b=height>>1,wod=width&1,hod=height&1,cx=left+a,cy=top+b,x=0,y=b,aa2=(a*a)<<1,aa4=aa2<<1,bb=(b*b)<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),drw=true;while(y>0)
+-{if(st<0)
+-{st+=bb*((x<<1)+3);tt+=(bb<<1)*(++x);}
+-else if(tt<0)
+-{st+=bb*((x<<1)+3)-aa4*(y-1);tt+=(bb<<1)*(++x)-aa2*(((y--)<<1)-3);}
+-else
+-{tt-=aa2*((y<<1)-3);st-=aa4*(--y);}
+-if(drw)this.mkOvQds(cx,cy,-x,x+wod,-y,y+hod,1,1);drw=!drw;}}
+-function mkRect(x,y,w,h)
+-{var s=this.stroke;this.mkDiv(x,y,w,s);this.mkDiv(x+w,y,s,h);this.mkDiv(x,y+h,w+s,s);this.mkDiv(x,y+s,s,h-s);}
+-function mkRectDott(x,y,w,h)
+-{this.drawLine(x,y,x+w,y);this.drawLine(x+w,y,x+w,y+h);this.drawLine(x,y+h,x+w,y+h);this.drawLine(x,y,x,y+h);}
++{
++        return this.htm.replace(
++                regex,
++                '<div style="overflow:hidden;position:absolute;background-color:'+
++                '$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n');
++}
++
++
++function mkLin(x1, y1, x2, y2)
++{
++        if (x1 > x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 > y2)? -1 : 1;
++
++        if (dx >= dy)
++        {
++                var pr = dy<<1,
++                pru = pr - (dx<<1),
++                p = pr-dx,
++                ox = x;
++                while ((dx--) > 0)
++                {
++                        ++x;
++                        if (p > 0)
++                        {
++                                this.mkDiv(ox, y, x-ox, 1);
++                                y += yIncr;
++                                p += pru;
++                                ox = x;
++                        }
++                        else p += pr;
++                }
++                this.mkDiv(ox, y, x2-ox+1, 1);
++        }
++
++        else
++        {
++                var pr = dx<<1,
++                pru = pr - (dy<<1),
++                p = pr-dy,
++                oy = y;
++                if (y2 <= y1)
++                {
++                        while ((dy--) > 0)
++                        {
++                                if (p > 0)
++                                {
++                                        this.mkDiv(x++, y, 1, oy-y+1);
++                                        y += yIncr;
++                                        p += pru;
++                                        oy = y;
++                                }
++                                else
++                                {
++                                        y += yIncr;
++                                        p += pr;
++                                }
++                        }
++                        this.mkDiv(x2, y2, 1, oy-y2+1);
++                }
++                else
++                {
++                        while ((dy--) > 0)
++                        {
++                                y += yIncr;
++                                if (p > 0)
++                                {
++                                        this.mkDiv(x++, oy, 1, y-oy);
++                                        p += pru;
++                                        oy = y;
++                                }
++                                else p += pr;
++                        }
++                        this.mkDiv(x2, oy, 1, y2-oy+1);
++                }
++        }
++}
++
++
++function mkLin2D(x1, y1, x2, y2)
++{
++        if (x1 > x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 > y2)? -1 : 1;
++
++        var s = this.stroke;
++        if (dx >= dy)
++        {
++                if (s-3 > 0)
++                {
++                        var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx;
++                        _s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
++                }
++                else var _s = s;
++                var ad = Math.ceil(s/2);
++
++                var pr = dy<<1,
++                pru = pr - (dx<<1),
++                p = pr-dx,
++                ox = x;
++                while ((dx--) > 0)
++                {
++                        ++x;
++                        if (p > 0)
++                        {
++                                this.mkDiv(ox, y, x-ox+ad, _s);
++                                y += yIncr;
++                                p += pru;
++                                ox = x;
++                        }
++                        else p += pr;
++                }
++                this.mkDiv(ox, y, x2-ox+ad+1, _s);
++        }
++
++        else
++        {
++                if (s-3 > 0)
++                {
++                        var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy;
++                        _s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
++                }
++                else var _s = s;
++                var ad = Math.round(s/2);
++
++                var pr = dx<<1,
++                pru = pr - (dy<<1),
++                p = pr-dy,
++                oy = y;
++                if (y2 <= y1)
++                {
++                        ++ad;
++                        while ((dy--) > 0)
++                        {
++                                if (p > 0)
++                                {
++                                        this.mkDiv(x++, y, _s, oy-y+ad);
++                                        y += yIncr;
++                                        p += pru;
++                                        oy = y;
++                                }
++                                else
++                                {
++                                        y += yIncr;
++                                        p += pr;
++                                }
++                        }
++                        this.mkDiv(x2, y2, _s, oy-y2+ad);
++                }
++                else
++                {
++                        while ((dy--) > 0)
++                        {
++                                y += yIncr;
++                                if (p > 0)
++                                {
++                                        this.mkDiv(x++, oy, _s, y-oy+ad);
++                                        p += pru;
++                                        oy = y;
++                                }
++                                else p += pr;
++                        }
++                        this.mkDiv(x2, oy, _s, y2-oy+ad+1);
++                }
++        }
++}
++
++
++function mkLinDott(x1, y1, x2, y2)
++{
++        if (x1 > x2)
++        {
++                var _x2 = x2;
++                var _y2 = y2;
++                x2 = x1;
++                y2 = y1;
++                x1 = _x2;
++                y1 = _y2;
++        }
++        var dx = x2-x1, dy = Math.abs(y2-y1),
++        x = x1, y = y1,
++        yIncr = (y1 > y2)? -1 : 1,
++        drw = true;
++        if (dx >= dy)
++        {
++                var pr = dy<<1,
++                pru = pr - (dx<<1),
++                p = pr-dx;
++                while ((dx--) > 0)
++                {
++                        if (drw) this.mkDiv(x, y, 1, 1);
++                        drw = !drw;
++                        if (p > 0)
++                        {
++                                y += yIncr;
++                                p += pru;
++                        }
++                        else p += pr;
++                        ++x;
++                }
++                if (drw) this.mkDiv(x, y, 1, 1);
++        }
++
++        else
++        {
++                var pr = dx<<1,
++                pru = pr - (dy<<1),
++                p = pr-dy;
++                while ((dy--) > 0)
++                {
++                        if (drw) this.mkDiv(x, y, 1, 1);
++                        drw = !drw;
++                        y += yIncr;
++                        if (p > 0)
++                        {
++                                ++x;
++                                p += pru;
++                        }
++                        else p += pr;
++                }
++                if (drw) this.mkDiv(x, y, 1, 1);
++        }
++}
++
++
++function mkOv(left, top, width, height)
++{
++        var a = width>>1, b = height>>1,
++        wod = width&1, hod = (height&1)+1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        ox = 0, oy = b,
++        aa = (a*a)<<1, bb = (b*b)<<1,
++        st = (aa>>1)*(1-(b<<1)) + bb,
++        tt = (bb>>1) - aa*((b<<1)-1),
++        w, h;
++        while (y > 0)
++        {
++                if (st < 0)
++                {
++                        st += bb*((x<<1)+3);
++                        tt += (bb<<1)*(++x);
++                }
++                else if (tt < 0)
++                {
++                        st += bb*((x<<1)+3) - (aa<<1)*(y-1);
++                        tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
++                        w = x-ox;
++                        h = oy-y;
++                        if (w&2 && h&2)
++                        {
++                                this.mkOvQds(cx, cy, -x+2, ox+wod, -oy, oy-1+hod, 1, 1);
++                                this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1);
++                        }
++                        else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h);
++                        ox = x;
++                        oy = y;
++                }
++                else
++                {
++                        tt -= aa*((y<<1)-3);
++                        st -= (aa<<1)*(--y);
++                }
++        }
++        this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod);
++        this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod);
++}
++
++
++function mkOv2D(left, top, width, height)
++{
++        var s = this.stroke;
++        width += s-1;
++        height += s-1;
++        var a = width>>1, b = height>>1,
++        wod = width&1, hod = (height&1)+1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        aa = (a*a)<<1, bb = (b*b)<<1,
++        st = (aa>>1)*(1-(b<<1)) + bb,
++        tt = (bb>>1) - aa*((b<<1)-1);
++
++        if (s-4 < 0 && (!(s-2) || width-51 > 0 && height-51 > 0))
++        {
++                var ox = 0, oy = b,
++                w, h,
++                pxl, pxr, pxt, pxb, pxw;
++                while (y > 0)
++                {
++                        if (st < 0)
++                        {
++                                st += bb*((x<<1)+3);
++                                tt += (bb<<1)*(++x);
++                        }
++                        else if (tt < 0)
++                        {
++                                st += bb*((x<<1)+3) - (aa<<1)*(y-1);
++                                tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
++                                w = x-ox;
++                                h = oy-y;
++
++                                if (w-1)
++                                {
++                                        pxw = w+1+(s&1);
++                                        h = s;
++                                }
++                                else if (h-1)
++                                {
++                                        pxw = s;
++                                        h += 1+(s&1);
++                                }
++                                else pxw = h = s;
++                                this.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h);
++                                ox = x;
++                                oy = y;
++                        }
++                        else
++                        {
++                                tt -= aa*((y<<1)-3);
++                                st -= (aa<<1)*(--y);
++                        }
++                }
++                this.mkDiv(cx-a, cy-oy, s, (oy<<1)+hod);
++                this.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy<<1)+hod);
++        }
++
++        else
++        {
++                var _a = (width-((s-1)<<1))>>1,
++                _b = (height-((s-1)<<1))>>1,
++                _x = 0, _y = _b,
++                _aa = (_a*_a)<<1, _bb = (_b*_b)<<1,
++                _st = (_aa>>1)*(1-(_b<<1)) + _bb,
++                _tt = (_bb>>1) - _aa*((_b<<1)-1),
++
++                pxl = new Array(),
++                pxt = new Array(),
++                _pxb = new Array();
++                pxl[0] = 0;
++                pxt[0] = b;
++                _pxb[0] = _b-1;
++                while (y > 0)
++                {
++                        if (st < 0)
++                        {
++                                st += bb*((x<<1)+3);
++                                tt += (bb<<1)*(++x);
++                                pxl[pxl.length] = x;
++                                pxt[pxt.length] = y;
++                        }
++                        else if (tt < 0)
++                        {
++                                st += bb*((x<<1)+3) - (aa<<1)*(y-1);
++                                tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
++                                pxl[pxl.length] = x;
++                                pxt[pxt.length] = y;
++                        }
++                        else
++                        {
++                                tt -= aa*((y<<1)-3);
++                                st -= (aa<<1)*(--y);
++                        }
++
++                        if (_y > 0)
++                        {
++                                if (_st < 0)
++                                {
++                                        _st += _bb*((_x<<1)+3);
++                                        _tt += (_bb<<1)*(++_x);
++                                        _pxb[_pxb.length] = _y-1;
++                                }
++                                else if (_tt < 0)
++                                {
++                                        _st += _bb*((_x<<1)+3) - (_aa<<1)*(_y-1);
++                                        _tt += (_bb<<1)*(++_x) - _aa*(((_y--)<<1)-3);
++                                        _pxb[_pxb.length] = _y-1;
++                                }
++                                else
++                                {
++                                        _tt -= _aa*((_y<<1)-3);
++                                        _st -= (_aa<<1)*(--_y);
++                                        _pxb[_pxb.length-1]--;
++                                }
++                        }
++                }
++
++                var ox = 0, oy = b,
++                _oy = _pxb[0],
++                l = pxl.length,
++                w, h;
++                for (var i = 0; i < l; i++)
++                {
++                        if (typeof _pxb[i] != "undefined")
++                        {
++                                if (_pxb[i] < _oy || pxt[i] < oy)
++                                {
++                                        x = pxl[i];
++                                        this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy);
++                                        ox = x;
++                                        oy = pxt[i];
++                                        _oy = _pxb[i];
++                                }
++                        }
++                        else
++                        {
++                                x = pxl[i];
++                                this.mkDiv(cx-x+1, cy-oy, 1, (oy<<1)+hod);
++                                this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
++                                ox = x;
++                                oy = pxt[i];
++                        }
++                }
++                this.mkDiv(cx-a, cy-oy, 1, (oy<<1)+hod);
++                this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
++        }
++}
++
++
++function mkOvDott(left, top, width, height)
++{
++        var a = width>>1, b = height>>1,
++        wod = width&1, hod = height&1,
++        cx = left+a, cy = top+b,
++        x = 0, y = b,
++        aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
++        st = (aa2>>1)*(1-(b<<1)) + bb,
++        tt = (bb>>1) - aa2*((b<<1)-1),
++        drw = true;
++        while (y > 0)
++        {
++                if (st < 0)
++                {
++                        st += bb*((x<<1)+3);
++                        tt += (bb<<1)*(++x);
++                }
++                else if (tt < 0)
++                {
++                        st += bb*((x<<1)+3) - aa4*(y-1);
++                        tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3);
++                }
++                else
++                {
++                        tt -= aa2*((y<<1)-3);
++                        st -= aa4*(--y);
++                }
++                if (drw) this.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1);
++                drw = !drw;
++        }
++}
++
++
++function mkRect(x, y, w, h)
++{
++        var s = this.stroke;
++        this.mkDiv(x, y, w, s);
++        this.mkDiv(x+w, y, s, h);
++        this.mkDiv(x, y+h, w+s, s);
++        this.mkDiv(x, y+s, s, h-s);
++}
++
++
++function mkRectDott(x, y, w, h)
++{
++        this.drawLine(x, y, x+w, y);
++        this.drawLine(x+w, y, x+w, y+h);
++        this.drawLine(x, y+h, x+w, y+h);
++        this.drawLine(x, y, x, y+h);
++}
++
++
+ function jsgFont()
+-{this.PLAIN='font-weight:normal;';this.BOLD='font-weight:bold;';this.ITALIC='font-style:italic;';this.ITALIC_BOLD=this.ITALIC+this.BOLD;this.BOLD_ITALIC=this.ITALIC_BOLD;}
+-var Font=new jsgFont();function jsgStroke()
+-{this.DOTTED=-1;}
+-var Stroke=new jsgStroke();function jsGraphics(id,wnd)
+-{this.setColor=new Function('arg','this.color = arg.toLowerCase();');this.setStroke=function(x)
+-{this.stroke=x;if(!(x+1))
+-{this.drawLine=mkLinDott;this.mkOv=mkOvDott;this.drawRect=mkRectDott;}
+-else if(x-1>0)
+-{this.drawLine=mkLin2D;this.mkOv=mkOv2D;this.drawRect=mkRect;}
+-else
+-{this.drawLine=mkLin;this.mkOv=mkOv;this.drawRect=mkRect;}};this.setPrintable=function(arg)
+-{this.printable=arg;if(jg_fast)
+-{this.mkDiv=mkDivIe;this.htmRpc=arg?htmPrtRpc:htmRpc;}
+-else this.mkDiv=jg_n4?mkLyr:arg?mkDivPrt:mkDiv;};this.setFont=function(fam,sz,sty)
+-{this.ftFam=fam;this.ftSz=sz;this.ftSty=sty||Font.PLAIN;};this.drawPolyline=this.drawPolyLine=function(x,y,s)
+-{for(var i=0;i<x.length-1;i++)
+-this.drawLine(x[i],y[i],x[i+1],y[i+1]);};this.fillRect=function(x,y,w,h)
+-{this.mkDiv(x,y,w,h);};this.drawPolygon=function(x,y)
+-{this.drawPolyline(x,y);this.drawLine(x[x.length-1],y[x.length-1],x[0],y[0]);};this.drawEllipse=this.drawOval=function(x,y,w,h)
+-{this.mkOv(x,y,w,h);};this.fillEllipse=this.fillOval=function(left,top,w,h)
+-{var a=(w-=1)>>1,b=(h-=1)>>1,wod=(w&1)+1,hod=(h&1)+1,cx=left+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa2=(a*a)<<1,aa4=aa2<<1,bb=(b*b)<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),pxl,dw,dh;if(w+1)while(y>0)
+-{if(st<0)
+-{st+=bb*((x<<1)+3);tt+=(bb<<1)*(++x);}
+-else if(tt<0)
+-{st+=bb*((x<<1)+3)-aa4*(y-1);pxl=cx-x;dw=(x<<1)+wod;tt+=(bb<<1)*(++x)-aa2*(((y--)<<1)-3);dh=oy-y;this.mkDiv(pxl,cy-oy,dw,dh);this.mkDiv(pxl,cy+oy-dh+hod,dw,dh);ox=x;oy=y;}
+-else
+-{tt-=aa2*((y<<1)-3);st-=aa4*(--y);}}
+-this.mkDiv(cx-a,cy-oy,w+1,(oy<<1)+hod);};this.fillPolygon=function(array_x,array_y)
+-{var i;var y;var miny,maxy;var x1,y1;var x2,y2;var ind1,ind2;var ints;var n=array_x.length;if(!n)return;miny=array_y[0];maxy=array_y[0];for(i=1;i<n;i++)
+-{if(array_y[i]<miny)
+-miny=array_y[i];if(array_y[i]>maxy)
+-maxy=array_y[i];}
+-for(y=miny;y<=maxy;y++)
+-{var polyInts=new Array();ints=0;for(i=0;i<n;i++)
+-{if(!i)
+-{ind1=n-1;ind2=0;}
+-else
+-{ind1=i-1;ind2=i;}
+-y1=array_y[ind1];y2=array_y[ind2];if(y1<y2)
+-{x1=array_x[ind1];x2=array_x[ind2];}
+-else if(y1>y2)
+-{y2=array_y[ind1];y1=array_y[ind2];x2=array_x[ind1];x1=array_x[ind2];}
+-else continue;if((y>=y1)&&(y<y2))
+-polyInts[ints++]=Math.round((y-y1)*(x2-x1)/(y2-y1)+x1);else if((y==maxy)&&(y>y1)&&(y<=y2))
+-polyInts[ints++]=Math.round((y-y1)*(x2-x1)/(y2-y1)+x1);}
+-polyInts.sort(integer_compare);for(i=0;i<ints;i+=2)
+-this.mkDiv(polyInts[i],y,polyInts[i+1]-polyInts[i]+1,1);}};this.drawString=function(txt,x,y)
+-{this.htm+='<div style="position:absolute;white-space:nowrap;'+'left:'+x+'px;'+'top:'+y+'px;'+'font-family:'+this.ftFam+';'+'font-size:'+this.ftSz+';'+'color:'+this.color+';'+this.ftSty+'">'+
+-txt+'<\/div>';}
+-this.drawImage=function(imgSrc,x,y,w,h)
+-{this.htm+='<div style="position:absolute;'+'left:'+x+'px;'+'top:'+y+'px;'+'width:'+w+';'+'height:'+h+';">'+'<img src="'+imgSrc+'" width="'+w+'" height="'+h+'">'+'<\/div>';}
+-this.clear=function()
+-{this.htm="";if(this.cnv)this.cnv.innerHTML=this.defhtm;};this.mkOvQds=function(cx,cy,xl,xr,yt,yb,w,h)
+-{this.mkDiv(xr+cx,yt+cy,w,h);this.mkDiv(xr+cx,yb+cy,w,h);this.mkDiv(xl+cx,yb+cy,w,h);this.mkDiv(xl+cx,yt+cy,w,h);};this.setStroke(1);this.setFont('verdana,geneva,helvetica,sans-serif',String.fromCharCode(0x31,0x32,0x70,0x78),Font.PLAIN);this.color='#000000';this.htm='';this.wnd=wnd||window;if(!(jg_ie||jg_dom||jg_ihtm))chkDHTM();if(typeof id!='string'||!id)this.paint=pntDoc;else
+-{this.cnv=document.all?(this.wnd.document.all[id]||null):document.getElementById?(this.wnd.document.getElementById(id)||null):null;this.defhtm=(this.cnv&&this.cnv.innerHTML)?this.cnv.innerHTML:'';this.paint=jg_dom?pntCnvDom:jg_ie?pntCnvIe:jg_ihtm?pntCnvIhtm:pntCnv;}
+-this.setPrintable(false);}
++{
++        this.PLAIN = 'font-weight:normal;';
++        this.BOLD = 'font-weight:bold;';
++        this.ITALIC = 'font-style:italic;';
++        this.ITALIC_BOLD = this.ITALIC + this.BOLD;
++        this.BOLD_ITALIC = this.ITALIC_BOLD;
++}
++var Font = new jsgFont();
++
++
++function jsgStroke()
++{
++        this.DOTTED = -1;
++}
++var Stroke = new jsgStroke();
++
++
++function jsGraphics(id, wnd)
++{
++        this.setColor = new Function('arg', 'this.color = arg.toLowerCase();');
++
++        this.setStroke = function(x)
++        {
++                this.stroke = x;
++                if (!(x+1))
++                {
++                        this.drawLine = mkLinDott;
++                        this.mkOv = mkOvDott;
++                        this.drawRect = mkRectDott;
++                }
++                else if (x-1 > 0)
++                {
++                        this.drawLine = mkLin2D;
++                        this.mkOv = mkOv2D;
++                        this.drawRect = mkRect;
++                }
++                else
++                {
++                        this.drawLine = mkLin;
++                        this.mkOv = mkOv;
++                        this.drawRect = mkRect;
++                }
++        };
++
++
++        this.setPrintable = function(arg)
++        {
++                this.printable = arg;
++                if (jg_fast)
++                {
++                        this.mkDiv = mkDivIe;
++                        this.htmRpc = arg? htmPrtRpc : htmRpc;
++                }
++                else this.mkDiv = jg_n4? mkLyr : arg? mkDivPrt : mkDiv;
++        };
++
++
++        this.setFont = function(fam, sz, sty)
++        {
++                this.ftFam = fam;
++                this.ftSz = sz;
++                this.ftSty = sty || Font.PLAIN;
++        };
++
++
++        this.drawPolyline = this.drawPolyLine = function(x, y, s)
++        {
++                for (var i=0 ; i<x.length-1 ; i++ )
++                        this.drawLine(x[i], y[i], x[i+1], y[i+1]);
++        };
++
++
++        this.fillRect = function(x, y, w, h)
++        {
++                this.mkDiv(x, y, w, h);
++        };
++
++
++        this.drawPolygon = function(x, y)
++        {
++                this.drawPolyline(x, y);
++                this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]);
++        };
++
++
++        this.drawEllipse = this.drawOval = function(x, y, w, h)
++        {
++                this.mkOv(x, y, w, h);
++        };
++
++
++        this.fillEllipse = this.fillOval = function(left, top, w, h)
++        {
++                var a = (w -= 1)>>1, b = (h -= 1)>>1,
++                wod = (w&1)+1, hod = (h&1)+1,
++                cx = left+a, cy = top+b,
++                x = 0, y = b,
++                ox = 0, oy = b,
++                aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
++                st = (aa2>>1)*(1-(b<<1)) + bb,
++                tt = (bb>>1) - aa2*((b<<1)-1),
++                pxl, dw, dh;
++                if (w+1) while (y > 0)
++                {
++                        if (st < 0)
++                        {
++                                st += bb*((x<<1)+3);
++                                tt += (bb<<1)*(++x);
++                        }
++                        else if (tt < 0)
++                        {
++                                st += bb*((x<<1)+3) - aa4*(y-1);
++                                pxl = cx-x;
++                                dw = (x<<1)+wod;
++                                tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3);
++                                dh = oy-y;
++                                this.mkDiv(pxl, cy-oy, dw, dh);
++                                this.mkDiv(pxl, cy+oy-dh+hod, dw, dh);
++                                ox = x;
++                                oy = y;
++                        }
++                        else
++                        {
++                                tt -= aa2*((y<<1)-3);
++                                st -= aa4*(--y);
++                        }
++                }
++                this.mkDiv(cx-a, cy-oy, w+1, (oy<<1)+hod);
++        };
++
++
++
++/* fillPolygon method, implemented by Matthieu Haller.
++This javascript function is an adaptation of the gdImageFilledPolygon for Walter Zorn lib.
++C source of GD 1.8.4 found at http://www.boutell.com/gd/
++
++THANKS to Kirsten Schulz for the polygon fixes!
++
++The intersection finding technique of this code could be improved
++by remembering the previous intertersection, and by using the slope.
++That could help to adjust intersections to produce a nice
++interior_extrema. */
++        this.fillPolygon = function(array_x, array_y)
++        {
++                var i;
++                var y;
++                var miny, maxy;
++                var x1, y1;
++                var x2, y2;
++                var ind1, ind2;
++                var ints;
++
++                var n = array_x.length;
++
++                if (!n) return;
++
++
++                miny = array_y[0];
++                maxy = array_y[0];
++                for (i = 1; i < n; i++)
++                {
++                        if (array_y[i] < miny)
++                                miny = array_y[i];
++
++                        if (array_y[i] > maxy)
++                                maxy = array_y[i];
++                }
++                for (y = miny; y <= maxy; y++)
++                {
++                        var polyInts = new Array();
++                        ints = 0;
++                        for (i = 0; i < n; i++)
++                        {
++                                if (!i)
++                                {
++                                        ind1 = n-1;
++                                        ind2 = 0;
++                                }
++                                else
++                                {
++                                        ind1 = i-1;
++                                        ind2 = i;
++                                }
++                                y1 = array_y[ind1];
++                                y2 = array_y[ind2];
++                                if (y1 < y2)
++                                {
++                                        x1 = array_x[ind1];
++                                        x2 = array_x[ind2];
++                                }
++                                else if (y1 > y2)
++                                {
++                                        y2 = array_y[ind1];
++                                        y1 = array_y[ind2];
++                                        x2 = array_x[ind1];
++                                        x1 = array_x[ind2];
++                                }
++                                else continue;
++
++                                 // modified 11. 2. 2004 Walter Zorn
++                                if ((y >= y1) && (y < y2))
++                                        polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
++
++                                else if ((y == maxy) && (y > y1) && (y <= y2))
++                                        polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
++                        }
++                        polyInts.sort(integer_compare);
++                        for (i = 0; i < ints; i+=2)
++                                this.mkDiv(polyInts[i], y, polyInts[i+1]-polyInts[i]+1, 1);
++                }
++        };
++
++
++        this.drawString = function(txt, x, y)
++        {
++                this.htm += '<div style="position:absolute;white-space:nowrap;'+
++                        'left:' + x + 'px;'+
++                        'top:' + y + 'px;'+
++                        'font-family:' +  this.ftFam + ';'+
++                        'font-size:' + this.ftSz + ';'+
++                        'color:' + this.color + ';' + this.ftSty + '">'+
++                        txt +
++                        '<\/div>';
++        }
++
++
++        this.drawImage = function(imgSrc, x, y, w, h)
++        {
++                this.htm += '<div style="position:absolute;'+
++                        'left:' + x + 'px;'+
++                        'top:' + y + 'px;'+
++                        'width:' +  w + ';'+
++                        'height:' + h + ';">'+
++                        '<img src="' + imgSrc + '" width="' + w + '" height="' + h + '">'+
++                        '<\/div>';
++        }
++
++
++        this.clear = function()
++        {
++                this.htm = "";
++                if (this.cnv) this.cnv.innerHTML = this.defhtm;
++        };
++
++
++        this.mkOvQds = function(cx, cy, xl, xr, yt, yb, w, h)
++        {
++                this.mkDiv(xr+cx, yt+cy, w, h);
++                this.mkDiv(xr+cx, yb+cy, w, h);
++                this.mkDiv(xl+cx, yb+cy, w, h);
++                this.mkDiv(xl+cx, yt+cy, w, h);
++        };
++
++        this.setStroke(1);
++        this.setFont('verdana,geneva,helvetica,sans-serif', String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN);
++        this.color = '#000000';
++        this.htm = '';
++        this.wnd = wnd || window;
++
++        if (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM();
++        if (typeof id != 'string' || !id) this.paint = pntDoc;
++        else
++        {
++                this.cnv = document.all? (this.wnd.document.all[id] || null)
++                        : document.getElementById? (this.wnd.document.getElementById(id) || null)
++                        : null;
++                this.defhtm = (this.cnv && this.cnv.innerHTML)? this.cnv.innerHTML : '';
++                this.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv;
++        }
++
++        this.setPrintable(false);
++}
++
++
++
+ function integer_compare(x,y)
+-{return(x<y)?-1:((x>y)*1);}
+\ No newline at end of file
++{
++        return (x < y) ? -1 : ((x > y)*1);
++}
++
+Index: http/frames/index.php
+===================================================================
+--- http/frames/index.php	(revision 2361)
++++ http/frames/index.php	(working copy)
+@@ -18,14 +18,22 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require("../php/mb_validateSession.php");
+ 
+-require("../php/mb_validateSession.php");
+-$_SESSION["mb_user_gui"] = $_REQUEST["gui_id"];
+-require_once("../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
++//
++// check if user is allowed to access current GUI; 
++// if not, return to login screen
++//
++if (!in_array($gui_id, $_SESSION["mb_user_guis"])) {
++	$e = new mb_exception("mb_validateSession.php: User: " . $_SESSION["mb_user_id"] . " not allowed to access GUI " . $gui_id);
++	header("Location: ".LOGIN);
++	die();
++}
++
++// user is allowed to access GUI, set in session.
++$_SESSION["mb_user_gui"] = $gui_id;
+ 
++// what is this for?
+ $pattern = '/sessionID/';
+ 
+ ?>
+@@ -41,13 +49,12 @@
+ <meta http-equiv="cache-control" content="no-cache">
+ <meta http-equiv="pragma" content="no-cache">
+ <meta http-equiv="expires" content="0">
++<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET;?>">	
++<title><?php echo $gui_id;?> - presented by Mapbender</title>
+ <?php
+-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+-?>
+-<title><?php  echo  $_REQUEST["gui_id"];?> - presented by Mapbender</title>
+-<?php
+-$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = 'body' AND fkey_gui_id = $1 and var_type='file/css'";
+-$v = array($_REQUEST["gui_id"]);
++$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = 'body' AND ";
++$sql .= "fkey_gui_id = $1 and var_type='file/css'";
++$v = array($gui_id);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+ $cnt = 0;
+@@ -58,11 +65,11 @@
+ <style type="text/css">
+ <!--
+ <?php
+-$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = 'body' AND fkey_gui_id = $1 and var_type='text/css'";
+-$v = array($_REQUEST["gui_id"]);
++$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = 'body' AND ";
++$sql .= "fkey_gui_id = $1 and var_type='text/css'";
++$v = array($gui_id);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+-$cnt = 0;
+ while($row = db_fetch_array($res)){
+ 	echo $row["var_value"];
+ }
+@@ -74,9 +81,10 @@
+ <script type='text/javascript' src="../javascripts/point.js"></script>
+ <script type='text/javascript' src="../javascripts/map_obj.js"></script>
+ <script type='text/javascript' src="../javascripts/wfs_obj.js"></script>
++
+ <?php
+-echo "<script type='text/javascript' src='../javascripts/map.php?gui_id=".$_REQUEST["gui_id"]."&".strip_tags(SID)."&mb_myBBOX=".$_REQUEST["mb_myBBOX"]."'></script>";
+-echo "<script type='text/javascript' src='../php/mod_createJSObjFromDB.php?". strip_tags (SID)."'></script>";
++echo "<script type='text/javascript' src='../javascripts/map.php?" . $urlParameters . "&mb_myBBOX=".$_REQUEST["mb_myBBOX"]."'></script>";
++echo "<script type='text/javascript' src='../php/mod_createJSObjFromDB.php?". $urlParameters . "'></script>";
+ /*********************************************/
+ $frame = "";
+ /*********************************************/
+@@ -82,15 +90,13 @@
+ /*********************************************/
+ 
+ $sql = "SELECT DISTINCT e_mb_mod FROM gui_element WHERE e_public = 1 AND fkey_gui_id = $1";
+-$v = array($_REQUEST["gui_id"]);
++$v = array($gui_id);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+-$cnt = 0;
+ while($row = db_fetch_array($res)){
+ 	if($row["e_mb_mod"] != ""){
+-		echo "<script type='text/javascript' src='../javascripts/".trim($row["e_mb_mod"])."?gui_id=".$_REQUEST["gui_id"]."'></script> ";
++		echo "<script type='text/javascript' src='../javascripts/".trim($row["e_mb_mod"])."?".$urlParameters."'></script> ";
+ 	}
+-	$cnt++;
+ }
+ ?>
+ </head>
+@@ -96,7 +102,7 @@
+ </head>
+ <?php
+ $sql = "SELECT * FROM gui_element WHERE e_public = 1 AND fkey_gui_id = $1 ORDER BY e_pos";
+-$v = array($_REQUEST["gui_id"]);
++$v = array($gui_id);
+ $t = array('s');
+ $res = db_prep_query($sql,$v,$t);
+ $i = 0;
+@@ -101,7 +107,7 @@
+ $res = db_prep_query($sql,$v,$t);
+ $i = 0;
+ while(db_fetch_row($res)){
+-	$replacement = SID."&guiID=".$_REQUEST["gui_id"]."&elementID=".db_result($res,$i,"e_id");
++	$replacement = $urlParameters . "&elementID=" . db_result($res,$i,"e_id");
+ 	echo "<".db_result($res,$i,"e_element")." ";
+ 	if(db_result($res,$i,"e_id") != ""){
+ 		echo " id='".db_result($res,$i,"e_id")."'";
+Index: http/frames/login.php
+===================================================================
+--- http/frames/login.php	(revision 2361)
++++ http/frames/login.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-# $Id: login.php 76 2006-08-15 12:25:34Z heuser $
++# $Id$
+ # Copyright (C) 2002 CCGIS 
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -152,8 +152,10 @@
+ 	}	
+ 	if($_SESSION["mb_user_id"]){
+ 		if($row["mb_user_login_count"] < $loginMax){
+-			$sql_del_cnt =  "UPDATE mb_user SET mb_user_login_count = 0 WHERE mb_user_id = " . $_SESSION['mb_user_id'];
+-			db_query($sql_del_cnt);
++			$sql_del_cnt =  "UPDATE mb_user SET mb_user_login_count = 0 WHERE mb_user_id = $1";
++			$v = array($_SESSION['mb_user_id']);
++			$t = array("i");
++			db_prep_query($sql_del_cnt, $v, $t);
+ 			require_once(dirname(__FILE__)."/../php/mb_getGUIs.php");
+ 			$arrayGUIs = mb_getGUIs($row["mb_user_id"]);
+ 			$_SESSION["mb_user_guis"] = $arrayGUIs;
+Index: http/include/dyn_css.php
+===================================================================
+--- http/include/dyn_css.php	(revision 2361)
++++ http/include/dyn_css.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ 
+Index: http/include/dyn_js.php
+===================================================================
+--- http/include/dyn_js.php	(revision 2361)
++++ http/include/dyn_js.php	(working copy)
+@@ -17,6 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ if(isset($gui_id))
+ {
+ 	$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = $1 AND fkey_gui_id = $2 and var_type='var'";
+Index: http/include/dyn_php.php
+===================================================================
+--- http/include/dyn_php.php	(revision 2361)
++++ http/include/dyn_php.php	(working copy)
+@@ -17,6 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ if(isset($gui_id))
+ {
+ 	$sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = $1 and var_type='php_var'";
+Index: http/index.php
+===================================================================
+--- http/index.php	(revision 2361)
++++ http/index.php	(working copy)
+@@ -109,7 +109,7 @@
+ 		
+ 			<div class="mapbender_welcome">Welcome to <font align="left" color="#000000">Ma</font><font color="#0000CE">p</font><font color="#C00000">b</font><font color="#000000">ender</font></div>
+ 		
+-		<font color="#ff0000">Mapbender Version 2.4.3 (2007-10-05)</font>
++		<font color="#ff0000">Mapbender Version 2.4.5 (2008-04-07)</font>
+ 		</td></tr>
+ 	</table>
+ <br>
+Index: http/javascripts/map.js
+===================================================================
+--- http/javascripts/map.js	(revision 2361)
++++ http/javascripts/map.js	(working copy)
+@@ -44,7 +44,7 @@
+ return bbox_minx+","+bbox_miny+","+bbox_maxx+","+bbox_maxy;}}}
+ function setMapRequest(frameName){var functionName='setMapRequest';var ts=mb_timestamp();for(var i=0;i<mb_MapRequestPreFunctions.length;i++){var ret=eval(mb_MapRequestPreFunctions[i]);if(ret==false){return true;}}
+ for(var i=0;i<mb_mapObj.length;i++){var newMapRequest="";if(mb_mapObj[i].frameName==frameName){for(var ii=0;ii<mb_mapObj[i].wms.length;ii++){if(mb_mapObj[i].wms[ii].gui_wms_visible>0){var myDivId="div_"+ii;var myMapId="map_"+ii;var str_LayerStyles=mb_checkScale(frameName,i,ii);if(mb_mapObj[i].layers[ii]!=""&&str_LayerStyles[0]!=''){var newMapURL="";if(mb_mapObj[i].wms[ii].gui_wms_mapopacity!=1){var cadenaOpacity="opacity:"+mb_mapObj[i].wms[ii].gui_wms_mapopacity+"; Filter: Alpha(Opacity="+mb_mapObj[i].wms[ii].gui_wms_mapopacity*100+"); -moz-opacity:"+mb_mapObj[i].wms[ii].gui_wms_mapopacity+" ; -khtml-opacity:"+mb_mapObj[i].wms[ii].gui_wms_mapopacity;newMapRequest+="<div id='"+myDivId+"' style=\"position:absolute; top:0px; left:0px; z-index:"+ii+";"+cadenaOpacity+"\">";}
+-else{newMapRequest+="<div id='"+myDivId+"' style='position:absolute; top:0px; left:0px; z-index:'"+ii+"'>";}
++else{newMapRequest+="<div id='"+myDivId+"' style='position:absolute; top:0px; left:0px; z-index:"+ii+"'>";}
+ newMapRequest+="<img id='"+myMapId+"' name='mapimage' src='";newMapURL+=mb_mapObj[i].wms[ii].wms_getmap;newMapURL+=mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);if(mb_mapObj[i].wms[ii].wms_version=="1.0.0"){newMapURL+="WMTVER="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=map&";}
+ if(mb_mapObj[i].wms[ii].wms_version!="1.0.0"){newMapURL+="VERSION="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=GetMap&SERVICE=WMS&";}
+ newMapURL+="LAYERS="+str_LayerStyles[0]+"&";newMapURL+="STYLES="+str_LayerStyles[1]+"&";newMapURL+="SRS="+mb_mapObj[i].epsg+"&";newMapURL+="BBOX="+mb_mapObj[i].extent+"&";newMapURL+="WIDTH="+mb_mapObj[i].width+"&";newMapURL+="HEIGHT="+mb_mapObj[i].height+"&";newMapURL+="FORMAT="+mb_mapObj[i].wms[ii].gui_wms_mapformat+"&";newMapURL+="BGCOLOR=0xffffff&";if(mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/gif/i)>-1||mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/png/i)>-1){newMapURL+="TRANSPARENT=TRUE&";}
+Index: http/javascripts/map.php
+===================================================================
+--- http/javascripts/map.php	(revision 2361)
++++ http/javascripts/map.php	(working copy)
+@@ -17,8 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ob_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ 
+ // see http://trac.osgeo.org/mapbender/ticket/79
+ ini_set('session.bug_compat_42',0); 
+@@ -24,7 +24,6 @@
+ ini_set('session.bug_compat_42',0); 
+ ini_set('session.bug_compat_warn',0);
+ 
+-session_start();
+ header('Content-type: application/x-javascript');
+ 
+ echo "var mb_nr = '".session_id()."';";
+@@ -38,12 +37,13 @@
+ 
+ include("map.js");
+ 
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++$mb_sql = "SELECT DISTINCT e_js_file, e_id, e_src, e_target, e_pos ";
++$mb_sql .= "FROM gui_element WHERE e_public = 1 AND fkey_gui_id = $1 ";
++$mb_sql .= "ORDER BY e_pos";
++$v = array($gui_id);
++$t = array("s");
++$mb_res = db_prep_query($mb_sql, $v, $t);
+ 
+-$mb_sql = "SELECT DISTINCT e_js_file, e_id, e_src, e_target, e_pos FROM gui_element WHERE e_public = 1 AND fkey_gui_id = '".$_REQUEST["gui_id"]."' ORDER BY e_pos";
+-$mb_res = db_query($mb_sql);
+-//$mb_cnt = 0;
+ while($row_js = db_fetch_array($mb_res)){
+ 	if($row_js["e_js_file"] != ""){
+ 		$e_id = $row_js["e_id"];
+Index: http/javascripts/mod_add_vendorspecific.php
+===================================================================
+--- http/javascripts/mod_add_vendorspecific.php	(revision 2361)
++++ http/javascripts/mod_add_vendorspecific.php	(working copy)
+@@ -18,6 +18,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ ?>
+ mb_registerVendorSpecific("mod_vs_init()");
+ function mod_vs_init(){   
+Index: http/javascripts/mod_addWMS.php
+===================================================================
+--- http/javascripts/mod_addWMS.php	(revision 2361)
++++ http/javascripts/mod_addWMS.php	(working copy)
+@@ -17,12 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ $sql = "SELECT e_requires, e_target FROM gui_element WHERE e_id = 'addWMS' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+Index: http/javascripts/mod_addWMSfromfilteredList.php
+===================================================================
+--- http/javascripts/mod_addWMSfromfilteredList.php	(revision 2361)
++++ http/javascripts/mod_addWMSfromfilteredList.php	(working copy)
+@@ -17,7 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+ ?>
+@@ -247,14 +246,20 @@
+ 
+ $arrayGuis=mb_getGUIs($logged_user_id);
+ $sql_gui = "SELECT * FROM gui WHERE gui_id IN (";
++$v = $arrayGuis;
++$t = array();
+ 
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui .= ",";}
+-	$sql_gui .= "'".$arrayGuis[$i]."'";
++for ($i = 1; $i <= count($arrayGuis); $i++){
++	if ($i > 1) { 
++		$sql_gui .= ",";
++	}
++	$sql_gui .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql_gui.= ") ORDER BY gui_name";
+ 
+-$res_gui = db_query($sql_gui);
++
++$res_gui = db_prep_query($sql_gui, $v, $t);
+ 				while($row = db_fetch_array($res_gui)){
+ 					$gui_id[$cnt_gui] = $row["gui_id"];
+ 					$gui_name[$cnt_gui] = $row["gui_name"];
+@@ -266,14 +271,18 @@
+ 				 
+ /*get allocated wms from allocated gui  ********************************************************************************************/								 
+ $sql_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id IN (";
+-
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui_wms .= ",";}
+-	$sql_gui_wms .= "'".$arrayGuis[$i]."'";
++$v = $arrayGuis;
++$t = array();
++for ($i = 1; $i <= count($arrayGuis); $i++){
++	if ($i > 1) { 
++		$sql_gui_wms .= ",";
++	}
++	$sql_gui_wms .= "$".$i;
++	array_push($t, "s");
+ }
+ $sql_gui_wms.= ") ORDER BY fkey_wms_id";
+ 
+-$res_gui_wms = db_query($sql_gui_wms);
++$res_gui_wms = db_prep_query($sql_gui_wms, $v, $t);
+ while($row = db_fetch_array($res_gui_wms)){
+ 				$fkey_gui_id[$cnt_gui_wms] = $row["fkey_gui_id"];
+ 	$fkey_wms_id[$cnt_gui_wms] = $row["fkey_wms_id"];
+@@ -283,14 +292,18 @@
+ 
+ /*get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ $sql_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_version FROM wms WHERE wms_id IN (";
+-
+-for($i=0; $i<count($fkey_wms_id); $i++){
+-	if($i>0){ $sql_wms .= ",";}
+-	$sql_wms .= "'".$fkey_wms_id[$i]."'";
++$v = $fkey_wms_id;
++$t = array();
++for ($i = 1; $i <= count($fkey_wms_id); $i++){
++	if ($i > 1) { 
++		$sql_wms .= ",";
++	}
++	$sql_wms .= "$".$i;
++	array_push($t, "s");
+ }
+ $sql_wms.= ") ORDER BY wms_title";
+ 
+-$res_wms = db_query($sql_wms);
++$res_wms = db_prep_query($sql_wms, $v, $t);
+ 				while($row = db_fetch_array($res_wms)){
+ 					$wms_title[$cnt_wms] = $row["wms_title"];
+ 					$wms_abstract[$cnt_wms] = $row["wms_abstract"];
+@@ -302,7 +315,7 @@
+ 
+ 
+ /*INSERT HTML*/
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self . "' method='post'>";
+ # Button
+ echo "<table border='0' cellpadding='3'  rules='rows'>";
+ echo "<tr>";
+@@ -324,8 +337,10 @@
+ #if (isset($show_group_wms))
+ if (!empty($show_group_wms)){
+ 	/*get gui goup   ********************************************************************************************/
+-	$sql_gui_mb_group = "SELECT fkey_gui_id, fkey_mb_group_id FROM gui_mb_group WHERE fkey_mb_group_id='".$show_group_wms."'";
+-	$res_gui_mb_group = db_query($sql_gui_mb_group);
++	$sql_gui_mb_group = "SELECT fkey_gui_id, fkey_mb_group_id FROM gui_mb_group WHERE fkey_mb_group_id=$1";
++	$v = array($show_group_wms);
++	$t = array("s");
++	$res_gui_mb_group = db_prep_query($sql_gui_mb_group, $v, $t);
+ 
+ 				while($row = db_fetch_array($res_gui_mb_group)){
+ 					$group_gui_id[$cnt_gui_mb_group] = $row["fkey_gui_id"];
+@@ -339,13 +354,18 @@
+ 	/*get group gui WMS  ********************************************************************************************/
+ 	if(count($group_gui_id)>0)	{								 
+ 		$sql_fkey_group_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id IN (";
+-		for($i=0; $i<count($group_gui_id); $i++){
+-			if($i>0){ $sql_fkey_group_gui_wms .= ",";}
+-			$sql_fkey_group_gui_wms .= "'".$group_gui_id[$i]."'";
++		$v = $group_gui_id;
++		$t = array();
++		for ($i = 1; $i <= count($group_gui_id); $i++){
++			if ($i > 1) { 
++				$sql_fkey_group_gui_wms .= ",";
++			}
++			$sql_fkey_group_gui_wms .= "$".$i;
++			array_push($t, "s");
+ 		}
+ 		$sql_fkey_group_gui_wms.=  ") ORDER BY fkey_wms_id";
+ 		
+-		$res_fkey_group_gui_wms = db_query($sql_fkey_group_gui_wms);
++		$res_fkey_group_gui_wms = db_prep_query($sql_fkey_group_gui_wms, $v, $t);
+ 		while($row = db_fetch_array($res_fkey_group_gui_wms)){
+ 			$fkey_group_gui_gui_id[$cnt_fkey_group_gui_wms] = $row["fkey_gui_id"];
+ 			$fkey_group_gui_wms_id[$cnt_fkey_group_gui_wms] = $row["fkey_wms_id"];
+@@ -358,14 +378,18 @@
+ 		/*group: get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ 		if(count($fkey_group_gui_wms_id)>0){
+ 			$sql_group_gui_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_version FROM wms WHERE wms_id IN (";
+-		  
+-			for($i=0; $i<count($fkey_group_gui_wms_id); $i++){
+-				if($i>0){ $sql_group_gui_wms .= ",";}
+-				$sql_group_gui_wms .= "'".$fkey_group_gui_wms_id[$i]."'";
++			$v = $fkey_group_gui_wms_id;
++			$t = array();
++			for ($i = 1; $i <= count($fkey_group_gui_wms_id); $i++){
++				if ($i > 1) { 
++					$sql_group_gui_wms .= ",";
++				}
++				$sql_group_gui_wms .= "$".$i;
++				array_push($t, "s");
+ 			}
+ 			$sql_group_gui_wms.= ") ORDER BY wms_title";
+ 		  
+-			$res_group_gui_wms = db_query($sql_group_gui_wms);
++			$res_group_gui_wms = db_prep_query($sql_group_gui_wms, $v, $t);
+ 			while($row = db_fetch_array($res_group_gui_wms)){
+ 				$group_wms_title[$cnt_group_gui_wms] = $row["wms_title"];
+ 				$group_wms_abstract[$cnt_group_gui_wms] = $row["wms_abstract"];
+@@ -383,8 +407,10 @@
+ 	#if ($show_group_wms > 0)
+ 	if ($cnt_group_gui_wms > 0){
+ 		/*get goup name for showing in the table ********************************************************************************************/								 
+-		$sql_group_name = "SELECT mb_group_id, mb_group_name FROM mb_group WHERE mb_group_id ='".$show_group_wms."'";   
+-		$res_group_name = db_query($sql_group_name);
++		$sql_group_name = "SELECT mb_group_id, mb_group_name FROM mb_group WHERE mb_group_id = $1";   
++		$v = array($show_group_wms);
++		$t = array("s");
++		$res_group_name = db_prep_query($sql_group_name, $v, $t);
+ 		while($row = db_fetch_array($res_group_name)){
+ 			$group_name_table[$cnt_group_name] = $row["mb_group_name"];
+ 			$my_group_id_table[$cnt_group_name] = $row["mb_group_id"];
+@@ -426,10 +452,12 @@
+ /*show gui wms  ********************************************************************************************/
+ if (!empty($show_gui_wms)){
+ 	/*get group gui WMS  ********************************************************************************************/								 
+-	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id ='".$show_gui_wms."'";
++	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id = $1";
++	$v = array($show_gui_wms);
++	$t = array("s");
+ 	#$sql_fkey_show_gui_wms.= ") ORDER BY fkey_wms_id";
+ 
+-	$res_fkey_show_gui_wms = db_query($sql_fkey_show_gui_wms);
++	$res_fkey_show_gui_wms = db_prep_query($sql_fkey_show_gui_wms, $v, $t);
+ 	while($row = db_fetch_array($res_fkey_show_gui_wms)){
+ 		$fkey_show_gui_gui_id[$cnt_fkey_show_gui_wms] = $row["fkey_gui_id"];
+ 		$fkey_show_gui_wms_id[$cnt_fkey_show_gui_wms] = $row["fkey_wms_id"];
+@@ -441,14 +469,18 @@
+ 	/*gui: get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ 	if(count($fkey_show_gui_wms_id)>0){
+ 		$sql_show_gui_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_id, wms_version FROM wms WHERE wms_id IN (";
+-
+-		for($i=0; $i<count($fkey_show_gui_wms_id); $i++){
+-			if($i>0){ $sql_show_gui_wms .= ",";}
+-			$sql_show_gui_wms .= "'".$fkey_show_gui_wms_id[$i]."'";
++		$v = $fkey_show_gui_wms_id;
++		$t = array();
++		for ($i = 1; $i <= count($fkey_show_gui_wms_id); $i++){
++			if ($i > 1) { 
++				$sql_show_gui_wms .= ",";
++			}
++			$sql_show_gui_wms .= "$".$i;
++			array_push($t, "s");
+ 		}
+ 		$sql_show_gui_wms.= ") ORDER BY wms_title";
+ 
+-		$res_show_gui_wms = db_query($sql_show_gui_wms);
++		$res_show_gui_wms = db_prep_query($sql_show_gui_wms, $v, $t);
+ 		while($row = db_fetch_array($res_show_gui_wms)){
+ 			$gui_wms_id[$cnt_show_gui_wms] = $row["wms_id"];
+ 			$gui_wms_title[$cnt_show_gui_wms] = $row["wms_title"];
+@@ -466,8 +498,10 @@
+ 
+ 	if ($cnt_show_gui_wms > 0){
+ 	/*get selected gui name for table caption ********************************************************************************************/  
+-	$sql_gui_table = "SELECT * FROM gui WHERE gui_id ='".$show_gui_wms."'";       
+-	$res_gui_table = db_query($sql_gui_table);
++	$sql_gui_table = "SELECT * FROM gui WHERE gui_id = $1";       
++	$v = array($show_gui_wms);
++	$t = array("s");
++	$res_gui_table = db_prep_query($sql_gui_table, $v, $t);
+ 		while($row = db_fetch_array($res_gui_table)){
+ 			$gui_id_table[$cnt_gui_table] = $row["gui_id"];
+ 			$gui_name_table[$cnt_gui_table] = $row["gui_name"];							
+@@ -513,10 +547,11 @@
+ /*show gui wms  ********************************************************************************************/
+ if (!empty($show_gui_configured_wms)){
+ 	/*get group gui WMS  ********************************************************************************************/								 
+-	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id ='".$show_gui_configured_wms."'";
++	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id = $1";
+ 	#$sql_fkey_show_gui_wms.= ") ORDER BY fkey_wms_id";
+-
+-	$res_fkey_show_gui_wms = db_query($sql_fkey_show_gui_wms);
++	$v = array($show_gui_configured_wms);
++	$t = array("s");
++	$res_fkey_show_gui_wms = db_prep_query($sql_fkey_show_gui_wms, $v, $t);
+ 	while($row = db_fetch_array($res_fkey_show_gui_wms)){
+ 		$fkey_show_gui_gui_id[$cnt_fkey_show_gui_wms] = $row["fkey_gui_id"];
+ 		$fkey_show_gui_wms_id[$cnt_fkey_show_gui_wms] = $row["fkey_wms_id"];
+@@ -528,14 +563,18 @@
+ 	/*gui: get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ 	if(count($fkey_show_gui_wms_id)>0){
+ 		$sql_show_gui_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_id, wms_version FROM wms WHERE wms_id IN (";
+-
+-		for($i=0; $i<count($fkey_show_gui_wms_id); $i++){
+-			if($i>0){ $sql_show_gui_wms .= ",";}
+-			$sql_show_gui_wms .= "'".$fkey_show_gui_wms_id[$i]."'";
++		$v = $fkey_show_gui_wms_id;
++		$t = array();
++		for ($i = 1; $i <= count($fkey_show_gui_wms_id); $i++){
++			if ($i > 1) { 
++				$sql_show_gui_wms .= ",";
++			}
++			$sql_show_gui_wms .= "$".$i;
++			array_push($t, "s");
+ 		}
+ 		$sql_show_gui_wms.= ") ORDER BY wms_title";
+ 
+-		$res_show_gui_wms = db_query($sql_show_gui_wms);
++		$res_show_gui_wms = db_prep_query($sql_show_gui_wms, $v, $t);
+ 		while($row = db_fetch_array($res_show_gui_wms)){
+ 			$gui_wms_id[$cnt_show_gui_wms] = $row["wms_id"];
+ 			$gui_wms_title[$cnt_show_gui_wms] = $row["wms_title"];
+@@ -553,8 +592,10 @@
+ 
+ 	if ($cnt_show_gui_wms > 0){
+ 	/*get selected gui name for table caption ********************************************************************************************/  
+-	$sql_gui_table = "SELECT * FROM gui WHERE gui_id ='".$show_gui_configured_wms."'";       
+-	$res_gui_table = db_query($sql_gui_table);
++	$sql_gui_table = "SELECT * FROM gui WHERE gui_id = $1";
++	$v = array($show_gui_configured_wms);
++	$t = array("s");       
++	$res_gui_table = db_prep_query($sql_gui_table, $v, $t);
+ 		while($row = db_fetch_array($res_gui_table)){
+ 			$gui_id_table[$cnt_gui_table] = $row["gui_id"];
+ 			$gui_name_table[$cnt_gui_table] = $row["gui_name"];							
+Index: http/javascripts/mod_addWMSfromfilteredList_ajax.php
+===================================================================
+--- http/javascripts/mod_addWMSfromfilteredList_ajax.php	(revision 2361)
++++ http/javascripts/mod_addWMSfromfilteredList_ajax.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+ 
+ ?>
+Index: http/javascripts/mod_addWMSfromfilteredListDB.php
+===================================================================
+--- http/javascripts/mod_addWMSfromfilteredListDB.php	(revision 2361)
++++ http/javascripts/mod_addWMSfromfilteredListDB.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-# $Id: mod_addWMSfromfilteredList.php 1274 2007-04-25 07:01:08Z christoph $
++# $Id$
+ # http://www.mapbender.org/index.php/mod_addWMSfromfilteredList.php
+ # Copyright (C) 2002 CCGIS 
+ #
+@@ -17,7 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -101,14 +100,18 @@
+ 
+ $arrayGuis=mb_getGUIs($logged_user_id);
+ $sql_gui = "SELECT * FROM gui WHERE gui_id IN (";
+-
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui .= ",";}
+-	$sql_gui .= "'".$arrayGuis[$i]."'";
++$v = $arrayGuis;
++$t = array();
++for ($i = 1; $i <= count($arrayGuis); $i++){
++	if ($i > 1) { 
++		$sql_gui .= ",";
++	}
++	$sql_gui .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql_gui.= ") ORDER BY gui_name";
+ 
+-$res_gui = db_query($sql_gui);
++$res_gui = db_prep_query($sql_gui, $v, $t);
+ 				while($row = db_fetch_array($res_gui)){
+ 					$gui_id[$cnt_gui] = $row["gui_id"];
+ 					$gui_name[$cnt_gui] = $row["gui_name"];
+@@ -120,14 +123,18 @@
+ 				 
+ /*get allocated wms from allocated gui  ********************************************************************************************/								 
+ $sql_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id IN (";
+-
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui_wms .= ",";}
+-	$sql_gui_wms .= "'".$arrayGuis[$i]."'";
++$v = $arrayGuis;
++$t = array();
++for ($i = 1; $i <= count($arrayGuis); $i++) {
++	if ($i > 1) { 
++		$sql_gui_wms .= ",";
++	}
++	$sql_gui_wms .= "$".$i;
++	array_push($t, "s");
+ }
+ $sql_gui_wms.= ") ORDER BY fkey_wms_id";
+ 
+-$res_gui_wms = db_query($sql_gui_wms);
++$res_gui_wms = db_prep_query($sql_gui_wms, $v, $t);
+ while($row = db_fetch_array($res_gui_wms)){
+ 				$fkey_gui_id[$cnt_gui_wms] = $row["fkey_gui_id"];
+ 	$fkey_wms_id[$cnt_gui_wms] = $row["fkey_wms_id"];
+@@ -137,14 +144,18 @@
+ 
+ /*get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ $sql_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_version FROM wms WHERE wms_id IN (";
+-
+-for($i=0; $i<count($fkey_wms_id); $i++){
+-	if($i>0){ $sql_wms .= ",";}
+-	$sql_wms .= "'".$fkey_wms_id[$i]."'";
++$v = $fkey_wms_id;
++$t = array();
++for ($i = 1; $i <= count($fkey_wms_id); $i++){
++	if ($i > 1) { 
++		$sql_wms .= ",";
++	}
++	$sql_wms .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql_wms.= ") ORDER BY wms_title";
+ 
+-$res_wms = db_query($sql_wms);
++$res_wms = db_prep_query($sql_wms, $v, $t);
+ 				while($row = db_fetch_array($res_wms)){
+ 					$wms_title[$cnt_wms] = $row["wms_title"];
+ 					$wms_abstract[$cnt_wms] = $row["wms_abstract"];
+@@ -156,7 +167,7 @@
+ 
+ 
+ /*INSERT HTML*/
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ 
+ if (empty($wms_show)){ #gui
+ 	echo $selectGuiText;
+@@ -181,10 +192,12 @@
+ 	echo "<input type='button' class='wms_button' name='wms2' value='" . $selectOtherGuiText . "' onclick = 'mod_show_gui()'></td>";
+ 
+ 	/*get group gui WMS  ********************************************************************************************/								 
+-	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id ='".$wms_show."'";
++	$sql_fkey_show_gui_wms = "SELECT DISTINCT fkey_wms_id, fkey_gui_id FROM gui_wms WHERE fkey_gui_id = $1";
+ 	#$sql_fkey_show_gui_wms.= ") ORDER BY fkey_wms_id";
+ 
+-	$res_fkey_show_gui_wms = db_query($sql_fkey_show_gui_wms);
++	$v = array($wms_show);
++	$t = array("s");
++	$res_fkey_show_gui_wms = db_prep_query($sql_fkey_show_gui_wms, $v, $t);
+ 	while($row = db_fetch_array($res_fkey_show_gui_wms)){
+ 		$fkey_show_gui_gui_id[$cnt_fkey_show_gui_wms] = $row["fkey_gui_id"];
+ 		$fkey_show_gui_wms_id[$cnt_fkey_show_gui_wms] = $row["fkey_wms_id"];
+@@ -196,14 +209,18 @@
+ 	/*gui: get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ 	if(count($fkey_show_gui_wms_id)>0){
+ 		$sql_show_gui_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities, wms_id, wms_version FROM wms WHERE wms_id IN (";
+-
+-		for($i=0; $i<count($fkey_show_gui_wms_id); $i++){
+-			if($i>0){ $sql_show_gui_wms .= ",";}
+-			$sql_show_gui_wms .= "'".$fkey_show_gui_wms_id[$i]."'";
++		$v = $fkey_show_gui_wms_id;
++		$t = array();
++		for ($i = 1; $i <= count($fkey_show_gui_wms_id); $i++){
++			if ($i > 1) { 
++				$sql_show_gui_wms .= ",";
++			}
++			$sql_show_gui_wms .= "$".$i;
++			array_push($t, "s");
+ 		}
+ 		$sql_show_gui_wms.= ") ORDER BY wms_title";
+ 
+-		$res_show_gui_wms = db_query($sql_show_gui_wms);
++		$res_show_gui_wms = db_prep_query($sql_show_gui_wms, $v, $t);
+ 		while($row = db_fetch_array($res_show_gui_wms)){
+ 			$gui_wms_id[$cnt_show_gui_wms] = $row["wms_id"];
+ 			$gui_wms_title[$cnt_show_gui_wms] = $row["wms_title"];
+@@ -221,8 +238,10 @@
+ 
+ 	if ($cnt_show_gui_wms > 0){
+ 	/*get selected gui name for table caption ********************************************************************************************/  
+-	$sql_gui_table = "SELECT * FROM gui WHERE gui_id ='".$wms_show."'";       
+-	$res_gui_table = db_query($sql_gui_table);
++	$sql_gui_table = "SELECT * FROM gui WHERE gui_id = $1";
++	$v = array($wms_show);
++	$t = array("s");       
++	$res_gui_table = db_prep_query($sql_gui_table, $v, $t);
+ 		while($row = db_fetch_array($res_gui_table)){
+ 			$gui_id_table[$cnt_gui_table] = $row["gui_id"];
+ 			$gui_name_table[$cnt_gui_table] = $row["gui_name"];							
+Index: http/javascripts/mod_addWMSfromList.php
+===================================================================
+--- http/javascripts/mod_addWMSfromList.php	(revision 2361)
++++ http/javascripts/mod_addWMSfromList.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-# $Id: mod_addWMSfromList.php 76 2006-08-15 12:25:34Z heuser $
++# $Id$
+ # http://www.mapbender.org/index.php/mod_addWMSfromList.php
+ # Copyright (C) 2002 CCGIS 
+ #
+@@ -17,7 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+ 
+@@ -110,14 +109,18 @@
+ $arrayGuis=mb_getGUIs($logged_user_id);
+ 
+ $sql_gui = "SELECT * FROM gui WHERE gui_id IN (";
+-
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui .= ",";}
+-	$sql_gui .= "'".$arrayGuis[$i]."'";
++$v = $arrayGuis;
++$t = array();
++for ($i = 1; $i <= count($arrayGuis); $i++){
++	if ($i > 1) { 
++		$sql_gui .= ",";
++	}
++	$sql_gui .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql_gui.= ") ORDER BY gui_name";
+ 
+-$res_gui = db_query($sql_gui);
++$res_gui = db_prep_query($sql_gui, $v, $t);
+ while($row = db_fetch_array($res_gui)){
+ 	$gui_id[$cnt_gui] = $row["gui_id"];
+ 	$gui_name[$cnt_gui] = $row["gui_name"];
+@@ -127,14 +130,18 @@
+ 
+ /*get allocated wms from allocated gui  ********************************************************************************************/								 
+ $sql_gui_wms = "SELECT DISTINCT fkey_wms_id FROM gui_wms WHERE fkey_gui_id IN (";
+-
+-for($i=0; $i<count($arrayGuis); $i++){
+-	if($i>0){ $sql_gui_wms .= ",";}
+-	$sql_gui_wms .= "'".$arrayGuis[$i]."'";
++$v = $arrayGuis;
++$t = array();
++for ($i = 1; $i <= count($arrayGuis); $i++){
++	if ($i > 1) { 
++		$sql_gui_wms .= ",";
++	}
++	$sql_gui_wms .= "$".$i;
++	array_push($t, "s");
+ }
+ $sql_gui_wms.= ") ORDER BY fkey_wms_id";
+ 
+-$res_gui_wms = db_query($sql_gui_wms);
++$res_gui_wms = db_prep_query($sql_gui_wms, $v, $t);
+ while($row = db_fetch_array($res_gui_wms)){
+ 	$fkey_gui_id[$cnt_gui_wms] = $row["fkey_gui_id"];
+ 	$fkey_wms_id[$cnt_gui_wms] = $row["fkey_wms_id"];
+@@ -144,10 +151,14 @@
+ 
+ /*get allocated wms-Abstract and wms-Capabilities from allocated gui  ********************************************************************************************/								 
+ $sql_wms = "SELECT DISTINCT wms_title, wms_abstract, wms_getcapabilities,wms_version FROM wms WHERE wms_id IN (";
+-
+-for($i=0; $i<count($fkey_wms_id); $i++){
+-	if($i>0){ $sql_wms .= ",";}
+-	$sql_wms .= "'".$fkey_wms_id[$i]."'";
++$v = $fkey_wms_id;
++$t = array();
++for ($i = 1; $i <= count($fkey_wms_id); $i++){
++	if ($i > 1) { 
++		$sql_wms .= ",";
++	}
++	$sql_wms .= "$" . $i;
++	array_push($t, "s");
+ }
+ #$sql_wms.= ") ORDER BY wms_id";
+ $sql_wms.= ") ORDER BY wms_title";
+@@ -152,7 +163,7 @@
+ #$sql_wms.= ") ORDER BY wms_id";
+ $sql_wms.= ") ORDER BY wms_title";
+ 
+-$res_wms = db_query($sql_wms);
++$res_wms = db_prep_query($sql_wms, $v, $t);
+ while($row = db_fetch_array($res_wms)){
+ 	$wms_title[$cnt_wms] = $row["wms_title"];
+ 	$wms_abstract[$cnt_wms] = $row["wms_abstract"];
+Index: http/javascripts/mod_back.php
+===================================================================
+--- http/javascripts/mod_back.php	(revision 2361)
++++ http/javascripts/mod_back.php	(working copy)
+@@ -17,10 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'back' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_center1.php
+===================================================================
+--- http/javascripts/mod_center1.php	(revision 2361)
++++ http/javascripts/mod_center1.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'center1' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_coords.php
+===================================================================
+--- http/javascripts/mod_coords.php	(revision 2361)
++++ http/javascripts/mod_coords.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'showCoords' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_coords_div.php
+===================================================================
+--- http/javascripts/mod_coords_div.php	(revision 2361)
++++ http/javascripts/mod_coords_div.php	(working copy)
+@@ -16,11 +16,8 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'showCoords_div' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_copyright.php
+===================================================================
+--- http/javascripts/mod_copyright.php	(revision 2361)
++++ http/javascripts/mod_copyright.php	(working copy)
+@@ -17,9 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $e_id_css = 'copyright';
+-$gui_id = $_REQUEST["gui_id"];
+ include '../include/dyn_js.php';
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+Index: http/javascripts/mod_dependentDiv.php
+===================================================================
+--- http/javascripts/mod_dependentDiv.php	(revision 2361)
++++ http/javascripts/mod_dependentDiv.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'dependentDiv' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_dependentIframe.php
+===================================================================
+--- http/javascripts/mod_dependentIframe.php	(revision 2361)
++++ http/javascripts/mod_dependentIframe.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'dependentIframe' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_digitize_tab.php
+===================================================================
+--- http/javascripts/mod_digitize_tab.php	(revision 2361)
++++ http/javascripts/mod_digitize_tab.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+-require_once("../php/mb_validateSession.php");
+-require_once("../../conf/mapbender.conf");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $gui_id = $_SESSION["mb_user_gui"];
+@@ -641,38 +639,68 @@
+ 	smP += "<div class='t_img'>";
+ 	smP += "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
+ 
+-	for(var i=0; i<d.count(); i++){
+-		if (!nonTransactionalEditable && !isTransactional(d.get(i))) {
+-			nonTransactionalHighlight.add(d.get(i), nonTransactionalColor);
++	if (!nonTransactionalEditable) {
++		nonTransactionalHighlight.clean();
++	}
++	var smPArray = [];
++	smPArray[smPArray.length] = "<div class='t_img'>"
++			+ "<img src='"+parent.mb_trans.src+"' width='"+mod_digitize_width+"' height='0'></div>"
++			+ "<div class='t_img'>"
++			+ "<img src='"+parent.mb_trans.src+"' width='0' height='"+mod_digitize_height+"'></div>";
++	
++	var mapObj = parent.mb_mapObj[parent.getMapObjIndexByName(mod_digitize_target)];
++	var width = mapObj.width;
++	var height = mapObj.height;
++	var isMoveOrInsertOrDelete = mod_digitizeEvent == button_move || mod_digitizeEvent == button_insert || mod_digitizeEvent == button_delete;
++	var minDist = 5;
++
++	for(var i=0, lenGeomArray = d.count(); i < lenGeomArray; i++){
++		var currentGeomArray = d.get(i);
++
++		if (!nonTransactionalEditable && !isTransactional(currentGeomArray)) {
++			nonTransactionalHighlight.add(currentGeomArray, nonTransactionalColor);
+ 		}
+ 		else {
+-			for(var j=0; j<d.get(i).count(); j++){
+-				for(var k = 0; k < d.getGeometry(i,j).count(); k++){
+-					var pos = parent.makeRealWorld2mapPos(mod_digitize_target,d.getPoint(i,j,k).x,d.getPoint(i,j,k).y);
+-					
+-					if (!d.getGeometry(i,j).isComplete() && 
+-						( (k == 0 && d.get(i).geomType == parent.geomType.polygon) || (k == d.getGeometry(i,j).count()-1 && d.get(i).geomType == parent.geomType.line))) {
+-						smP += "<div class='bp' style='top:"+(pos[1]-2)+"px;left:"+(pos[0]-2)+"px;z-index:"+digitizeTransactionalZIndex+";background-color:"+linepointColor+"'";
+-					}
+-					else {
+-						smP += "<div class='bp' style='top:"+(pos[1]-2)+"px;left:"+(pos[0]-2)+"px;z-index:"+digitizeTransactionalZIndex+";'";
++			for(var j=0, lenGeom = currentGeomArray.count(); j < lenGeom ; j++){
++				var currentGeometry = d.getGeometry(i,j);
++				var isPolygon = currentGeomArray.geomType == parent.geomType.polygon;
++				var isLine = currentGeomArray.geomType == parent.geomType.line;
++				var isComplete = currentGeometry.isComplete();
++				var lastPaintedPoint = false;
++
++				for(var k = 0, lenPoint = currentGeometry.count(); k < lenPoint; k++){
++					var currentPoint = currentGeometry.get(k);
++					var currentPointMap = parent.realToMap(mod_digitize_target, currentPoint)
++
++					var isTooCloseToPrevious = lastPaintedPoint && (k > 0) && (Math.abs(currentPointMap.x-lastPaintedPoint.x) <= minDist && Math.abs(currentPointMap.y-lastPaintedPoint.y) <= minDist);
++					if (!isTooCloseToPrevious) {
++						var currentPointIsVisible = currentPointMap.x > 0 && currentPointMap.x < width && currentPointMap.y > 0 && currentPointMap.y < height;
++						if (currentPointIsVisible) {
++							if (!isComplete && ((k == 0 && isPolygon) || (k == lenPoint-1 && isLine))) {
++								smPArray[smPArray.length] = "<div class='bp' style='top:"+
++									(currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+
++									digitizeTransactionalZIndex+";background-color:"+linepointColor+"'";
++							}
++							else {
++								smPArray[smPArray.length] = "<div class='bp' style='top:"+(currentPointMap.y-2)+"px;left:"+(currentPointMap.x-2)+"px;z-index:"+digitizeTransactionalZIndex+";'";
++							}
++							if(k==0 && isPolygon && !isComplete){
++								smPArray[smPArray.length] = " title='"+closePolygon_title+"' ";
++							}
++							if(isMoveOrInsertOrDelete) {
++								smPArray[smPArray.length] = " onmouseover='parent.window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
++							}
++							smPArray[smPArray.length] = "></div>";
++							lastPaintedPoint = currentPointMap;
++						}
++						if (k > 0) {
++							points = parent.calculateVisibleDash(currentPointMap, previousPointMap, width, height);
++							if (points != false) {
++								smPArray[smPArray.length] = evaluateDashes(points[0], points[1], i, j, k);
++							}
++						}
+ 					}
+-					if(j==0 && d.get(i).geomType == parent.geomType.polygon && !d.getGeometry(i,j).isComplete()){
+-						smP += " title='"+closePolygon_title+"' ";
+-					}
+-					if(mod_digitizeEvent == button_move || mod_digitizeEvent == button_insert || mod_digitizeEvent == button_delete) {
+-						smP += " onmouseover='parent.window.frames[\""+mod_digitize_elName+"\"].handleBasepoint(this,"+i+","+j+","+k+")' ;";
+-					}
+-					smP += "></div>";
+-				}
+-				var mapObjInd = parent.getMapObjIndexByName(mod_digitize_target);
+-				for(var k = 1; k < d.getGeometry(i,j).count(); k++){
+-					var p0 = parent.realToMap(mod_digitize_target, d.getPoint(i,j,k));
+-					var p1 = parent.realToMap(mod_digitize_target, d.getPoint(i,j,k-1));
+-					points = parent.calculateVisibleDash(p0, p1, parent.mb_mapObj[mapObjInd].width, parent.mb_mapObj[mapObjInd].height);
+-					if (points != false) {
+-						smP += evaluateDashes(points[0], points[1], i, j, k);
+-					}
++					var previousPointMap = currentPointMap;
+ 				}
+ 			}
+ 		}
+@@ -677,7 +705,8 @@
+ 			}
+ 		}
+ 	}
+-	digitizeDivTag.write(smP);
++	digitizeDivTag.write(smPArray.join(""));
++        
+ }
+ 
+ function evaluateDashes(start, end, memberIndex, geomIndex, pointIndex){
+Index: http/javascripts/mod_displayWmc.php
+===================================================================
+--- http/javascripts/mod_displayWmc.php	(revision 2361)
++++ http/javascripts/mod_displayWmc.php	(working copy)
+@@ -16,7 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ 	
+ 	$wmc_id = $_GET["wmc_id"];
+Index: http/javascripts/mod_dragMapSize.php
+===================================================================
+--- http/javascripts/mod_dragMapSize.php	(revision 2361)
++++ http/javascripts/mod_dragMapSize.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'dragMapSize' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_dynamicOverview.php
+===================================================================
+--- http/javascripts/mod_dynamicOverview.php	(revision 2361)
++++ http/javascripts/mod_dynamicOverview.php	(working copy)
+@@ -18,9 +18,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $e_id_css = 'dynamicOverview';
+-$gui_id = $_REQUEST["gui_id"];
+ include '../include/dyn_js.php';
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+Index: http/javascripts/mod_embedded_legend.php
+===================================================================
+--- http/javascripts/mod_embedded_legend.php	(revision 2361)
++++ http/javascripts/mod_embedded_legend.php	(working copy)
+@@ -16,8 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/javascripts/mod_export_image.php
+===================================================================
+--- http/javascripts/mod_export_image.php	(revision 2361)
++++ http/javascripts/mod_export_image.php	(working copy)
+@@ -16,8 +16,8 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-session_start();
++
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/javascripts/mod_featureInfo.php
+===================================================================
+--- http/javascripts/mod_featureInfo.php	(revision 2361)
++++ http/javascripts/mod_featureInfo.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'featureInfo1' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_featureInfoRedirect.php
+===================================================================
+--- http/javascripts/mod_featureInfoRedirect.php	(revision 2361)
++++ http/javascripts/mod_featureInfoRedirect.php	(working copy)
+@@ -16,6 +16,8 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ 
+ /*
+Index: http/javascripts/mod_featureInfoTunnel.php
+===================================================================
+--- http/javascripts/mod_featureInfoTunnel.php	(revision 2361)
++++ http/javascripts/mod_featureInfoTunnel.php	(working copy)
+@@ -17,11 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'featureInfoTunnel' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_forward.php
+===================================================================
+--- http/javascripts/mod_forward.php	(revision 2361)
++++ http/javascripts/mod_forward.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'forward' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_gazetteerSQL_client.php
+===================================================================
+--- http/javascripts/mod_gazetteerSQL_client.php	(revision 2361)
++++ http/javascripts/mod_gazetteerSQL_client.php	(working copy)
+@@ -1,7 +1,5 @@
+ <?php
+-session_start();
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ 
+ $e_id = $_REQUEST["elementID"];
+ $e_target = explode(",", $_REQUEST["e_target"]);
+Index: http/javascripts/mod_getArea.php
+===================================================================
+--- http/javascripts/mod_getArea.php	(revision 2361)
++++ http/javascripts/mod_getArea.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'getArea' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+@@ -47,7 +43,7 @@
+ function mod_getArea_go(){
+ 	if(mod_measure_RX[mod_measure_RX.length -1] == mod_measure_RX[0] && mod_measure_RY[mod_measure_RY.length -1] == mod_measure_RY[0]){
+ 		var ind = getMapObjIndexByName(mod_getArea_target);
+-		var url = "../php/mod_evalArea.php?x=";
++		var url = "../php/mod_evalArea.php?<?php echo $urlParameters;?>&x=";
+ 		for(var i=0; i<mod_measure_RX.length;i++){
+ 			if(i>0){ url += ",";}
+ 			url += mod_measure_RX[i];
+Index: http/javascripts/mod_help.php
+===================================================================
+--- http/javascripts/mod_help.php	(revision 2361)
++++ http/javascripts/mod_help.php	(working copy)
+@@ -17,10 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-$gui_id = $_REQUEST["gui_id"];
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'help' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+Index: http/javascripts/mod_highlightPOI.php
+===================================================================
+--- http/javascripts/mod_highlightPOI.php	(revision 2361)
++++ http/javascripts/mod_highlightPOI.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-include("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'highlightPOI' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_home.php
+===================================================================
+--- http/javascripts/mod_home.php	(revision 2361)
++++ http/javascripts/mod_home.php	(working copy)
+@@ -15,10 +15,11 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ function mod_home_init(){
+ <?php
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+ echo "var url = '".LOGIN."';";
+ echo "var name = '".urlencode($_SESSION["mb_user_name"])."';";
+ echo "var pw = '".$_SESSION["mb_user_password"]."';";
+Index: http/javascripts/mod_initWmc.php
+===================================================================
+--- http/javascripts/mod_initWmc.php	(revision 2361)
++++ http/javascripts/mod_initWmc.php	(working copy)
+@@ -1,6 +1,10 @@
+ <?php
+-session_start();
+-$wmc_id = $_SESSION['mb_myWmc'];
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++if ($_SESSION['mb_myWmc'] && $_SESSION['mb_myWmc_action'] && in_array($_SESSION['mb_myWmc_action'], array("load", "merge", "append"))) {
++	$action = $_SESSION['mb_myWmc_action'];
++	$wmc_id = $_SESSION['mb_myWmc'];
++}
+ $user = $_SESSION['mb_user_id'];
+ $meetingPointId = $_SESSION['mb_myKml'];
+ 
+@@ -81,7 +85,7 @@
+ 			echo "wmc_id = '".$wmc_id."';";
+ 			$wmc = new wmc();
+ 			$wmc->createObjFromWMC_id($wmc_id);
+-			$js_wmc .= $wmc->createJsObjFromWMC("", $e_target[0], "load");
++			$js_wmc .= $wmc->createJsObjFromWMC("", $e_target[0], $action);
+ 			
+ 			if (!empty($x) && !empty($y) && !empty($icon)) {
+ 				
+Index: http/javascripts/mod_insertKmlIntoDb.php
+===================================================================
+--- http/javascripts/mod_insertKmlIntoDb.php	(revision 2361)
++++ http/javascripts/mod_insertKmlIntoDb.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-include("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ include("../classes/class_kml.php");
+-session_start();
+-$gui_id = $_REQUEST["gui_id"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+@@ -39,7 +37,7 @@
+ <?php
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+ ?>
+-<title>MB2 - <?php  echo  $_REQUEST["gui_id"];?></title>
++<title>MB2 - <?php echo $gui_id;?></title>
+ <?php
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+Index: http/javascripts/mod_insertLayerPreviewIntoDb.php
+===================================================================
+--- http/javascripts/mod_insertLayerPreviewIntoDb.php	(revision 2361)
++++ http/javascripts/mod_insertLayerPreviewIntoDb.php	(working copy)
+@@ -17,14 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-include("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-
+ 
+ function escByteA($binData) {
+    $search = array();
+Index: http/javascripts/mod_key.php
+===================================================================
+--- http/javascripts/mod_key.php	(revision 2361)
++++ http/javascripts/mod_key.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$gui_id = $_REQUEST["gui_id"];
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'keyHandler' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_legend.php
+===================================================================
+--- http/javascripts/mod_legend.php	(revision 2361)
++++ http/javascripts/mod_legend.php	(working copy)
+@@ -16,8 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $gui_id = $_SESSION["mb_user_gui"];
+Index: http/javascripts/mod_loadwmc.php
+===================================================================
+--- http/javascripts/mod_loadwmc.php	(revision 2361)
++++ http/javascripts/mod_loadwmc.php	(working copy)
+@@ -17,13 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_wmc.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect(DBSERVER, OWNER, PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'savewmc' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_measure.php
+===================================================================
+--- http/javascripts/mod_measure.php	(revision 2361)
++++ http/javascripts/mod_measure.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'measure' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_navFrame.php
+===================================================================
+--- http/javascripts/mod_navFrame.php	(revision 2361)
++++ http/javascripts/mod_navFrame.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ include '../include/dyn_js.php';
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++
+ $sql = "SELECT e_target,e_src FROM gui_element WHERE e_id = 'navFrame' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_owsproxy.php
+===================================================================
+--- http/javascripts/mod_owsproxy.php	(revision 2361)
++++ http/javascripts/mod_owsproxy.php	(working copy)
+@@ -16,8 +16,6 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-session_start();
+ 
+ include(dirname(__FILE__)."/../php/mb_validateSession.php");
+ include(dirname(__FILE__)."/../classes/class_administration.php");
+Index: http/javascripts/mod_pan.php
+===================================================================
+--- http/javascripts/mod_pan.php	(revision 2361)
++++ http/javascripts/mod_pan.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'pan1' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_perimeter.php
+===================================================================
+--- http/javascripts/mod_perimeter.php	(revision 2361)
++++ http/javascripts/mod_perimeter.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'perimeter' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_poi.php
+===================================================================
+--- http/javascripts/mod_poi.php	(revision 2361)
++++ http/javascripts/mod_poi.php	(working copy)
+@@ -1,6 +1,6 @@
+ <?php
+-require_once("../../conf/mapbender.conf");
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+@@ -314,7 +314,7 @@
+ 		}
+ 	}
+ 	if($has_result == false){echo "Kein Ergebnis!";}
+-	echo "<form action='" . $PHP_SELF . "?".SID."' method='post'>";
++	echo "<form action='" . $self."' method='post'>";
+ 	echo "</form>";
+ }
+ ?>
+Index: http/javascripts/mod_print1.php
+===================================================================
+--- http/javascripts/mod_print1.php	(revision 2361)
++++ http/javascripts/mod_print1.php	(working copy)
+@@ -17,9 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ include(dirname(__FILE__)."/../../conf/print.conf");
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/javascripts/mod_repaint.php
+===================================================================
+--- http/javascripts/mod_repaint.php	(revision 2361)
++++ http/javascripts/mod_repaint.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'repaint' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_resize_mapsize.php
+===================================================================
+--- http/javascripts/mod_resize_mapsize.php	(revision 2361)
++++ http/javascripts/mod_resize_mapsize.php	(working copy)
+@@ -20,10 +20,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$gui_id = $_REQUEST["gui_id"];
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ $e_id_css = "resizeMapsize";
+ include("../include/dyn_js.php");
+Index: http/javascripts/mod_sandclock.php
+===================================================================
+--- http/javascripts/mod_sandclock.php	(revision 2361)
++++ http/javascripts/mod_sandclock.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'sandclock' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_sandclock2.php
+===================================================================
+--- http/javascripts/mod_sandclock2.php	(revision 2361)
++++ http/javascripts/mod_sandclock2.php	(working copy)
+@@ -17,15 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'sandclock2' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+-$res = db_query($sql, $v, $t);
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){ 
+ 	$e_target = db_result($res,0,"e_target");
+Index: http/javascripts/mod_saveLayerPreview.php
+===================================================================
+--- http/javascripts/mod_saveLayerPreview.php	(revision 2361)
++++ http/javascripts/mod_saveLayerPreview.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once("../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'savewmc' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_savewmc.php
+===================================================================
+--- http/javascripts/mod_savewmc.php	(revision 2361)
++++ http/javascripts/mod_savewmc.php	(working copy)
+@@ -17,9 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once("../../conf/mapbender.conf");
+-
+-$gui_id = $_REQUEST["gui_id"];
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ include("../include/dyn_js.php");
+ 
+@@ -53,7 +51,7 @@
+ 	else {
+ 		generalTitle = prompt("Save WMC as...");
+ 	}
+-	mb_ajax_post("../php/mod_insertWmcIntoDb.php", {"saveInSession":session, "generalTitle":generalTitle, "mapObject":mb_mapObj[ind].toJSONString()}, function (result, status) {
++	mb_ajax_post("../php/mod_insertWmcIntoDb.php?<?php echo $urlParameters;?>", {"saveInSession":session, "generalTitle":generalTitle, "mapObject":mb_mapObj[ind].toJSONString()}, function (result, status) {
+ 		alert(result);
+ 	});
+ }
+\ No newline at end of file
+Index: http/javascripts/mod_saveWmcKml.php
+===================================================================
+--- http/javascripts/mod_saveWmcKml.php	(revision 2361)
++++ http/javascripts/mod_saveWmcKml.php	(working copy)
+@@ -17,12 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/mod_savewmc.php");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'savewmc' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_scalebar.php
+===================================================================
+--- http/javascripts/mod_scalebar.php	(revision 2361)
++++ http/javascripts/mod_scalebar.php	(working copy)
+@@ -17,10 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'scalebar' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_scaleHint.php
+===================================================================
+--- http/javascripts/mod_scaleHint.php	(revision 2361)
++++ http/javascripts/mod_scaleHint.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT  e_target FROM gui_element WHERE e_id = 'setScaleHint' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_scaleSel.php
+===================================================================
+--- http/javascripts/mod_scaleSel.php	(revision 2361)
++++ http/javascripts/mod_scaleSel.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'scaleSelect' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_scaleText.php
+===================================================================
+--- http/javascripts/mod_scaleText.php	(revision 2361)
++++ http/javascripts/mod_scaleText.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'scaleText' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_selArea.php
+===================================================================
+--- http/javascripts/mod_selArea.php	(revision 2361)
++++ http/javascripts/mod_selArea.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'selArea1' AND fkey_gui_id = '".$gui_id."'";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_selArea1.php
+===================================================================
+--- http/javascripts/mod_selArea1.php	(revision 2361)
++++ http/javascripts/mod_selArea1.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'selArea1' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_selectMapsize.php
+===================================================================
+--- http/javascripts/mod_selectMapsize.php	(revision 2361)
++++ http/javascripts/mod_selectMapsize.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'selectMapsize' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_setBackground.php
+===================================================================
+--- http/javascripts/mod_setBackground.php	(revision 2361)
++++ http/javascripts/mod_setBackground.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'setBackground' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_setBackground_all.php
+===================================================================
+--- http/javascripts/mod_setBackground_all.php	(revision 2361)
++++ http/javascripts/mod_setBackground_all.php	(working copy)
+@@ -18,11 +18,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'setBackground_all' AND fkey_gui_id = $1 ";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_setBBOX1.php
+===================================================================
+--- http/javascripts/mod_setBBOX1.php	(revision 2361)
++++ http/javascripts/mod_setBBOX1.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'setBBOX' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_setPOI2Scale.php
+===================================================================
+--- http/javascripts/mod_setPOI2Scale.php	(revision 2361)
++++ http/javascripts/mod_setPOI2Scale.php	(working copy)
+@@ -17,12 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-include("../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-$sql = "SELECT e_target FROM gui_element WHERE e_id = 'setPOI2Scale' AND fkey_gui_id = '".$gui_id."'";
+-$res = db_query($sql);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++$sql = "SELECT e_target FROM gui_element WHERE e_id = 'setPOI2Scale' AND fkey_gui_id = $1";
++$v = array($gui_id);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ 
+ while($row = db_fetch_array($res)){ 
+Index: http/javascripts/mod_setTimeout.php
+===================================================================
+--- http/javascripts/mod_setTimeout.php	(revision 2361)
++++ http/javascripts/mod_setTimeout.php	(working copy)
+@@ -18,10 +18,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $e_id_css = 'timeout';
+-$gui_id = $_REQUEST["gui_id"];
+ include '../include/dyn_js.php';
+ 
+ ?>
+Index: http/javascripts/mod_state.php
+===================================================================
+--- http/javascripts/mod_state.php	(revision 2361)
++++ http/javascripts/mod_state.php	(working copy)
+@@ -17,9 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-//require(dirname(__FILE__)."/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $gui_id = $_SESSION["mb_user_gui"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ ?>
+Index: http/javascripts/mod_tab.php
+===================================================================
+--- http/javascripts/mod_tab.php	(revision 2361)
++++ http/javascripts/mod_tab.php	(working copy)
+@@ -19,7 +19,7 @@
+ 
+ /********** Configuration*************************************************/
+ 
+-$gui_id = $_REQUEST["gui_id"];
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $e_id_css = 'tabs';
+ include(dirname(__FILE__).'/../include/dyn_js.php');
+ 
+Index: http/javascripts/mod_toggleModule.php
+===================================================================
+--- http/javascripts/mod_toggleModule.php	(revision 2361)
++++ http/javascripts/mod_toggleModule.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_target FROM gui_element WHERE e_id = 'toggleModule' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_usemap.php
+===================================================================
+--- http/javascripts/mod_usemap.php	(revision 2361)
++++ http/javascripts/mod_usemap.php	(working copy)
+@@ -16,6 +16,8 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ var mod_usemap_target = 'mapframe1';
+ var mod_usemap_wfs = "<url>";
+Index: http/javascripts/mod_wfs_gazetteer_client.php
+===================================================================
+--- http/javascripts/mod_wfs_gazetteer_client.php	(revision 2361)
++++ http/javascripts/mod_wfs_gazetteer_client.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-# $Id: mod_wfs_gazetteer_ajax.php 1307 2007-05-09 10:06:24Z christoph $
++# $Id$
+ # maintained by http://www.mapbender.org/index.php/User:Verena Diewald
+ # http://www.mapbender.org/index.php/WFS_gazetteer
+ # Copyright (C) 2002 CCGIS 
+@@ -18,7 +18,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $gui_id = $_SESSION["mb_user_gui"];
+ 
+ $target = $_REQUEST["target"];
+@@ -24,7 +24,6 @@
+ $target = $_REQUEST["target"];
+ $e_id_css = $_REQUEST["e_id_css"];
+ 
+-require_once("../../conf/mapbender.conf");
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db($DB,$con);
+@@ -99,7 +98,7 @@
+ 
+ 
+ function initModWfsGazetteer() {
+-	parent.mb_ajax_json("../php/mod_wfs_gazetteer_server.php", {command:"getWfsConf",wfsConfIdString:wfsConfIdString}, function(json, status) {
++	parent.mb_ajax_json("../php/mod_wfs_gazetteer_server.php?<?php echo SID;?>", {command:"getWfsConf",wfsConfIdString:wfsConfIdString}, function(json, status) {
+ 		global_wfsConfObj = json;
+ 		var wfsCount = 0;
+ 		for (var wfsConfId in global_wfsConfObj) {
+@@ -109,7 +108,7 @@
+ 			}
+ 		}
+ 		if (wfsCount === 0) {
+-			var e = parent.Mb_exception("no wfs conf id available.");
++			var e = new parent.Mb_exception("no wfs conf id available.");
+ 		}
+ 		else if (wfsCount === 1) {
+ 			appendStyles();
+@@ -124,7 +123,11 @@
+ function appendWfsConfSelectBox() {
+ 	var selectNode = document.createElement("select");
+ 	selectNode.name = "wfs_conf_sel";
+-	selectNode.setAttribute("onchange", "global_selectedWfsConfId = this.value;appendStyles();appendWfsForm()");
++	selectNode.onchange = function () {
++		global_selectedWfsConfId = this.value;
++		appendStyles();
++		appendWfsForm();
++	};
+ 	
+ 	var isSelected = false;
+ 	for (var wfsConfId in global_wfsConfObj) {
+Index: http/javascripts/mod_wfs_SpatialRequest.php
+===================================================================
+--- http/javascripts/mod_wfs_SpatialRequest.php	(revision 2361)
++++ http/javascripts/mod_wfs_SpatialRequest.php	(working copy)
+@@ -1,5 +1,5 @@
+ <?php
+-#$Id: mod_wfs_spatialRequest.php,v 1.4 2006/03/08 15:26:26 c_baudson Exp $
++#$Id$
+ #$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_wfs_spatialRequest.php,v 1.4 2006/03/08 15:26:26 c_baudson Exp $
+ # Copyright (C) 2002 CCGIS 
+ #
+@@ -17,15 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+-require_once("../php/mb_validateSession.php");
+-require_once("../../conf/mapbender.conf");
+ require_once("../../conf/wfs_default.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-
+-$gui_id = $_REQUEST["gui_id"];
+ $e_id_css = "setSpatialRequest";
+ 
+ $wfs_conf_filename = "wfs_default.conf";
+@@ -33,8 +27,10 @@
+ include("../../conf/" . $wfs_conf_filename);
+ 
+ include '../include/dyn_js.php';
+-$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'setSpatialRequest' AND fkey_gui_id = '".$gui_id."'";
+-$res = db_query($sql);
++$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'setSpatialRequest' AND fkey_gui_id = $1";
++$v = array($gui_id);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){ 
+    $e_src = $row["e_src"];
+@@ -408,7 +404,7 @@
+ 			}
+ 			filter += '</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs>';
+ 			filter += '</gml:Polygon></Within></ogc:Filter>';
+-			mb_get_geom(url, filter, i, w_[i]);
++			mb_get_geom(url, filter, i, wfs_config[w_[i]]['featuretype_name'], w_[i], w[i]);	
+ 		}
+ 	}
+ 	else if(queryGeom.geomType==geomType.line){
+@@ -430,7 +426,7 @@
+ 			filter += rectangle[0].x+","+rectangle[0].y+ " " + rectangle[1].x+","+rectangle[1].y; 
+ 			filter += "</gml:coordinates></gml:Box></ogc:BBOX></ogc:Filter>";
+ 			url += param;
+-			mb_get_geom(url, filter, i, w_[i]);
++			mb_get_geom(url, filter, i, wfs_config[w_[i]]['featuretype_name'], w_[i], w[i]);	
+ 		}
+ 	}
+ 	else if(queryGeom.geomType == geomType.point){
+@@ -451,7 +447,7 @@
+ 			filter += (tmp.x + buffer) + "," + (tmp.y + buffer) + " " + (tmp.x - buffer) + "," + (tmp.y + buffer) + " " + (tmp.x - buffer) + "," + (tmp.y - buffer); 
+ 			filter += "</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersects></ogc:Filter>";
+ 			url += param;
+-			mb_get_geom(url, filter, i, w_[i]);
++			mb_get_geom(url, filter, i, wfs_config[w_[i]]['featuretype_name'], w_[i], w[i]);	
+ 		}
+ 	}
+ //	highlight = new Highlight(mb_wfs_targets, highlight_tag_id, {"position":"absolute", "top":"0px", "left":"0px", "z-index":generalHighlightZIndex}, generalHighlightLineWidth);
+@@ -458,10 +454,9 @@
+ 	return true;
+ }
+ 
+-function mb_get_geom(url, filter, index, wfs_conf_id) {
+-	
+-	mb_ajax_post("../" + wfsResultModulePath + wfsResultModuleFilename,{'url':url,'filter':filter,'typename':wfs_config[wfs_conf_id]['featuretype_name'],'wfs_conf_id':wfs_conf_id},function(js_code,status){
+-//		alert(js_code);
++function mb_get_geom(url, filter, index, typename, js_wfs_conf_id, db_wfs_conf_id) {	
++ mb_ajax_post("../" + wfsResultModulePath + wfsResultModuleFilename, {'url':url,'filter':filter,'typename':typename,'js_wfs_conf_id':js_wfs_conf_id, 'db_wfs_conf_id':db_wfs_conf_id}, function(js_code,status){
++ //		alert(js_code);
+ 		eval(js_code);
+ 		if (typeof(geom) == 'object') mb_execWfsReadSubFunctions(geom);
+ //		prompt('', js_code);
+Index: http/javascripts/mod_zoomCoords.php
+===================================================================
+--- http/javascripts/mod_zoomCoords.php	(revision 2361)
++++ http/javascripts/mod_zoomCoords.php	(working copy)
+@@ -1,10 +1,8 @@
+ <?php
+-#$Id: mod_zoomCoords.php 76 2006-08-15 12:25:34Z heuser $
++#$Id$
+ #$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_zoomCoords.php,v 1.10 2006/03/09 08:57:13 uli_rothstein Exp $
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -70,8 +68,10 @@
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-$sql = "SELECT e_target FROM gui_element WHERE e_id = 'zoomCoords' AND fkey_gui_id = '".$_SESSION["mb_user_gui"]."'";
+-$res = db_query($sql);
++$sql = "SELECT e_target FROM gui_element WHERE e_id = 'zoomCoords' AND fkey_gui_id = $1";
++$v = array($_SESSION["mb_user_gui"]);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){
+    $e_target = $row["e_target"];
+@@ -131,7 +131,7 @@
+ <body bgcolor='#ffffff' onload=''>
+ 
+ <?php
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ #coordinates
+    
+    # Deutsche Version
+Index: http/javascripts/mod_zoomFull.php
+===================================================================
+--- http/javascripts/mod_zoomFull.php	(revision 2361)
++++ http/javascripts/mod_zoomFull.php	(working copy)
+@@ -1,12 +1,12 @@
+ <?php
+-#$Id: mod_zoomFull.php 76 2006-08-15 12:25:34Z heuser $
++#$Id$
+ #$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_zoomFull.php,v 1.8 2005/09/13 18:16:42 bjoern_heuser Exp $
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'zoomFull' AND fkey_gui_id = '".$gui_id."'";
+-$res = db_query($sql);
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'zoomFull' AND fkey_gui_id = $1";
++$v = array($gui_id);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){ 
+    $e_src = $row["e_src"];
+Index: http/javascripts/mod_zoomIn1.php
+===================================================================
+--- http/javascripts/mod_zoomIn1.php	(revision 2361)
++++ http/javascripts/mod_zoomIn1.php	(working copy)
+@@ -17,11 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+ $sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'zoomIn1' AND fkey_gui_id = $1";
+ $v = array($gui_id);
+ $t = array('s');
+Index: http/javascripts/mod_zoomOut1.php
+===================================================================
+--- http/javascripts/mod_zoomOut1.php	(revision 2361)
++++ http/javascripts/mod_zoomOut1.php	(working copy)
+@@ -1,13 +1,12 @@
+ <?php
+-#$Id: mod_zoomOut1.php 76 2006-08-15 12:25:34Z heuser $
++#$Id$
+ #$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_zoomOut1.php,v 1.8 2005/09/13 18:16:42 bjoern_heuser Exp $
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-$gui_id = $_REQUEST["gui_id"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'zoomOut1' AND fkey_gui_id = '".$gui_id."'";
+-$res = db_query($sql);
++$sql = "SELECT e_src, e_target FROM gui_element WHERE e_id = 'zoomOut1' AND fkey_gui_id = $1";
++$v = array($gui_id);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){ 
+    $e_src = $row["e_src"];
+Index: http/javascripts/wfs.js
+===================================================================
+--- http/javascripts/wfs.js	(revision 2361)
++++ http/javascripts/wfs.js	(working copy)
+@@ -17,14 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ require_once("../php/mb_validateSession.php");
+-require_once("../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+ 
+-$gui_id = $_REQUEST["gui_id"];
+ $e_id_css = "wfs";
+ include '../include/dyn_js.php';
+ require_once("wfs_usemap.js");
+Index: http/php/createImageFromText.php
+===================================================================
+--- http/php/createImageFromText.php	(revision 2361)
++++ http/php/createImageFromText.php	(working copy)
+@@ -23,7 +23,7 @@
+ 
+ $text_x = 4;
+ $text_y = 0;
+-$rect_w = 7 * mb_strlen($text) + $text_x;
++$rect_w = 7 * strlen($text) + $text_x;
+ $rect_h = 14 + $text_y;
+ 
+ $im = ImageCreate($rect_w, $rect_h);
+Index: http/php/mb_js_exception.php
+===================================================================
+--- http/php/mb_js_exception.php	(revision 2361)
++++ http/php/mb_js_exception.php	(working copy)
+@@ -1,4 +1,6 @@
+ <?php
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $message = $_POST['text'];
+ $level = $_POST['level'];
+ 
+Index: http/php/mb_listWMCs.php
+===================================================================
+--- http/php/mb_listWMCs.php	(revision 2361)
++++ http/php/mb_listWMCs.php	(working copy)
+@@ -16,7 +16,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $gui_id = $_SESSION["mb_user_gui"];
+ $user_id = $_SESSION["mb_user_id"];
+ 
+@@ -26,8 +27,6 @@
+ $delWmcId = $_POST["del_wmc_id"];
+ $clientFilename = $_FILES['local_wmc_filename']['tmp_name'];
+ 
+-$form_target = $_SERVER["PHP_SELF"] . "?" . SID;
+-
+ require_once("../../conf/mapbender.conf");
+ require_once("../classes/class_administration.php");
+ require_once("../classes/class_mb_exception.php");
+@@ -46,7 +45,7 @@
+ 		<title>Select web map contect document from list</title>
+ 	</head>
+ 	<body>
+-		<form name='delete_wmc' action='<?php echo $form_target; ?>' method='POST'>
++		<form name='delete_wmc' action='<?php echo $self; ?>' method='POST'>
+ 			<input type='hidden' id='delete_wmc' name='del_wmc_id' value ='' >
+ 		</form>
+ 
+@@ -98,8 +97,10 @@
+ }
+ 
+ function getTarget($gui_id) {
+-	$sql = "SELECT e_requires, e_target FROM gui_element WHERE e_id = 'loadwmc' AND fkey_gui_id = '".$gui_id."'";
+-	$res = db_query($sql);
++	$sql = "SELECT e_requires, e_target FROM gui_element WHERE e_id = 'loadwmc' AND fkey_gui_id = $1";
++	$v = array($gui_id);
++	$t = array("s");
++	$res = db_prep_query($sql, $v, $t);
+ 	$cnt = 0;
+ 	while($row = db_fetch_array($res)){ 
+ 		$e_target = $row["e_target"];
+@@ -164,7 +165,7 @@
+ // load a WMC from file
+ ?>
+ <h2 style='font-family: Arial, Helvetica, sans-serif; color: #808080;background-color: White;'><font align='left' color='#000000'>load WMC from file</font></h2>
+-<form enctype="multipart/form-data" action="<?php echo $form_target;?>" method=POST target="_self"> 
++<form enctype="multipart/form-data" action="<?php echo $self;?>" method=POST target="_self"> 
+ <input type='file' name='local_wmc_filename'>
+ <input type='submit' value='load'>
+ </form>
+@@ -171,7 +172,7 @@
+ <?php
+ 
+ // load a WMC from list
+-echo mb_listWMCs($wmcIdArray, $form_target);
++echo mb_listWMCs($wmcIdArray, $self);
+ 		
+ if ($wmcId && in_array($wmcId, $wmcIdArray)){
+ 	if ($action == "delete") {
+Index: http/php/mb_validatePermission.php
+===================================================================
+--- http/php/mb_validatePermission.php	(revision 2361)
++++ http/php/mb_validatePermission.php	(working copy)
+@@ -17,26 +17,68 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-include_once(dirname(__FILE__)."/../classes/class_administration.php");
+-if(!isset($_SESSION["mb_user_id"]) || !isset($_SESSION["mb_user_ip"]) || $_SESSION['mb_user_ip'] != $_SERVER['REMOTE_ADDR']){
+-	header("Location: ".LOGIN);
+-	exit;
++require(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
++$admin = new administration();
++
++//
++// check if GUI id and element id are set
++//
++$msg = "missing in " .  $_SERVER["PHP_SELF"];
++if (!isset($gui_id)) {
++	$e = new mb_exception("GUI id " . $msg);
++	die();
++}
++if (!isset($e_id)) {
++	$e = new mb_exception("Element id " . $msg);
+ 	die();
+ }
+-if(isset($_REQUEST["gui_id"])){
+-	if( !in_array($_REQUEST["gui_id"],$_SESSION["mb_user_guis"])){
+-		header("Location: ".LOGIN);
+-		exit;
+-		die();
++
++//
++// check if the user is allowed to access this module
++//
++$isAllowed = $admin->getModulPermission($_SESSION["mb_user_id"], $gui_id, $e_id);
++
++//
++// if the module is an iframe, also check if the filename matches the
++// filename of the GUI element with the given e_id
++//
++// (if PHP_SELF is "map.php", we trust the script.)
++//
++if (!preg_match("/^.*\/javascripts\/map\.php$/", $_SERVER["PHP_SELF"])) {
++
++	$isCorrectScript = true;
++	
++	$sql = "SELECT e_element FROM gui_element WHERE e_id = $1 AND fkey_gui_id = $2";
++	$v = array($e_id, $gui_id);
++	$t = array("s", "s");
++	$res = db_prep_query($sql, $v, $t);
++	while ($row = db_fetch_array($res)) {
++		if (!$admin->checkModulePermission_new($_SESSION["mb_user_id"], $_SERVER["PHP_SELF"], $row["e_element"])) {
++			$isCorrectScript = false;
++			break;
++		}
+ 	}
++//	$e = new mb_notice($e_id . ": isAllowed: " . $isAllowed . ", isCorrectScript: " . $isCorrectScript);
++	$isAllowed = $isAllowed && $isCorrectScript;
+ }
+-$n = new administration();
+-$m = $n->getModulPermission($_SESSION["mb_user_id"],$_REQUEST["guiID"],$_REQUEST["elementID"]);
+-if($m == false){
++
++//
++// If the user is not allowed to access the module, return to the login screen.
++//
++if (!$isAllowed) {
++	$msg = "mb_validatePermission.php: User " . $_SESSION["mb_user_id"] . " is not allowed to access ".
++			"module " . $e_id;
++	$e = new mb_exception($msg);
+ 	header("Location: ".LOGIN);
+-	exit;
+ 	die();
+ }
++
++$e = new mb_notice("mb_validatePermission.php: checking file " . $_SERVER["PHP_SELF"] . "...permission valid.");
++
++//
++// delete global variables
++//
++unset($admin, $isAllowed, $e, $isCorrectScript, $msg, $myGuisArray);
+ ?>
+\ No newline at end of file
+Index: http/php/mb_validateSession.php
+===================================================================
+--- http/php/mb_validateSession.php	(revision 2361)
++++ http/php/mb_validateSession.php	(working copy)
+@@ -18,17 +18,73 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ session_start();
+-include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-if(!isset($_SESSION["mb_user_id"]) || !isset($_SESSION["mb_user_ip"]) || $_SESSION['mb_user_ip'] != $_SERVER['REMOTE_ADDR']){
+-	header("Location: ".LOGIN);
+-	exit;
+-	die();
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
++
++//
++// establish database connection
++//
++$con = db_connect($DBSERVER, $OWNER, $PW);
++db_select_db(DB, $con);
++
++$e = new mb_notice("mb_validateSession.php: checking file " . $_SERVER["PHP_SELF"]);
++
++//
++// check if user data is valid; if not, return to login screen
++//
++if (!isset($_SESSION["mb_user_id"]) || 
++	!isset($_SESSION["mb_user_ip"]) || 
++	$_SESSION['mb_user_ip'] != $_SERVER['REMOTE_ADDR']) {
++
++		$e = new mb_exception("mb_validateSession.php: Invalid user: " . $_SESSION["mb_user_id"]);
++		header("Location: " . LOGIN);
++		die();
+ }
+-if(isset($_REQUEST["gui_id"])){
+-	if( !in_array($_REQUEST["gui_id"],$_SESSION["mb_user_guis"])){
+-		header("Location: ".LOGIN);
+-		exit;
+-		die();
++
++//
++// set the global var gui_id
++//
++if (!$gui_id) {
++	$e = new mb_notice("gui id not set");
++	if ($_REQUEST["guiID"]) {
++		$e = new mb_notice("gui id set to guiID");
++		$gui_id = $_REQUEST["guiID"];
++	}
++	elseif ($_REQUEST["gui_id"]) {
++		$e = new mb_notice("gui id set to gui_id");
++		$gui_id = $_REQUEST["gui_id"];
++	}
++	else {
++		$e = new mb_notice("mb_validateSession.php: gui_id not set in script: " . $_SERVER["PHP_SELF"]);
+ 	}
+ }
++
++//
++// set the global var e_id
++//
++if (!$e_id) {
++	if (isset($_REQUEST["elementID"])) {
++		$e_id = $_REQUEST["elementID"];
++	}
++	elseif (isset($_REQUEST["e_id"])) {
++		$e_id = $_REQUEST["e_id"];
++	}
++	else {
++		$e = new mb_notice("mb_validateSession.php: e_id not set in script: " . $_SERVER["PHP_SELF"]);
++	}
++}
++
++//
++// set variables used for form targets or links
++//
++$urlParameters = SID;
++if (isset($gui_id)) {
++	$urlParameters .= "&guiID=" . $gui_id;
++}
++if (isset($e_id)) {
++	$urlParameters .= "&elementID=" . $e_id;
++}
++$self = $_SERVER["PHP_SELF"] . "?" . $urlParameters;
++
++$e = new mb_notice("mb_validateSession.php: GUI: " . $gui_id . ", checking file " . $_SERVER["PHP_SELF"] . "...session valid.");
+ ?>
+\ No newline at end of file
+Index: http/php/mod_addWmsFromFeatureInfo.php
+===================================================================
+--- http/php/mod_addWmsFromFeatureInfo.php	(revision 2361)
++++ http/php/mod_addWmsFromFeatureInfo.php	(working copy)
+@@ -17,7 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+Index: http/php/mod_addWMSfromfilteredList_server.php
+===================================================================
+--- http/php/mod_addWMSfromfilteredList_server.php	(revision 2361)
++++ http/php/mod_addWMSfromfilteredList_server.php	(working copy)
+@@ -17,8 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_wms.php"); 
+Index: http/php/mod_changeEPSG.php
+===================================================================
+--- http/php/mod_changeEPSG.php	(revision 2361)
++++ http/php/mod_changeEPSG.php	(working copy)
+@@ -18,8 +18,10 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ require(dirname(__FILE__)."/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $gui_id = $_SESSION["mb_user_gui"];
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ ?>
+@@ -53,7 +55,7 @@
+ 
+ # transform coordinates
+ if(isset($_REQUEST["srs"])){
+-	require_once("../../conf/mapbender.conf");
++	require_once(dirname(__FILE__) . "/../../conf/mapbender.conf");
+ 	$arraymapObj = split("###", $_REQUEST["srs"]);
+ 	echo "<script type='text/javascript'>";
+ 	echo "var newExtent = new Array();";
+@@ -59,60 +61,73 @@
+ 	echo "var newExtent = new Array();";
+ 	for($i=0; $i < count($arraymapObj); $i++){
+ 		$temp = split(",",$arraymapObj[$i]);
+-		if(SYS_DBTYPE=='pgsql'){
+-			$con = db_connect($DBSERVER,$OWNER,$PW);
+-			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as minx";
+-			$resMinx = db_query($sqlMinx);
+-			$minx = db_result($resMinx,0,"minx");
+-			
+-			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as miny";
+-			$resMiny = db_query($sqlMiny);
+-			$miny = db_result($resMiny,0,"miny");
+-			
+-			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxx";
+-			$resMaxx =db_query($sqlMaxx);
+-			$maxx = db_result($resMaxx,0,"maxx");
+-			
+-			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxy";
+-			$resMaxy = db_query($sqlMaxy);
+-			$maxy = db_result($resMaxy,0,"maxy");
+-		}else{
+-			$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
+-			$con = pg_connect($con_string) or die ("Error while connecting database");
+-			
+-			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as minx";
+-			$resMinx = pg_query($con,$sqlMinx);
+-			$minx = pg_fetch_result($resMinx,0,"minx");
+-			
+-			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as miny";
+-			$resMiny = pg_query($con,$sqlMiny);
+-			$miny = pg_fetch_result($resMiny,0,"miny");
+-			
+-			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxx";
+-			$resMaxx = pg_query($con,$sqlMaxx);
+-			$maxx = pg_fetch_result($resMaxx,0,"maxx");
+-			
+-			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxy";
+-			$resMaxy = pg_query($con,$sqlMaxy);
+-			$maxy = pg_fetch_result($resMaxy,0,"maxy");
+-		}
+-		$extenty = $maxy - $miny;
+-		$extentx = $maxx - $minx;
+-		$relation_px_x = $temp[6] / $temp[7];
+-		$relation_px_y = $temp[7] / $temp[6];
+-		$relation_bbox_x = $extentx / $extenty;
++
++		// check if parameters are valid geometries to 
++		// avoid SQL injections
+ 
+-		if($relation_bbox_x <= $relation_px_x){
+-			$centerx = $minx + ($extentx/2);
+-			$minx = $centerx - $relation_px_x * $extenty / 2;
+-			$maxx = $centerx + $relation_px_x * $extenty / 2;
++		$oldEPSG = preg_replace("/EPSG:/","",$temp[1]);
++		$newEPSG = preg_replace("/EPSG:/","",$_REQUEST["newSRS"]);
++		 
++		if (is_numeric($temp[2]) && is_numeric($temp[3]) && is_numeric($temp[4]) && is_numeric($temp[5]) && is_numeric($oldEPSG) && is_numeric($newEPSG)) {
++		
++			if(SYS_DBTYPE=='pgsql'){
++				$con = db_connect($DBSERVER,$OWNER,$PW);
++				$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".$oldEPSG."),".$newEPSG.")) as minx";
++				$resMinx = db_query($sqlMinx);
++				$minx = db_result($resMinx,0,"minx");
++				
++				$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".$oldEPSG."),".$newEPSG.")) as miny";
++				$resMiny = db_query($sqlMiny);
++				$miny = db_result($resMiny,0,"miny");
++				
++				$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".$oldEPSG."),".$newEPSG.")) as maxx";
++				$resMaxx = db_query($sqlMaxx);
++				$maxx = db_result($resMaxx,0,"maxx");
++				
++				$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".$oldEPSG."),".$newEPSG.")) as maxy";
++				$resMaxy = db_query($sqlMaxy);
++				$maxy = db_result($resMaxy,0,"maxy");
++			}else{
++				$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
++				$con = pg_connect($con_string) or die ("Error while connecting database");
++				
++				$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".$oldEPSG."),".$newEPSG.")) as minx";
++				$resMinx = pg_query($con,$sqlMinx);
++				$minx = pg_fetch_result($resMinx,0,"minx");
++				
++				$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".$oldEPSG."),".$newEPSG.")) as miny";
++				$resMiny = pg_query($con,$sqlMiny);
++				$miny = pg_fetch_result($resMiny,0,"miny");
++				
++				$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".$oldEPSG."),".$newEPSG.")) as maxx";
++				$resMaxx = pg_query($con,$sqlMaxx);
++				$maxx = pg_fetch_result($resMaxx,0,"maxx");
++				
++				$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".$oldEPSG."),".$newEPSG.")) as maxy";
++				$resMaxy = pg_query($con,$sqlMaxy);
++				$maxy = pg_fetch_result($resMaxy,0,"maxy");
++			}
++			$extenty = $maxy - $miny;
++			$extentx = $maxx - $minx;
++			$relation_px_x = $temp[6] / $temp[7];
++			$relation_px_y = $temp[7] / $temp[6];
++			$relation_bbox_x = $extentx / $extenty;
++	
++			if($relation_bbox_x <= $relation_px_x){
++				$centerx = $minx + ($extentx/2);
++				$minx = $centerx - $relation_px_x * $extenty / 2;
++				$maxx = $centerx + $relation_px_x * $extenty / 2;
++			}
++			if($relation_bbox_x > $relation_px_x){
++				$centery = $miny + ($extenty/2);
++				$miny = $centery - $relation_px_y * $extentx / 2;
++				$maxy = $centery + $relation_px_y * $extentx / 2;
++			}
++			echo "newExtent[".$i."] = '".$temp[0].",".$_REQUEST["newSRS"].",".$minx.",".$miny.",".$maxx.",".$maxy."';";
+ 		}
+-		if($relation_bbox_x > $relation_px_x){
+-			$centery = $miny + ($extenty/2);
+-			$miny = $centery - $relation_px_y * $extentx / 2;
+-			$maxy = $centery + $relation_px_y * $extentx / 2;
+-		}
+-		echo "newExtent[".$i."] = '".$temp[0].",".$_REQUEST["newSRS"].",".$minx.",".$miny.",".$maxx.",".$maxy."';";
++		else {
++			echo "var e = new parent.Mb_exception('mod_changeEPSG.php: invalid input parameter (p1 = (" . $temp[2] . "," . $temp[3] . "), p2 = (" . $temp[4] . "," . $temp[5] . "), old EPSG: " . $oldEPSG . ", new EPSG: " . $newEPSG . ", ).');";
++		}		
+ 	}
+ 	echo "</script>";
+ }
+@@ -186,7 +201,7 @@
+ </script>
+ </head>
+ <body leftmargin="1" topmargin="1" onload="mod_changeEPSG_init()" bgcolor="red">
+-<form action="<?php echo $PHP_SELF .'?'.SID  ?>" method='POST'>
++<form action="<?php echo $self;  ?>" method='POST'>
+ <select class='epsg' name='epsg' onchange='mod_changeEPSG()'>
+ <option value="">undefined</option>
+ <option value="EPSG:4326">EPSG:4326</option>
+Index: http/php/mod_changeEPSG_dynamic.php
+===================================================================
+--- http/php/mod_changeEPSG_dynamic.php	(revision 2361)
++++ http/php/mod_changeEPSG_dynamic.php	(working copy)
+@@ -230,7 +230,7 @@
+ 
+ <?php
+ /*insert EPSG into selectbox************************************************************************************/
+-echo "<form action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form action='" . $self ."' method='post'>";
+ echo "<select  class='epsg' name='epsg' onChange='mod_changeEPSG()'>";
+ for($i=0; $i<$cnt_epsg_wms; $i++){
+ 	echo "<option value='" . $epsg_code[$i] . "' ";
+Index: http/php/mod_changePassword.php
+===================================================================
+--- http/php/mod_changePassword.php	(revision 2361)
++++ http/php/mod_changePassword.php	(working copy)
+@@ -21,7 +21,6 @@
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ 
+-import_request_variables("PG");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -146,7 +145,7 @@
+ 
+ /* HTML */
+ echo "<fieldset><legend>Change password:</legend>";
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self ."' method='post'>";
+ echo "<table cellpadding='5' cellspacing='0' border='0'>";
+ echo "<td>";
+ echo "new password:";
+Index: http/php/mod_createJSLayerObjFromXML.php
+===================================================================
+--- http/php/mod_createJSLayerObjFromXML.php	(revision 2361)
++++ http/php/mod_createJSLayerObjFromXML.php	(working copy)
+@@ -18,6 +18,7 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require(dirname(__FILE__)."/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_createJSObjFromDBByWMS.php
+===================================================================
+--- http/php/mod_createJSObjFromDBByWMS.php	(revision 2361)
++++ http/php/mod_createJSObjFromDBByWMS.php	(working copy)
+@@ -17,8 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../classes/class_wms.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+@@ -23,6 +21,7 @@
+ require_once(dirname(__FILE__)."/../classes/class_wms.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
++require(dirname(__FILE__)."/mb_validateSession.php");
+ 
+ $wms_id = $_GET["wms_id"];
+ $gui_id = $_GET["gui_id"];
+@@ -52,11 +51,7 @@
+ }
+ ?>
+ </script>
+-<!--
+-<script language="JavaScript" type="text/javascript">
+-alert("3/3 mod_createJSObjFromDBByWMS: WMS ID = <?php echo $wms_id;?>, GUI ID = <?php echo $gui_id;?>");
+-</script>
+--->
++
+ </head>
+ <body bgcolor='#ffffff'>
+ </body>
+Index: http/php/mod_createJSObjFromXML.php
+===================================================================
+--- http/php/mod_createJSObjFromXML.php	(revision 2361)
++++ http/php/mod_createJSObjFromXML.php	(working copy)
+@@ -19,6 +19,7 @@
+ 
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../classes/class_wms.php");
++require(dirname(__FILE__)."/mb_validateSession.php");
+ 
+ $capabilitiesURL = html_entity_decode($_REQUEST['caps']);
+ ?>
+Index: http/php/mod_createUser.php
+===================================================================
+--- http/php/mod_createUser.php	(revision 2361)
++++ http/php/mod_createUser.php	(working copy)
+@@ -183,7 +183,7 @@
+ }
+ 
+ /* HTML */
+-echo "<form name='form1' action='" . $PHP_SELF . "' method='post'>";
++echo "<form name='form1' action='" . $self . "' method='post'>";
+ echo "<table border='0'>";
+ 
+ if(isset($selected_user) && $selected_user != 0){
+Index: http/php/mod_deleteFilteredGUI.php
+===================================================================
+--- http/php/mod_deleteFilteredGUI.php	(revision 2361)
++++ http/php/mod_deleteFilteredGUI.php	(working copy)
+@@ -19,12 +19,12 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ 
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ $admin = new administration();
+ $ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ ?>
+Index: http/php/mod_deleteGUI.php
+===================================================================
+--- http/php/mod_deleteGUI.php	(revision 2361)
++++ http/php/mod_deleteGUI.php	(working copy)
+@@ -17,13 +17,14 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place 
+ 
+-session_start();
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ #$admin = new administration();
+ #$ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ $gui_id = $_SESSION["mb_user_gui"];
+@@ -65,16 +66,17 @@
+ 
+ ###delete
+ if($guiList){
+-	 $sql = "DELETE FROM gui WHERE gui_id = '".$guiList."'";
+-	 $res = db_query($sql);
++	 $sql = "DELETE FROM gui WHERE gui_id = $1";
++	 $v = array($guiList);
++	 $t = array("s");
++	 $res = db_prep_query($sql, $v, $t);
+ }
+ 
+-$sql_gui = "SELECT * FROM gui ";
+-$sql_gui .= " ORDER BY gui_name";
++$sql_gui = "SELECT * FROM gui ORDER BY gui_name";
+ $res_gui = db_query($sql_gui);
+ $cnt_gui = 0;
+ 
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>"; 
++echo "<form name='form1' action='" . $self ."' method='post'>"; 
+ echo "<select class='guiList' size='20' name='guiList' class='guiList'>";
+ 
+ while($row = db_fetch_array($res_gui)){
+Index: http/php/mod_deleteWFS.php
+===================================================================
+--- http/php/mod_deleteWFS.php	(revision 2361)
++++ http/php/mod_deleteWFS.php	(working copy)
+@@ -17,13 +17,13 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ #$admin = new administration();
+ #$ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ $gui_id = $_SESSION["mb_user_gui"];
+@@ -76,16 +76,17 @@
+ 
+ ###delete
+ if($wfsList){
+-	 $sql = "DELETE FROM wfs WHERE wfs_id = '".$wfsList."'";
+-	 $res = db_query($sql);
++	 $sql = "DELETE FROM wfs WHERE wfs_id = $1";
++	 $v = array($wfsList);
++	 $t = array("i");
++	 $res = db_prep_query($sql, $v, $t);
+ }
+ 
+-$sql_wfs = "SELECT * FROM wfs ";
+-$sql_wfs .= " ORDER BY wfs_id";
++$sql_wfs = "SELECT * FROM wfs ORDER BY wfs_id";
+ $res_wfs = db_query($sql_wfs);
+ $cnt_wfs = 0;
+ 
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>"; 
++echo "<form name='form1' action='" . $self."' method='post'>"; 
+ echo "<br><b>WFS List: <b><br><br>";
+ echo "<select class='wfsList' size='20' name='wfsList' >";
+ 
+Index: http/php/mod_deleteWMS.php
+===================================================================
+--- http/php/mod_deleteWMS.php	(revision 2361)
++++ http/php/mod_deleteWMS.php	(working copy)
+@@ -17,17 +17,15 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
++
+ ?>
+-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-
+ <html>
+ <head>
+ <meta http-equiv="cache-control" content="no-cache">
+Index: http/php/mod_edit_element_vars.php
+===================================================================
+--- http/php/mod_edit_element_vars.php	(revision 2361)
++++ http/php/mod_edit_element_vars.php	(working copy)
+@@ -17,10 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ include(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+@@ -110,13 +110,20 @@
+ <?php
+ # handle database updates etc.....
+ if(isset($mySave) && $mySave == '1'){
+-   if($SYS_DBTYPE=='pgsql'){
+-   $sql[0] = "SET AUTOCOMMIT=1;";}
+-   else{
+-   $sql[0] = "SET AUTOCOMMIT=0;shit happens";
+-   }
+-   $sql[1] = "BEGIN;";
+-   $sql[2] = "DELETE FROM gui_element_vars WHERE fkey_e_id = '".$e_id."' AND fkey_gui_id = '".$guiList1."' and ....";
++	if ($SYS_DBTYPE=='pgsql') { 
++		$sql[0] = "SET AUTOCOMMIT=1;";
++	}
++	else {
++		$sql[0] = "SET AUTOCOMMIT=0;shit happens";
++	}
++	$v[0] = array();
++	$t[0] = array();
++	$sql[1] = "BEGIN;";
++	$v[1] = array();
++	$t[1] = array();
++	$sql[2] = "DELETE FROM gui_element_vars WHERE fkey_e_id = $1 AND fkey_gui_id = $2";
++	$v[2] = array($e_id, $guiList1);
++	$t[2] = array("s", "s");
+ 
+ 
+    if($e_left < 1){$e_left = "NULL";}
+@@ -124,15 +131,20 @@
+    if($e_width < 1){$e_width = "NULL";}
+    if($e_height < 1){$e_height = "NULL";}
+    if($e_z_index < 1){$e_z_index = "NULL";}
+-   $sql[3] = "INSERT INTO gui_element_vars(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,e_src,e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires) ";
+-   $sql[3] .= "VALUES ('".$guiList1."','".$e_id."','".$e_pos."','".$e_public."','".db_escape_string($e_comment)."','".$e_element."','".$e_src."','".db_escape_string($e_attributes)."',".$e_left.",".$e_top.",".$e_width.",".$e_height.",".$e_z_index.",'".$e_more_styles."','".$e_content."','".$e_closetag."','".$e_js_file."','".$e_mb_mod."','".$e_target."','".$e_requires."')";
++	$sql[3] = "INSERT INTO gui_element_vars ";
++	$sql[3] .= "(fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element, e_src, ";
++	$sql[3] .= "e_attributes, e_left, e_top, e_width, e_height, e_z_index, ";
++	$sql[3] .= "e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, ";
++	$sql[3] .= "e_requires) ";
++	$sql[3] .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20)";
++	$v[3] = array($guiList1, $e_id, $e_pos, $e_public, db_escape_string($e_comment), $e_element, $e_src, db_escape_string($e_attributes), $e_left, $e_top, $e_width, $e_height, $e_z_index, $e_more_styles, $e_content, $e_closetag, $e_js_file, $e_mb_mod, $e_target, $e_requires);
++	$t[3] = array("s", "s", "i", "s", "s", "s", "s", "s", "i", "i", "i", "i", "i", "s", "s", "s", "s", "s", "s", "s");
+    #echo $sql[3];
+-   foreach ($sql as $mysql){
+-      $res = db_query($mysql);
+-      if(!$res){echo $mysql; break;}
++   for ($i = 0; $i < count($sql); $i++) {
++      $res = db_prep_query($sql[$i], $v[$i], $t[$i]);
+    }
+    if($res){
+-		$res = db_query( "COMMIT");
++      $res = db_query( "COMMIT");
+       $res = db_query( "SET AUTOCOMMIT=1");
+    }
+    else{
+@@ -139,10 +151,12 @@
+       $res = db_query( "ROLLBACK");
+       $res = db_query( "SET AUTOCOMMIT=1");
+    }
+- }
++}
+ if(isset($myDelete) && $myDelete == '1'){
+-   $sql = "DELETE FROM gui_element_vars WHERE fkey_e_id = '".$e_id."' AND fkey_gui_id = '".$guiList1."' AND var_name='".$var_name."'";
+-   $res = db_query($sql);
++   $sql = "DELETE FROM gui_element_vars WHERE fkey_e_id = $1 AND fkey_gui_id = $2 AND var_name= $3";
++   $v = array($e_id, $guiList1, $var_name);
++   $t = array("s", "s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    $e_id = ""; $e_pos = ""; $e_public = ""; $e_comment = ""; $e_element = "";
+    $e_src = ""; $e_attributes = ""; $e_left = ""; $e_top = ""; $e_width = ""; $e_height = ""; $e_z_index = "";
+    $e_more_styles = ""; $e_content = ""; $e_closetag = ""; $e_js_file = ""; $e_mb_mod = ""; $e_target = ""; $e_requires = "";
+@@ -154,12 +168,16 @@
+    echo "</script>";
+ }
+ if(isset($all) && $all == '1'){
+-   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = '".$guiList2."' AND fkey_e_id = '".$e_id."' and var_name='".$var_name."' ;";
+-   $res = db_query($sql);
++   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = $1 AND fkey_e_id = $2 and var_name= $3;";
++   $v = array($guiList2, $e_id, $var_name);
++   $t = array("s", "s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    $cnt = 0;
+    while(db_fetch_row($res)){
+-      $sql_del = "DELETE FROM gui_element_vars WHERE fkey_gui_id = '".$guiList1."' AND fkey_e_id = '".db_result($res,$cnt,"fkey_e_id")."'  and var_name='".$var_name."' ";
+-      $res_del = db_query($sql_del);
++      $sql_del = "DELETE FROM gui_element_vars WHERE fkey_gui_id = $1 AND fkey_e_id = $2 and var_name= $3";
++      $v = array($guiList1, db_result($res,$cnt,"fkey_e_id"), $var_name);
++      $t = array("s", "s", "s");
++      $res_del = db_prep_query($sql_del, $v, $t);
+       if(db_result($res,$cnt,"e_left") == ""){$myleft = 'NULL';} else{$myleft = db_result($res,$cnt,"e_left");}
+       if(db_result($res,$cnt,"e_top") == ""){$mytop = 'NULL';} else{$mytop = db_result($res,$cnt,"e_top");}
+       if(db_result($res,$cnt,"e_width") == ""){$mywidth = 'NULL';} else{$mywidth = db_result($res,$cnt,"e_width");}
+@@ -166,12 +184,21 @@
+       if(db_result($res,$cnt,"e_height") == ""){$myheight = 'NULL';} else{$myheight = db_result($res,$cnt,"e_height");}
+       if(db_result($res,$cnt,"e_z_index") == ""){$my_z_index = 'NULL';} else{$my_z_index = db_result($res,$cnt,"e_z_index");}
+ 
+-      $sql_ins = "INSERT INTO gui_element_vars(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,e_src,e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires) ";
+-      $sql_ins .= "VALUES ('".$guiList1."','".db_result($res,$cnt,"e_id")."','".db_result($res,$cnt,"e_pos")."','".db_result($res,$cnt,"e_public")."','".db_escape_string(db_result($res,$cnt,"e_comment"))."','".db_result($res,$cnt,"e_element")."','".db_result($res,$cnt,"e_src")."','".db_escape_string(db_result($res,$cnt,"e_attributes"))."',".$myleft.",";
+-      $sql_ins .= $mytop.",".$mywidth.",".$myheight.",".$my_z_index.",'".db_result($res,$cnt,"e_more_styles")."','".db_escape_string(db_result($res,$cnt,"e_content"))."','".db_result($res,$cnt,"e_closetag")."','".db_result($res,$cnt,"e_js_file")."','".db_result($res,$cnt,"e_mb_mod")."','".db_result($res,$cnt,"e_target")."','".db_result($res,$cnt,"e_requires")."')";
++      $sql_ins = "INSERT INTO gui_element_vars ";
++      $sql_ins .= "(fkey_gui_id, e_id, e_pos,e_public, e_comment, e_element, ";
++      $sql_ins .= "e_src, e_attributes, e_left, e_top, e_width, e_height, ";
++      $sql_ins .= "e_z_index, e_more_styles, e_content, e_closetag, e_js_file, ";
++      $sql_ins .= "e_mb_mod, e_target, e_requires) ";
++      $sql_ins .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, ";
++      $sql_ins .= "$10, $11, $12, $13, $14, $15, $16, $17, $18, ";
++      $sql_ins .= "$19, $20)";
++      $v = array($guiList1, db_result($res,$cnt,"e_id"), db_result($res,$cnt,"e_pos"), db_result($res,$cnt,"e_public"), db_escape_string(db_result($res,$cnt,"e_comment")), db_result($res,$cnt,"e_element"), db_result($res,$cnt,"e_src"), db_escape_string(db_result($res,$cnt,"e_attributes")), $myleft, $mytop, $mywidth, $myheight, $my_z_index, db_result($res,$cnt,"e_more_styles"), db_escape_string(db_result($res,$cnt,"e_content")), db_result($res,$cnt,"e_closetag"), db_result($res,$cnt,"e_js_file"), db_result($res,$cnt,"e_mb_mod"), db_result($res,$cnt,"e_target"), db_result($res,$cnt,"e_requires"));
++      $t = array("s", "s", "s", "s", "s", "s", "s", "s", "i", "i", "i", "i", "i", "s", "s", "s", "s", "s", "s", "s");
+ 
+-      $res_ins = db_query($sql_ins);
+-      if(!$res_ins){echo db_error($connect); }
++      $res_ins = db_prep_query($sql_ins, $v, $t);
++      if (!$res_ins) {
++      	echo db_error($connect); 
++      }
+       $cnt++;
+    }
+ }
+@@ -179,8 +206,10 @@
+ echo "<script language='javascript'>";
+ echo "var varIDs = new Array();";
+ if(isset($guiList1)){
+-   $sql = "SELECT var_name FROM gui_element_vars WHERE  fkey_gui_id = '".$guiList1."' AND fkey_e_id = '".$e_id."'";
+-   $res = db_query($sql);
++   $sql = "SELECT var_name FROM gui_element_vars WHERE fkey_gui_id = $1 AND fkey_e_id = $2";
++   $v = array($guiList1, $e_id);
++   $t = array("s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    $cnt = 0;
+    while(db_fetch_row($res)){
+       echo  "varIDs[".$cnt."] = '".db_result($res,$cnt,"var_name")."'; ";
+@@ -253,7 +282,7 @@
+ <body>
+ 
+ <?php
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='get'>";
++echo "<form name='form1' action='" . $self."' method='get'>";
+ 
+ #Gui to edit
+ if(!isset($guiList1)){
+@@ -284,8 +313,10 @@
+ if(isset($guiList1)){
+    echo "<div class='guiList2_header'>Templates</div>";
+ 
+-   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = '".$guiList1."' AND fkey_e_id='".$e_id."'";
+-   $res = db_query($sql);
++   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = $1 AND fkey_e_id = $2";
++   $v = array($guiList1, $e_id);
++   $t = array("s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    $cnt = 0;
+    echo "<div class='myElements'><table>";
+    while($row = db_fetch_array($res)){
+@@ -303,9 +334,11 @@
+ #Formular:
+ echo "<table class='myForm'>";
+ if(isset($guiList1) && isset($var_name)){
+-   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = '".$guiList1."' AND fkey_e_id = '".$e_id."' AND var_name='".$var_name."'";
++   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = $1 AND fkey_e_id = '".$e_id."' AND var_name = $2";
++   $v = array($guiList1, $var_name);
++   $t = array("s", "s");
+    //echo $sql;
+-   $res = db_query($sql);
++   $res = db_prep_query($sql, $v, $t);
+    if($row = db_fetch_array($res)){
+       echo "<tr><td>ID: </td><td><input type='text' class='textfield' readonly name='e_id' value='".$e_id."'></td></tr>";
+       echo "<tr><td>Var Type: </td><td><input type='text' class='textfield' name='type' value='".$row["type"]."'></td></tr>";
+Index: http/php/mod_edit_metadata.php
+===================================================================
+--- http/php/mod_edit_metadata.php	(revision 2361)
++++ http/php/mod_edit_metadata.php	(working copy)
+@@ -17,7 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ include(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+@@ -112,20 +111,31 @@
+ # handle database updates etc.....
+ if(isset($mySave) && ($mySave == '1' || $mySave == '2')) {
+    if ($mySave == '1'){
+-   	$sql_vars = "SELECT * FROM gui_element_vars WHERE fkey_e_id = '".$e_id."' AND fkey_gui_id = '".$guiList1."'";
+-   	 $res_vars = db_query($sql_vars);
++   	$sql_vars = "SELECT * FROM gui_element_vars WHERE fkey_e_id = $1 AND fkey_gui_id = $2";
++   	$v = array($e_id, $guiList1);
++   	$t = array("s", "s");
++   	$res_vars = db_prep_query($sql_vars, $v, $t);
+    	 //$rows = db_fetch_array($res_vars);
+-   	if($SYS_DBTYPE=='pgsql')
+-   		{
+-	   	$sql[0] = "SET AUTOCOMMIT=1";
+-	 	}
+-	  else
+-	 	{
+-	 	$sql[0] = "SET AUTOCOMMIT=0";
+-		}
+-	   $sql[1] = "BEGIN";
+-	   $sql[2] = "DELETE FROM gui_element WHERE e_id = '".$e_id."' AND fkey_gui_id = '".$guiList1."'";
+-
++	$sql = array();
++	$v = array();
++	$t = array();
++	if ($SYS_DBTYPE == "pgsql") {
++		$sql[0] = "SET AUTOCOMMIT=1";
++		$v[0] = array();
++		$t[0] = array();
++	}
++	else {
++		$sql[0] = "SET AUTOCOMMIT=0";
++		$v[0] = array();
++		$t[0] = array();
++	}
++	$sql[1] = "BEGIN";
++	$v[1] = array();
++	$t[1] = array();
++	
++	$sql[2] = "DELETE FROM gui_element WHERE e_id = $1 AND fkey_gui_id = $2";
++	$v[2] = array($e_id, $guiList1);
++	$t[2] = array("s", "s");
+ 
+ 	   if($e_left < 1){$e_left = "NULL";}
+ 	   if($e_top < 1){$e_top = "NULL";}
+@@ -132,25 +142,40 @@
+ 	   if($e_width < 1){$e_width = "NULL";}
+ 	   if($e_height < 1){$e_height = "NULL";}
+ 	   if($e_z_index < 1){$e_z_index = "NULL";}
+-	   $sql[3] = "INSERT INTO gui_element(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,e_src,e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires) ";
+-	   $sql[3] .= "VALUES ('".$guiList1."','".$e_id."','".$e_pos."','".$e_public."','".db_escape_string($e_comment)."','".$e_element."','".$e_src."','".db_escape_string($e_attributes)."',".$e_left.",".$e_top.",".$e_width.",".$e_height.",".$e_z_index.",'".$e_more_styles."','".db_escape_string($e_content)."','".$e_closetag."','".$e_js_file."','".$e_mb_mod."','".$e_target."','".$e_requires."')";
+-
++	$sql[3] = "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, ";
++	$sql[3] .= "e_comment, e_element, e_src, e_attributes, e_left, e_top, ";
++	$sql[3] .= "e_width, e_height, e_z_index, e_more_styles, e_content, ";
++	$sql[3] .= "e_closetag, e_js_file, e_mb_mod, e_target, e_requires) ";
++	$sql[3] .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, ";
++	$sql[3] .= "$13, $14, $15, $16, $17, $18, $19, $20)";
++	$v[3] = array($guiList1, $e_id, $e_pos, $e_public, db_escape_string($e_comment), $e_element, $e_src, db_escape_string($e_attributes), $e_left, $e_top, $e_width, $e_height, $e_z_index, $e_more_styles, db_escape_string($e_content), $e_closetag, $e_js_file, $e_mb_mod, $e_target, $e_requires);
++	$t[3] = array("s", "s", "s", "s", "s", "s", "s", "s", "i", "i", "i", "i", "i", "s", "s", "s", "s", "s", "s", "s");
+    }
+    # mySave == 2 <=> just save GUI description
+    elseif ($mySave == '2') {
+-	   if($SYS_DBTYPE=='pgsql')
+-   		{
+-	   	$sql[0] = "SET AUTOCOMMIT=1";
+-	 	}
+-	  else
+-	 	{
+-	 	$sql[0] = "SET AUTOCOMMIT=0";
++		$sql = array();
++		$v = array();
++		$t = array();
++		if ($SYS_DBTYPE == "pgsql") {
++			$sql[0] = "SET AUTOCOMMIT=1";
++			$v[0] = array();
++			$t[0] = array();
+ 		}
+-	   $sql[1] = "BEGIN";
+-	   $sql[3] = "UPDATE gui SET gui_description = '". $guiDesc."' WHERE gui_id ='".$guiId."'";
+-   }
+-   foreach ($sql as $mysql){
+-      $res = db_query($mysql);
++		else {
++			$sql[0] = "SET AUTOCOMMIT=0";
++			$v[0] = array();
++			$t[0] = array();
++		}
++		$sql[1] = "BEGIN";
++		$v[1] = array();
++		$t[1] = array();
++
++		$sql[2] = "UPDATE gui SET gui_description = $1 WHERE gui_id = $2";
++		$v[2] = array($guiDesc, $guiId);
++		$t[2] = array("s", "s");
++	}
++	for ($i = 0; $i < count($sql); $i++) {
++      $res = db_prep_query($sql[$i], $v[$i], $t[$i]);
+       if(!$res){break;}
+    }
+    if($res){
+@@ -163,11 +188,15 @@
+    }
+    if(isset($sql_vars)){//sicherstellen das keine Element_Vars gel�scht wurden
+    	 while($row =  db_fetch_array($res_vars)){
+-     			$securesql = "INSERT INTO gui_element_vars (fkey_gui_id,fkey_e_id,var_name,var_value,context,type) VALUES ('".$guiList1."','".$e_id."','".$row["var_name"]."','".$row["var_value"]."','".$row["context"]."','".$row["type"]."');";
+-     			//echo $securesql."<BR>";
+-     			$secureinsert = db_query($securesql);
+-     		}
+-   }
++			$securesql = "INSERT INTO gui_element_vars (fkey_gui_id, ";
++			$securesql .= "fkey_e_id, var_name, var_value, context,type) ";
++			$securesql .= "VALUES ($1, $2, $3, $4, $5, $6)";
++			$v = array($guiList1, $e_id, $row["var_name"], $row["var_value"], $row["context"], $row["type"]);
++			$t = array("s", "s", "s", "s", "s", "s");
++			//echo $securesql."<BR>";
++			$secureinsert = db_prep_query($securesql, $v, $t);
++		}
++	}
+       if(!$res){break;}
+ 
+ }
+@@ -172,8 +201,10 @@
+ 
+ }
+ if(isset($myDelete) && $myDelete == '1'){
+-   $sql = "DELETE FROM gui_element WHERE e_id = '".$e_id."' AND fkey_gui_id = '".$guiList1."'";
+-   $res = db_query($sql);
++   $sql = "DELETE FROM gui_element WHERE e_id = $1 AND fkey_gui_id = $2";
++   $v = array($e_id, $guiList1);
++   $t = array("s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    $e_id = ""; $e_pos = ""; $e_public = ""; $e_comment = ""; $e_element = "";
+    $e_src = ""; $e_attributes = ""; $e_left = ""; $e_top = ""; $e_width = ""; $e_height = ""; $e_z_index = "";
+    $e_more_styles = ""; $e_content = ""; $e_closetag = ""; $e_js_file = ""; $e_mb_mod = ""; $e_target = ""; $e_requires = "";
+@@ -185,12 +216,16 @@
+    echo "</script>";
+ }
+ if(isset($all) && $all == '1'){
+-   $sql = "SELECT * FROM gui_element WHERE fkey_gui_id = '".$guiList2."'";
+-   $res = db_query($sql);
++   $sql = "SELECT * FROM gui_element WHERE fkey_gui_id = $1";
++   $v = array($guiList2);
++   $t = array("s");
++   $res = db_prep_query($sql, $v, $t);
+    $cnt = 0;
+    while(db_fetch_row($res)){
+-      $sql_del = "DELETE FROM gui_element WHERE fkey_gui_id = '".$guiList1."' AND e_id = '".db_result($res,$cnt,"e_id")."'";
+-      $res_del = db_query($sql_del);
++      $sql_del = "DELETE FROM gui_element WHERE fkey_gui_id = $1 AND e_id = $2";
++      $v = array($guiList1, db_result($res,$cnt,"e_id"));
++      $t = array("s", "s");
++      $res_del = db_prep_query($sql_del, $v, $t);
+       if(db_result($res,$cnt,"e_left") == ""){$myleft = 'NULL';} else{$myleft = db_result($res,$cnt,"e_left");}
+       if(db_result($res,$cnt,"e_top") == ""){$mytop = 'NULL';} else{$mytop = db_result($res,$cnt,"e_top");}
+       if(db_result($res,$cnt,"e_width") == ""){$mywidth = 'NULL';} else{$mywidth = db_result($res,$cnt,"e_width");}
+@@ -197,21 +232,31 @@
+       if(db_result($res,$cnt,"e_height") == ""){$myheight = 'NULL';} else{$myheight = db_result($res,$cnt,"e_height");}
+       if(db_result($res,$cnt,"e_z_index") == ""){$my_z_index = 'NULL';} else{$my_z_index = db_result($res,$cnt,"e_z_index");}
+ 
+-      $sql_ins = "INSERT INTO gui_element(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,e_src,e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires) ";
+-      $sql_ins .= "VALUES ('".$guiList1."','".db_result($res,$cnt,"e_id")."','".db_result($res,$cnt,"e_pos")."','".db_result($res,$cnt,"e_public")."','".db_escape_string(db_result($res,$cnt,"e_comment"))."','".db_result($res,$cnt,"e_element")."','".db_result($res,$cnt,"e_src")."','".db_escape_string(db_result($res,$cnt,"e_attributes"))."',".$myleft.",";
+-      $sql_ins .= $mytop.",".$mywidth.",".$myheight.",".$my_z_index.",'".db_result($res,$cnt,"e_more_styles")."','".db_escape_string(db_result($res,$cnt,"e_content"))."','".db_result($res,$cnt,"e_closetag")."','".db_result($res,$cnt,"e_js_file")."','".db_result($res,$cnt,"e_mb_mod")."','".db_result($res,$cnt,"e_target")."','".db_result($res,$cnt,"e_requires")."')";
+-
+-      $res_ins = db_query($sql_ins);
++      $sql_ins = "INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, ";
++      $sql_ins .= "e_comment, e_element, e_src, e_attributes, e_left, e_top, ";
++      $sql_ins .= "e_width, e_height, e_z_index, e_more_styles, e_content, ";
++      $sql_ins .= "e_closetag, e_js_file, e_mb_mod, e_target, e_requires) ";
++      $sql_ins .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, ";
++      $sql_ins .= "$10, $11, $12, $13, $14, $15, $16, $17, $18, $19);";
++      $v = array($guiList1, db_result($res,$cnt,"e_id"), db_result($res,$cnt,"e_pos"), db_result($res,$cnt,"e_public"), db_escape_string(db_result($res,$cnt,"e_comment")), db_result($res,$cnt,"e_element"), db_result($res,$cnt,"e_src"), db_escape_string(db_result($res,$cnt,"e_attributes")), $myleft, $mytop, $mywidth, $myheight, $my_z_index, db_result($res,$cnt,"e_more_styles"), db_escape_string(db_result($res,$cnt,"e_content")), db_result($res,$cnt,"e_closetag"), db_result($res,$cnt,"e_js_file"), db_result($res,$cnt,"e_mb_mod"), db_result($res,$cnt,"e_target"), db_result($res,$cnt,"e_requires"));
++      $t = array("s", "s", "s", "s", "s", "s", "s", "s", "i", "i", "i", "i", "i", "s", "s", "s", "s", "s", "s", "s");
++		
++      $res_ins = db_prep_query($sql_ins, $v, $t);
+       if(!$res_ins){echo db_error($con); }
+       $cnt++;
+    }
+-   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = '".$guiList2."'";
+-      $res = db_query($sql);
++   $sql = "SELECT * FROM gui_element_vars WHERE fkey_gui_id = $1";
++   $v = array($guiList2);
++   $t = array("s");
++      $res = db_prep_query($sql, $v, $t);
+    	$cnt = 0;
+        while(db_fetch_row($res)){
+-      $sql_ins2 = "INSERT INTO gui_element_vars(fkey_gui_id,fkey_e_id,var_name,var_value,context,type) ";
+-      $sql_ins2 .= "VALUES ('".$guiList1."','".db_result($res,$cnt,"fkey_e_id")."','".db_result($res,$cnt,"var_name")."','".db_escape_string(db_result($res,$cnt,"var_value"))."','".db_escape_string(db_result($res,$cnt,"context"))."','".db_result($res,$cnt,"type")."')";
+-      $res_ins2 = db_query($sql_ins2);
++      $sql_ins2 = "INSERT INTO gui_element_vars (fkey_gui_id, fkey_e_id, ";
++      $sql_ins2 .= "var_name, var_value, context, type) VALUES (";
++      $sql_ins2 .= "$1, $2, $3, $4, $5, $6);";
++      $v = array($guiList1, db_result($res,$cnt,"fkey_e_id"), db_result($res,$cnt,"var_name"), db_escape_string(db_result($res,$cnt,"var_value")), db_escape_string(db_result($res,$cnt,"context")), db_result($res,$cnt,"type"));
++      $t = array("s", "s", "s", "s", "s", "s");
++      $res_ins2 = db_prep_query($sql_ins2, $v, $t);
+       if(!$res_ins2){echo db_error($connect); }
+ 
+       $cnt++;
+@@ -223,8 +268,10 @@
+ echo "<script language='javascript'>";
+ echo "var guiIDs = new Array();";
+ if(isset($guiList1)){
+-   $sql = "SELECT e_id FROM gui_element WHERE  fkey_gui_id = '".$guiList1."'";
+-   $res = db_query($sql);
++   $sql = "SELECT e_id FROM gui_element WHERE  fkey_gui_id = $1";
++   $v = array($guiList1);
++   $t = array("s");
++   $res = db_prep_query($sql, $v, $t);
+    $cnt = 0;
+    while(db_fetch_row($res)){
+       echo  "guiIDs[".$cnt."] = '".db_result($res,$cnt,"e_id")."'; ";
+@@ -311,16 +358,22 @@
+ $admin = new administration();
+ $ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ $permguis = $admin->getGuisByPermission($_SESSION["mb_user_id"],true);
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>\n";
++echo "<form name='form1' action='" . $self."' method='post'>\n";
++
++$sql = "SELECT * from gui WHERE gui.gui_id IN (";
++$v = $ownguis;
++$t = array();
+ 
+-$sql = "SELECT * from gui WHERE gui.gui_id IN(";
+-for($i=0; $i<count($ownguis); $i++){
+-	if($i>0){ $sql .= ",";}
+-	$sql .= "'".$ownguis[$i]."'";
++for ($i = 1; $i <= count($ownguis); $i++) {
++	if ($i > 1) {
++		$sql .= ",";
++	}
++	$sql .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql .= ")";
+ //echo $sql;
+-$res = db_query($sql);
++$res = db_prep_query($sql, $v, $t);
+ $count=0;
+ while(db_fetch_row($res)){
+ 	$gui_id_own[$count]=db_result($res,$count,"gui_id");
+@@ -330,13 +383,19 @@
+ }
+ 
+ 
+-$sql = "SELECT * from gui WHERE gui.gui_id IN(";
+-for($i=0; $i<count($permguis); $i++){
+-	if($i>0){ $sql .= ",";}
+-	$sql .= "'".$permguis[$i]."'";
++$sql = "SELECT * from gui WHERE gui.gui_id IN (";
++$v = $permguis;
++$t = array();
++
++for ($i = 1; $i <= count($permguis); $i++){
++	if ($i > 1) { 
++		$sql .= ",";
++	}
++	$sql .= "$" . $i;
++	array_push($t, "s");
+ }
+ $sql .= ")";
+-$res = db_query($sql);
++$res = db_prep_query($sql, $v, $t);
+ $count=0;
+ while($row = db_fetch_array($res)){
+ 	$gui_id_perm[$count]= $row["gui_id"];
+@@ -413,8 +472,10 @@
+ 	else{
+ 		echo "<div class='guiList2_header'>Templates</div>\n";
+ 	}
+-	$sql = "SELECT * FROM gui_element WHERE fkey_gui_id = '".$guiList2."' ORDER BY e_id";
+-	$res = db_query($sql);
++	$sql = "SELECT * FROM gui_element WHERE fkey_gui_id = $1 ORDER BY e_id";
++	$v = array($guiList2);
++	$t = array("s");
++	$res = db_prep_query($sql, $v, $t);
+ 	$cnt = 0;
+ 
+ 	echo "<div class='myElements'>\n<table>\n";
+@@ -440,8 +501,10 @@
+ #Formular:
+ echo "<table class='myForm'>\n";
+ if(isset($myElement)){
+-   $sql = "SELECT * FROM gui_element WHERE fkey_gui_id = '".$guiList2."' AND e_id = '".$myElement."'";
+-   $res = db_query($sql);
++   $sql = "SELECT * FROM gui_element WHERE fkey_gui_id = $1 AND e_id = $2";
++   $v = array($guiList2, $myElement);
++   $t = array("s", "s");
++   $res = db_prep_query($sql, $v, $t);
+    if(db_fetch_row($res)){
+       echo "<tr><td>ID: </td><td><input type='text' class='textfield' name='e_id' value='".db_result($res,0,"e_id")."'></td></tr>\n";
+       echo "<tr><td>Position: </td><td><input type='text' class='textfield' name='e_pos' value='".db_result($res,0,"e_pos")."'></td></tr>\n";
+Index: http/php/mod_editElements.php
+===================================================================
+--- http/php/mod_editElements.php	(revision 2361)
++++ http/php/mod_editElements.php	(working copy)
+@@ -17,15 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-include(dirname(__FILE__)."/../php/mb_validatePermission.php");
++require(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ $sParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-$self = $PHP_SELF . "?".$sParams;
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+@@ -169,7 +165,7 @@
+ 	if ($mySave == '1'){
+ 		//copy element vars
+ 		$sql = "SELECT * FROM gui_element_vars WHERE fkey_e_id = $1 AND fkey_gui_id = $2";
+-		$v = array($e_id,$_POST["originGuiOfSelectedElement"]);
++		$v = array($e_id_,$_POST["originGuiOfSelectedElement"]);
+ 		$t = array('s','s');
+ 		$c = 0;
+ 		$res_vars = db_prep_query($sql,$v,$t);
+@@ -177,7 +173,7 @@
+ 		db_begin();
+ 		
+ 		$sql = "DELETE FROM gui_element WHERE e_id = $1 AND fkey_gui_id = $2 ";
+-		$v = array($e_id,$guiList1);
++		$v = array($e_id_,$guiList1);
+ 		$t = array('s','s');
+ 		$res = db_prep_query($sql,$v,$t);
+ 	
+@@ -191,7 +187,7 @@
+ 		$sql .= "e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,";
+ 		$sql .= "e_closetag,e_js_file,e_mb_mod,e_target,e_requires,e_url) ";
+ 		$sql .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21)";
+-		$v = array($guiList1,$e_id,$e_pos,$e_public,$e_comment,$e_element,$e_src,$e_attributes,$e_left,
++		$v = array($guiList1,$e_id_,$e_pos,$e_public,$e_comment,$e_element,$e_src,$e_attributes,$e_left,
+ 			$e_top,$e_width,$e_height,$e_z_index,$e_more_styles,$e_content,$e_closetag,$e_js_file,
+ 			$e_mb_mod,$e_target,$e_requires,$e_url);
+ 		$t = array('s','s','i','i','s','s','s','s','i','i','i','i','i','s','s','s','s','s','s','s','s');
+@@ -209,7 +205,7 @@
+ 			$r = array();	
+ 			$sql[$c] = "INSERT INTO gui_element_vars (fkey_gui_id,fkey_e_id,var_name,var_value,context,var_type) ";
+ 			$sql[$c] .= "VALUES ($1,$2,$3,$4,$5,$6)";
+-			$v[$c] = array($guiList1,$e_id,$row["var_name"],$row["var_value"],$row["context"],$row["var_type"]);
++			$v[$c] = array($guiList1,$e_id_,$row["var_name"],$row["var_value"],$row["context"],$row["var_type"]);
+ 			$t[$c] = array('s','s','s','s','s','s');
+ 			$r[$c] = db_prep_query($sql[$c],$v[$c],$t[$c]);
+ 			if(!$r){
+@@ -230,10 +226,10 @@
+ }
+ if(isset($myDelete) && $myDelete == '1'){
+ 	$sql = "DELETE FROM gui_element WHERE e_id = $1 AND fkey_gui_id = $2";   
+-	$v = array($e_id,$guiList1);
++	$v = array($e_id_,$guiList1);
+ 	$t = array('s','s');
+ 	$res = db_prep_query($sql,$v,$t);
+-	$e_id = ""; $e_pos = ""; $e_public = ""; $e_comment = ""; $e_element = "";
++	$e_id_ = ""; $e_pos = ""; $e_public = ""; $e_comment = ""; $e_element = "";
+ 	$e_src = ""; $e_attributes = ""; $e_left = ""; $e_top = ""; $e_width = ""; $e_height = ""; $e_z_index = "";
+ 	$e_more_styles = ""; $e_content = ""; $e_closetag = ""; $e_js_file = ""; $e_mb_mod = ""; 
+ 	$e_target = ""; $e_requires = ""; $e_url = "";
+@@ -325,9 +321,9 @@
+    }
+ }
+ function thisSave(){
+-   if(document.form1.e_id.value == ""){
++   if(document.form1.e_id_.value == ""){
+       alert("ID ? ");
+-      document.form1.e_id.focus();
++      document.form1.e_id_.focus();
+       return;
+    }
+    var permission = false;
+@@ -334,8 +330,8 @@
+    var isElement = false;
+    for(var i=0; i<guiIDs.length; i++){
+       clearRadio();
+-      if(document.form1.e_id.value == guiIDs[i]){
+-         permission = confirm("update: " + document.form1.e_id.value + " ?");
++      if(document.form1.e_id_.value == guiIDs[i]){
++         permission = confirm("update: " + document.form1.e_id_.value + " ?");
+          isElement = true;
+          break;
+       }
+@@ -348,7 +344,7 @@
+ 
+ function thisDelete(){
+    clearRadio();
+-   var permission =  confirm("delete: " + document.form1.e_id.value + " ?");
++   var permission =  confirm("delete: " + document.form1.e_id_.value + " ?");
+    if(permission == true){
+       document.form1.myDelete.value = 1;
+       document.form1.submit();
+@@ -368,7 +364,7 @@
+ }
+ function thisExport(){
+ 
+-   window.open("mod_exportElement.php?element=" + document.forms[0].e_id.value+ "&gui=" +document.forms[0].guiList1.value ,"","");
++   window.open("mod_exportElement.php?element=" + document.forms[0].e_id_.value+ "&gui=" +document.forms[0].guiList1.value ,"","");
+ }
+ function editDesc(){
+ 	var newDesc = prompt("Enter new GUI description", document.form1.guiDesc.value);
+@@ -546,7 +542,7 @@
+ 	$t = array();
+ 	$res = db_prep_query($sql,$v,$t);
+ 	if($row = db_fetch_array($res)){
+-		echo "<tr><td>ID: </td><td><input type='text' class='textfield' name='e_id' value='".$row["e_id"]."'></td></tr>\n";
++		echo "<tr><td>ID: </td><td><input type='text' class='textfield' name='e_id_' value='".$row["e_id"]."'></td></tr>\n";
+ 		echo "<tr><td>Position: </td><td><input type='text' class='textfield' name='e_pos' value='".$row["e_pos"]."'></td></tr>\n";
+ 		echo "<tr><td>ON/OFF: </td><td><input type='text' class='textfield' name='e_public' value='".$row["e_public"]."'></td></tr>\n";
+ 		echo "<tr><td>Comment: </td><td><textarea cols='32' rows='5'  name='e_comment' >".stripslashes($row["e_comment"])."</textarea></td></tr>\n";
+@@ -570,7 +566,7 @@
+ 	echo "</table>";
+ }
+ else if(isset($guiList1)){
+-	echo "<tr><td>ID: </td><td><input type='text' class='textfield' name='e_id' value='".$e_id."'></td></tr>\n";
++	echo "<tr><td>ID: </td><td><input type='text' class='textfield' name='e_id_' value='".$e_id_."'></td></tr>\n";
+ 	echo "<tr><td>Position: </td><td><input type='text' class='textfield' name='e_pos' value='".$e_pos."'></td></tr>\n";
+ 	echo "<tr><td>ON/OFF: </td><td><input type='text' class='textfield' name='e_public' value='".$e_public."'></td></tr>\n";
+ 	echo "<tr><td>Comment: </td><td><textarea cols='32' rows='5'  name='e_comment' >".stripslashes($e_comment)."</textarea></td></tr>\n";
+Index: http/php/mod_editElementVars.php
+===================================================================
+--- http/php/mod_editElementVars.php	(revision 2361)
++++ http/php/mod_editElementVars.php	(working copy)
+@@ -18,11 +18,12 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-session_start();
+-//include(dirname(__FILE__)."/../php/mb_validateSession.php");
++require(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
++
+ $sParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ 
+@@ -164,7 +165,7 @@
+ <body>
+ 
+ <?php
+-   echo "<form name='form1' action='" . $PHP_SELF . "?".$sParams."' method='POST'>\n";
++   echo "<form name='form1' action='" . $self ."' method='POST'>\n";
+ 
+    $fkey_gui_id = $_REQUEST["fkey_gui_id"];
+    $fkey_e_id   = $_REQUEST["fkey_e_id"];
+Index: http/php/mod_editFilteredGroup.php
+===================================================================
+--- http/php/mod_editFilteredGroup.php	(revision 2361)
++++ http/php/mod_editFilteredGroup.php	(working copy)
+@@ -20,10 +20,11 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
++
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -138,11 +139,15 @@
+ echo "<select name='selected_group' onchange='submit()'>";
+ 	echo "<option value='new'>NEW...</option>";
+ 	$sql = "SELECT mb_group_name,mb_group_id FROM mb_group ";
++	$v = array();
++	$t = array();
+ 	if(isset($myGroup)){ 
+-		$sql .= "WHERE mb_group_owner = ".$_SESSION["mb_user_id"];
++		$sql .= "WHERE mb_group_owner = $1";
++		array_push($v, $_SESSION["mb_user_id"]);
++		array_push($t, "i");
+ 	}
+ 	$sql .= " ORDER BY mb_group_name ";
+-	$res = db_query($sql);
++	$res = db_prep_query($sql, $v, $t);
+ 	$count=0;
+ 	while($row = db_fetch_array($res)){
+ 		echo "<option value='".$row["mb_group_id"]."' ";
+Index: http/php/mod_editFilteredUser.php
+===================================================================
+--- http/php/mod_editFilteredUser.php	(revision 2361)
++++ http/php/mod_editFilteredUser.php	(working copy)
+@@ -20,10 +20,11 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
++
+ $myUser = true;
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -185,9 +186,15 @@
+    echo "<select name='selected_user' onchange='submit()'>";
+    echo "<option value='new'>NEW...</option>";
+    $sql = "SELECT mb_user_name,mb_user_id FROM mb_user ";
+-   if(isset($myUser)){ $sql .= "WHERE mb_user_owner = ".$_SESSION["mb_user_id"];}
+-   $sql .= " ORDER BY mb_user_name ";
+-   $res = db_query($sql);
++	$v = array();
++	$t = array();
++	if (isset($myUser)) { 
++		$sql .= "WHERE mb_user_owner = $1";
++		array_push($v, $_SESSION["mb_user_id"]);
++		array_push($t, "i");
++	}
++	$sql .= " ORDER BY mb_user_name ";
++	$res = db_prep_query($sql, $v, $t);
+    $count=0;
+    while($row = db_fetch_array($res)){
+ 	 	echo "<option value='".$row["mb_user_id"]."' ";
+Index: http/php/mod_editGroup.php
+===================================================================
+--- http/php/mod_editGroup.php	(revision 2361)
++++ http/php/mod_editGroup.php	(working copy)
+@@ -17,13 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -136,9 +135,15 @@
+    echo "<select name='selected_group' onchange='submit()'>";
+    echo "<option value='new'>NEW...</option>";
+    $sql = "SELECT mb_group_name,mb_group_id FROM mb_group ";
+-   if(isset($myGroup)){ $sql .= "WHERE mb_group_owner = ".$_SESSION["mb_user_id"];}
++   $v = array();
++   $t = array();
++   if (isset($myGroup)) { 
++		$sql .= "WHERE mb_group_owner = $1";
++		array_push($v, $_SESSION["mb_user_id"]);
++		array_push($t, "i");
++   }
+    $sql .= " ORDER BY mb_group_name ";
+-   $res = db_query($sql);
++   $res = db_prep_query($sql, $v, $t);
+    $count=0;
+    while($row = db_fetch_array($res)){
+ 	 	echo "<option value='".$row["mb_group_id"]."' ";
+Index: http/php/mod_editGuiWms.php
+===================================================================
+--- http/php/mod_editGuiWms.php	(revision 2361)
++++ http/php/mod_editGuiWms.php	(working copy)
+@@ -17,13 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+@@ -592,7 +591,7 @@
+   echo "<td style='background:lightgrey'><input type='text' size='2' name='L_".$layer_id[$i]."___layer_id' value='".$layer_id[$i]."' readonly></td>";
+   echo "<td><input type='text' size='1' name='L_".$layer_id[$i]."___layer_parent' value='".$layer_parent[$i]."' readonly></td>";
+   echo "<td style='background:lightgrey'><input type='text' size='7' value='".$layer_name[$i]."' readonly></td>";
+-  echo "<td><input type='text' name='".$layer_title[$i]."' size='12' value='".$layer_title[$i]."' ></td>";
++  echo "<td><input type='text' name='".$layer_title[$i]."' size='12' value='".$layer_title[$i]."' readonly></td>";
+ 
+   echo "<td style='background:lightgrey'><input name='L_".$layer_id[$i]."___gui_layer_status' type='checkbox' ";
+   if($gui_layer_status[$i] == 1){ echo "checked";}
+Index: http/php/mod_editGuiWmsMeta.php
+===================================================================
+--- http/php/mod_editGuiWmsMeta.php	(revision 2361)
++++ http/php/mod_editGuiWmsMeta.php	(working copy)
+@@ -18,8 +18,9 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-include(dirname(__FILE__)."/../php/mb_validateSession.php");
++require(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+@@ -24,7 +25,6 @@
+ db_select_db(DB,$con);
+ 
+ ?>
+-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+ <html>
+@@ -126,7 +126,7 @@
+    <body onload='windowSize()'>
+ 
+ <?php
+-   echo "      <form name='editMetaData' action='".$PHP_SELF."?".SID."' method='get'>\n";
++   echo "      <form name='editMetaData' action='".$self."' method='get'>\n";
+ 
+    $layer_id   = $_REQUEST["layer_id"];
+    
+@@ -134,19 +134,23 @@
+       $function = $_REQUEST["function"];
+       
+       if ( $function = "update" ) {
+-         $sql = "UPDATE layer SET layer_meta_datum = '".$_REQUEST["layer_meta_datum"]."'";
+-         $sql.= ", layer_meta_lieferant       = '".$_REQUEST["layer_meta_lieferant"]."'";
+-         $sql.= ", layer_meta_quelle          = '".$_REQUEST["layer_meta_quelle"]."'";
+-         $sql.= ", layer_meta_ansprechpartner = '".$_REQUEST["layer_meta_ansprechpartner"]."'";
+-         $sql.= ", layer_meta_lieferant_basis = '".$_REQUEST["layer_meta_lieferant_basis"]."'";
+-         $sql.= ", layer_meta_copyright       = '".$_REQUEST["layer_meta_copyright"]."'";
+-         $sql.= " WHERE layer_id = ".$layer_id.";";
+-         $res = db_query($sql);
++         $sql = "UPDATE layer SET layer_meta_datum = $1, ";
++         $sql.= "layer_meta_lieferant = $2, ";
++         $sql.= "layer_meta_quelle = $3, ";
++         $sql.= "layer_meta_ansprechpartner = $4, ";
++         $sql.= "layer_meta_lieferant_basis = $5, ";
++         $sql.= "layer_meta_copyright = $6 ";
++         $sql.= " WHERE layer_id = $7;";
++         $v = array($_REQUEST["layer_meta_datum"], $_REQUEST["layer_meta_lieferant"], $_REQUEST["layer_meta_quelle"], $_REQUEST["layer_meta_ansprechpartner"], $_REQUEST["layer_meta_lieferant_basis"], $_REQUEST["layer_meta_copyright"], $layer_id);
++         $t = array("s", "s", "s", "s", "s", "s", "i");
++         $res = db_prep_query($sql, $v, $t);
+       }
+    }
+    
+-   $sql = "SELECT * FROM layer WHERE layer_id = '".$layer_id."';";
+-   $res = db_query($sql);
++   $sql = "SELECT * FROM layer WHERE layer_id = $1;";
++   $v = array($layer_id);
++   $t = array("i");
++   $res = db_prep_query($sql, $v, $t);
+    
+    if ( db_fetch_row($res, 0) ) { 	
+    	  echo "         <h3>Editieren von Metadaten</h3>\n";  
+Index: http/php/mod_editSelf.php
+===================================================================
+--- http/php/mod_editSelf.php	(revision 2361)
++++ http/php/mod_editSelf.php	(working copy)
+@@ -214,7 +214,7 @@
+ 
+ /*HTML*****************************************************************************************************/
+ 
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ echo "<input type='hidden' name='selected_user' value='" . $_SESSION["mb_user_id"] . "'>";
+ echo "<table border='0'>";
+ 
+Index: http/php/mod_editUser.php
+===================================================================
+--- http/php/mod_editUser.php	(revision 2361)
++++ http/php/mod_editUser.php	(working copy)
+@@ -20,10 +20,10 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -200,9 +200,15 @@
+    echo "<select name='selected_user' onchange='submit()'>";
+    echo "<option value='new'>NEW...</option>";
+    $sql = "SELECT mb_user_name,mb_user_id FROM mb_user ";
+-   if(isset($myUser)){ $sql .= "WHERE mb_user_owner = ".$_SESSION["mb_user_id"];}
++   $v = array();
++   $t = array();
++	if (isset($myUser)) { 
++   		$sql .= "WHERE mb_user_owner = $1";
++   		array_push($v, $_SESSION["mb_user_id"]);
++   		array_push($t, "i");
++   	}
+    $sql .= " ORDER BY mb_user_name ";
+-   $res = db_query($sql);
++   $res = db_prep_query($sql, $v, $t);
+    $count=0;
+    while($row = db_fetch_array($res)){
+ 	 	echo "<option value='".$row["mb_user_id"]."' ";
+@@ -339,5 +345,18 @@
+ ?>
+ <input type='hidden' name='action' value=''>
+ </form>
++<script type="text/javascript">
++<!--
++var user=[];
++<?php
++for($i=0; $i<$cnt_user; $i++){
++	echo "user[".($i)."]=[];\n";
++	echo "user[".($i)."]['id']='" . $user_id[$i]  . "';\n";
++	echo "user[".($i)."]['name']='" . $user_name[$i]  . "';\n";
++	echo "user[".($i)."]['email']='" . $user_email[$i]  . "';\n";
++}
++?>
++// -->
++</script>
+ </body>
+ </html>
+\ No newline at end of file
+Index: http/php/mod_editWMS_Metadata.php
+===================================================================
+--- http/php/mod_editWMS_Metadata.php	(revision 2361)
++++ http/php/mod_editWMS_Metadata.php	(working copy)
+@@ -17,16 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-
+-session_start();
+-include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++import_request_variables("PG");
+ require_once(dirname(__FILE__)."/mb_validatePermission.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+-$secParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-$self = $PHP_SELF."?".$secParams;
+ 
+ ?>
+-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+ <head>
+@@ -31,20 +26,12 @@
+ <html>
+ <head>
+ <title>Edit WMS Metadata</title>
+-
+ <?php
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';   
+ include_once '../include/dyn_css.php';
+-#Error reporting 
+-error_reporting(E_ALL);
+-ini_set('display_errors', TRUE);
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+ 
+ $adm = new administration();
+-
+ ?>
+-
+ <script language="JavaScript">
+ var dTarget;
+ function save()
+@@ -57,7 +44,7 @@
+ {
+ 	var url = String(document.location);
+ 	url = url.substr(0, url.indexOf('?'));
+-	window.open(url+"?<?php echo strip_tags(SID);?>&guiID=<?php echo $_REQUEST["guiID"]?>&elementID=<?php echo $_REQUEST["elementID"];?>&delete_preview=1&layer_id="+layer_id,'delete preview', 'height=50, width=150, dependent=yes');
++	window.open(url+"?<?php echo strip_tags(SID);?>&guiID=<?php echo $gui_id;?>&elementID=<?php echo $e_id;?>&delete_preview=1&layer_id="+layer_id,'delete preview', 'height=50, width=150, dependent=yes');
+ 	document.getElementById(layer_id+"_dp").style.display="none";
+ }
+ 
+@@ -67,7 +54,7 @@
+     var dp =
+ window.open('../tools/datepicker/datepicker.php?m=Jan_Feb_Mrz_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez&d=Mo_Di_Mi_Do_Fr_Sa_So&t=heute','dp','left=200,top=200,width=230,height=210,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0');
+     dp.focus();
+-    return false
++    return false;
+ }
+ </script>
+ </head>
+@@ -77,15 +64,15 @@
+ function guessTimestamp($timestr) 
+ {
+ 	
+-     if (strstr($timestr, '.'))
++     if (strpos($timestr, '.'))
+      {
+         list($day, $month, $year) = explode(".", $timestr);
+      }
+-     elseif (strstr($timestr, '/'))
++     elseif (strpos($timestr, '/'))
+      {
+         list($month, $day, $year) = explode("/", $timestr);
+      }
+-     elseif (strstr($timestr, '-'))
++     elseif (strpos($timestr, '-'))
+      {
+         list($year, $month, $day) = explode("-", $timestr);
+      }
+@@ -101,33 +88,52 @@
+ 
+ #Update handling
+ 
+-if(isset($_REQUEST['update_content']) && $_REQUEST['update_content'] == true)
+-{
++if (isset($_REQUEST['update_content']) && $_REQUEST['update_content'] == true) {
+ 	
+-            $update_wms_sql = "UPDATE wms SET " . 
+-                      "wms_title = '".$_REQUEST['wms_title_box']."', " .
+-                      "wms_abstract = '".$_REQUEST['wms_abstract_box']."', " . 
+-                      "fees = '".$_REQUEST['fees_box']."', " .
+-                      "accessconstraints = '".$_REQUEST['accessconstraints_box']."', " .
+-                      "contactperson = '".$_REQUEST['contactperson_box']."', " .
+-                      "contactposition = '".$_REQUEST['contactposition_box']."', " .
+-                      "contactorganization = '".$_REQUEST['contactorganization_box']."', " .
+-                      "address = '".$_REQUEST['address_box']."', " .
+-                      "city = '".$_REQUEST['city_box']."', " .
+-                      "stateorprovince = '".$_REQUEST['stateorprovince_box']."', " .
+-                      "postcode = '".$_REQUEST['postcode_box']."', " .
+-                      "country = '".$_REQUEST['country_box']."', " .
+-                      "contactvoicetelephone = '".$_REQUEST['contactvoicetelephone_box']."', " .
+-                      "contactfacsimiletelephone = '".$_REQUEST['contactfacsimiletelephone_box']."', " .
+-                      "contactelectronicmailaddress = '".$_REQUEST['contactelectronicmailaddress_box']."'";
+-                      if (isset($_REQUEST['wms_timestamp_box']) && $_REQUEST['wms_timestamp_box'] <> "")
+-                      {
+-                            $update_wms_sql .= ", " . "wms_timestamp = " .
+-                            "'".guessTimestamp($_REQUEST['wms_timestamp_box'])."' ";
+-                      }
+-   $update_wms_sql .= "WHERE wms_id = '".$_REQUEST['wms_id']."'";
+-    $res_update_wms_sql = db_query($update_wms_sql);
+-     while(list($key,$val) = each($_REQUEST))
++	$update_wms_sql = "UPDATE wms SET "; 
++	$update_wms_sql .= "wms_title = $1, wms_abstract = $2, fees = $3, ";
++	$update_wms_sql .= "accessconstraints = $4, contactperson = $5, ";
++	$update_wms_sql .= "contactposition = $6, contactorganization = $7, ";
++	$update_wms_sql .= "address = $8, city = $9, stateorprovince = $10, ";
++	$update_wms_sql .= "postcode = $11, country = $12, ";
++	$update_wms_sql .= "contactvoicetelephone = $13, ";
++	$update_wms_sql .= "contactfacsimiletelephone = $14, ";
++	$update_wms_sql .= "contactelectronicmailaddress = $15 ";
++
++	$v = array();
++	array_push($v, $_REQUEST['wms_title_box']);
++	array_push($v, $_REQUEST['wms_abstract_box']);
++	array_push($v, $_REQUEST['fees_box']);
++	array_push($v, $_REQUEST['accessconstraints_box']);
++	array_push($v, $_REQUEST['contactperson_box']);
++	array_push($v, $_REQUEST['contactposition_box']);
++	array_push($v, $_REQUEST['contactorganization_box']);
++	array_push($v, $_REQUEST['address_box']);
++	array_push($v, $_REQUEST['city_box']);
++	array_push($v, $_REQUEST['stateorprovince_box']);
++	array_push($v, $_REQUEST['postcode_box']);
++	array_push($v, $_REQUEST['country_box']);
++	array_push($v, $_REQUEST['contactvoicetelephone_box']);
++	array_push($v, $_REQUEST['contactfacsimiletelephone_box']);
++	array_push($v, $_REQUEST['contactelectronicmailaddress_box']);
++	$t = array("s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s");
++
++	if (isset($_REQUEST['wms_timestamp_box']) && $_REQUEST['wms_timestamp_box'] <> "") {
++        $update_wms_sql .= ", wms_timestamp = $16 ";
++		array_push($v, guessTimestamp($_REQUEST['wms_timestamp_box']));
++		array_push($t, "s");
++
++		$update_wms_sql .= "WHERE wms_id = $17";
++	}
++	else {
++		$update_wms_sql .= "WHERE wms_id = $16";
++	}
++	array_push($v, 	$_REQUEST['wms_id']);
++	array_push($t, "s");
++
++    $res_update_wms_sql = db_prep_query($update_wms_sql, $v, $t);
++
++    while(list($key,$val) = each($_REQUEST))
+     {
+         if(preg_match("/___/", $key))
+         {
+@@ -132,20 +138,19 @@
+         if(preg_match("/___/", $key))
+         {
+             $myKey = explode("___", $key);
+-            $layer_id = str_replace("L_","",$myKey[0]);
+-            if($myKey[1]=="layer_abstract")
+-            {
+-                $layer_sql = "UPDATE layer SET layer_abstract = '$val' " .
+-                             "WHERE layer_id = $layer_id AND fkey_wms_id = '".$_REQUEST['wms_id']."'";  
+-                $res_keyword_sql = db_query($layer_sql);
++            $layer_id = preg_replace("/L_/","",$myKey[0]);
++            if($myKey[1]=="layer_abstract") {
++				$layer_sql = "UPDATE layer SET layer_abstract = $1 ";
++				$layer_sql .= "WHERE layer_id = $2 AND fkey_wms_id = $3";  
++                $v = array($val, $layer_id, $_REQUEST['wms_id']);
++                $t = array("s", "i", "s");
++                $res_keyword_sql = db_prep_query($layer_sql, $v, $t);
+             }
+-            if($myKey[1]=="layer_keywords")
+-            {
++            if($myKey[1]=="layer_keywords") {
+                 #Get all keywords depending on the given layer after user modification
+                 $keywords  = explode(",",$val);
+                 #delete all blanks from the keywords list
+-                for($j = 0; $j < count($keywords); $j++)
+-                {
++                for ($j = 0; $j < count($keywords); $j++) {
+                     $word = $keywords[$j];
+                     $word = trim($word);
+                     $keywords[$j] = $word;
+@@ -155,9 +160,12 @@
+                 $keyword_sql = "SELECT keyword_id, keyword FROM keyword, layer_keyword, layer " .
+                                "WHERE keyword.keyword_id = layer_keyword.fkey_keyword_id " .
+                                "AND layer_keyword.fkey_layer_id = layer.layer_id " .
+-                               "AND layer.fkey_wms_id = '".$_REQUEST['wms_id']."'" .
+-                               "AND layer.layer_id = $layer_id";
+-                $res_keyword_sql = db_query($keyword_sql);
++                               "AND layer.fkey_wms_id = $1 " .
++                               "AND layer.layer_id = $2";
++                
++                $v = array($_REQUEST['wms_id'], $layer_id); 
++                $t = array("s", "i");
++                $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
+                 while($keyword_row = db_fetch_array($res_keyword_sql))
+                 {
+                     $keyword = $keyword_row['keyword'];
+@@ -171,13 +179,17 @@
+                         #echo "1c: Keyword nicht in User Liste: Keyword: ", $keyword, ";<br>";
+                         #Deleting reference to the keyword from the layer_keyword table.
+                         $keyword_sql = "DELETE FROM layer_keyword " .
+-                                       "WHERE fkey_layer_id = $layer_id " .
+-                                       "AND fkey_keyword_id = $keyword_id";
+-                        db_query($keyword_sql);
++                                       "WHERE fkey_layer_id = $1 " .
++                                       "AND fkey_keyword_id = $2";
++                        $v = array($layer_id, $keyword_id);
++                        $t = array("i", "i");
++                        db_prep_query($keyword_sql, $v, $t);
+                         #Checking, if the keyword is in use by any layer
+                         $layer_sql = "SELECT * FROM layer_keyword " .
+-                                       "WHERE fkey_keyword_id = $keyword_id";
+-                        $res_layer_sql = db_query($layer_sql);
++                                       "WHERE fkey_keyword_id = $1";
++                        $v = array($keyword_id);
++                        $t = array("i");
++                        $res_layer_sql = db_prep_query($layer_sql, $v, $t);
+                         if(!($row = db_fetch_array($res_layer_sql)))
+                         {
+                             #If keyword will not longer be in use, delete it from keyword table
+@@ -182,8 +194,10 @@
+                         {
+                             #If keyword will not longer be in use, delete it from keyword table
+                             $keyword_sql = "DELETE FROM keyword " .
+-                                           "WHERE keyword_id = $keyword_id";
+-                            db_query($keyword_sql);
++                                           "WHERE keyword_id = $1";
++                            $v = array($keyword_id);
++                            $t = array("i");
++                            db_prep_query($keyword_sql, $v, $t);
+                         }
+                     }
+                     #Keyword exists in the database and in the user data
+@@ -211,8 +225,10 @@
+                         $keyword = trim($keywords[$i]);
+                         #Check, if the keyword is exsiting in the database
+                         $keyword_sql = "SELECT keyword_id FROM keyword " .
+-                                       "WHERE UPPER(keyword) = UPPER('$keyword')";
+-                        $res_keyword_sql = db_query($keyword_sql);
++                                       "WHERE UPPER(keyword) = UPPER($1)";
++                        $v = array($keyword);
++                        $t = array("s");
++                        $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
+                         $keyword_row = db_fetch_array($res_keyword_sql);
+                         #Keyword exists in the database
+                         if($keyword_row != null)
+@@ -223,10 +239,15 @@
+                         #Keyword does not exist in the database
+                         else
+                         {
+-                            $keyword_sql = "INSERT INTO keyword (keyword) VALUES ('$keyword')";
+-                            $res_keyword_sql = db_query($keyword_sql);
+-                            $keyword_sql = "SELECT keyword_id FROM keyword WHERE keyword = '$keyword'";
+-                            $res_keyword_sql = db_query($keyword_sql);
++                            $keyword_sql = "INSERT INTO keyword (keyword) VALUES ($1)";
++                            $v = array($keyword);
++                            $t = array("s");
++                            $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
++                            
++                            $keyword_sql = "SELECT keyword_id FROM keyword WHERE keyword = $1";
++                            $v = array($keyword);
++                            $t = array("s");
++                            $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
+                             $keyword_row = db_fetch_array($res_keyword_sql);
+                             if($keyword_row != null)
+                             {
+@@ -236,8 +257,10 @@
+                         }
+                         #Inserting the reference between layer and keyword in the layer_keyword table
+                         $keyword_sql = "INSERT INTO layer_keyword (fkey_layer_id, fkey_keyword_id) " .
+-                                       "VALUES ('$layer_id', '$keyword_id')";
+-                        $res_keyword_sql = db_query($keyword_sql);
++                                       "VALUES ($1, $2)";
++                        $v = array($layer_id, $keyword_id);
++                        $t = array("s", "s");
++                        $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
+                     }
+                 }
+                 #Delete all elements from array
+@@ -253,12 +276,14 @@
+ if(isset($_REQUEST['delete_preview']) && $_REQUEST['delete_preview']=='1'
+ 	&& isset($_REQUEST['layer_id']))
+ {
+-    $preview_sql = "DELETE FROM layer_preview WHERE fkey_layer_id = ".$_REQUEST['layer_id']."";
+-    $res_preview_sql = db_query($preview_sql);
++    $preview_sql = "DELETE FROM layer_preview WHERE fkey_layer_id = $1";
++    $v = array($_REQUEST['layer_id']);
++    $t = array("s");
++    $res_preview_sql = db_prep_query($preview_sql, $v, $t);
+     die("Preview has been deleted!</body></html>");
+ }
+ ?>
+-<form name='form1' action='<?php  $self ?>' method='post'>
++<form name='form1' action='<?php echo $self; ?>' method='post'>
+ 
+ <table border='0'>
+ <tr>
+@@ -273,12 +298,13 @@
+ 
+ #Use select box to select a wms
+ 
+-if (isset($_REQUEST['show_wms_list']) && $_REQUEST['show_wms_list'] == true)
+-{
++//if (isset($_REQUEST['show_wms_list']) && $_REQUEST['show_wms_list'] == true){
+ 
+     #Querying information from wms data table 
+-    $wms_sql = "SELECT wms_id, wms_title FROM wms WHERE wms_owner = ".$_SESSION["mb_user_id"]. " ORDER BY wms_title";
+-    $res_wms_sql = db_query($wms_sql);
++    $wms_sql = "SELECT wms_id, wms_title FROM wms WHERE wms_owner = $1 ORDER BY wms_title";
++    $v = array($_SESSION["mb_user_id"]);
++    $t = array("i");
++    $res_wms_sql = db_prep_query($wms_sql, $v, $t);
+     #wms-selection
+ 
+     $selectBox = "";
+@@ -306,7 +332,7 @@
+ 
+     if(isset($_REQUEST['wmsList']) == true && $_REQUEST['wmsList'] <>0)
+     editWMSByWMSID ($_REQUEST['wmsList']);
+-}
++//}
+ 
+ echo "</table>";
+ 
+@@ -321,8 +347,10 @@
+ 
+ if(isset($wms_id) == true && $wms_id <>0)
+ { 
+-	$selected_wms_sql = "SELECT * FROM wms WHERE wms_id = '".$wms_id."'";
+-    $res_selected_wms_sql = db_query($selected_wms_sql);
++	$selected_wms_sql = "SELECT * FROM wms WHERE wms_id = $1";
++	$v = array($wms_id);
++	$t = array("s");
++    $res_selected_wms_sql = db_prep_query($selected_wms_sql, $v, $t);
+     $selected_row = db_fetch_array($res_selected_wms_sql);
+ 
+ ?>
+@@ -400,9 +428,11 @@
+     
+ <?php
+    
+-    $layer_sql = "SELECT * FROM layer WHERE layer.fkey_wms_id = '".$wms_id."'" .
++    $layer_sql = "SELECT * FROM layer WHERE layer.fkey_wms_id = $1" .
+                  " ORDER BY layer_pos";
+-    $res_layer_sql = db_query($layer_sql);
++    $v = array($wms_id);
++    $t = array("s");
++    $res_layer_sql = db_prep_query($layer_sql, $v, $t);
+     
+     while($layer_row = db_fetch_array($res_layer_sql))
+     {
+@@ -419,9 +449,11 @@
+         $keyword_sql = "SELECT keyword FROM keyword, layer_keyword, layer " .
+                        "WHERE keyword.keyword_id = layer_keyword.fkey_keyword_id " .
+                        "AND layer_keyword.fkey_layer_id = layer.layer_id " .
+-                       "AND layer.fkey_wms_id = '".$wms_id."' " .
+-                       "AND layer.layer_id = ".$layer_row['layer_id']."";
+-        $res_keyword_sql = db_query($keyword_sql);
++                       "AND layer.fkey_wms_id = $1 " .
++                       "AND layer.layer_id = $2";
++        $v = array($wms_id, $layer_row['layer_id']);
++        $t = array("s", "i");
++        $res_keyword_sql = db_prep_query($keyword_sql, $v, $t);
+         $keywordList = "";
+         $seperator = "";
+         while($keyword_row = db_fetch_array($res_keyword_sql))
+Index: http/php/mod_evalArea.php
+===================================================================
+--- http/php/mod_evalArea.php	(revision 2361)
++++ http/php/mod_evalArea.php	(working copy)
+@@ -17,9 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ import_request_variables("PG");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+ include '../include/dyn_css.php';
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -31,11 +32,6 @@
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+ ?>
+ <title>Resultset</title>
+-<?php
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-
+-?>
+ <style type="text/css">
+ 	<!--
+ 
+@@ -61,55 +57,71 @@
+ $posY = explode (",", $y);
+ 
+ 
+-if(SYS_DBTYPE=='pgsql'){
+-	if(count($posX) > 3){
+-	  $sql = "SELECT area2d(GeometryFromText('MULTIPOLYGON(((";
+-	  for($i=0; $i<count($posX); $i++){
+-	  	if($i>0){$sql .= ",";}
+-	  	$sql .= $posX[$i] . " " . $posY[$i];
+-	  }
+-	  $sql .= ")))',".rawurldecode($epsg).")) as myArea";
+-	  $res = db_query($sql);
+-	  if($row = db_fetch_array($res)){
+-	     echo "Fl&auml;che: ".round($row[0]*100)/100 . " m<sup>2</sup>";
+-	  }
+-	}
+-	else{
+-	   echo "Fl&auml;che: 0 m<sup>2</sup>";
+-	}
+-}else{
+-	#echo "Fl�chenberechnung f�r MySQL liegt derzeit nicht vor<br></sup>";
+-	#$con = db_connect($GEOS_DBSERVER,$GEOS_PORT,$GEOS_OWNER,$GEOS_PW);
+-	#db_select_db($GEOS_DBSERVER,$con);
+-	$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
++// check if parameters are valid geometries to 
++// avoid SQL injections
++$regExp = "/\d(,\d)*/";
++if (preg_match($regExp, $x) && preg_match($regExp, $y)) {
++
++	if(SYS_DBTYPE=='pgsql'){
++		if (count($posX) > 3) {
++			$sql = "SELECT area2d(GeometryFromText('MULTIPOLYGON(((";
++			for ($i = 0; $i < count($posX); $i++) {
++				if ($i > 0) {
++					$sql .= ",";
++				}
++				$sql .= $posX[$i] . " " . $posY[$i];
++			}
++			$sql .= ")))',".rawurldecode($epsg).")) as myArea";
+ 	
+-	$con = pg_connect($con_string) or die ("Error while connecting database");
+-	
++			// the input parameters are valid
++			$res = db_query($sql);
++			if($row = db_fetch_array($res)){
++				echo "Fl&auml;che: ".round($row[0]*100)/100 . " m<sup>2</sup>";
++			}
++		}
++		else{
++			echo "Fl&auml;che: 0 m<sup>2</sup>";
++		}
++	}else{
++		#echo "Fl�chenberechnung f�r MySQL liegt derzeit nicht vor<br></sup>";
++		#$con = db_connect($GEOS_DBSERVER,$GEOS_PORT,$GEOS_OWNER,$GEOS_PW);
++		#db_select_db($GEOS_DBSERVER,$con);
++		$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
++		
++		$con = pg_connect($con_string) or die ("Error while connecting database");
++		
++		
++		if(count($posX) > 3){
++		  $sql = "SELECT area2d(GeometryFromText('MULTIPOLYGON(((";
++		  $i==0;
++		  for($i=0; $i<count($posX); $i++){
++		  	if($i>0){$sql .= ",";}
++		  	$sql .= $posX[$i] . " " . $posY[$i];
++		  }
++		  $sql .= ")))',".rawurldecode($epsg).")) as myArea";
++		  $res = pg_query($con,$sql);
++		  
++		  $cnt = 0;
++		  while(pg_fetch_row($res)){
++		  	 $area = pg_fetch_result($res,$cnt,0);
++		     echo "Fl&auml;che: ".round($area*100)/100 . " m<sup>2</sup>";
++		     $cnt++;
++		  }
++		}
++		else{
++		   echo "Fl&auml;che: 0 m<sup>2</sup>";
++		}
++	}
+ 	
+-	if(count($posX) > 3){
+-	  $sql = "SELECT area2d(GeometryFromText('MULTIPOLYGON(((";
+-	  $i==0;
+-	  for($i=0; $i<count($posX); $i++){
+-	  	if($i>0){$sql .= ",";}
+-	  	$sql .= $posX[$i] . " " . $posY[$i];
+-	  }
+-	  $sql .= ")))',".rawurldecode($epsg).")) as myArea";
+-	  $res = pg_query($con,$sql);
+-	  
+-	  $cnt = 0;
+-	  while(pg_fetch_row($res)){
+-	  	 $area = pg_fetch_result($res,$cnt,0);
+-	     echo "Fl&auml;che: ".round($area*100)/100 . " m<sup>2</sup>";
+-	     $cnt++;
+-	  }
+-	}
+-	else{
+-	   echo "Fl&auml;che: 0 m<sup>2</sup>";
+-	}
++	echo "<br>";
++	echo "Umfang: ". $length . " m";
++} 
++else {
++	$e = new mb_exception("mod_evalArea.php: invalid input geometry; coordinates not float values.");
++	echo "Fl&auml;che: 0 m<sup>2</sup>";
+ }
+ 
+-echo "<br>";
+-echo "Umfang: ". $length . " m";
++
+ #Centroid(geometry)
+ /*
+ $sql = "SELECT Centroid(GeometryFromText('MULTIPOLYGON(((";
+Index: http/php/mod_export_image.php
+===================================================================
+--- http/php/mod_export_image.php	(revision 2361)
++++ http/php/mod_export_image.php	(working copy)
+@@ -16,10 +16,14 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-session_start();
++
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ import_request_variables("PG");
++
+ $_SESSION["mb_print_url"] = $map_url;
+ $_SESSION["mb_print_resolution"] = $quality;
++
+ header("Content-type: application/png"); // mark the following content as PNG file
+ $date = date("d.m.y");
+ header("Content-Disposition: attachment; filename=export".$date.".png");
+Index: http/php/mod_exportElement.php
+===================================================================
+--- http/php/mod_exportElement.php	(revision 2361)
++++ http/php/mod_exportElement.php	(working copy)
+@@ -18,6 +18,7 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_exportGUI.php
+===================================================================
+--- http/php/mod_exportGUI.php	(revision 2361)
++++ http/php/mod_exportGUI.php	(working copy)
+@@ -17,13 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ 
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/php/mod_filteredGroup_filteredGui.php
+===================================================================
+--- http/php/mod_filteredGroup_filteredGui.php	(revision 2361)
++++ http/php/mod_filteredGroup_filteredGui.php	(working copy)
+@@ -20,10 +20,10 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGroup_filteredUser.php
+===================================================================
+--- http/php/mod_filteredGroup_filteredUser.php	(revision 2361)
++++ http/php/mod_filteredGroup_filteredUser.php	(working copy)
+@@ -20,11 +20,10 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGroup_Gui.php
+===================================================================
+--- http/php/mod_filteredGroup_Gui.php	(revision 2361)
++++ http/php/mod_filteredGroup_Gui.php	(working copy)
+@@ -20,11 +20,10 @@
+ 
+ import_request_variables("PG");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGroup_User.php
+===================================================================
+--- http/php/mod_filteredGroup_User.php	(revision 2361)
++++ http/php/mod_filteredGroup_User.php	(working copy)
+@@ -18,12 +18,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGui_filteredGroup.php
+===================================================================
+--- http/php/mod_filteredGui_filteredGroup.php	(revision 2361)
++++ http/php/mod_filteredGui_filteredGroup.php	(working copy)
+@@ -18,12 +18,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGui_filteredUser.php
+===================================================================
+--- http/php/mod_filteredGui_filteredUser.php	(revision 2361)
++++ http/php/mod_filteredGui_filteredUser.php	(working copy)
+@@ -18,12 +18,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/php/mod_filteredGui_group.php
+===================================================================
+--- http/php/mod_filteredGui_group.php	(revision 2361)
++++ http/php/mod_filteredGui_group.php	(working copy)
+@@ -17,12 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredGui_User.php
+===================================================================
+--- http/php/mod_filteredGui_User.php	(revision 2361)
++++ http/php/mod_filteredGui_User.php	(working copy)
+@@ -17,13 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredUser_filteredGroup.php
+===================================================================
+--- http/php/mod_filteredUser_filteredGroup.php	(revision 2361)
++++ http/php/mod_filteredUser_filteredGroup.php	(working copy)
+@@ -17,12 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredUser_filteredGui.php
+===================================================================
+--- http/php/mod_filteredUser_filteredGui.php	(revision 2361)
++++ http/php/mod_filteredUser_filteredGui.php	(working copy)
+@@ -17,13 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredUser_Group.php
+===================================================================
+--- http/php/mod_filteredUser_Group.php	(revision 2361)
++++ http/php/mod_filteredUser_Group.php	(working copy)
+@@ -17,12 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredUser_Gui.php
+===================================================================
+--- http/php/mod_filteredUser_Gui.php	(revision 2361)
++++ http/php/mod_filteredUser_Gui.php	(working copy)
+@@ -17,12 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_filteredWms_layer_topic.php
+===================================================================
+--- http/php/mod_filteredWms_layer_topic.php	(revision 2361)
++++ http/php/mod_filteredWms_layer_topic.php	(working copy)
+@@ -17,16 +17,6 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-require_once(dirname(__FILE__)."/mb_validatePermission.php");
+-require_once("../classes/class_administration.php");
+-
+-$logged_user_name = $_SESSION["mb_user_name"];
+-$logged_user_id = $_SESSION["mb_user_id"];
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -32,198 +22,8 @@
+ <html>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET;?>">	
+ <title>Administration</title>
+-<?php
+-include '../include/dyn_css.php';
+-?>
+-<script language="JavaScript">
+-function validate(wert){
+-	if(document.forms[0]["selected_wms"].selectedIndex == -1){
+-		document.getElementsByName("selected_wms")[0].style.backgroundColor = '#ff0000';
+-		return;
+-	}else if(document.forms[0]["selected_layer"].selectedIndex == -1){
+-		document.getElementsByName("selected_layer")[0].style.backgroundColor = '#ff0000';
+-		return;
+-	}else{
+-		if(wert == "remove"){
+-			if(document.forms[0]["remove_topic[]"].selectedIndex == -1){
+-				document.getElementsByName("remove_topic[]")[0].style.backgroundColor = '#ff0000';
+-				return;
+-			}
+-			document.form1.remove.value = 'true';
+-			document.form1.submit();
+-		}
+-		if(wert == "insert"){
+-			if(document.forms[0]["selected_topic[]"].selectedIndex == -1){
+-				document.getElementsByName("selected_topic[]")[0].style.backgroundColor = '#ff0000';
+-				return;
+-			}
+-			document.form1.insert.value = 'true';
+-			document.form1.submit();
+-		}
+-	}
+-}
+-</script>
+ </head>
+ <body>
+-<?php
+-
+-$fieldHeight = 20;
+-$language_suffix = "en";
+-
+-//FIXME: there seems to be an error in dyn_css.php concerning php vars.
+-if ($language == "'de'") {
+-	$language_suffix = "de";
+-}
+-
+-$admin = new administration();
+-$own_gui_id_array = $admin->getGuisByOwner($logged_user_id,true);
+-$own_wms_id_array = array();
+-
+-$sql = "SELECT wms_id FROM wms WHERE wms_owner = $1";
+-$v = array($logged_user_id);
+-$t = array('i');
+-$res = db_prep_query($sql,$v,$t);
+-
+-while($row = db_fetch_array($res)){
+-	array_push($own_wms_id_array,$row['wms_id']);
+-}
+-$own_layer_id_array = $admin->getLayerByWms($selected_wms);
+-
+-/*handle remove, update and insert*****************************************************************/
+-if($insert){
+-	if(count($selected_topic) > 0){
+-		for($i=0; $i<count($selected_topic); $i++){
+-			$exists = false;
+-			$sql_insert = "SELECT * FROM layer_md_topic_category WHERE fkey_layer_id = $1 and fkey_md_topic_category_id = $2";
+-			$v = array($selected_layer,$selected_topic[$i]);
+-			$t = array('i','i');
+-			$res_insert = db_prep_query($sql_insert,$v,$t);
+-			while(db_fetch_row($res_insert)){$exists = true;}
+-			if($exists == false){
+-				$sql_insert = "INSERT INTO layer_md_topic_category (fkey_layer_id, fkey_md_topic_category_id) VALUES($1, $2)";
+-				$v = array($selected_layer,$selected_topic[$i]);
+-				$t = array('i','i');
+-				$res_insert = db_prep_query($sql_insert,$v,$t);
+-			}
+-		}
+-	}
+-}
+-if($remove){
+-	if(count($remove_topic)>0){
+-		for($i=0; $i<count($remove_topic); $i++){
+-			$sql_remove = "DELETE FROM layer_md_topic_category WHERE fkey_md_topic_category_id = $1 and fkey_layer_id = $2";
+-			$v = array($remove_topic[$i],$selected_layer);
+-			$t = array('i','s');
+-			db_prep_query($sql_remove,$v,$t);
+-		}
+-	}
+-}
+-
+-
+-if (!isset($selected_layer)) {
+-	if (count($own_layer_id_array) > 0) {
+-		$selected_layer = $own_layer_id_array[0];
+-	}
+-}
+-
+-$topic_id_layer = array();
+-
+-if (isset($selected_layer)) {
+-	/*get all topics from selected layer*****************************************************************/
+-	if ($language_suffix == "de") {
+-		$sql_layer_topic = "SELECT t.md_topic_category_id, t.md_topic_category_code_de ";
+-		$sql_layer_topic .= "FROM layer_md_topic_category as w, md_topic_category as t WHERE w.fkey_layer_id = $1 AND w.fkey_md_topic_category_id = t.md_topic_category_id ";
+-		$sql_layer_topic .= "ORDER BY t.md_topic_category_code_de";
+-	}
+-	else {
+-		$sql_layer_topic = "SELECT t.md_topic_category_id, t.md_topic_category_code_en ";
+-		$sql_layer_topic .= "FROM layer_md_topic_category as w, md_topic_category as t WHERE w.fkey_layer_id = $1 AND w.fkey_md_topic_category_id = t.md_topic_category_id ";
+-		$sql_layer_topic .= "ORDER BY t.md_topic_category_code_en";
+-	}
+-	
+-	$v = array($selected_layer);
+-	$t = array('s');
+-	$res_layer_topic = db_prep_query($sql_layer_topic,$v,$t);
+-
+-	while($row = db_fetch_array($res_layer_topic)){
+-		array_push($topic_id_layer, $row["md_topic_category_id"]);
+-		array_push($topic_name_layer, $row["md_topic_category_code_".$language_suffix]);
+-	}
+-}
+-/*get all topics **********************************************************************************/
+-if ($language_suffix == "de") {
+-	$sql_topic = "SELECT * FROM md_topic_category ORDER BY md_topic_category_code_de";
+-}
+-else {
+-	$sql_topic = "SELECT * FROM md_topic_category ORDER BY md_topic_category_code_en";
+-}
+-$res_topic = db_query($sql_topic);
+-$topic_id = array();
+-$topic_name = array();
+-while($row = db_fetch_array($res_topic)){
+-	if (!in_array($row["md_topic_category_id"], $topic_id_layer)) {
+-		array_push($topic_id, $row["md_topic_category_id"]);
+-		array_push($topic_name, $row["md_topic_category_code_".$language_suffix]);
+-	}
+-}
+-
+-/*INSERT HTML*/
+-echo "<form name='form1' action='" . $self ."' method='post'>";
+-
+-/*insert wms in selectbox*************************************************************************/
+-echo "<div class='text1'>WMS: </div>";
+-echo "<select style='background:#ffffff' class='select1' name='selected_wms' onChange='submit()' size='10'>";
+-for($i=0; $i<count($own_wms_id_array); $i++){
+-	echo "<option value='" . $own_wms_id_array[$i] . "' ";
+-	if($selected_wms && $selected_wms == $own_wms_id_array[$i]){
+-		echo "selected";
+-	}
+-	echo ">" . $admin->getWmsTitleByWmsId($own_wms_id_array[$i]) . "</option>";
+-}
+-echo "</select>";
+-
+-/*insert wms in selectbox*************************************************************************/
+-echo "<div class='text2'>Layer: </div>";
+-echo "<select style='background:#ffffff' class='select2' name='selected_layer' onChange='submit()' size='10'>";
+-for($i=0; $i<count($own_layer_id_array); $i++){
+-	echo "<option value='" . $own_layer_id_array[$i] . "' ";
+-	if($selected_layer && $selected_layer == $own_layer_id_array[$i]){
+-		echo "selected";
+-	}
+-	echo ">" . $admin->getLayerTitleByLayerId($own_layer_id_array[$i]) . "</option>";
+-}
+-echo "</select>";
+-
+-/*insert all groups in selectbox*******************************************************************/
+-echo "<div class='text3'>TOPICS:</div><br>";
+-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='selected_topic[]' size='$fieldHeight' >";
+-for($i=0; $i<count($topic_id); $i++){
+-	echo "<option value='" . $topic_id[$i]  . "'>" . $topic_name[$i]  . "</option>";
+-}
+-echo "</select>";
+-
+-/*Button*******************************************************************************************/
+-
+-echo "<div class='button1'><input type='button'  value='==>' onClick='validate(\"insert\")'></div>";
+-echo "<input type='hidden' name='insert'>";
+-
+-echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
+-echo "<input type='hidden' name='remove'>";
+-
+-/*insert wms_topic_dependence and container_group_dependence in selectbox**************************************************/
+-echo "<div class='text4'>SELECTED TOPICS:</div>";
+-echo "<select style='background:#ffffff' class='select4' multiple='multiple' name='remove_topic[]' size='$fieldHeight' >";
+-for ($i=0; $i < count($topic_id_layer); $i++) {
+-	echo "<option value='" . $topic_id_layer[$i]  . "'>" . $topic_name_layer[$i]  . "</option>";
+-}
+-echo "</select>";
+-echo "</form>";
+-
+-?>
+-<script type="text/javascript">
+-<!--
+-document.forms[0].selected_wms.focus();
+-// -->
+-</script>
++This module is still under construction, see <a href='http://www.mapbender.org/Topic_/_Category'>Mapbender Wiki</a>.
+ </body>
+ </html>
+\ No newline at end of file
+Index: http/php/mod_filteredWms_topic.php
+===================================================================
+--- http/php/mod_filteredWms_topic.php	(revision 2361)
++++ http/php/mod_filteredWms_topic.php	(working copy)
+@@ -16,13 +16,6 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-
+-import_request_variables("PG");
+-require_once("../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-require_once("../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -30,160 +23,8 @@
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+ ?>
+ <title>Administration</title>
+-<?php
+-include '../include/dyn_css.php';
+-?>
+-<script language="JavaScript">
+-function validate(wert){
+-	if(document.forms[0]["selected_wms"].selectedIndex == -1){
+-		document.getElementsByName("selected_wms")[0].style.backgroundColor = '#ff0000';
+-		return;
+-	}else{
+-		if(wert == "remove"){
+-			if(document.forms[0]["remove_topic[]"].selectedIndex == -1){
+-				document.getElementsByName("remove_topic[]")[0].style.backgroundColor = '#ff0000';
+-				return;
+-			}
+-			document.form1.remove.value = 'true';
+-			document.form1.submit();
+-		}
+-		if(wert == "insert"){
+-			if(document.forms[0]["selected_topic[]"].selectedIndex == -1){
+-				document.getElementsByName("selected_topic[]")[0].style.backgroundColor = '#ff0000';
+-				return;
+-			}
+-			document.form1.insert.value = 'true';
+-			document.form1.submit();
+-		}
+-	}
+-}
+-</script>
+-
+ </head>
+ <body>
+-<?php
+-
+-require_once("../classes/class_administration.php");
+-
+-$fieldHeight = 20;
+-
+-$language_suffix = "en";
+-//FIXME: there seems to be an error in dyn_css.php concerning php vars.
+-if ($language == "'de'") {
+-	$language_suffix = "de";
+-}
+-
+-$logged_user_name = $_SESSION["mb_user_name"];
+-$logged_user_id = $_SESSION["mb_user_id"];
+-
+-$admin = new administration();
+-$own_gui_id_array = $admin->getGuisByOwner($logged_user_id,true);
+-$own_wms_id_array = $admin->getWmsByOwnGuis($own_gui_id_array);
+-$cnt_wms = count($own_wms_id_array); 
+-
+-/*handle remove, update and insert*****************************************************************/
+-if($insert){
+-	if(count($selected_topic) > 0){
+-		for($i=0; $i<count($selected_topic); $i++){
+-			$exists = false;
+-			$sql_insert = "SELECT * FROM wms_md_topic_category WHERE fkey_wms_id = $1 and fkey_md_topic_category_id = $2";
+-			$v = array($selected_wms,$selected_topic[$i]);
+-			$t = array('i','i');
+-			$res_insert = db_prep_query($sql_insert,$v,$t);
+-			while(db_fetch_row($res_insert)){$exists = true;}
+-			if($exists == false){
+-				$sql_insert = "INSERT INTO wms_md_topic_category (fkey_wms_id, fkey_md_topic_category_id) VALUES($1, $2)";
+-				$v = array($selected_wms,$selected_topic[$i]);
+-				$t = array('i','i');
+-				$res_insert = db_prep_query($sql_insert,$v,$t);
+-			}
+-		}
+-	}
+-}
+-if($remove){
+-	if(count($remove_topic)>0){
+-		for($i=0; $i<count($remove_topic); $i++){
+-			$sql_remove = "DELETE FROM wms_md_topic_category WHERE fkey_md_topic_category_id = $1 and fkey_wms_id = $2";
+-			$v = array($remove_topic[$i],$selected_wms);
+-			$t = array('i','s');
+-			db_prep_query($sql_remove,$v,$t);
+-		}
+-	}
+-}
+-
+-/*get all topics from selected wms*****************************************************************/
+-$sql_wms_topic = "SELECT t.md_topic_category_id, t.md_topic_category_code_".$language_suffix." ";
+-$sql_wms_topic .= "FROM wms_md_topic_category as w, md_topic_category as t WHERE w.fkey_wms_id = $1 AND w.fkey_md_topic_category_id = t.md_topic_category_id ";
+-$sql_wms_topic .= "ORDER BY t.md_topic_category_code_".$language_suffix;
+-
+-if(!$selected_wms){$v = array($own_wms_id_array[0]);}
+-if($selected_wms){$v = array($selected_wms);}
+-$t = array('s');
+-$res_wms_topic = db_prep_query($sql_wms_topic,$v,$t);
+-$cnt_wms_topic=0;;
+-while($row = db_fetch_array($res_wms_topic)){
+-	$topic_id_wms[$cnt_wms_topic] = $row["md_topic_category_id"];
+-	$topic_name_wms[$cnt_wms_topic] =  $row["md_topic_category_code_".$language_suffix];
+-	$cnt_wms_topic++;
+-}
+-
+-/*get all topics **********************************************************************************/
+-$sql_topic = "SELECT * FROM md_topic_category ORDER BY md_topic_category_code_" . $language_suffix;
+-$res_topic = db_query($sql_topic);
+-$cnt_topic = 0;
+-while($row = db_fetch_array($res_topic)){
+-	if (!in_array($row["md_topic_category_id"], $topic_id_wms)) {
+-		$topic_id[$cnt_topic] = $row["md_topic_category_id"];
+-		$topic_name[$cnt_topic] =  $row["md_topic_category_code_".$language_suffix];
+-		$cnt_topic++;
+-	}
+-}
+-
+-/*INSERT HTML*/
+-echo "<form name='form1' action='" . $self ."' method='post'>";
+-
+-/*insert wms in selectbox*************************************************************************/
+-echo "<div class='text1'>WMS: </div>";
+-echo "<select style='background:#ffffff' class='select1' name='selected_wms' onChange='submit()' size='10'>";
+-for($i=0; $i<$cnt_wms; $i++){
+-	echo "<option value='" . $own_wms_id_array[$i] . "' ";
+-	if($selected_wms && $selected_wms == $own_wms_id_array[$i]){
+-		echo "selected";
+-	}
+-	echo ">" . $admin->getWmsTitleByWmsId($own_wms_id_array[$i]) . "</option>";
+-}
+-echo "</select>";
+-
+-/*insert all groups in selectbox*******************************************************************/
+-echo "<div class='text2'>TOPICS:</div><br>";
+-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_topic[]' size='$fieldHeight' >";
+-for($i=0; $i<$cnt_topic; $i++){
+-	echo "<option value='" . $topic_id[$i]  . "'>" . $topic_name[$i]  . "</option>";
+-}
+-echo "</select>";
+-
+-/*Button*******************************************************************************************/
+-
+-echo "<div class='button1'><input type='button'  value='==>' onClick='validate(\"insert\")'></div>";
+-echo "<input type='hidden' name='insert'>";
+-
+-echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
+-echo "<input type='hidden' name='remove'>";
+-
+-/*insert wms_topic_dependence and container_group_dependence in selectbox**************************************************/
+-echo "<div class='text3'>SELECTED TOPICS:</div>";
+-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_topic[]' size='$fieldHeight' >";
+-for($i=0; $i<$cnt_wms_topic; $i++){
+-	echo "<option value='" . $topic_id_wms[$i]  . "'>" . $topic_name_wms[$i]  . "</option>";
+-}
+-echo "</select>";
+-echo "</form>";
+-
+-?>
+-<script type="text/javascript">
+-<!--
+-document.forms[0].selected_wms.focus();
+-// -->
+-</script>
++This module is still under construction, see <a href='http://www.mapbender.org/Topic_/_Category'>Mapbender Wiki</a>.
+ </body>
+ </html>
+\ No newline at end of file
+Index: http/php/mod_forgottenPassword.php
+===================================================================
+--- http/php/mod_forgottenPassword.php	(revision 2361)
++++ http/php/mod_forgottenPassword.php	(working copy)
+@@ -17,8 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ import_request_variables("PG");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -70,7 +70,7 @@
+ 	if ($_POST["sendnew"]) {
+ 		if ($_POST["username"]) {
+ 			$id = $admin->getUserIdByUserName($_POST["username"]);
+-			$user_id = $id[0];
++			$user_id = $id;
+ 	
+ 			if ($user_id) {
+ 				$upd=true;
+@@ -132,8 +132,7 @@
+ 	
+ 	echo "<fieldset><legend>Forgot your Passwort ?</legend>";
+ 	#echo "<fieldset><legend>Passwort vergessen ?</legend>";
+-	#echo "<form name='form1' action='" . $PHP_SELF . "' method='post'>";
+-	echo "<form name='form1' method='post'>";
++	echo "<form name='form1' action='" . $self . "' method='post'>";
+ 	echo "<table cellpadding='5' cellspacing='0' border='0'><tr>";
+ 	echo "<td>";
+ 	echo "Username:";
+Index: http/php/mod_gazetteer_conf.php
+===================================================================
+--- http/php/mod_gazetteer_conf.php	(revision 2361)
++++ http/php/mod_gazetteer_conf.php	(working copy)
+@@ -17,8 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require(dirname(__FILE__)."/../classes/class_wfs_conf.php");
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++
++$sParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <html>
+ <head>
+@@ -60,7 +62,7 @@
+ <body>
+ Gazetteer Configuration<br>
+ <form method='POST' onsubmit='return validate()'>
+-<a href="mod_gazetteer_edit.php">edit</a><br>
++<a href="mod_gazetteer_edit.php?<?php echo $sParams;?>">edit</a><br>
+ <?php
+ $aWFS = new wfs_conf();
+ $aWFS->getallwfs();	
+@@ -72,36 +74,22 @@
+ 	$con = db_connect($DBSERVER,$OWNER,$PW);
+ 	db_select_db($DB,$con);
+ 	
+-	$sql = "INSERT INTO gazetteer (gazetteer_abstract,fkey_wfs_id,fkey_featuretype_id,g_label,g_label_id,g_button,g_button_id,g_style,g_buffer,g_res_style,g_use_wzgraphics) VALUES(";
+-	$sql .= "'".$_REQUEST["gazetteer_abstract"]."',";
+-	$sql .= "'".$_REQUEST["wfs"]."',";
+-	$sql .= "'".$_REQUEST["featuretype"]."',";
+-	$sql .= "'".$_REQUEST["g_label"]."',";
+-	$sql .= "'".$_REQUEST["g_label_id"]."',";
+-	$sql .= "'".$_REQUEST["g_button"]."',";
+-	$sql .= "'".$_REQUEST["g_button_id"]."',";
+-	$sql .= "'".$_REQUEST["g_style"]."',";	
+-	$sql .= "'".$_REQUEST["g_buffer"]."',";	
+-	$sql .= "'".$_REQUEST["g_res_style"]."',";
+-	$sql .= $_REQUEST["g_use_wzgraphics"];
+-	$sql .= "); ";
+-	
+-	$res = db_query($sql);		
++	$sql = "INSERT INTO gazetteer (gazetteer_abstract, fkey_wfs_id, ";
++	$sql .= "fkey_featuretype_id, g_label, g_label_id, g_button, ";
++	$sql .= "g_button_id, g_style, g_buffer, g_res_style, g_use_wzgraphics) ";
++	$sql .= "VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11);";
++	$v = array($_REQUEST["gazetteer_abstract"], $_REQUEST["wfs"], $_REQUEST["featuretype"], $_REQUEST["g_label"], $_REQUEST["g_label_id"], $_REQUEST["g_button"], $_REQUEST["g_button_id"], $_REQUEST["g_style"], $_REQUEST["g_buffer"], $_REQUEST["g_res_style"], $_REQUEST["g_use_wzgraphics"]);
++	$t = array("s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "i");
++	$res = db_prep_query($sql, $v, $t);		
+ 	$wfsID = db_insert_id($con);
+ 	for($i=0; $i<count($_REQUEST["f_id"]); $i++){
+-		$sql = "INSERT INTO gazetteer_element (fkey_gazetteer_id,f_id,f_search,f_pos,f_style_id,f_toupper,f_label,f_label_id,f_show,f_respos) VALUES(";
+-		$sql .= "'".$wfsID."',";
+-		$sql .= "'".$_REQUEST["f_id"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_search"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_pos"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_style_id"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_toupper"][$i]."',";		
+-		$sql .= "'".$_REQUEST["f_label"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_label_id"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_show"][$i]."',";
+-		$sql .= "'".$_REQUEST["f_respos"][$i]."'";
+-		$sql .= "); ";
+-		$res = db_query($sql);
++		$sql = "INSERT INTO gazetteer_element (fkey_gazetteer_id, ";
++		$sql .= "f_id, f_search, f_pos, f_style_id, f_toupper, f_label, ";
++		$sql .= "f_label_id, f_show, f_respos) VALUES (";
++		$sql .= "$1, $2, $3, $4, $5, $6, $7, $8, $9, $10);";
++		$v = array($wfsID, $_REQUEST["f_id"][$i], $_REQUEST["f_search"][$i], $_REQUEST["f_pos"][$i], $_REQUEST["f_style_id"][$i], $_REQUEST["f_toupper"][$i], $_REQUEST["f_label"][$i], $_REQUEST["f_label_id"][$i], $_REQUEST["f_show"][$i], $_REQUEST["f_respos"][$i]);
++		$t = array("s", "s", "s", "s", "s", "s", "s", "s", "s", "s");
++		$res = db_prep_query($sql, $v, $t);
+ 	}		
+ }
+ 
+@@ -141,7 +129,7 @@
+ 			echo "<tr><td>Title:</td><td>".$aWFS->wfs_title[$i]."</td></tr>";
+ 			echo "<tr><td>Abstract:</td><td>".$aWFS->wfs_abstract[$i]."</td></tr>";
+ 			echo "<tr><td>Capabilities:</td><td>".$aWFS->wfs_getcapabilities[$i]."</td></tr>";
+-			echo "<tr><td>FeaturTypes:</td><td>".$aWFS->wfs_describefeaturetype[$i]."</td></tr>";
++			echo "<tr><td>FeatureTypes:</td><td>".$aWFS->wfs_describefeaturetype[$i]."</td></tr>";
+ 			echo "<tr><td>Feature:</td><td>".$aWFS->wfs_getfeature[$i]."</td></tr>";
+ 			echo "</table>";
+ 		}
+Index: http/php/mod_gazetteer_edit.php
+===================================================================
+--- http/php/mod_gazetteer_edit.php	(revision 2361)
++++ http/php/mod_gazetteer_edit.php	(working copy)
+@@ -17,7 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++$sParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <html>
+ <head>
+@@ -46,7 +48,7 @@
+ <body>
+ Gazetteer Configuration<br>
+ <form method='POST' onsubmit='return validate()'>
+-<a href="mod_gazetteer_conf.php">new</a><br>
++<a href="mod_gazetteer_conf.php?<?php echo $sParams;?>">new</a><br>
+   
+ <?php
+ /* save gazetteer properties */
+@@ -56,31 +58,34 @@
+ if(isset($_REQUEST["save"])){
+ 	
+ 	$sql = "UPDATE gazetteer SET ";
+-	$sql .= "gazetteer_abstract = '".$_REQUEST["gazetteer_abstract"]."',";
+-	$sql .= "g_label = '".$_REQUEST["g_label"]."',";
+-	$sql .= "g_label_id = '".$_REQUEST["g_label_id"]."',";
+-	$sql .= "g_button = '".$_REQUEST["g_button"]."',";
+-	$sql .= "g_button_id = '".$_REQUEST["g_button_id"]."',";
+-	$sql .= "g_style = '".$_REQUEST["g_style"]."',";
+-	$sql .= "g_buffer = '".$_REQUEST["g_buffer"]."',";	
+-	$sql .= "g_res_style = '".$_REQUEST["g_res_style"]."',";
+-	$sql .= "g_use_wzgraphics = ".$_REQUEST["g_use_wzgraphics"];
+-	$sql .= " WHERE gazetteer_id = ".$_REQUEST["gaz"].";";
+-	$res = db_query($sql);		
++	$sql .= "gazetteer_abstract = $1, ";
++	$sql .= "g_label = $2, ";
++	$sql .= "g_label_id = $3, ";
++	$sql .= "g_button = $4, ";
++	$sql .= "g_button_id = $5, ";
++	$sql .= "g_style = $6, ";
++	$sql .= "g_buffer = $7, ";	
++	$sql .= "g_res_style = $8, ";
++	$sql .= "g_use_wzgraphics = $9 ";
++	$sql .= "WHERE gazetteer_id = $10;";
++	$v = array($_REQUEST["gazetteer_abstract"], $_REQUEST["g_label"], $_REQUEST["g_label_id"], $_REQUEST["g_button"], $_REQUEST["g_button_id"], $_REQUEST["g_style"], $_REQUEST["g_buffer"], $_REQUEST["g_res_style"], $_REQUEST["g_use_wzgraphics"], $_REQUEST["gaz"]);
++	$t = array("s", "s", "s", "s", "s", "s", "s", "s", "i", "i");
++	$res = db_prep_query($sql, $v, $t);		
+ 
+ 	for($i=0; $i<count($_REQUEST["f_id"]); $i++){
+ 		$sql = "UPDATE gazetteer_element SET ";		
+-		$sql .= "f_search = '".$_REQUEST["f_search"][$i]."',";
+-		$sql .= "f_pos = '".$_REQUEST["f_pos"][$i]."',";
+-		$sql .= "f_style_id = '".$_REQUEST["f_style_id"][$i]."',";
+-		$sql .= "f_toupper = '".$_REQUEST["f_toupper"][$i]."',";
+-		$sql .= "f_label = '".$_REQUEST["f_label"][$i]."',";
+-		$sql .= "f_label_id = '".$_REQUEST["f_label_id"][$i]."',";
+-		$sql .= "f_show = '".$_REQUEST["f_show"][$i]."',";
+-		$sql .= "f_respos = '".$_REQUEST["f_respos"][$i]."'";
+-		$sql .= " WHERE fkey_gazetteer_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_id"][$i].";";
+-		
+-		$res = db_query($sql);
++		$sql .= "f_search = $1, ";
++		$sql .= "f_pos = $2, ";
++		$sql .= "f_style_id = $3, ";
++		$sql .= "f_toupper = $4, ";
++		$sql .= "f_label = $5, ";
++		$sql .= "f_label_id = $6, ";
++		$sql .= "f_show = $7, ";
++		$sql .= "f_respos = $8 ";
++		$sql .= "WHERE fkey_gazetteer_id = $9 AND f_id = $10;";
++		$v = array($_REQUEST["f_search"][$i], $_REQUEST["f_pos"][$i], $_REQUEST["f_style_id"][$i], $_REQUEST["f_toupper"][$i], $_REQUEST["f_label"][$i], $_REQUEST["f_label_id"][$i], $_REQUEST["f_show"][$i], $_REQUEST["f_respos"][$i], $_REQUEST["gaz"], $_REQUEST["f_id"][$i]);
++		$t = array("s", "s", "s", "s", "s", "s", "s", "s", "i", "i");
++		$res = db_prep_query($sql, $v, $t);		
+ 	}		
+ }
+ 
+@@ -110,8 +115,10 @@
+ 
+ /* configure elements */
+ if(isset($_REQUEST["gaz"])){
+-	$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = ".$_REQUEST["gaz"];
+-	$res = db_query($sql);
++	$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = $1";
++	$v = array($_REQUEST["gaz"]);
++	$t = array("i");
++	$res = db_prep_query($sql, $v, $t);
+ 	if($row = db_fetch_array($res)){	
+ 		echo "<table>";
+ 		echo "<tr><td>GazetterID:</td><td>".$row["gazetteer_id"]."</td></tr>" ;
+@@ -132,9 +139,11 @@
+ 	/* set element options */
+ 	$sql = "SELECT * FROM gazetteer_element ";
+ 	$sql .= "JOIN wfs_element ON gazetteer_element.f_id = wfs_element.element_id ";
+-	$sql .= "WHERE fkey_gazetteer_id = ".$_REQUEST["gaz"];
++	$sql .= "WHERE fkey_gazetteer_id = $1";
++	$v = array($_REQUEST["gaz"]);
++	$t = array("i");
+ 	echo $sql;
+-	$res = db_query($sql);
++	$res = db_prep_query($sql, $v, $t);
+ 	
+ 	echo "<table border='1'>";
+ 	echo "<tr>";
+Index: http/php/mod_gazetteerMetadata.php
+===================================================================
+--- http/php/mod_gazetteerMetadata.php	(revision 2361)
++++ http/php/mod_gazetteerMetadata.php	(working copy)
+@@ -17,12 +17,13 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++
+ $gui_id = $_SESSION["mb_user_gui"];
+ $user_id = $_SESSION["mb_user_id"]; 
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
++$sParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ 
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+@@ -236,7 +237,7 @@
+ <form name='form1' target='result' onsubmit='return validate();'>
+ <p>
+ <input class='textfield' name='search' type='text' style='width:110px'>
+-<img src="../img/add.png" title="keywords" onclick="window.open('mod_SelectKeyword.php', toolbar='no', status='no');">
++<img src="../img/add.png" title="keywords" onclick="window.open('mod_SelectKeyword.php?<?php echo $sParams;?>', toolbar='no', status='no');">
+ <input type='submit' name='send' value='ok'>
+ </p>
+ </form>
+Index: http/php/mod_gazetteerMetadata_search.php
+===================================================================
+--- http/php/mod_gazetteerMetadata_search.php	(revision 2361)
++++ http/php/mod_gazetteerMetadata_search.php	(working copy)
+@@ -1,5 +1,7 @@
+ <?php
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++require_once(dirname(__FILE__)."/../extensions/JSON.php");
+ 
+ $user_id = $_SESSION["mb_user_id"];
+ $query = $_REQUEST["search"];
+@@ -4,10 +6,6 @@
+ $user_id = $_SESSION["mb_user_id"];
+ $query = $_REQUEST["search"];
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-require_once(dirname(__FILE__)."/../classes/class_administration.php");
+-require_once(dirname(__FILE__)."/../extensions/JSON.php");
+-
+ $n = new administration();
+ $myguis = $n->getGuisByPermission($user_id, true);
+ $mywms = $n->getWmsByOwnGuis($myguis);
+Index: http/php/mod_gazetteerSQL_server.php
+===================================================================
+--- http/php/mod_gazetteerSQL_server.php	(revision 2361)
++++ http/php/mod_gazetteerSQL_server.php	(working copy)
+@@ -1,9 +1,7 @@
+ <?php
+-session_start();
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../extensions/JSON.php");
+ require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../../conf/gazetteerSQL.conf");
+ 
+ $con = 	pg_connect($connstring);		
+Index: http/php/mod_gazLayerObj_conf.php
+===================================================================
+--- http/php/mod_gazLayerObj_conf.php	(revision 2361)
++++ http/php/mod_gazLayerObj_conf.php	(working copy)
+@@ -17,8 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require(dirname(__FILE__)."/../classes/class_wfs_conf.php");
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
+ ?>
+ <html>
+ <head>
+@@ -76,9 +76,11 @@
+ 	$con = db_connect($DBSERVER,$OWNER,$PW);
+ 	db_select_db(DB,$con);
+ 	
+-	$sql = "UPDATE gui_layer SET gui_layer_wfs_featuretype = '".$_REQUEST["myWFS"]."' ";
+-	$sql .= "WHERE fkey_gui_id='".$_REQUEST["gui"]."' AND fkey_layer_id=".$_REQUEST["layer"];
+-	$res = db_query($sql);
++	$sql = "UPDATE gui_layer SET gui_layer_wfs_featuretype = $1 ";
++	$sql .= "WHERE fkey_gui_id = $2 AND fkey_layer_id = $3";
++	$v = array($_REQUEST["myWFS"], $_REQUEST["gui"], $_REQUEST["layer"]);
++	$t = array("s", "s", "i");
++	$res = db_prep_query($sql, $v, $t);
+ 	echo "layer is connected with: ".$_REQUEST["myWFS"];
+ 	die();
+ }
+Index: http/php/mod_gazLayerObj_edit.php
+===================================================================
+--- http/php/mod_gazLayerObj_edit.php	(revision 2361)
++++ http/php/mod_gazLayerObj_edit.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <html>
+ <head>
+@@ -54,29 +54,34 @@
+ if(isset($_REQUEST["save"])){
+ 	
+ 	$sql = "UPDATE gazetteer SET ";
+-	$sql .= "gazetteer_abstract = '".$_REQUEST["gazetteer_abstract"]."',";
+-	$sql .= "g_label = '".$_REQUEST["g_label"]."',";
+-	$sql .= "g_label_id = '".$_REQUEST["g_label_id"]."',";
+-	$sql .= "g_button = '".$_REQUEST["g_button"]."',";
+-	$sql .= "g_button_id = '".$_REQUEST["g_button_id"]."',";
+-	$sql .= "g_style = '".$_REQUEST["g_style"]."',";
+-	$sql .= "g_buffer = '".$_REQUEST["g_buffer"]."'";	
+-	$sql .= " WHERE gazetteer_id = ".$_REQUEST["fkey_gazetteer_id"].";";
++	$sql .= "gazetteer_abstract = $1, ";
++	$sql .= "g_label = $2, ";
++	$sql .= "g_label_id = $3, ";
++	$sql .= "g_button = $4, ";
++	$sql .= "g_button_id = $5, ";
++	$sql .= "g_style = $6, ";
++	$sql .= "g_buffer = $7 ";	
++	$sql .= "WHERE gazetteer_id = $8;";
+ 	
+-	$res = db_query($sql);		
++	$v = array($_REQUEST["gazetteer_abstract"], $_REQUEST["g_label"], $_REQUEST["g_label_id"], $_REQUEST["g_button"], $_REQUEST["g_button_id"], $_REQUEST["g_style"], $_REQUEST["g_buffer"], $_REQUEST["fkey_gazetteer_id"]);
++	$t = array("s", "s", "s", "s", "s", "s", "s", "i");
++	$res = db_prep_query($sql, $v, $t);		
+ 
+-	for($i=0; $i<count($_REQUEST["f_id"]); $i++){
++	for ($i = 0; $i < count($_REQUEST["f_id"]); $i++){
+ 		$sql = "UPDATE gazetteer_element SET ";		
+-		$sql .= "f_search = '".$_REQUEST["f_search"][$i]."',";
+-		$sql .= "f_pos = '".$_REQUEST["f_pos"][$i]."',";
+-		$sql .= "f_style_id = '".$_REQUEST["f_style_id"][$i]."',";
+-		$sql .= "f_label = '".$_REQUEST["f_label"][$i]."',";
+-		$sql .= "f_label_id = '".$_REQUEST["f_label_id"][$i]."',";
+-		$sql .= "f_show = '".$_REQUEST["f_show"][$i]."',";
+-		$sql .= "f_respos = '".$_REQUEST["f_respos"][$i]."'";
+-		$sql .= " WHERE fkey_gazetteer_id = ".$_REQUEST["fkey_gazetteer_id"]." AND f_id = ".$_REQUEST["f_id"][$i].";";
++		$sql .= "f_search = $1, ";
++		$sql .= "f_pos = $2, ";
++		$sql .= "f_style_id = $3, ";
++		$sql .= "f_label = $4, ";
++		$sql .= "f_label_id = $5, ";
++		$sql .= "f_show = $6, ";
++		$sql .= "f_respos = $7 ";
++		$sql .= "WHERE fkey_gazetteer_id = $8 AND f_id = $9;";
+ 		
+-		$res = db_query($sql);
++		$v = array($_REQUEST["f_search"][$i], $_REQUEST["f_pos"][$i], $_REQUEST["f_style_id"][$i], $_REQUEST["f_label"][$i], $_REQUEST["f_label_id"][$i], $_REQUEST["f_show"][$i], $_REQUEST["f_respos"][$i], $_REQUEST["fkey_gazetteer_id"], $_REQUEST["f_id"][$i]);
++		$t = array("s", "s", "s", "s", "s", "s", "s", "i", "i");
++		
++		$res = db_prep_query($sql, $v, $t);
+ 	}		
+ }
+ 
+@@ -92,8 +97,10 @@
+ 
+ /* configure elements */
+ if(isset($_REQUEST["fkey_gazetteer_id"])){
+-	$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = ".$_REQUEST["fkey_gazetteer_id"];
+-	$res = db_query($sql);
++	$sql = "SELECT * FROM gazetteer WHERE gazetteer_id = $1";
++	$v = array($_REQUEST["fkey_gazetteer_id"]);
++	$t = array("i");
++	$res = db_prep_query($sql, $v, $t);
+ 	if($row = db_fetch_array($res)){	
+ 		echo "<table>";
+ 		echo "<tr><td>ID:</td><td>".$row["gazetteer_id"]."</td></tr>" ;
+@@ -110,8 +117,10 @@
+ 	/* set element options */
+ 	$sql = "SELECT * FROM gazetteer_element ";
+ 	$sql .= "JOIN wfs_element ON gazetteer_element.f_id = wfs_element.element_id ";
+-	$sql .= "WHERE fkey_gazetteer_id = ".$_REQUEST["fkey_gazetteer_id"];
+-	$res = db_query($sql);
++	$sql .= "WHERE fkey_gazetteer_id = $1";
++	$v = array($_REQUEST["fkey_gazetteer_id"]);
++	$t = array("i");
++	$res = db_prep_query($sql, $v, $t);
+ 	
+ 	echo "<table border='1'>";
+ 	echo "<tr>";
+Index: http/php/mod_getStyles.php
+===================================================================
+--- http/php/mod_getStyles.php	(revision 2361)
++++ http/php/mod_getStyles.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+@@ -126,9 +124,12 @@
+ 	@fclose($style_xml);
+ 	fclose($style_file);
+ 	#include(dirname(__FILE__)."/../../conf/www.conf");
+-	$sql = "UPDATE wms SET wms_filter = '".str_replace(basename($login),$style_filename,$login)."' WHERE wms_id = ". $wmsList;
++	$pattern = "/" . basename($login) . "/";
++	$sql = "UPDATE wms SET wms_filter = $1 WHERE wms_id = $2";
++	$v = array(preg_replace($pattern,$style_filename,$login), $wmsList);
++	$t = array("s", "i");
+ 	echo $sql;
+-	db_query($sql) or die("unable to change filter!");	
++	db_prep_query($sql, $v, $t) or die("unable to change filter!");	
+ }
+ ###
+ 
+@@ -135,7 +136,7 @@
+ $sql = "SELECT * FROM wms ORDER BY wms_title";
+ $res = db_query($sql);
+ $cnt = 0;
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ echo "<select class='wmsList' size='20' name='wmsList' class='wmsList' onchange='submit()'>";
+ while($row = db_fetch_array($res)){
+ 	# getStyle - Request:
+@@ -141,8 +142,10 @@
+ 	# getStyle - Request:
+ 	if($wmsList && $row["wms_id"] == $wmsList){
+ 		$getStyle = $row["wms_getmap"]."&VERSION=1.1.1&REQUEST=getStyles&SERVICE=WMS&LAYERS=";
+-		$sql_style = "SELECT layer_name FROM layer WHERE fkey_wms_id = " . $wmsList;
+-		$res_style = db_query($sql_style);
++		$sql_style = "SELECT layer_name FROM layer WHERE fkey_wms_id = $1";
++		$v = array($wmsList);
++		$t = array("i");
++		$res_style = db_prep_query($sql_style, $v, $t);
+ 	
+ 		$cnt_style = 0;
+ 		while($row2 = db_fetch_array($res_style)){
+Index: http/php/mod_group_filteredGui.php
+===================================================================
+--- http/php/mod_group_filteredGui.php	(revision 2361)
++++ http/php/mod_group_filteredGui.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/php/mod_group_filteredUser.php
+===================================================================
+--- http/php/mod_group_filteredUser.php	(revision 2361)
++++ http/php/mod_group_filteredUser.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_group_gui.php
+===================================================================
+--- http/php/mod_group_gui.php	(revision 2361)
++++ http/php/mod_group_gui.php	(working copy)
+@@ -17,13 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_group_user.php
+===================================================================
+--- http/php/mod_group_user.php	(revision 2361)
++++ http/php/mod_group_user.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_gui_filteredGroup.php
+===================================================================
+--- http/php/mod_gui_filteredGroup.php	(revision 2361)
++++ http/php/mod_gui_filteredGroup.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_gui_filteredUser.php
+===================================================================
+--- http/php/mod_gui_filteredUser.php	(revision 2361)
++++ http/php/mod_gui_filteredUser.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_gui_group.php
+===================================================================
+--- http/php/mod_gui_group.php	(revision 2361)
++++ http/php/mod_gui_group.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_gui_owner.php
+===================================================================
+--- http/php/mod_gui_owner.php	(revision 2361)
++++ http/php/mod_gui_owner.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_gui_user.php
+===================================================================
+--- http/php/mod_gui_user.php	(revision 2361)
++++ http/php/mod_gui_user.php	(working copy)
+@@ -18,11 +18,9 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_help.php
+===================================================================
+--- http/php/mod_help.php	(revision 2361)
++++ http/php/mod_help.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ ?>
+@@ -26,7 +26,6 @@
+ <script language="JavaScript" type="text/javascript">
+ <?php
+ $e_id_css = 'help';
+-$gui_id = $_REQUEST["gui_id"];
+ include(dirname(__FILE__)."/../include/dyn_php.php");
+ if(!isset($mod_help_width)){
+ 	$mod_help_width = 1000;	
+Index: http/php/mod_insertWmcIntoDb.php
+===================================================================
+--- http/php/mod_insertWmcIntoDb.php	(revision 2361)
++++ http/php/mod_insertWmcIntoDb.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../classes/class_mb_exception.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ require_once(dirname(__FILE__)."/../extensions/JSON.php");
+@@ -22,12 +22,6 @@
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ require_once(dirname(__FILE__)."/../extensions/JSON.php");
+ 
+-session_start();
+-
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
+-
+-
+ $json = new Services_JSON();
+ $mapObject = $json->decode($_REQUEST["mapObject"]);
+ $user_id = $_SESSION["mb_user_id"];
+Index: http/php/mod_layerMetadata.php
+===================================================================
+--- http/php/mod_layerMetadata.php	(revision 2361)
++++ http/php/mod_layerMetadata.php	(working copy)
+@@ -17,7 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ 
+Index: http/php/mod_loadCapabilities.php
+===================================================================
+--- http/php/mod_loadCapabilities.php	(revision 2361)
++++ http/php/mod_loadCapabilities.php	(working copy)
+@@ -17,14 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
++import_request_variables("PG");
+ include(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$secParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-$self = $PHP_SELF."?".$secParams;
+-import_request_variables("PG");
+ ?>
+ 
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -81,7 +75,7 @@
+ 		}
+ 		else{
+ 			var gui_id=document.form1.guiList.options[listIndex].value;
+-			document.form1.action = '../php/mod_loadwms.php?<?php echo $secParams ?>';
++			document.form1.action = '../php/mod_loadwms.php?<?php echo SID; ?>';
+ 			document.form1.submit();
+ 		}
+ 	}
+Index: http/php/mod_loadCapabilities_temp.php
+===================================================================
+--- http/php/mod_loadCapabilities_temp.php	(revision 2361)
++++ http/php/mod_loadCapabilities_temp.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+ include(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/mb_validateInput.php");
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+ import_request_variables("PG");
+ ?>
+ 
+@@ -85,7 +83,7 @@
+ <?php
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ 
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ 
+ $gui_id = $_SESSION["mb_user_gui"];
+ 
+Index: http/php/mod_loadCapabilitiesList.php
+===================================================================
+--- http/php/mod_loadCapabilitiesList.php	(revision 2361)
++++ http/php/mod_loadCapabilitiesList.php	(working copy)
+@@ -17,13 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-
+-include(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
++require(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ ?>
+ 
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -92,7 +87,7 @@
+       }
+       else{
+          var gui_id=document.form1.guiList.options[listIndex].value;
+-			document.form1.action='../php/mod_loadwms.php';
++			document.form1.action='../php/mod_loadwms.php<?php echo SID;?>';
+ 			document.form1.submit();
+       }
+    }
+@@ -104,8 +99,8 @@
+       }
+       var gui_ind = document.form1.guiList.selectedIndex;
+       var ind = document.form1.wmsID.selectedIndex;
+-      var ind2 = document.form1.guiID.selectedIndex;
+-      var permission = confirm("Load " + document.form1.wmsID.options[ind].text + " FROM " + document.form1.guiID.options[ind2].value + " INTO "+document.form1.guiList.options[gui_ind].value+" ?");
++      var ind2 = document.form1.guiID_.selectedIndex;
++      var permission = confirm("Load " + document.form1.wmsID.options[ind].text + " FROM " + document.form1.guiID_.options[ind2].value + " INTO "+document.form1.guiList.options[gui_ind].value+" ?");
+       if(permission == true){
+          document.form1.submit();
+       }
+@@ -110,7 +105,7 @@
+          document.form1.submit();
+       }
+       else{
+-         document.form1.guiID.selectedIndex = -1;
++         document.form1.guiID_.selectedIndex = -1;
+       }
+ }
+ </script>
+@@ -126,7 +121,7 @@
+ 
+ 
+ ###INSERT
+-if(isset($wmsID) && isset($guiID)){
++if(isset($wmsID) && isset($guiID_)){
+ 	$sql_pos = "SELECT MAX(gui_wms_position) AS my_gui_wms_position FROM gui_wms WHERE fkey_gui_id = $1";
+ 	$v = array($guiList);
+ 	$t = array('s');
+@@ -139,7 +134,7 @@
+ 	}
+ 
+ 	$sql = "SELECT * FROM gui_wms WHERE fkey_gui_id = $1 AND fkey_wms_id = $2";
+-	$v = array($guiID,$wmsID);
++	$v = array($guiID_,$wmsID);
+ 	$t = array('s','i');
+ 	$res = db_prep_query($sql,$v,$t);
+ 	$cnt = 0;
+@@ -154,8 +149,10 @@
+ 		$cnt++;
+ 	}
+ 
+-	$sql = "SELECT * FROM gui_layer WHERE fkey_gui_id = '".$guiID."' AND gui_layer_wms_id = ".$wmsID;
+-	$res = db_query($sql);
++	$sql = "SELECT * FROM gui_layer WHERE fkey_gui_id = $1 AND gui_layer_wms_id = $2";
++	$v = array($guiID_, $wmsID);
++	$t = array("s", "i");
++	$res = db_prep_query($sql, $v, $t);
+ 	$cnt = 0;
+ 	while($row = db_fetch_array($res)){
+ 		$sql_ins = "INSERT INTO gui_layer (fkey_gui_id,fkey_layer_id,gui_layer_wms_id,gui_layer_status,gui_layer_selectable,";
+@@ -170,7 +167,7 @@
+ 	}
+ }
+ 
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ 
+ echo "<table cellpadding='0' cellspacing='0' border='0'>";
+ echo "<tr>";
+@@ -180,16 +177,20 @@
+ 	echo"<br>";
+ 	 
+ 	$sql = "SELECT * FROM gui WHERE gui_id IN (";
+-	for($i=0; $i<count($ownguis); $i++){
+-		if($i>0){ $sql .= ",";}
+-		$sql .= "'".$ownguis[$i]."'";
++	$v = $ownguis;
++	$t = array();
++	for ($i = 1; $i <= count($ownguis); $i++){
++		if ($i > 1) { 
++			$sql .= ",";
++		}
++		$sql .= "$".$i;
++		array_push($t, "s");
+ 	}
+ 	$sql .= ") ORDER BY gui_name";	
+-	$res = db_query($sql);
++	$res = db_prep_query($sql, $v, $t);
+ 	$count=0;
+ 	echo"<select size='8' name='guiList' style='width:200px' onClick='submit()'>";
+ 	while($row = db_fetch_array($res)){
+-		$gui_id[$count]=$row["gui_id"];
+ 		$gui_name[$count]=$row["gui_name"];
+ 		$gui_description[$count]=$row["gui_description"];
+ 		$count++;
+@@ -236,12 +237,17 @@
+ 	echo"<div class='text1'>Load WMS</div>";
+ 	$sql = "SELECT DISTINCT wms.wms_id,wms.wms_title,wms.wms_abstract,wms.wms_owner FROM gui_wms JOIN wms ON ";
+ 	$sql .= "wms.wms_id = gui_wms.fkey_wms_id WHERE gui_wms.fkey_gui_id IN(";
+-	for($i=0; $i<count($arrayGUIs); $i++){
+-		if($i>0){$sql .= ",";}
+-		$sql .= "'".$arrayGUIs[$i]."'";
++	$v = $arrayGUIs;
++	$t = array();
++	for ($i = 1; $i <= count($arrayGUIs); $i++){
++		if ($i > 1) {
++			$sql .= ",";
++		}
++		$sql .= "$" . $i;
++		array_push($t, "s");
+ 	}
+ 	$sql .= ") ORDER BY wms.wms_title";
+-	$res = db_query($sql);
++	$res = db_prep_query($sql, $v, $t);
+ 	echo "<select class='select1' name='wmsID' size='20' onchange='submit()'>";
+ 	$cnt = 0;
+ 	while($row = db_fetch_array($res)){
+@@ -263,9 +269,11 @@
+ 	
+ 	if(isset($wmsID)){
+ 		echo "<div class='text2'>FROM:</div>";
+-		$sql = "SELECT * from gui_wms WHERE fkey_wms_id ='".$wmsID."' ORDER BY fkey_gui_id";
+-		$res = db_query($sql);
+-		echo "<select class='select2' name='guiID' size='20' onchange='load()'>";
++		$sql = "SELECT * from gui_wms WHERE fkey_wms_id = $1 ORDER BY fkey_gui_id";
++		$v = array($wmsID);
++		$t = array("s");
++		$res = db_prep_query($sql, $v, $t);
++		echo "<select class='select2' name='guiID_' size='20' onchange='load()'>";
+ 		$cnt = 0;
+ 		while($row = db_fetch_array($res)){
+ 			echo "<option value='".$row["fkey_gui_id"]."' ";
+Index: http/php/mod_loadwfs.php
+===================================================================
+--- http/php/mod_loadwfs.php	(revision 2361)
++++ http/php/mod_loadwfs.php	(working copy)
+@@ -17,10 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-
++require(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/mb_validateInput.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../classes/class_wfs.php"); 
+ echo "file: ".$_REQUEST["xml_file"];
+ echo "<br>-------------------------------<br>";
+Index: http/php/mod_loadWFSCapabilities.php
+===================================================================
+--- http/php/mod_loadWFSCapabilities.php	(revision 2361)
++++ http/php/mod_loadWFSCapabilities.php	(working copy)
+@@ -17,15 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++import_request_variables("PG");
++include(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ 
+-include(dirname(__FILE__)."/../php/mb_validateSession.php");
+-include(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-import_request_variables("PG");
+ ?>
+-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+ <html>
+@@ -80,7 +75,7 @@
+       }
+       else{
+          var gui_id=document.form1.guiList.options[listIndex].value;
+-			document.form1.action='../php/mod_loadwfs.php';
++			document.form1.action='../php/mod_loadwfs.php?<?php echo $urlParameters;?>';
+ 			document.form1.submit();
+       }
+    }
+@@ -95,7 +90,7 @@
+ $admin = new administration();
+ $ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ echo count($ownguis)."<br>";
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ 
+ echo "<table cellpadding='0' cellspacing='0' border='0'>";
+ echo "<tr>";
+Index: http/php/mod_loadwms.php
+===================================================================
+--- http/php/mod_loadwms.php	(revision 2361)
++++ http/php/mod_loadwms.php	(working copy)
+@@ -17,17 +17,12 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once("../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
+-require_once("mb_validatePermission.php");
++require_once("mb_validateSession.php");
+ require_once("../classes/class_wms.php"); 
+ 
+-
+ echo "file: ".$_REQUEST["xml_file"];
+ 
+-$gui_id = $_REQUEST["guiList"];
++$guiList = $_REQUEST["guiList"];
+ $xml = $_REQUEST["xml_file"];
+ 
+ $mywms = new wms();
+@@ -32,6 +27,6 @@
+ 
+ $mywms = new wms();
+ $mywms->createObjFromXML($xml);      
+-$mywms->writeObjInDB($gui_id);
++$mywms->writeObjInDB($guiList);
+ $mywms->displayWMS();
+ ?>
+Index: http/php/mod_loadwms_temp.php
+===================================================================
+--- http/php/mod_loadwms_temp.php	(revision 2361)
++++ http/php/mod_loadwms_temp.php	(working copy)
+@@ -17,9 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/mb_validateInput.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ require_once(dirname(__FILE__)."/../classes/class_wms.php"); 
+ 
+ 
+Index: http/php/mod_log.php
+===================================================================
+--- http/php/mod_log.php	(revision 2361)
++++ http/php/mod_log.php	(working copy)
+@@ -16,7 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-include_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ if($_REQUEST['req']){
+Index: http/php/mod_logout.php
+===================================================================
+--- http/php/mod_logout.php	(revision 2361)
++++ http/php/mod_logout.php	(working copy)
+@@ -17,9 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-session_start();
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $gui_id = $_SESSION["mb_user_gui"];
+Index: http/php/mod_map1.php
+===================================================================
+--- http/php/mod_map1.php	(revision 2361)
++++ http/php/mod_map1.php	(working copy)
+@@ -17,8 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $gui_id = $_SESSION["mb_user_gui"];
+@@ -37,8 +36,10 @@
+ 
+ <title>mod_map1</title>
+ <?php
+-$sql = "SELECT e_width, e_height FROM gui_element WHERE e_id = 'mapframe1' AND fkey_gui_id = '".$_SESSION["mb_user_gui"]."'";
+-$res = db_query($sql);
++$sql = "SELECT e_width, e_height FROM gui_element WHERE e_id = 'mapframe1' AND fkey_gui_id = $1";
++$v = array($_SESSION["mb_user_gui"]);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){
+    $e_width = $row["e_width"];
+Index: http/php/mod_mapOV.php
+===================================================================
+--- http/php/mod_mapOV.php	(revision 2361)
++++ http/php/mod_mapOV.php	(working copy)
+@@ -17,8 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ 
+@@ -45,8 +45,10 @@
+ ?>
+ <?php
+ $gui_id = $_SESSION["mb_user_gui"];
+-$sql = "SELECT e_width,e_height, e_target FROM gui_element WHERE e_id = 'overview' AND fkey_gui_id = '".$gui_id."'";
+-$res = db_query($sql);
++$sql = "SELECT e_width,e_height, e_target FROM gui_element WHERE e_id = 'overview' AND fkey_gui_id = $1";
++$v = array($gui_id);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ echo "<script type='text/javascript'>";
+ while($row = db_fetch_array($res)){ 
+Index: http/php/mod_meetingPoint.php
+===================================================================
+--- http/php/mod_meetingPoint.php	(revision 2361)
++++ http/php/mod_meetingPoint.php	(working copy)
+@@ -17,10 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-
+ require("../php/mb_validateSession.php");
+-require_once("../../conf/mapbender.conf");
+ 
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+@@ -297,7 +294,7 @@
+ </head>
+ <body>
+ 
+-<form action="" >
++<form action="<?php echo $self; ?>" >
+ 
+ <img  id='my_getCoords' name='my_getCoords' onclick="mod_meetingPoint_run()" onmouseover ="parent.mb_regButton_frame('init_mod_meetingPoint','meetingPoint',null)"  title="Treffpunkt setzen"  src = '../img/button_digitize/point_off.png'>
+ <br>
+Index: http/php/mod_newGui.php
+===================================================================
+--- http/php/mod_newGui.php	(revision 2361)
++++ http/php/mod_newGui.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+Index: http/php/mod_orphanWMS.php
+===================================================================
+--- http/php/mod_orphanWMS.php	(revision 2361)
++++ http/php/mod_orphanWMS.php	(working copy)
+@@ -17,13 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_owsproxy_conf.php
+===================================================================
+--- http/php/mod_owsproxy_conf.php	(revision 2361)
++++ http/php/mod_owsproxy_conf.php	(working copy)
+@@ -17,8 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-include(dirname(__FILE__)."/../php/mb_validateSession.php");
+-include(dirname(__FILE__)."/../classes/class_administration.php");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ $admin = new administration();
+ $ownwms = $admin->getWmsByOwner($_SESSION["mb_user_id"]);
+ if(isset($_REQUEST["wms_id"]) && isset($_REQUEST["status"])){
+@@ -39,7 +39,7 @@
+ </style>
+ <script language="JavaScript" type="text/javascript">
+ function set(wms_id, status){
+-	document.location.href = "mod_owsproxy_conf.php?wms_id="+wms_id+"&status="+status+"&<?php echo SID; ?>"; 
++	document.location.href = "mod_owsproxy_conf.php?<?php echo $urlParameters; ?>&wms_id="+wms_id+"&status="+status; 
+ }
+ </script>
+   
+Index: http/php/mod_printView1.php
+===================================================================
+--- http/php/mod_printView1.php	(revision 2361)
++++ http/php/mod_printView1.php	(working copy)
+@@ -17,7 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ //
+ import_request_variables("PG");
+ $_SESSION["mb_print_url"] = $map_url;
+Index: http/php/mod_renameGUI.php
+===================================================================
+--- http/php/mod_renameGUI.php	(revision 2361)
++++ http/php/mod_renameGUI.php	(working copy)
+@@ -17,13 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ 
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -150,7 +145,7 @@
+ }
+ </script>
+ </head>
+-<body onLoad='document.form1.newGuiName.focus()'>
++<body>
+ <?php
+ 
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+@@ -191,7 +186,7 @@
+ 	$res = db_prep_query($sql,$v,$t);
+ 	$count=0;
+ 	while($row = db_fetch_array($res)){
+-		$gui_id[$count]=$row["gui_id"];
++		$gui_id_[$count]=$row["gui_id"];
+ 		$count++;
+ 	}
+ 	echo "<select class='guiList' size='20' name='guiList' onchange='document.form1.guiList.value = this.value;submit();'>";
+@@ -196,11 +191,11 @@
+ 	}
+ 	echo "<select class='guiList' size='20' name='guiList' onchange='document.form1.guiList.value = this.value;submit();'>";
+ 	for ($i=0; $i<$count;$i++){
+-		echo "<option value='".$gui_id[$i]."' ";
+-		if($guiList && $guiList == $gui_id[$i]){
++		echo "<option value='".$gui_id_[$i]."' ";
++		if($guiList && $guiList == $gui_id_[$i]){
+ 			echo "selected";
+ 		}
+-		echo ">".$gui_id[$i]."</option>";
++		echo ">".$gui_id_[$i]."</option>";
+ 	}
+ 	echo "</select><br><br><br>";
+ }
+Index: http/php/mod_saveWKT.php
+===================================================================
+--- http/php/mod_saveWKT.php	(revision 2361)
++++ http/php/mod_saveWKT.php	(working copy)
+@@ -18,7 +18,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <html>
+ <head>
+@@ -92,7 +92,7 @@
+ //$sql = "SELECT f_table_name, f_geometry_column,type,srid FROM geometry_columns";
+ $res = pg_query($con,$sql);
+ $cnt = 0;
+-echo "<form action='".$PHP_SELF."' method='POST'>";
++echo "<form action='".$self."' method='POST'>";
+ #echo "Selektieren: <input name='actionType' type='radio' value='select'>";
+ #echo "Speichern: <input name='actionType' type='radio' value='create'><br>";
+ echo "<select name='tablenames' onchange='submit()'>";
+Index: http/php/mod_SelectKeyword.php
+===================================================================
+--- http/php/mod_SelectKeyword.php	(revision 2361)
++++ http/php/mod_SelectKeyword.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ 
+Index: http/php/mod_showLoggedUser.php
+===================================================================
+--- http/php/mod_showLoggedUser.php	(revision 2361)
++++ http/php/mod_showLoggedUser.php	(working copy)
+@@ -17,12 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $gui_id = $_SESSION["mb_user_gui"];
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/php/mod_simpleWMSpreferences.php
+===================================================================
+--- http/php/mod_simpleWMSpreferences.php	(revision 2361)
++++ http/php/mod_simpleWMSpreferences.php	(working copy)
+@@ -17,8 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+@@ -76,8 +75,10 @@
+ <?php
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-$sql = "SELECT * FROM gui_element WHERE e_id = 'WMS_preferences' AND fkey_gui_id = '".$_SESSION["mb_user_gui"]."'";
+-$res = db_query($sql);
++$sql = "SELECT * FROM gui_element WHERE e_id = 'WMS_preferences' AND fkey_gui_id = $1";
++$v = array($_SESSION["mb_user_gui"]);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while($row = db_fetch_array($res)){
+    $e_target = $row["e_target"];
+Index: http/php/mod_treefolderAdmin.php
+===================================================================
+--- http/php/mod_treefolderAdmin.php	(revision 2361)
++++ http/php/mod_treefolderAdmin.php	(working copy)
+@@ -20,7 +20,8 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ ?>
+@@ -434,21 +435,28 @@
+   // this is a multinary tree structure which is easy to
+   // populate with database data :)
+ <?php
+-$sql = "SELECT id FROM gui_treegde WHERE fkey_gui_id = '".$guiList."'";
+-$res = db_query($sql);
++$sql = "SELECT id FROM gui_treegde WHERE fkey_gui_id = $1";
++// $v and $t will be re-used below!
++$v = array($guiList);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ if(!db_fetch_row($res)){
+-	$sql = "INSERT INTO gui_treegde(fkey_gui_id, my_layer_title,lft,rgt,layer) VALUES('".$guiList."', 'new','1','4','')";
+-	db_query($sql);
+-	$sql = "INSERT INTO gui_treegde(fkey_gui_id,my_layer_title,lft,rgt,layer) VALUES('".$guiList."','new','2','3','')";
+-	db_query($sql);      
++	$sql = "INSERT INTO gui_treegde(fkey_gui_id, my_layer_title,lft,rgt,layer) VALUES($1, 'new','1','4','')";
++	//using $v and $t fom above
++	db_prep_query($sql, $v, $t);
++	$sql = "INSERT INTO gui_treegde(fkey_gui_id,my_layer_title,lft,rgt,layer) VALUES($1,'new','2','3','')";
++	//using $v and $t fom above
++	db_prep_query($sql, $v, $t);
+ }
+-
++	
+ $sql = "SELECT n.wms_id, n.id, n.my_layer_title, n.lft, n.rgt, n.layer, COUNT(*) AS level1, ((n.rgt - n.lft -1)/2) AS offspring ";
+ $sql .= "FROM gui_treegde as n, gui_treegde as p WHERE n.lft BETWEEN p.lft AND p.rgt ";
+-$sql .= " AND n.fkey_gui_id = '".$guiList."' AND p.fkey_gui_id = '".$guiList."' ";
++$sql .= " AND n.fkey_gui_id = $1 AND p.fkey_gui_id = $2 ";
+ $sql .= " GROUP BY n.wms_id, n.lft, n.my_layer_title,  ((n.rgt - n.lft -1)/2) , n.id, n.rgt, n.layer ORDER BY n.lft;";
+ #echo $sql;
+-$res = db_query($sql);
++$v = array($guiList, $guiList);
++$t = array("s", "s");
++$res = db_prep_query($sql, $v, $t);
+ 	echo "function initArray(){";
+ 	echo "Note(0,-1,'','');";
+ 	$cnt = 0;
+Index: http/php/mod_treefolderClient.php
+===================================================================
+--- http/php/mod_treefolderClient.php	(revision 2361)
++++ http/php/mod_treefolderClient.php	(working copy)
+@@ -17,10 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++import_request_variables("PG");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
+-import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+ $guiList = $_SESSION["mb_user_gui"];
+@@ -78,8 +77,10 @@
+     // -->
+     </STYLE>
+ <?php
+-$sql = "SELECT e_target FROM gui_element WHERE e_id = 'treeConfGDE' AND fkey_gui_id = '".$guiList."'";
+-$res = db_query($sql);
++$sql = "SELECT e_target FROM gui_element WHERE e_id = 'treeConfGDE' AND fkey_gui_id = $1";
++$v = array($guiList);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ while(db_fetch_row($res)){ 
+ 	$e_target = db_result($res,0,"e_target");
+@@ -548,13 +549,18 @@
+   // this is a multinary tree structure which is easy to
+   // populate with database data :)
+ <?php
+-$sql = "SELECT id FROM gui_treegde WHERE fkey_gui_id = '".$guiList."'";
+-$res = db_query($sql);
++$sql = "SELECT id FROM gui_treegde WHERE fkey_gui_id = $1";
++// $v and $t will be re-used below!
++$v = array($guiList);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ if(!db_fetch_row($res)){
+-	$sql = "INSERT INTO gui_treegde(fkey_gui_id, my_layer_title,lft,rgt,layer) VALUES('".$guiList."', 'new','1','4','')";
+-	db_query($sql);
+-	$sql = "INSERT INTO gui_treegde(fkey_gui_id,my_layer_title,lft,rgt,layer) VALUES('".$guiList."','new','2','3','')";
+-	db_query($sql);      
++	$sql = "INSERT INTO gui_treegde(fkey_gui_id, my_layer_title,lft,rgt,layer) VALUES($1, 'new','1','4','')";
++	//using $v and $t fom above
++	db_prep_query($sql, $v, $t);
++	$sql = "INSERT INTO gui_treegde(fkey_gui_id,my_layer_title,lft,rgt,layer) VALUES($1,'new','2','3','')";
++	//using $v and $t fom above
++	db_prep_query($sql, $v, $t);
+ }
+ 
+ $sql = "SELECT n.wms_id, n.id, n.my_layer_title, n.lft, n.rgt, n.layer, COUNT(*) AS level1, ((n.rgt - n.lft -1)/2) AS offspring ";
+@@ -559,10 +565,11 @@
+ 
+ $sql = "SELECT n.wms_id, n.id, n.my_layer_title, n.lft, n.rgt, n.layer, COUNT(*) AS level1, ((n.rgt - n.lft -1)/2) AS offspring ";
+ $sql .= "FROM gui_treegde as n, gui_treegde as p WHERE n.lft BETWEEN p.lft AND p.rgt ";
+-$sql .= " AND n.fkey_gui_id = '".$guiList."' AND p.fkey_gui_id = '".$guiList."' ";
++$sql .= " AND n.fkey_gui_id = $1 AND p.fkey_gui_id = $2 ";
+ $sql .= " GROUP BY n.wms_id, n.lft, n.my_layer_title,  ((n.rgt - n.lft -1)/2) , n.id, n.rgt, n.layer ORDER BY n.lft";
+-
+-$res = db_query($sql);
++$v = array($guiList, $guiList);
++$t = array("s", "s");
++$res = db_prep_query($sql, $v, $t);
+ 	echo "function initArray(){";
+ 	echo "Note(0,-1,'','');";
+ 	$cnt = 0;
+Index: http/php/mod_updateWMS.php
+===================================================================
+--- http/php/mod_updateWMS.php	(revision 2361)
++++ http/php/mod_updateWMS.php	(working copy)
+@@ -17,14 +17,13 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-$con = db_connect(DBSERVER,OWNER,PW);
+ require_once(dirname(__FILE__)."/mb_validatePermission.php");
+ require_once(dirname(__FILE__)."/../classes/class_wms.php"); 
++
++$con = db_connect(DBSERVER,OWNER,PW);
++
+ import_request_variables("PG");
+ $secParams = SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+-$self = $PHP_SELF."?".$secParams;
+ ?>
+ <html>
+ <head>
+@@ -56,7 +55,7 @@
+ </script>
+ </head>
+ <body>
+-<form name='form1' action='<?php  $self ?>' method='POST'>
++<form name='form1' action='<?php echo $self ?>' method='POST'>
+ <?php
+ 
+ 
+@@ -63,11 +62,9 @@
+ 
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ $admin = new administration();
+-$ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+-$permguis = $admin->getGuisByPermission($_SESSION["mb_user_id"],true);
+-$wms_id_own = $admin->getWmsByOwnGuis($ownguis);
++$wms_id_own = $admin->getWmsByWmsOwner($_SESSION["mb_user_id"]);
+ 
+-if (count($wms_id_own)>0 AND count($ownguis)>0 AND count($permguis)>0){
++if (count($wms_id_own)>0){
+ 	$v = array();
+ 	$t = array();
+ 	$c = 1;
+Index: http/php/mod_usemap.php
+===================================================================
+--- http/php/mod_usemap.php	(revision 2361)
++++ http/php/mod_usemap.php	(working copy)
+@@ -19,7 +19,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+ ?>
+ <title>image map generator</title>
+Index: http/php/mod_user_filteredGroup.php
+===================================================================
+--- http/php/mod_user_filteredGroup.php	(revision 2361)
++++ http/php/mod_user_filteredGroup.php	(working copy)
+@@ -18,11 +18,10 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+Index: http/php/mod_user_filteredGui.php
+===================================================================
+--- http/php/mod_user_filteredGui.php	(revision 2361)
++++ http/php/mod_user_filteredGui.php	(working copy)
+@@ -18,16 +18,13 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-session_start();
++require_once(dirname(__FILE__)."/mb_validatePermission.php");
++require_once(dirname(__FILE__)."/../classes/class_wms.php");
++
+ $gui_id = $_SESSION["mb_user_gui"];
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/mb_validatePermission.php");
+-require_once(dirname(__FILE__)."/../classes/class_wms.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"]; 
+-
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+Index: http/php/mod_user_group.php
+===================================================================
+--- http/php/mod_user_group.php	(revision 2361)
++++ http/php/mod_user_group.php	(working copy)
+@@ -18,11 +18,10 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+Index: http/php/mod_user_gui.php
+===================================================================
+--- http/php/mod_user_gui.php	(revision 2361)
++++ http/php/mod_user_gui.php	(working copy)
+@@ -17,15 +17,14 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ import_request_variables("PG");
+-session_start();
++
++require_once(dirname(__FILE__)."/mb_validatePermission.php");
++require_once(dirname(__FILE__)."/../classes/class_wms.php"); 
++
+ $gui_id = $_SESSION["mb_user_gui"];
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+-require_once(dirname(__FILE__)."/mb_validatePermission.php");
+-require_once(dirname(__FILE__)."/../classes/class_wms.php"); 
+-$self = $PHP_SELF . "?".SID."&guiID=".$_REQUEST["guiID"]."&elementID=".$_REQUEST["elementID"];
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+Index: http/php/mod_wfs.php
+===================================================================
+--- http/php/mod_wfs.php	(revision 2361)
++++ http/php/mod_wfs.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+Index: http/php/mod_wfs_conf.php
+===================================================================
+--- http/php/mod_wfs_conf.php	(revision 2361)
++++ http/php/mod_wfs_conf.php	(working copy)
+@@ -17,8 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require(dirname(__FILE__)."/../classes/class_wfs_conf.php");
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect(DBSERVER,OWNER,PW);
+ db_select_db(DB,$con);
+ ?>
+@@ -66,9 +67,9 @@
+ <br>
+ <b>WFS Configuration</b>
+ <br>
+-<form method='POST' onsubmit='return validate()'>
++<form method='POST' action='<?php echo $self;?>'onsubmit='return validate()'>
+ <br>
+-<a href="mod_wfs_edit.php">edit WFS Configuration</a><br><br>
++<a href="mod_wfs_edit.php?<?php echo $urlParameters;?>">edit WFS Configuration</a><br><br>
+ Select WFS:&nbsp;
+ <?php
+ $aWFS = new wfs_conf();
+@@ -89,62 +90,75 @@
+ 
+         db_select_db($DB,$con);
+ 
+-        $sql = "INSERT INTO wfs_conf (wfs_conf_abstract,fkey_wfs_id,fkey_featuretype_id,g_label,g_label_id,g_button,g_button_id,g_style,g_buffer,g_res_style,g_use_wzgraphics) VALUES(";
+-        $sql .= "'".$_REQUEST["wfs_conf_abstract"]."',";
+-        $sql .= "'".$_REQUEST["wfs"]."',";
+-        $sql .= "'".$_REQUEST["featuretype"]."',";
+-        $sql .= "'".$_REQUEST["g_label"]."',";
+-        $sql .= "'".$_REQUEST["g_label_id"]."',";
+-        $sql .= "'".$_REQUEST["g_button"]."',";
+-        $sql .= "'".$_REQUEST["g_button_id"]."',";
+-        $sql .= "'".$_REQUEST["g_style"]."',";
+-        $sql .= "'".$_REQUEST["g_buffer"]."',";
+-        $sql .= "'".$_REQUEST["g_res_style"]."',";        
+-        if(!empty($_REQUEST["g_use_wzgraphics"])){
++        $sql = "INSERT INTO wfs_conf (";
++        $sql .= "wfs_conf_abstract, fkey_wfs_id, ";
++        $sql .= "fkey_featuretype_id, g_label, g_label_id, g_button, ";
++        $sql .= "g_button_id, g_style, g_buffer, g_res_style, g_use_wzgraphics";
++		$sql .= ") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, ";
++        if (!empty($_REQUEST["g_use_wzgraphics"])) {
+ 			$sql .= "'1'";
+-		}else{$sql .= "'0'";}
++		}
++		else {
++			$sql .= "'0'";
++		}
+         $sql .= "); ";
++        
++		$v = array($_REQUEST["wfs_conf_abstract"], $_REQUEST["wfs"], $_REQUEST["featuretype"], $_REQUEST["g_label"], $_REQUEST["g_label_id"], $_REQUEST["g_button"], $_REQUEST["g_button_id"], $_REQUEST["g_style"], $_REQUEST["g_buffer"], $_REQUEST["g_res_style"]);
++		$t = array("s", "s", "s", "s", "s", "s", "s", "s", "s", "s");
++        $res = db_prep_query($sql, $v, $t);
++        
++        $wfsID = db_insert_id($con,'wfs_conf','wfs_conf_id');
+ 
+-        $res = db_query($sql);
+-        $wfsID = db_insert_id($con,'wfs_conf','wfs_conf_id');
+-        for($i=0; $i<$_REQUEST["num"]; $i++){
+-                $sql = "INSERT INTO wfs_conf_element (fkey_wfs_conf_id,f_id,f_search,f_pos,f_style_id,f_toupper,f_label,f_label_id,f_show,f_respos,f_edit,f_form_element_html,f_mandatory) VALUES(";
+-                $sql .= "'".$wfsID."',";
+-                $sql .= "'".$_REQUEST["f_id".$i]."',";
+-                if(!empty($_REQUEST["f_search".$i])){
+-                	$sql .= "'1',";
+-                }else{$sql .= "'0',";}
+-                $sql .= "'".$_REQUEST["f_pos".$i]."',";
+-                $sql .= "'".$_REQUEST["f_style_id".$i]."',";                
+-				if(!empty($_REQUEST["f_toupper".$i])){
+-                	$sql .= "'1',";
+-                }else{$sql .= "'0',";}				
+-                $sql .= "'".$_REQUEST["f_label".$i]."',";
+-                $sql .= "'".$_REQUEST["f_label_id".$i]."',";
+-                if(!empty($_REQUEST["f_show".$i])){
+-                	$sql .= "'1',";
+-                }else{$sql .= "'0',";}
+-                $sql .= "'".$_REQUEST["f_respos".$i]."'";
+-				$sql .= ",";
+-                if(!empty($_REQUEST["f_edit".$i])){
+-                	$sql .= "'1',";
+-                }else{$sql .= "'0',";}
+-                $sql .= "'".$_REQUEST["f_form_element_html".$i]."',";
+-                if(!empty($_REQUEST["f_mandatory".$i])){
++        for ($i = 0; $i < $_REQUEST["num"]; $i++){
++                $sql = "INSERT INTO wfs_conf_element (fkey_wfs_conf_id,f_id,f_search,f_pos,f_style_id,f_toupper,f_label,f_label_id,f_show,f_respos,f_edit,f_form_element_html,f_mandatory,f_auth_varname) VALUES(";
++                $sql .= "$1, $2, ";
++                if (!empty($_REQUEST["f_search".$i])) {
++                	$sql .= "'1'";
++                }
++                else {
++                	$sql .= "'0'";
++                }
++                $sql .= ", $3, $4, ";
++				if (!empty($_REQUEST["f_toupper".$i])) {
++                	$sql .= "'1'";
++                }
++                else {
++                	$sql .= "'0'";
++                }				
++                $sql .= ",$5, $6, ";
++                if (!empty($_REQUEST["f_show".$i])) {
++                	$sql .= "'1'";
++                }
++                else {
++                	$sql .= "'0'";
++                }
++                $sql .= ", $7, ";
++                if (!empty($_REQUEST["f_edit".$i])) {
++                	$sql .= "'1'";
++                } 
++                else {
++                	$sql .= "'0'";
++                }
++                $sql .= ",$8, ";
++                if (!empty($_REQUEST["f_mandatory".$i])) {
+                 	$sql .= "'1'";
+-                }else{$sql .= "'0'";}
+-//                $sql .= ", ";
+-//                $sql .= "'".addslashes($_REQUEST["f_auth_varname".$i]);
+-//				$sql .= "'";
+-                $sql .= "); ";
++                }
++                else {
++                	$sql .= "'0'";
++                }
++                $sql .= ",$9";
++ 				$sql .= "); ";
+ 
+-                $res = db_query($sql);
++				$v = array($wfsID, $_REQUEST["f_id".$i], $_REQUEST["f_pos".$i], $_REQUEST["f_style_id".$i], $_REQUEST["f_label".$i], $_REQUEST["f_label_id".$i], $_REQUEST["f_respos".$i], $_REQUEST["f_form_element_html".$i], $_REQUEST["f_auth_varname".$i]);
++				$t = array("i", "s", "s", "s", "s", "s", "i", "s", "s");
++                $res = db_prep_query($sql, $v, $t);
+         }
+         if (isset($_REQUEST["f_geom"])) {
+-	        $sql = "UPDATE wfs_conf_element SET ";
+-	        $sql .= "f_geom = 1";
+-	        $sql .= " WHERE fkey_wfs_conf_id = ".$wfsID." AND f_id = ".$_REQUEST["f_geom"].";";
+-			$res = db_query($sql);
++	        $sql = "UPDATE wfs_conf_element SET f_geom = 1 ";
++	        $sql .= "WHERE fkey_wfs_conf_id = $1 AND f_id = $2;";
++	        $v = array($wfsID, $_REQUEST["f_geom"]);
++	        $t = array("i", "i");
++			$res = db_prep_query($sql, $v, $t);
+         }
+ 		
+ 		echo "<script language='javascript'>";
+@@ -271,8 +285,7 @@
+                 echo "<td><input name='f_respos".$i."' type='text' size='1' value='0'></td>";
+                 echo "<td><input name='f_mandatory".$i."' type='checkbox'></td>";
+                 echo "<td><input name='f_edit".$i."' type='checkbox'></td>";
+-                echo "<td><textarea name='f_form_element_html".$cnt."' cols='15' rows='1' ></textarea></td>";
+-//                echo "<td><input name='f_auth_varname".$cnt."' type='text' size='8' value='".$row["f_auth_varname"]."'></td>";
++                echo "<td><textarea name='f_form_element_html".$i."' cols='15' rows='1' ></textarea></td>";
+                 echo "</tr>";
+         }
+         echo "</table>";
+Index: http/php/mod_wfs_edit.php
+===================================================================
+--- http/php/mod_wfs_edit.php	(revision 2361)
++++ http/php/mod_wfs_edit.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ?>
+ <html>
+ <head>
+@@ -47,13 +47,11 @@
+ <br>
+ <b>WFS Configuration</b>
+ <br><br>
+-<form name='form1' method='POST' onsubmit='return validate()'>
+-<a href="mod_wfs_conf.php">new Configuration</a><br><br>
++<form name='form1' action='<?php echo $self;?>' method='POST' onsubmit='return validate()'>
++<a href="mod_wfs_conf.php?<?php echo $urlParameters;?>">new Configuration</a><br><br>
+ Select WFS Configuration:<br><br>
+ <?php
+ /* save wfs_conf properties */
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db($DB,$con);
+ 
+ if(isset($_REQUEST["save"])){
+ 
+@@ -58,38 +56,40 @@
+ if(isset($_REQUEST["save"])){
+ 
+         $sql = "UPDATE wfs_conf SET ";
+-        $sql .= "wfs_conf_abstract = '".$_REQUEST["wfs_conf_abstract"]."',";
+-        $sql .= "g_label = '".$_REQUEST["g_label"]."',";
+-        $sql .= "g_label_id = '".$_REQUEST["g_label_id"]."',";
+-        $sql .= "g_button = '".$_REQUEST["g_button"]."',";
+-        $sql .= "g_button_id = '".$_REQUEST["g_button_id"]."',";
+-        $sql .= "g_style = '".$_REQUEST["g_style"]."',";
+-        $sql .= "g_buffer = '".$_REQUEST["g_buffer"]."',";
+-        $sql .= "g_res_style = '".$_REQUEST["g_res_style"]."',";
+-        $sql .= "g_use_wzgraphics = ";
+-        if(!empty($_REQUEST["g_use_wzgraphics"])){
+-        	$sql .= '1';
+-        }else{$sql .= '0';}
+-        $sql .= " WHERE wfs_conf_id = ".$_REQUEST["gaz"].";";
++        $sql .= "wfs_conf_abstract = $1, g_label = $2, ";
++        $sql .= "g_label_id = $3, g_button = $4, g_button_id = $5, g_style = $6, ";
++        $sql .= "g_buffer = $7, g_res_style = $8, g_use_wzgraphics = ";
++        if (!empty($_REQUEST["g_use_wzgraphics"])) {
++        	$sql .= "1";
++        }
++        else {
++        	$sql .= "0";
++        }
++        $sql .= " WHERE wfs_conf_id = $9;";
+         
+-        $res = db_query($sql);
++        $v = array($_REQUEST["wfs_conf_abstract"], $_REQUEST["g_label"], $_REQUEST["g_label_id"], $_REQUEST["g_button"], $_REQUEST["g_button_id"], $_REQUEST["g_style"], $_REQUEST["g_buffer"], $_REQUEST["g_res_style"], $_REQUEST["gaz"]);
++        $t = array("s", "s", "s", "s", "s", "s", "s", "i", "s");
++        $res = db_prep_query($sql, $v, $t);
+ 		        
+ 		if (isset($_REQUEST["f_geom"])) {
+-	        $sql = "UPDATE wfs_conf_element SET ";
+-	        $sql .= "f_geom = 1";
+-	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_geom"].";";
+-			$res = db_query($sql);
++	        $sql = "UPDATE wfs_conf_element SET f_geom = 1 ";
++	        $sql .= "WHERE fkey_wfs_conf_id = $1 AND f_id = $2;";
++	        $v = array($_REQUEST["gaz"], $_REQUEST["f_geom"]);
++	        $t = array("i", "s");
++			$res = db_prep_query($sql, $v, $t);
+ 			
+-			$sql = "UPDATE wfs_conf_element SET ";
+-	        $sql .= "f_geom = 0";
+-	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id <>  ".$_REQUEST["f_geom"].";";
+-			$res = db_query($sql);
++			$sql = "UPDATE wfs_conf_element SET f_geom = 0 ";
++	        $sql .= "WHERE fkey_wfs_conf_id = $1 AND f_id <> $2;";
++	        $v = array($_REQUEST["gaz"], $_REQUEST["f_geom"]);
++	        $t = array("i", "s");
++			$res = db_prep_query($sql, $v, $t);
+ 		}
+ 		else {
+-			$sql = "UPDATE wfs_conf_element SET ";
+-	        $sql .= "f_geom = 0";
+-	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"].";";
+-			$res = db_query($sql);
++			$sql = "UPDATE wfs_conf_element SET f_geom = 0 ";
++	        $sql .= "WHERE fkey_wfs_conf_id = $1;";
++	        $v = array($_REQUEST["gaz"]);
++	        $t = array("i");
++			$res = db_prep_query($sql, $v, $t);
+ 		}
+ 		
+         for($i=0; $i<$_REQUEST["num"]; $i++){
+@@ -94,42 +94,51 @@
+ 		
+         for($i=0; $i<$_REQUEST["num"]; $i++){
+         	
+-                $sql = "UPDATE wfs_conf_element SET ";
+-                $sql .= "f_search = '";
+-                if(!empty($_REQUEST["f_search".$i])){
+-                	$sql .= '1';
+-                }else{$sql .= '0';}
+-                $sql .= "',";
+-                $sql .= "f_pos = '".$_REQUEST["f_pos".$i]."',";
+-                $sql .= "f_style_id = '".$_REQUEST["f_style_id".$i]."',";
++                $sql = "UPDATE wfs_conf_element SET f_search = '";
++                if (!empty($_REQUEST["f_search".$i])) {
++                	$sql .= "1";
++                }
++                else {
++                	$sql .= "0";
++                }
++                $sql .= "', f_pos = $1, f_style_id = $2,";
+                 $sql .= "f_toupper = '" ;
+-                if(!empty($_REQUEST["f_toupper".$i])){
+-                	$sql .= '1';
+-                }else{$sql .= '0';}
+-                $sql .= "',";
+-                $sql .= "f_label = '".$_REQUEST["f_label".$i]."',";
+-                $sql .= "f_label_id = '".$_REQUEST["f_label_id".$i]."',";
++                if (!empty($_REQUEST["f_toupper".$i])) {
++                	$sql .= "1";
++                }
++                else { 
++                	$sql .= "0";
++                }
++                $sql .= "',f_label = $3, f_label_id = $4,";
+                 $sql .= "f_show = '";
+-                if(!empty($_REQUEST["f_show".$i])){
+-                	$sql .= '1';
+-                }else{$sql .= '0';}
+-				$sql .= "',";
+-                $sql .= "f_respos = '".$_REQUEST["f_respos".$i]."' ";
+-				$sql .= ",";
++                if (!empty($_REQUEST["f_show".$i])) {
++                	$sql .= "1";
++                }
++                else {
++                	$sql .= "0";
++                }
++				$sql .= "',f_respos = $5,";
+                 $sql .= "f_edit = '";
+-                if(!empty($_REQUEST["f_edit".$i])){
+-                	$sql .= '1';
+-                }else{$sql .= '0';}
+-				$sql .= "',";
+-                $sql .= "f_form_element_html = '".addslashes($_REQUEST["f_form_element_html".$i]);
+-				$sql .= "',";
++                if (!empty($_REQUEST["f_edit".$i])) {
++                	$sql .= "1";
++                }
++                else {
++                	$sql .= "0";
++                }
++				$sql .= "', f_form_element_html = $6,";
+                 $sql .= "f_mandatory = '";
+-                if(!empty($_REQUEST["f_mandatory".$i])){
++                if (!empty($_REQUEST["f_mandatory".$i])) {
+                 	$sql .= "1";
+-                }else{$sql .= "0";}
+-				$sql .= "'";
+-                $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_id".$i].";";
+-                $res = db_query($sql);
++                }
++                else {
++                	$sql .= "0";
++                }
++				$sql .= "', f_auth_varname = $7";
++				$sql .= " WHERE fkey_wfs_conf_id = $8 AND f_id = $9;";
++
++				$v = array($_REQUEST["f_pos".$i], $_REQUEST["f_style_id".$i], $_REQUEST["f_label".$i], $_REQUEST["f_label_id".$i], $_REQUEST["f_respos".$i], addslashes($_REQUEST["f_form_element_html".$i]), $_REQUEST["f_auth_varname".$i], $_REQUEST["gaz"], $_REQUEST["f_id".$i]);
++				$t = array("s", "s", "s", "s", "s", "s", "s", "i", "s");
++                $res = db_prep_query($sql, $v, $t);
+         }
+ }
+ 
+@@ -164,9 +173,11 @@
+ }
+ 
+ /* configure elements */
+-if(isset($_REQUEST["gaz"])){
+-        $sql = "SELECT * FROM wfs_conf WHERE wfs_conf_id = ".$_REQUEST["gaz"];
+-        $res = db_query($sql);
++if (isset($_REQUEST["gaz"])) {
++        $sql = "SELECT * FROM wfs_conf WHERE wfs_conf_id = $1";
++        $v = array($_REQUEST["gaz"]);
++        $t = array("i");
++        $res = db_prep_query($sql, $v, $t);
+         if($row = db_fetch_array($res)){
+                 echo "<table>";
+                 echo "<tr><td>GazetterID:</td><td>".$row["wfs_conf_id"]."</td></tr>" ;
+@@ -187,9 +198,10 @@
+         /* set element options */
+         $sql = "SELECT * FROM wfs_conf_element ";
+         $sql .= "JOIN wfs_element ON wfs_conf_element.f_id = wfs_element.element_id ";
+-        $sql .= "WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." ORDER BY f_id";
+-
+-        $res = db_query($sql);
++        $sql .= "WHERE fkey_wfs_conf_id = $1 ORDER BY f_id";
++		$v = array($_REQUEST["gaz"]);
++		$t = array("i");
++        $res = db_prep_query($sql, $v, $t);
+ 		
+         echo "<table border='1'>";
+         echo "<tr valign = bottom>";
+Index: http/php/mod_wfs_gazetteer_server.php
+===================================================================
+--- http/php/mod_wfs_gazetteer_server.php	(revision 2361)
++++ http/php/mod_wfs_gazetteer_server.php	(working copy)
+@@ -17,14 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-include(dirname(__FILE__)."/../classes/class_gml2.php");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../classes/class_gml2.php");
+ require_once(dirname(__FILE__)."/../extensions/JSON.php");
+ require_once(dirname(__FILE__)."/../classes/class_administration.php");
+ 
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db($DB,$con);
+-
+ $command = $_REQUEST["command"];
+ 
+ function checkAccessConstraint($filter, $wfs_conf_id) {
+Index: http/php/mod_wfs_result.php
+===================================================================
+--- http/php/mod_wfs_result.php	(revision 2361)
++++ http/php/mod_wfs_result.php	(working copy)
+@@ -17,13 +17,18 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-$filter = stripslashes($_REQUEST["filter"]);
+-$url = stripslashes($_REQUEST['url']);
+-//echo $filter; die();
+-require_once("../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once("../classes/class_stripRequest.php");
+ require_once("../classes/class_connector.php");
+ 
++$filter = stripslashes($_REQUEST["filter"]);
++$url = stripslashes($_REQUEST["url"]);
++$js_wfs_conf_id = $_REQUEST["js_wfs_conf_id"];
++$db_wfs_conf_id = $_REQUEST["db_wfs_conf_id"];
++$typename = $_REQUEST["typename"];
++
++//echo $filter; die();
++
+ function sepNameSpace($s){
+ 	$c = strpos($s,":"); 
+ 	if ($c > 0){
+@@ -60,7 +65,6 @@
+ $el = -1;
+ $fid = -1;
+ 
+-$typename = $_REQUEST["typename"];
+ $element_str = "";
+ $geom_str = "";
+ foreach ($values as $element) {
+@@ -106,7 +110,7 @@
+ 		}
+ 		// TO DO: the following is added twice! Once suffices.
+ 		$element_str .= "geom.get(" . $member . ").e.setElement('fid', '".$fid."');\n";
+-		$element_str .= "geom.get(" . $member . ").wfs_conf = ".$_REQUEST['wfs_conf_id'].";\n";
++		$element_str .= "geom.get(" . $member . ").wfs_conf = ".$js_wfs_conf_id.";\n";
+ 	}
+ 	else if(strtoupper($element[tag]) == strtoupper("gml:coordinates") && $geom == true){
+ 		$tmp =  str_replace(",,","",str_replace(" ",",",trim($element[value])));
+Index: http/php/mod_wfs_save.php
+===================================================================
+--- http/php/mod_wfs_save.php	(revision 2361)
++++ http/php/mod_wfs_save.php	(working copy)
+@@ -19,7 +19,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++
+ echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
+ ?>
+ <title>WFS Save</title>
+@@ -145,7 +147,7 @@
+ <div id='a' name='a'></div>
+ </form>
+ 
+-<form action='../extensions/geom2wfst.php' method='POST'>
++<form action='../extensions/geom2wfst.php<?php echo $urlParameters;?>' method='POST'>
+ <input type='text' name='url'>
+ <input type='text' name='filter'>
+ </form>
+Index: http/php/mod_wfsLayerObj_conf.php
+===================================================================
+--- http/php/mod_wfsLayerObj_conf.php	(revision 2361)
++++ http/php/mod_wfsLayerObj_conf.php	(working copy)
+@@ -17,8 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require(dirname(__FILE__)."/../classes/class_wfs_conf.php");
+-require(dirname(__FILE__)."/../../conf/mapbender.conf");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db($DB,$con);
+ ?>
+Index: http/php/mod_wfsrequest.php
+===================================================================
+--- http/php/mod_wfsrequest.php	(revision 2361)
++++ http/php/mod_wfsrequest.php	(working copy)
+@@ -17,9 +17,11 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db($DB,$con);
++
+ if(isset($_REQUEST["backlink"]) && $_REQUEST["backlink"] == 'parent'){
+ 	$p = 'parent';
+ }else{
+@@ -32,8 +34,8 @@
+ $sql .= "WHERE wfs_conf.wfs_conf_id = $1";
+ 
+ $v = array($_REQUEST['wfs_conf_id']);
+-$t = array('i');
+-$res = db_prep_query($sql,$v,$t);
++$t = array("i");
++$res = db_prep_query($sql, $v, $t);
+ if($row = db_fetch_array($res)){
+         $g_res_style  = $row["g_res_style"];
+         
+@@ -45,8 +47,8 @@
+ $sql .= "WHERE wfs_conf_element.fkey_wfs_conf_id = $1 ";
+ $sql .= "AND wfs_conf_element.f_show = 1 ORDER BY wfs_conf_element.f_respos;";
+ $v = array($_REQUEST['wfs_conf_id']);
+-$t = array('i');
+-$res = db_prep_query($sql,$v,$t);
++$t = array("i");
++$res = db_prep_query($sql, $v, $t);
+ $col = array();
+ $cnt = 0;
+ while($row = db_fetch_array($res)){
+Index: http/php/mod_WMSpreferences.php
+===================================================================
+--- http/php/mod_WMSpreferences.php	(revision 2361)
++++ http/php/mod_WMSpreferences.php	(working copy)
+@@ -17,10 +17,10 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
+ $con = db_connect($DBSERVER,$OWNER,$PW);
+ db_select_db(DB,$con);
+-session_start();
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ 
+@@ -62,8 +62,10 @@
+ </STYLE>
+ <?php
+ 
+-$sql = "SELECT * FROM gui_element WHERE e_id = 'WMS_preferences' AND fkey_gui_id = '".$_SESSION["mb_user_gui"]."'";
+-$res = db_query($sql);
++$sql = "SELECT * FROM gui_element WHERE e_id = 'WMS_preferences' AND fkey_gui_id = $1";
++$v = array($_SESSION["mb_user_gui"]);
++$t = array("s");
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ $vis = "";
+ $wmsid = "";
+@@ -79,8 +81,10 @@
+ echo "var mod_WMSpreferences_target2 = '".trim($target[1])."';";
+ echo "</script>";
+ 
+-$sql_visible = "SELECT * FROM gui_wms WHERE fkey_gui_id = '".$_SESSION["mb_user_gui"]."'"; 
+-$res_visible = db_query($sql_visible); 
++$sql_visible = "SELECT * FROM gui_wms WHERE fkey_gui_id = $1";
++$v = array($_SESSION["mb_user_gui"]);
++$t = array("s"); 
++$res_visible = db_prep_query($sql_visible, $v, $t); 
+ $cnt_visible = 0; 
+ 
+ while($row = db_fetch_array($res_visible)){
+Index: http/php/mod_zoomCoords.php
+===================================================================
+--- http/php/mod_zoomCoords.php	(revision 2361)
++++ http/php/mod_zoomCoords.php	(working copy)
+@@ -17,11 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ import_request_variables("PG");
+ 
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -148,7 +146,7 @@
+ 
+ <?php
+ # needs intl'!
+-	echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++	echo "<form name='form1' action='" . $self ."' method='post'>";
+ 	echo "<span class='labelx'>L&auml;nge:</span>";
+ 	echo "<span class='labely'>Breite:</span>";
+ 	echo "<input class='textx' type='text' name='X'>";
+Index: http/php/mod_zoomCoords_en.php
+===================================================================
+--- http/php/mod_zoomCoords_en.php	(revision 2361)
++++ http/php/mod_zoomCoords_en.php	(working copy)
+@@ -17,12 +17,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+-import_request_variables("PG");
+-
+ require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ 
++import_request_variables("PG");
+ 
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+@@ -184,7 +181,7 @@
+ <body bgcolor='#ffffff' onload=''>
+ 
+ <?php
+-echo "<form name='form1' action='" . $PHP_SELF . "?".SID."' method='post'>";
++echo "<form name='form1' action='" . $self."' method='post'>";
+ #coordinates
+    
+    #deutsche Version
+Index: http/php/nestedSets.php
+===================================================================
+--- http/php/nestedSets.php	(revision 2361)
++++ http/php/nestedSets.php	(working copy)
+@@ -17,12 +17,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-session_start();
+-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ import_request_variables("PG");
+-require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+-$con = db_connect($DBSERVER,$OWNER,$PW);
+-db_select_db(DB,$con);
++require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
+ ?>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+@@ -116,26 +112,31 @@
+ }
+ if(isset($action) && $action == "insert"){
+ 	$temp = explode("###", $layer);
+-	$sql = "SELECT rgt FROM gui_treegde WHERE lft = ".$left." AND fkey_gui_id = '".$guiList."'";
+-	$res = db_query($sql);
++	$sql = "SELECT rgt FROM gui_treegde WHERE lft = $1 AND fkey_gui_id = $1";
++	$v = array($left, $guiList);
++	$t = array("i", "s");
++	$res = db_prep_query($sql, $v, $t);
+ 	if($pos == 'in'){$left = $left + 1;}
+ 	else if($pos == 'hinter'){$left = db_result($res,0,"rgt") + 1;}
+ 	else{ $left = $left + 2;}
+-	$sql = "UPDATE gui_treegde SET rgt=rgt+2 WHERE rgt >=". $left." AND fkey_gui_id = '".$guiList."'";
+-	db_query($sql);
+-	$sql = "UPDATE gui_treegde SET lft=lft+2 WHERE lft >=".$left." AND fkey_gui_id = '".$guiList."'";
+-	db_query($sql);
+-	$sql = "INSERT INTO gui_treegde(fkey_gui_id, fkey_layer_id, lft,rgt, my_layer_title, layer, wms_id) VALUES(";
+-		$sql .= "'".$guiList."', ";
+-		$sql .= "'".$temp[0]."', ";	
+-		$sql .= $left.", ";
+-		$sql .= ($left+1).", ";
+-		$sql .= "'".$name."', ";
+-		$sql .= "'".$temp[1]."', ";
+-		$sql .= "'".$wmsList."'";
+-		$sql .= ")";
+-		#echo $sql . "<br>";		
+-	db_query($sql);
++	
++	$sql = "UPDATE gui_treegde SET rgt=rgt+2 WHERE rgt >= $1 AND fkey_gui_id = $2";
++	$v = array($left, $guiList);
++	$t = array("i", "s");
++	db_prep_query($sql, $v, $t);
++	
++	$sql = "UPDATE gui_treegde SET lft=lft+2 WHERE lft >= $1 AND fkey_gui_id = $2";
++	$v = array($left, $guiList);
++	$t = array("i", "s");
++	db_prep_query($sql, $v, $t);
++
++	$sql = "INSERT INTO gui_treegde(fkey_gui_id, fkey_layer_id, lft,rgt, ";
++	$sql .= "my_layer_title, layer, wms_id) VALUES($1, $2, $3, $4, $5, $6, $7)";
++		#echo $sql . "<br>";
++	$v = array($guiList, $temp[0], $left, ($left+1), $name, $temp[1], $wmsList);
++	$t = array("s", "s", "i", "i", "s", "s", "s");		
++	db_prep_query($sql, $v, $t);
++
+ 	/*
+ 	if($layer == ""){
+ 		$left = $left + 1;
+@@ -152,15 +153,26 @@
+ }
+ if(isset($action) && $action == "delete"){	
+ 	if($left){
+-		$sql = "SELECT rgt FROM gui_treegde WHERE lft =". $left." AND fkey_gui_id = '".$guiList."'";
+-		$res = db_query($sql);
++		$sql = "SELECT rgt FROM gui_treegde WHERE lft = $1 AND fkey_gui_id = $2";
++		$v = array($left, $guiList);
++		$t = array("i", "s");
++		$res = db_prep_query($sql, $v, $t);
+ 		$right = db_result($res,0,"rgt");
+-		$sql = "DELETE FROM gui_treegde WHERE lft BETWEEN ".$left." and ".$right." AND fkey_gui_id = '".$guiList."'";
+-		db_query($sql);
+-		$sql = "UPDATE gui_treegde SET lft=lft-((".$right."-".$left."+1)) WHERE lft>".$right." AND fkey_gui_id = '".$guiList."'";
+-		db_query($sql);
+-		$sql = "UPDATE gui_treegde SET rgt=rgt-((".$right."-".$left."+1)) WHERE rgt>".$right." AND fkey_gui_id = '".$guiList."'";
+-		db_query($sql);
++		
++		$sql = "DELETE FROM gui_treegde WHERE lft BETWEEN $1 and $2 AND fkey_gui_id = $3";
++		$v = array($left, $right, $guiList);
++		$t = array("i", "i", "s");
++		db_prep_query($sql, $v, $t);
++
++		$sql = "UPDATE gui_treegde SET lft=lft-(($1 - $2 + 1)) WHERE lft > $3 AND fkey_gui_id = $4";
++		$v = array($right, $left, $right, $guiList);
++		$t = array("i", "i", "i", "s");
++		db_prep_query($sql, $v, $t);
++
++		$sql = "UPDATE gui_treegde SET rgt=rgt-(($1 - $2 + 1)) WHERE rgt > $3 AND fkey_gui_id = $4";
++		$v = array($right, $left, $right, $guiList);
++		$t = array("i", "i", "i", "s");
++		db_prep_query($sql, $v, $t);
+ 	}
+ }
+ if(isset($action) && $action == "update"){
+@@ -166,12 +178,14 @@
+ if(isset($action) && $action == "update"){
+ 	$temp = explode("###", $layer);
+ 	$sql = "UPDATE gui_treegde SET ";
+-	$sql .= "my_layer_title = '".$name."', ";
+-	$sql .= "fkey_layer_id = '".$temp[0]."', ";
+-	$sql .= "layer = '".$temp[1]."', ";
+-	$sql .= "wms_id = '" . $wmsList."'";
+-	$sql .= " WHERE lft = ".$left." AND fkey_gui_id = '".$guiList."'";
+-	db_query($sql);
++	$sql .= "my_layer_title = $1, ";
++	$sql .= "fkey_layer_id = $2, ";
++	$sql .= "layer = $3, ";
++	$sql .= "wms_id = $4";
++	$sql .= " WHERE lft = $5 AND fkey_gui_id = $6";
++	$v = array($name, $temp[0], $temp[1], $wmsList, $left, $guiList);
++	$t = array("s", "s", "s", "s", "i", "s");
++	db_prep_query($sql, $v, $t);
+ }
+ if(isset($action) && $action == "add"){
+ 	$temp = explode("###", $layer);
+@@ -176,29 +190,42 @@
+ if(isset($action) && $action == "add"){
+ 	$temp = explode("###", $layer);
+ 	
+-	$sql_val = "SELECT * FROM gui_treegde WHERE lft =". $left." AND fkey_gui_id = '".$guiList."'";
+-	$res_val = db_query($sql_val);
++	$sql_val = "SELECT * FROM gui_treegde WHERE lft = $1 AND fkey_gui_id = $2";
++	$v = array($left, $guiList);
++	$t = array("i", "s");
++	$res = db_prep_query($sql_val, $v, $t);
+ 	
+ 	$sql = "UPDATE gui_treegde SET ";
++	$sql .= "fkey_layer_id = $1, layer = $2, wms_id =  $3 ";
++	$sql .= "WHERE lft = $4 AND fkey_gui_id = $5";
+ 	
+-	$sql .= "fkey_layer_id = ";
+-	$sql .= "'";
+-	if(db_result($res_val, 0, "fkey_layer_id") != ''){ $sql .= db_result($res_val, 0, "fkey_layer_id") . ","; }
+-	$sql .=  $temp[0] . "', ";
++	$v = array();
++	$t = array("s", "s", "s", "i", "s");	
++
++	if (db_result($res_val, 0, "fkey_layer_id") != '') {
++		array_push($v, db_result($res_val, 0, "fkey_layer_id") . "," . $temp[0]);
++	}
++	else {
++		array_push($v, $temp[0]);
++	}
+ 	
+-	$sql .= "layer = ";
+-	$sql .= "'";
+-	if(db_result($res_val, 0, "layer") != ''){ $sql .= db_result($res_val, 0, "layer") . ","; }
+-	$sql .= $temp[1] . "', ";
+-	
+-	$sql .= "wms_id = ";
+-	$sql .= "'";
+-	if(db_result($res_val, 0, "wms_id") != ''){ $sql .= db_result($res_val, 0, "wms_id") . ","; }
+-	$sql .= $wmsList . "' ";
++	if (db_result($res_val, 0, "layer") != '') {
++		array_push($v, db_result($res_val, 0, "layer") . "," . $temp[1]);
++	}
++	else {
++		array_push($v, $temp[1]);
++	}
+ 	
+-	$sql .= " WHERE lft = ".$left." AND fkey_gui_id = '".$guiList."'";
+-	#echo $sql . "<br>";
+-	db_query($sql);
++	if (db_result($res_val, 0, "wms_id") != '') {
++		array_push($v, db_result($res_val, 0, "wms_id") . "," . $wmsList);
++	}
++	else {
++		array_push($v, $wmsList);
++	}
++
++	array_push($v, $left);	
++	array_push($v, $guiList);	
++	db_prep_query($sql, $v, $t);
+ }
+ ?>
+ <br />
+@@ -219,7 +246,7 @@
+ ?>
+ 
+ <div style='position:absolute;top:50px;left:350px'>
+-<form action='<?php $PHP_SELF ?>' method='POST'>
++<form action='<?php echo $self; ?>' method='POST'>
+ <br><br>
+ <table >
+ <tr><td></td><td></td></tr>
+@@ -228,14 +255,19 @@
+ $admin = new administration();
+ $ownguis = $admin->getGuisByOwner($_SESSION["mb_user_id"],true);
+ 
+-$sql = "SELECT * FROM gui WHERE gui_id IN ("; for($i=0; 
+-$i<count($ownguis); $i++){
+-				if($i>0){ $sql .= ",";}
+-				$sql .= "'".$ownguis[$i]."'";
+-				}
++$sql = "SELECT * FROM gui WHERE gui_id IN ("; 
++$v = $ownguis;
++$t = array();
++for ($i = 1; $i <= count($ownguis); $i++){
++	if ($i > 1) { 
++		$sql .= ",";
++	}
++	$sql .= "$" . $i;
++	array_push($t, "s");
++}
+ $sql .= ") ORDER BY gui_name";
+ 
+-$res = db_query($sql);
++$res = db_prep_query($sql, $v, $t);
+ $cnt = 0;
+ echo "<select class='guiList' size='10' name='guiList' class='guiList'  onchange='document.forms[0].submit()'>";
+ echo "<option value=''>GUI ...</option>";
+@@ -265,9 +297,11 @@
+ 	if(isset($guiList) && $guiList != ""){
+ 		$sql = "SELECT gui_wms.fkey_wms_id, wms.wms_title FROM gui_wms ";
+ 		$sql .= "INNER JOIN wms ON gui_wms.fkey_wms_id = wms.wms_id  ";
+-		$sql .= "WHERE gui_wms.fkey_gui_id = '" . $guiList . "' ";
++		$sql .= "WHERE gui_wms.fkey_gui_id = $1 ";
+ 		$sql .= "ORDER BY wms.wms_title";
+-		$res = db_query($sql);
++		$v = array($guiList);
++		$t = array("s");
++		$res = db_prep_query($sql, $v, $t);
+ 		$cnt = 0;
+ 		while($row = db_fetch_array($res)){
+ 			echo "<option value='".$row["fkey_wms_id"]."' ";
+@@ -293,9 +327,11 @@
+ 	if(isset($wmsList) && $wmsList != ""){
+ 		$sql_l = "SELECT gui_layer.fkey_layer_id, layer.layer_name, layer.layer_title FROM gui_layer ";
+ 		$sql_l .= "LEFT JOIN layer ON gui_layer.fkey_layer_id = layer.layer_id ";
+-		$sql_l .= "WHERE gui_layer.gui_layer_wms_id = " . $wmsList . " AND layer.layer_parent = '0' AND gui_layer.fkey_gui_id = '".$guiList."'";
++		$sql_l .= "WHERE gui_layer.gui_layer_wms_id = $1 AND layer.layer_parent = '0' AND gui_layer.fkey_gui_id = $2";
+ 		$sql_l .= " ORDER BY layer.layer_title";
+-		$res_l = db_query($sql_l);
++		$v = array($wmsList, $guiList);
++		$t = array("i", "s");
++		$res_l = db_prep_query($sql_l, $v, $t);
+ 		$cnt = 0;
+ 		while($row = db_fetch_array($res_l)){
+ 			echo "<option value='".$row["fkey_layer_id"]."###".$row["layer_name"]."'>";
+Index: http/print/mod_printPDF.php
+===================================================================
+--- http/print/mod_printPDF.php	(revision 2361)
++++ http/print/mod_printPDF.php	(working copy)
+@@ -16,7 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-session_start();
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+ 
+ ?>
+Index: http/print/mod_printPDF_pdf.php
+===================================================================
+--- http/print/mod_printPDF_pdf.php	(revision 2361)
++++ http/print/mod_printPDF_pdf.php	(working copy)
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 
+-#require_once("../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+ ob_start();
+ session_start();
+ ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');
+Index: http/tools/mod_monitorCapabilities_main.php
+===================================================================
+--- http/tools/mod_monitorCapabilities_main.php	(revision 0)
++++ http/tools/mod_monitorCapabilities_main.php	(revision 0)
+@@ -0,0 +1,198 @@
++<?php
++# $Id: mod_monitorCapabilities.php 371 2006-05-31 12:45:24Z christoph $
++# http://www.mapbender.org/index.php/Monitor_Capabilities
++# Copyright (C) 2002 CCGIS 
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++//require_once("../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++//session_start();
++//import_request_variables("PG");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++$con = db_connect($DBSERVER,$OWNER,$PW);
++db_select_db(DB,$con);
++$admin = new administration();
++
++//$user = "root";
++$user = "";
++$gui = "";
++$cl = 0;
++
++
++function getConjunctionCharacter($onlineresource){
++	if(strstr($onlineresource, "?")) {
++		$lastChar = substr($onlineresource,strlen($onlineresource)-1, 1);  
++		if ($lastChar == "?" || $lastChar == "&") {return "";}
++		else{return "&";}
++	}
++	else {return "?";} 
++}
++
++// retrieve username and gui_id
++if ($_REQUEST['user']) {
++	$cl = 0;
++	//browser
++	echo "browser";
++	$user = $_REQUEST['user'];
++	$gui = $_REQUEST['gui'];
++}
++elseif ($_SERVER["argv"][1]) {
++	$cl = 1;
++	//command line
++	$p1 = $_SERVER["argv"][1];
++	$p2 = $_SERVER["argv"][2];
++	if (substr($p1, 0,5) == "user:") {
++		$user = substr($p1, 5);
++		if (substr($p2, 0,4) == "gui:") {
++			$gui = substr($p2, 4);
++		}
++	}
++}
++else {
++	echo "Please specify a username!\n";die();
++}
++
++$userid = $admin->getUserIdByUserName($user);
++
++if ($userid) {
++	$ownguis = $admin->getGuisByOwner($userid,true);
++	if ($gui) {
++		if (!$admin->guiExists($gui)) {
++			echo "GUI " . $gui . " doesn't exist.\n"; die();
++		}
++		elseif (in_array($gui, $ownguis)) {
++			$ownguis = array($gui);
++		} 
++		else {
++			echo "User " . $user . " is not owner of GUI " . $gui . ".\n"; die();
++		}
++	}
++}
++else {
++	echo $user . " is not a valid username.\n";	die();
++}
++
++$wms_id_own = $admin->getWmsByOwnGuis($ownguis);
++
++// initialise monitoring processes
++echo "Starting monitoring cycle...\n\n";
++if ($cl == 0) echo "<br/><br/>";
++echo "WMS services are requested for availability.\n"; 
++if ($cl == 0) echo "<br/>";
++echo "Capabilities documents are requested and all changes synchronized with the database cache.\n\n";
++if ($cl == 0) echo "<br/><br/>";
++
++$time = strval(time()-2);
++
++for ($k=0; $k<count($wms_id_own); $k++) {
++	$sql = "SELECT wms_upload_url FROM wms WHERE wms_id = $1";
++	$v = array($wms_id_own[$k]);
++	$t = array('i');
++	$res = db_prep_query($sql,$v,$t);
++	$someArray = db_fetch_row($res);
++	$url = $someArray[0];
++	
++	if (!$upload_url || $upload_url == "") {
++		$sql = "SELECT wms_version, wms_getcapabilities FROM wms WHERE wms_id = $1";
++		$v = array($wms_id_own[$k]);
++		$t = array('i');
++		$res = db_prep_query($sql,$v,$t);
++		$someArray = db_fetch_row($res);
++
++		$version = $someArray[0];
++		$capabilities = $someArray[1]; 	
++		if ($version == "1.0.0" ) {
++			$url = $capabilities . getConjunctionCharacter($capabilities) . "REQUEST=capabilities&WMTVER=1.0.0";
++		}
++		else {
++			$url = $capabilities . getConjunctionCharacter($capabilities) . "REQUEST=GetCapabilities&SERVICE=WMS&VERSION=" . $version;	
++		}
++	}
++	
++	$sql = "INSERT INTO mb_monitor (upload_id, fkey_wms_id, status, status_comment, timestamp_begin, timestamp_end, upload_url, updated) ";
++	$sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8)";
++	$v = array($time,$wms_id_own[$k],"-2","Monitoring is still in progress...", time(),time(),$url,"0");
++	$t = array('s', 'i', 's', 's', 's', 's', 's', 's');
++	$res = db_prep_query($sql,$v,$t);
++}
++
++for ($k=0; $k<count($wms_id_own); $k++) {
++
++	if (intval(AUTO_UPDATE)) {
++		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 1 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
++	}
++	else {
++		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 0 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
++	}
++	exec($exec);
++}
++echo "Monitoring Cycle completed (total: " . count($wms_id_own) . " wms).\n\n";
++if ($cl == 0) echo "<br/><br/>";
++set_time_limit(2*TIME_LIMIT);
++
++// wait until all monitoring processes are finished
++echo "please wait " . TIME_LIMIT . " seconds for the monitoring to finish...\n\n";
++if ($cl == 0) echo "<br/><br/>";
++sleep(TIME_LIMIT);
++
++$sql = "SELECT fkey_wms_id, status, status_comment, timestamp_begin, timestamp_end, upload_url FROM mb_monitor WHERE upload_id = $1";
++$v = array($time);
++$t = array('i');
++$res = db_prep_query($sql,$v,$t);
++
++$cnt=0;
++while ($row = db_fetch_array($res)) {
++	$status[$cnt] = intval(db_result($res,$cnt,"status"));
++	$wms_id[$cnt] = db_result($res,$cnt,"fkey_wms_id");
++	$comment[$cnt] = db_result($res,$cnt,"status_comment");
++	$upload_url[$cnt] = db_result($res,$cnt,"upload_url");
++	$timestamp_begin[$cnt] = db_result($res,0,"timestamp_begin");
++	$timestamp_end[$cnt] = db_result($res,0,"timestamp_end");
++	$cnt++;
++}
++
++$body = "";
++for ($i=0; $i<$cnt; $i++) {
++	// if monitoring is still in progress and time limit has expired, update database
++	if ($status[$i] == -2 && intval(time())-intval($timestamp_begin[$i]) > intval(TIME_LIMIT)) {
++		$comment[$i] = "Monitoring process timed out.";
++		$status[$i] = -1;	
++		$new_sql = "UPDATE mb_monitor SET status = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
++		$new_v = array((intval($upload_id[$i])+intval(TIME_LIMIT)), $wms_id[$i], $time);
++		$new_t = array('s', 'i', 's');
++		$new_res = db_prep_query($new_sql,$new_v,$new_t);
++	}
++	// compose mail message
++	echo $wms_id[$i] . ": status " . $status[$i] . "\n";
++	if ($cl == 0) echo "<br/><br/>";
++	if ($status[$i] == -1) {
++		$body .= $admin->getWmsTitleByWmsId($wms_id[$i]) . " (" . $wms_id[$i] . "): " . $comment[$i] . "\n\n";
++	}
++}
++
++// Send an email to the user
++if ($body) {
++	$error_msg = "";
++	if ($admin->getEmailByUserId($userid)) {
++		$admin->sendEmail(MAILADMIN, MAILADMINNAME, $admin->getEmailByUserId($userid), $user, "WMS monitor report " . date("F j, Y, G:i:s", $time), utf8_decode($body), &$error_msg);
++	}
++	else {
++		$error_msg = "Email address of user '" . $admin->getUserNameByUserId($userid) . "' unknown!\n";
++	}
++	if ($error_msg) {
++		echo "\n ERROR: " . $error_msg;
++	}
++}
++?>
+Index: http/tools/mod_monitorCapabilities_read.php
+===================================================================
+--- http/tools/mod_monitorCapabilities_read.php	(revision 0)
++++ http/tools/mod_monitorCapabilities_read.php	(revision 0)
+@@ -0,0 +1,219 @@
++
++<?php
++# $Id: mod_monitorCapabilities_read.php 76 2006-08-15 12:25:34Z heuser $
++# http://www.mapbender.org/index.php/Monitor_Capabilities
++# Copyright (C) 2002 CCGIS 
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++session_start();
++import_request_variables("PG");
++$con = db_connect($DBSERVER,$OWNER,$PW);
++db_select_db(DB,$con);
++?>
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++
++<html>
++<head>
++<meta http-equiv="cache-control" content="no-cache">
++<meta http-equiv="pragma" content="no-cache">
++<meta http-equiv="expires" content="0">
++<?php
++echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
++?>
++</head>
++<body>
++<?php
++$admin = new administration();
++
++// update selected wms
++for ($i=0; $i < $_POST['cbs']; $i++) {
++	$upd_wmsid = intval($_POST['cb'.$i]); 
++	if ($upd_wmsid) {
++		
++		$now = time();
++		$sql = "UPDATE mb_monitor SET status = '-2', status_comment = 'Monitoring is still in progress...', timestamp_begin = $1, timestamp_end = $2 WHERE upload_id = $3 AND fkey_wms_id = $4";
++		$v = array($now, $now, $_POST['upl_id'.$i], $upd_wmsid);
++		$t = array('s', 's', 's', 'i');
++		$res = db_prep_query($sql,$v,$t);
++		
++		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$upd_wmsid." ".$_POST['upl_id'.$i]." 1 > output.txt &";
++		exec($exec);
++	}
++}
++
++$sql = "SELECT DISTINCT fkey_wms_id FROM mb_monitor";
++$res = db_prep_query($sql, array(), array());
++$cnt = 0;
++$wms = array();
++while(db_fetch_row($res)){
++	$wms[$cnt] = db_result($res,$cnt,"fkey_wms_id");
++	$cnt++;
++}
++
++$status = array();
++$upload_id = array();
++for ($i=0; $i<count($wms); $i++) {
++	$wms_id[$wms[$i]] = $wms[$i];
++	// get upload id
++	$sql = "SELECT MAX(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1";
++	$v = array($wms[$i]);
++	$t = array('i');
++	$res = db_prep_query($sql,$v,$t);
++	$upload_id[$wms[$i]] = db_result($res,0,0);
++
++	$sql = "SELECT AVG(timestamp_begin), AVG(timestamp_end) FROM mb_monitor WHERE fkey_wms_id = $1 AND NOT status = '-1' AND NOT status = '-2'";
++	$v = array($wms[$i]);
++	$t = array('i');
++	$res = db_prep_query($sql,$v,$t);
++	if (db_result($res,0,1) == 0 && db_result($res,0,0) == 0) {
++		$avg_response_time[$wms[$i]] = NULL;	
++	}
++	else {
++		$avg_response_time[$wms[$i]] = round(db_result($res,0,1)-db_result($res,0,0), 1);
++	}
++	
++	$sql = "SELECT status, status_comment, timestamp_begin, timestamp_end, upload_url, updated FROM mb_monitor ";
++	$sql .= "WHERE upload_id = $1 AND fkey_wms_id = $2 ORDER BY status, status_comment, timestamp_end, fkey_wms_id";
++	$v = array($upload_id[$wms[$i]], $wms_id[$wms[$i]]);
++	$t = array('s', 'i');
++	$res = db_prep_query($sql,$v,$t);
++
++	$status[$wms[$i]] = intval(db_result($res,0,"status"));
++	$comment[$wms[$i]] = db_result($res,0,"status_comment");
++	$timestamp_begin[$wms[$i]] = db_result($res,0,"timestamp_begin");
++	$timestamp_end[$wms[$i]] = db_result($res,0,"timestamp_end");
++	$upload_url[$wms[$i]] = db_result($res,0,"upload_url");
++	$updated[$wms[$i]] = db_result($res,0,"updated");
++	
++ 	if ($status[$wms[$i]] == -2 && intval(time())-intval($timestamp_begin[$wms[$i]]) > intval(TIME_LIMIT)) {
++		$comment[$wms[$i]] = "Monitoring process timed out.";	
++		
++		$new_sql = "UPDATE mb_monitor SET status = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
++		$new_v = array((intval($upload_id[$wms[$i]])+intval(TIME_LIMIT)), $wms_id[$wms[$i]], $upload_id[$wms[$i]]);
++		$new_t = array('s', 'i', 's');
++		$new_res = db_prep_query($new_sql,$new_v,$new_t);
++	}
++
++	$sql = "SELECT COUNT(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1 AND NOT status = '-2'";
++	$v = array($wms[$i]);
++	$t = array('i');
++	$res = db_prep_query($sql, $v, $t);
++	$total[$wms[$i]] = db_result($res, 0, 0);
++
++	$sql = "SELECT COUNT(upload_id) FROM mb_monitor WHERE fkey_wms_id = $1 AND status = '-1'";
++	$v = array($wms[$i]);
++	$t = array('i');
++	$res = db_prep_query($sql, $v, $t);
++	$fail = db_result($res, 0, 0);
++	
++	$percentage[$wms[$i]] = 100 - round(100*floatval($fail)/floatval($total[$wms[$i]]), 1);
++}
++
++
++$newArray = $status;
++if ($_GET['sortby']) {
++	if ($_GET['sortby'] == "wms") {
++		$newArray = $wms_id;
++		asort($newArray);
++	}
++	elseif ($_GET['sortby'] == "status") {
++		$newArray = $status;
++		asort($newArray);
++	}
++	elseif ($_GET['sortby'] == "avgresp") {
++		$newArray = $avg_response_time;
++		asort($newArray);
++	}
++	elseif ($_GET['sortby'] == "avail") {
++		$newArray = $percentage;
++		arsort($newArray);
++	}
++	elseif ($_GET['sortby'] == "last") {
++		$newArray = $upload_id;
++		arsort($newArray);
++	}
++}
++
++
++
++$str = "<span style='font-size:30'>monitoring results</span><hr><br>\n";
++$str .= "<form name = 'form1' method='post' action='".$PHP_SELF."?sortby=".$_GET['sortby']."'>\n\t";
++$str .= "\n\t<input type=submit value='update selected WMS'>\n";
++$str .= "\n\t<input type=button onclick=\"self.location.href='".$PHP_SELF."?sortby=".$_GET['sortby']."'\" value='refresh'>\n<br/><br/>\n	";
++$str .= "<table cellpadding=10 cellspacing=0 border=0>";
++$str .= "<tr bgcolor='#dddddd'><th></th><th align='left'><a href='".$PHP_SELF."?sortby=wms'>wms</a></th>";
++$str .= "<th align='left' colspan = 2><a href='".$PHP_SELF."?sortby=status'>current status</a></th>";
++$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avgresp'>avg. response time</a></th>";
++$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avail'>overall availability</a></th><th></th></tr>";
++
++$cnt = 0;
++foreach ($newArray as $k => $value) {
++	$img = "stop.bmp";
++	if ($status[$k]==0) $img = "wait.bmp";
++	elseif ($status[$k]==1) $img = "go.bmp";
++
++	if ($updated[$k] == "0" && $status[$k] == 0) $fill = "checked"; else $fill = "disabled";
++
++	if (fmod($cnt, 2) == 1) {
++		$str .= "\n\t\t<tr bgcolor='#e6e6e6'>";
++	}
++	else {
++		$str .= "\n\t\t<tr bgcolor='#f0f0f0'>";
++	}
++	$str .= "\n\t\t\t<td><input name='cb".$cnt."' value='" . $wms_id[$k] . "' type=checkbox ".$fill." /><input type=hidden name='upl_id".$cnt."' value='".$upload_id[$k]."'></td>";
++	$str .= "\n\t\t\t<td valign='top'><b>" . $wms_id[$k] . "</b><br>" . $admin->getWmsTitleByWmsId($wms_id[$k]) . "</td>";
++	$str .= "\n\t\t\t<td valign='top'><a href='".$upload_url[$k]."' target=_blank><img title='Connect to service' border=0 src = '../img/trafficlights/". $img. "'></a></td>";
++	$str .= "\n\t\t\t<td valign='top'>" . $comment[$k] . "<br><div style='font-size:12'>".date("F j, Y, G:i:s", $upload_id[$k])."</div></td>";
++	$str .= "\n\t\t\t<td valign='top' align = 'left'>";
++	if ($avg_response_time[$k] == NULL) {
++		$str .= "n/a";
++	}
++	else {
++		$str .= $avg_response_time[$k] . " s";
++	}
++	$str .= "</td>";
++	$str .= "\n\t\t\t<td valign='top'><b>" . $percentage[$k] . " %</b>&nbsp;&nbsp;<span style='font-size:12'>(" . $total[$k] . " cycles)</span><br>";
++	$str .= "<table bgcolor='black' border=1 cellspacing=1 cellpadding=0><tr>";
++	$val = $percentage[$k];
++	for ($i=0; $i<10; $i++) {
++		if ($val>=10) {
++			$str .= "<td height=10 width='10' bgcolor='red'></td>";
++			$val-=10;
++		}
++		elseif($val>0){
++			$str .= "<td height=10 width='" . round($val) . "' bgcolor='red'></td>";
++			if (round($val) < 10) {
++				$str .= "<td height=10 width='" . (9-round($val)) . "' bgcolor='white'></td>";
++			}
++			$val=-1;
++		}
++		else {
++			$str .= "<td height=10 width='10' bgcolor='white'></td>";
++		}
++	}
++	$str .= "</tr></table></td>";
++	
++#	$str .= "\n\t\t\t<td><a href='output_".$wms_id[$k]."_".$max.".txt' target=_blank>log</a></td>";
++	$str .= "\n\t\t<td><input type=button value='details' onclick=\"var newWindow = window.open('../php/mod_monitorCapabilities_read_single.php?wmsid=".$wms_id[$k]."','wms','width=500,height=700,scrollbars');newWindow.href.location='test.php'\"></td></tr>";
++	$cnt++;
++}
++$str .= "\n\t</table>\n\t<br/><input type=hidden name=cbs value='".$cnt."'>\n</form>";
++echo $str;
++
++?>
++</body></html>
+\ No newline at end of file
+Index: http/tools/mod_monitorCapabilities_read_single.php
+===================================================================
+--- http/tools/mod_monitorCapabilities_read_single.php	(revision 0)
++++ http/tools/mod_monitorCapabilities_read_single.php	(revision 0)
+@@ -0,0 +1,102 @@
++
++<?php
++# $Id: mod_monitorCapabilities_read_single.php 76 2006-08-15 12:25:34Z heuser $
++# http://www.mapbender.org/index.php/Monitor_Capabilities
++# Copyright (C) 2002 CCGIS 
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++require_once(dirname(__FILE__)."/../classes/class_administration.php");
++session_start();
++import_request_variables("PG");
++$con = db_connect($DBSERVER,$OWNER,$PW);
++db_select_db(DB,$con);
++?>
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++
++<html>
++<head>
++<meta http-equiv="cache-control" content="no-cache">
++<meta http-equiv="pragma" content="no-cache">
++<meta http-equiv="expires" content="0">
++<?php
++echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
++?>
++</head>
++<body>
++<?php
++$admin = new administration();
++
++if ($_GET['wmsid']) {
++	$wms_id = intval($_GET['wmsid']); 
++}
++else {
++	echo "Invalid WMS ID.";
++	die;
++}
++
++$sql = "SELECT upload_id, status, status_comment, timestamp_begin, timestamp_end, upload_url, updated FROM mb_monitor ";
++$sql .= "WHERE fkey_wms_id = $1 AND NOT status = '-2' ORDER BY upload_id DESC";
++$v = array($wms_id);
++$t = array('i');
++$res = db_prep_query($sql,$v,$t);
++
++$cnt=0;
++while ($row = db_fetch_array($res)) {
++	$upload_id[$cnt] = db_result($res,$cnt,"upload_id");
++	$status[$cnt] = intval(db_result($res,$cnt,"status"));
++	$comment[$cnt] = db_result($res,$cnt,"status_comment");
++	$timestamp_begin = db_result($res,$cnt,"timestamp_begin");
++	$timestamp_end = db_result($res,$cnt,"timestamp_end");
++	$upload_url[$cnt] = db_result($res,$cnt,"upload_url");
++	if ($status[$cnt] == '0' || $status[$cnt] == '1') {
++		$response_time[$cnt] = strval($timestamp_end-$timestamp_begin) . " s"; 
++	}
++	else {
++		$response_time[$cnt] = "n/a"; 
++	}
++	$cnt++;
++}
++	
++
++$str = "<span style='font-size:30'>monitoring results</span><hr><br>\n";
++$str .= "<b>" . $wms_id . "</b><br>" . $admin->getWmsTitleByWmsId($wms_id) . "<br><br><br>\n";
++$str .= "<table cellpadding=10 cellspacing=0 border=0>";
++$str .= "<tr bgcolor='#dddddd'><th align='left'>date</th><th align='left' colspan = 2>status</th><th align='center'>response time</th></tr>";
++
++for ($k=0; $k<count($upload_id); $k++) {
++	$img = "stop.bmp";
++	if ($status[$k]==0) $img = "wait.bmp";
++	elseif ($status[$k]==1) $img = "go.bmp";
++
++	if (fmod($k, 2) == 1) {
++		$str .= "\n\t\t<tr bgcolor='#e6e6e6'>";
++	}
++	else {
++		$str .= "\n\t\t<tr bgcolor='#f0f0f0'>";
++	}
++	$str .= "\n\t\t\t<td>".date("F j, Y, G:i:s", $upload_id[$k])."</td>";
++	$str .= "\n\t\t\t<td><a href='".$upload_url[$k]."' target=_blank><img title='Connect to service' border=0 src = '../img/trafficlights/". $img. "'></a></td>";
++	$str .= "\n\t\t\t<td>" . $comment[$k] . "</td>";
++	$str .= "\n\t\t\t<td align='center'>" . $response_time[$k] . "</td>";
++	
++#	$str .= "\n\t\t\t<td><a href='output_".$wms_id[$k]."_".$max.".txt' target=_blank>log</a></td>";
++}
++$str .= "\n\t</table>\n\t";
++echo $str;
++
++?>
++</body></html>
+\ No newline at end of file
+Index: http/tools/mod_monitorCapabilities_write.php
+===================================================================
+--- http/tools/mod_monitorCapabilities_write.php	(revision 0)
++++ http/tools/mod_monitorCapabilities_write.php	(revision 0)
+@@ -0,0 +1,128 @@
++<?php
++# $Id: mod_monitorCapabilities_write.php 76 2006-08-15 12:25:34Z heuser $
++# http://www.mapbender.org/index.php/Monitor_Capabilities
++# Copyright (C) 2002 CCGIS 
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++//require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
++
++require_once(dirname(__FILE__)."/../classes/class_wms.php");
++require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
++session_start();
++import_request_variables("PG");
++
++$con = db_connect($DBSERVER,$OWNER,$PW);
++db_select_db(DB,$con);
++
++if ($_SERVER["argc"] != 4) {
++	echo "Insufficient arguments! Monitoring aborted.";
++	die();
++}
++
++$wmsId = $_SERVER["argv"][1];
++$upload_id = $_SERVER["argv"][2];
++$auto_update = intval($_SERVER["argv"][3]);
++
++// get the uploadURL
++$sql = "SELECT upload_url FROM mb_monitor WHERE fkey_wms_id = $1 AND upload_id = $2";
++$v = array($wmsId, $upload_id);
++$t = array('i', 's');
++$res = db_prep_query($sql,$v,$t);
++$someArray = db_fetch_row($res);
++$myURL = $someArray[0];
++
++// get the capabilities doc
++$sql = "SELECT wms_getcapabilities_doc FROM wms WHERE wms_id = $1";
++$v = array($wmsId);
++$t = array('i');
++$res = db_prep_query($sql,$v,$t);
++$someArray = db_fetch_row($res);
++$capabilities_doc = $someArray[0];
++
++$comment = "";
++$updated = "0";
++$result = -1;
++
++set_time_limit(TIME_LIMIT);
++
++if ($myURL) {
++
++	$remoteWms = new wms();
++	$remoteWms->createObjFromXML($myURL);
++	$now = time();
++	$remoteXml = $remoteWms->wms_getcapabilities_doc;  
++
++	// compare the capabilities XML documents
++	$localXml = $capabilities_doc;
++	
++	if (!$remoteXml) {
++		$result = -1;
++		$comment = "Connection failed.";
++	}
++	elseif (!$localXml) {
++		$result = 0;
++	}
++	else {
++		
++		if ($localXml == $remoteXml) {
++			$result = 1;
++			$comment = "WMS is stable.";
++		}
++		else {
++			$result = 0;
++		}
++	}
++	if ($result == 0) {
++		$mywms = new wms();
++		
++		if ($mywms->createObjFromXML($myURL)) {
++			if ($auto_update) {
++				$mywms->updateObjInDB($wmsId);
++				$updated = "1";
++				$comment = "WMS has been updated.";
++			}
++			else {
++				$comment = "WMS is not up to date.";
++			}
++		}
++		else {
++			$result = -1;
++			$comment = "Invalid getCapabilities request/document or service exception.";
++		}    
++	}
++}
++else {
++	$result = -1;
++	$comment = "Invalid upload URL.";
++	$now = time();
++}
++
++echo "wmsid: " . $wmsId . "\nupload_id: " . $upload_id . "\n";
++echo "autoupdate: " . $auto_update . "\n";
++echo "result: " . $result . "\ncomment: " . $comment . "\n";
++echo "timestamp: " . $now . " (".date("F j, Y, G:i:s",$now).")\n";
++echo "getCapabilities URL: " . $myURL . "\nupdated: " . $updated . "\n\n";
++echo "-------------------------------------------------------------------\n";
++echo "remote XML:\n\n" . $remoteXml . "\n\n";
++echo "-------------------------------------------------------------------\n";
++echo "local XML:\n\n" . $localXml . "\n\n";
++echo "-------------------------------------------------------------------\n";
++
++
++$sql = "UPDATE mb_monitor SET updated = $1, status = $2, status_comment = $3, upload_url = $4, timestamp_end = $5 WHERE upload_id = $6 AND fkey_wms_id = $7";
++$v = array($updated, $result, $comment, $myURL, $now, $upload_id, $wmsId);
++$t = array('s', 's', 's', 's', 's', 's', 'i');
++$res = db_prep_query($sql,$v,$t);
++?>
+\ No newline at end of file
+Index: resources/db/mysql/mysql_schema.sql
+===================================================================
+--- resources/db/mysql/mysql_schema.sql	(revision 2361)
++++ resources/db/mysql/mysql_schema.sql	(working copy)
+@@ -30,7 +30,6 @@
+   e_pos tinyint(4) unsigned zerofill default NULL,
+   e_public tinyint(1) unsigned zerofill default NULL,
+   e_comment text,
+-  e_title varchar(255),
+   e_element varchar(255) NOT NULL default '',
+   e_src varchar(255) default NULL,
+   e_attributes longtext,
+@@ -47,6 +46,7 @@
+   e_target varchar(50) default NULL,
+   e_requires varchar(50) default NULL,
+   e_url VARCHAR(255) NULL,
++  e_title varchar(255),
+   PRIMARY KEY  (fkey_gui_id,e_id),
+   KEY idx_gui_id_e_id (fkey_gui_id,e_id)
+ ) TYPE=InnoDB;
+Index: resources/db/postgresql/pgsql_schema.sql
+===================================================================
+--- resources/db/postgresql/pgsql_schema.sql	(revision 2361)
++++ resources/db/postgresql/pgsql_schema.sql	(working copy)
+@@ -24,7 +24,6 @@
+     e_pos integer,
+     e_public integer,
+     e_comment text,
+-    e_title character varying(255),    
+     e_element character varying(255) DEFAULT ''::character varying NOT NULL,
+     e_src character varying(255),
+     e_attributes text,
+@@ -40,7 +39,8 @@
+     e_mb_mod character varying(50),
+     e_target character varying(50),
+     e_requires character varying(50),
+-    e_url character varying(255)
++    e_url character varying(255),
++    e_title character varying(255)
+ );
+ 
+ 
+Index: resources/db/update/update_guis_iso.sql
+===================================================================
+--- resources/db/update/update_guis_iso.sql	(revision 2361)
++++ resources/db/update/update_guis_iso.sql	(working copy)
+@@ -773,7 +773,7 @@
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','editElements',2,1,'Oberfl�chenelemente editieren','a','','href = "../php/mod_editElements.php?sessionID" target = "AdminFrame" ',10,491,200,25,5,'','GUI editieren','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_Elements');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','editGUI_WMS',2,1,'WMS GUI Einstellungen','a','','href="../php/mod_editGuiWms.php?sessionID"'' target="AdminFrame"',10,218,200,20,5,'','WMS Einstellungen �ndern','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_WMS');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','exportGUI',2,1,'GUI exportieren, SQL erzeugen','a','','href = "../php/mod_exportGUI.php?sessionID" target = "AdminFrame" ',10,536,200,25,10,'x','GUI exportieren (SQL)','a','','','','AdminFrame','http://www.mapbender.org/index.php/Oberfl�che_exportieren_%28SQL%29');
+-INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','filteredWms_layer_topic',2,1,'allocate topics to layers of wms of this user','a','','href = "../php/mod_filteredWms_layer_topic.php?sessionID&e_id_css=filteredWms_layer_topic" target = "AdminFrame" ',10,295,200,20,5,'','Kategoriezuordnung','a','','','','AdminFrame','http://www.mapbender.org/index.php/Topic_/_Category');
++
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_Configure_WMS_Access',3,1,'Hintergrund WMS Zuordnung','div','','',1,175,210,63,2,'','WMS Zuordnung','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_GUI_Management',3,1,'Oberfl�chenverwaltung','div','','',1,428,210,153,2,'','GUI Verwaltung','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_Metadata',3,1,'Metadateneditor Caption','div','','',1,252,210,63,2,'','Metadaten','div','','','','','');
+@@ -796,8 +796,8 @@
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'EditWMSMetadata', 'file_css', '../css/metadata.css', 'css-file to use for the metadata modul', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'body', 'body_file_css', '../css/admin_service.css', 'file/css', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'editGUI_WMS', 'css_file', '../css/edit_gui.css', '', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'filteredWms_layer_topic', 'file css', '../css/administration_alloc_4.css', 'css', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'filteredWms_layer_topic', 'language', 'de', '', 'php_var');
++
++
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_color', '#cc33cc', 'color for highlighting', 'var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_text', 'click highlighted elements for help', '', 'php_var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_thickness', '3', 'thickness of highlighting', 'var');
+@@ -816,7 +816,7 @@
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','editElements',2,1,'Edit GUI Elements','a','','href = "../php/mod_editElements.php?sessionID" target = "AdminFrame" ',10,491,200,20,5,'','Edit GUI Elements','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_Elements');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','editGUI_WMS',2,1,'WMS GUI settings','a','','href="../php/mod_editGuiWms.php?sessionID"'' target="AdminFrame"',10,218,200,20,5,'','WMS GUI settings','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_WMS');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','exportGUI',2,1,'Export GUI (SQL), create SQL','a','','href = "../php/mod_exportGUI.php?sessionID" target = "AdminFrame" ',10,533,200,20,10,'x','Export GUI (SQL)','a','','','','AdminFrame','http://www.mapbender.org/index.php/Oberfl�che_exportieren_%28SQL%29');
+-INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','filteredWms_layer_topic',2,1,'allocate topics to layers of wms of this user','a','','href = "../php/mod_filteredWms_layer_topic.php?sessionID&e_id_css=filteredWms_layer_topic" target = "AdminFrame" ',10,295,200,20,5,'','Allocate topics','a','','','','AdminFrame','http://www.mapbender.org/index.php/Topic_/_Category');
++
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_Configure_WMS_Access',3,1,'WMS Assignment','div','','',1,175,210,63,2,'','WMS Assignment','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_GUI_Management',3,1,'GUI Management','div','','',1,428,210,148,2,'','GUI Management','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_Metadata',3,1,'Metadata','div','','',1,252,210,63,2,'','Metadata','div','','','','','');
+@@ -839,8 +839,6 @@
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'EditWMSMetadata', 'file_css', '../css/metadata.css', 'css-file to use for the metadata modul', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'body', 'body_file_css', '../css/admin_service.css', 'file/css', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'editGUI_WMS', 'css_file', '../css/edit_gui.css', '', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'filteredWms_layer_topic', 'file css', '../css/administration_alloc_4.css', 'css', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'filteredWms_layer_topic', 'language', 'de', '', 'php_var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_color', '#cc33cc', 'color for highlighting', 'var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_text', 'click highlighted elements for help', '', 'php_var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_thickness', '3', 'thickness of highlighting', 'var');
+Index: resources/db/update/update_guis_utf8.sql
+===================================================================
+--- resources/db/update/update_guis_utf8.sql	(revision 2361)
++++ resources/db/update/update_guis_utf8.sql	(working copy)
+@@ -773,7 +773,7 @@
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','editElements',2,1,'Oberfl�chenelemente editieren','a','','href = "../php/mod_editElements.php?sessionID" target = "AdminFrame" ',10,491,200,25,5,'','GUI editieren','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_Elements');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','editGUI_WMS',2,1,'WMS GUI Einstellungen','a','','href="../php/mod_editGuiWms.php?sessionID"'' target="AdminFrame"',10,218,200,20,5,'','WMS Einstellungen �ndern','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_WMS');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','exportGUI',2,1,'GUI exportieren, SQL erzeugen','a','','href = "../php/mod_exportGUI.php?sessionID" target = "AdminFrame" ',10,536,200,25,10,'x','GUI exportieren (SQL)','a','','','','AdminFrame','http://www.mapbender.org/index.php/Oberfl%C3%A4che_exportieren_%28SQL%29');
+-INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','filteredWms_layer_topic',2,1,'allocate topics to layers of wms of this user','a','','href = "../php/mod_filteredWms_layer_topic.php?sessionID&e_id_css=filteredWms_layer_topic" target = "AdminFrame" ',10,295,200,20,5,'','Kategoriezuordnung','a','','','','AdminFrame','http://www.mapbender.org/index.php/Topic_/_Category');
++
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_Configure_WMS_Access',3,1,'Hintergrund WMS Zuordnung','div','','',1,175,210,63,2,'','WMS Zuordnung','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_GUI_Management',3,1,'Oberfl�chenverwaltung','div','','',1,428,210,153,2,'','GUI Verwaltung','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_de_services','headline_Metadata',3,1,'Metadateneditor Caption','div','','',1,252,210,63,2,'','Metadaten','div','','','','','');
+@@ -796,8 +796,7 @@
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'EditWMSMetadata', 'file_css', '../css/metadata.css', 'css-file to use for the metadata modul', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'body', 'body_file_css', '../css/admin_service.css', 'file/css', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'editGUI_WMS', 'css_file', '../css/edit_gui.css', '', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'filteredWms_layer_topic', 'file css', '../css/administration_alloc_4.css', 'css', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'filteredWms_layer_topic', 'language', 'de', '', 'php_var');
++
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_color', '#cc33cc', 'color for highlighting', 'var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_text', 'click highlighted elements for help', '', 'php_var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_de_services', 'help', 'mod_help_thickness', '3', 'thickness of highlighting', 'var');
+@@ -816,7 +815,7 @@
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','editElements',2,1,'Edit GUI Elements','a','','href = "../php/mod_editElements.php?sessionID" target = "AdminFrame" ',10,491,200,20,5,'','Edit GUI Elements','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_Elements');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','editGUI_WMS',2,1,'WMS GUI settings','a','','href="../php/mod_editGuiWms.php?sessionID"'' target="AdminFrame"',10,218,200,20,5,'','WMS GUI settings','a','','','','AdminFrame','http://www.mapbender.org/index.php/Edit_GUI_WMS');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','exportGUI',2,1,'Export GUI (SQL), create SQL','a','','href = "../php/mod_exportGUI.php?sessionID" target = "AdminFrame" ',10,533,200,20,10,'x','Export GUI (SQL)','a','','','','AdminFrame','http://www.mapbender.org/index.php/Oberfl%C3%A4che_exportieren_%28SQL%29');
+-INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','filteredWms_layer_topic',2,1,'allocate topics to layers of wms of this user','a','','href = "../php/mod_filteredWms_layer_topic.php?sessionID&e_id_css=filteredWms_layer_topic" target = "AdminFrame" ',10,295,200,20,5,'','Allocate topics','a','','','','AdminFrame','http://www.mapbender.org/index.php/Topic_/_Category');
++
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_Configure_WMS_Access',3,1,'WMS Assignment','div','','',1,175,210,63,2,'','WMS Assignment','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_GUI_Management',3,1,'GUI Management','div','','',1,428,210,148,2,'','GUI Management','div','','','','','');
+ INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES ('admin_en_services','headline_Metadata',3,1,'Metadata','div','','',1,252,210,63,2,'','Metadata','div','','','','','');
+@@ -839,8 +838,7 @@
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'EditWMSMetadata', 'file_css', '../css/metadata.css', 'css-file to use for the metadata modul', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'body', 'body_file_css', '../css/admin_service.css', 'file/css', 'file/css');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'editGUI_WMS', 'css_file', '../css/edit_gui.css', '', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'filteredWms_layer_topic', 'file css', '../css/administration_alloc_4.css', 'css', 'file/css');
+-INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'filteredWms_layer_topic', 'language', 'de', '', 'php_var');
++
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_color', '#cc33cc', 'color for highlighting', 'var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_text', 'click highlighted elements for help', '', 'php_var');
+ INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES ('admin_en_services', 'help', 'mod_help_thickness', '3', 'thickness of highlighting', 'var');
+Index: resources/db/update/update_mysql_db.sql
+===================================================================
+--- resources/db/update/update_mysql_db.sql	(revision 2361)
++++ resources/db/update/update_mysql_db.sql	(working copy)
+@@ -1,9 +1,12 @@
+ --
+--- database changes in version 2.4.3
++-- database changes in version 2.4.5
+ --
+ 
+ --
+--- table wms_format: http://trac.osgeo.org/mapbender/ticket/53 
++-- table gui_element: new column for translation
++--
++-- NOTICE:
++-- you may already have this column if you used the 
++-- update SQL in Mapbender 2.4.4
+ --
+-ALTER TABLE wms_format CHANGE data_format data_format VARCHAR(100);
+-
++ALTER TABLE gui_element ADD COLUMN e_title VARCHAR(255);
+Index: resources/db/update/update_postgresql_db.sql
+===================================================================
+--- resources/db/update/update_postgresql_db.sql	(revision 2361)
++++ resources/db/update/update_postgresql_db.sql	(working copy)
+@@ -1,9 +1,13 @@
+ --
+--- database changes in version 2.4.3
++-- database changes in version 2.4.5
+ --
+ 
+ --
+--- table wms_format: http://trac.osgeo.org/mapbender/ticket/53 
++-- table gui_element: new column for translation
+ --
+-ALTER TABLE wms_format ALTER COLUMN data_format TYPE varchar(100);
++-- NOTICE:
++-- you may already have this column if you used the 
++-- update SQL in Mapbender 2.4.4
++--
++ALTER TABLE gui_element ADD COLUMN e_title VARCHAR(255);
+ 



More information about the Mapbender_commits mailing list