summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortspitzer2013-06-05 11:42:24 +0200
committertspitzer2013-06-05 11:42:24 +0200
commit4d1d6819d49a2346aaea26ae22827c2acf3ec191 (patch)
tree4a51a194bc2367b64aa2cbaabde460c22dda7360
downloadtutor-module-4d1d6819d49a2346aaea26ae22827c2acf3ec191.tar.gz
tutor-module-4d1d6819d49a2346aaea26ae22827c2acf3ec191.tar.xz
tutor-module-4d1d6819d49a2346aaea26ae22827c2acf3ec191.zip
initial
-rw-r--r--Dozentenmodul_V1/.classpath17
-rw-r--r--Dozentenmodul_V1/.project36
-rw-r--r--Dozentenmodul_V1/.settings/.jsdtscope12
-rw-r--r--Dozentenmodul_V1/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Dozentenmodul_V1/.settings/org.eclipse.wst.common.component8
-rw-r--r--Dozentenmodul_V1/.settings/org.eclipse.wst.common.project.facet.core.xml10
-rw-r--r--Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.container1
-rw-r--r--Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.name1
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/ESXI_Redirection.jsp37
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/Home.jsp89
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/Home_old.jsp32
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/Login_Error.jsp12
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/Login_old.jsp42
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/Loginsite.jsp50
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/VL_bearbeiten.jsp12
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/VL_erzeugen.jsp233
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/de/createLabor.jsp232
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/en/Home.jsp12
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/en/Login.jsp42
-rw-r--r--Dozentenmodul_V1/WebContent/GUI/en/Login_Error.jsp12
-rw-r--r--Dozentenmodul_V1/WebContent/META-INF/MANIFEST.MF3
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-B.ttfbin0 -> 333616 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-BI.ttfbin0 -> 356980 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-C.ttfbin0 -> 350420 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-L.ttfbin0 -> 415552 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-LI.ttfbin0 -> 409608 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-M.ttfbin0 -> 341324 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-MI.ttfbin0 -> 366992 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-R.ttfbin0 -> 353824 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-RI.ttfbin0 -> 386440 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-B.ttfbin0 -> 191400 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-BI.ttfbin0 -> 216208 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-R.ttfbin0 -> 205748 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-RI.ttfbin0 -> 210216 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/WEB-INF/web.xml7
-rw-r--r--Dozentenmodul_V1/WebContent/css/Input.css166
-rw-r--r--Dozentenmodul_V1/WebContent/css/Layout.css120
-rw-r--r--Dozentenmodul_V1/WebContent/css/Login.css35
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal.gifbin0 -> 127 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_close.gifbin0 -> 874 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_fastforward.gifbin0 -> 62 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_fastreverse.gifbin0 -> 63 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_forward.gifbin0 -> 57 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_minus.gifbin0 -> 48 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_plus.gifbin0 -> 47 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Calendar/cal_reverse.gifbin0 -> 57 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/DeleteRed.pngbin0 -> 928 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Pencil3.pngbin0 -> 800 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/Shutdown_Box_Red.pngbin0 -> 3581 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/bg.pngbin0 -> 273 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/de.pngbin0 -> 545 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/openslx-logo.pngbin0 -> 8270 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/tabbg.gifbin0 -> 68 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/tabbg2.gifbin0 -> 252 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/img/us.pngbin0 -> 609 bytes
-rw-r--r--Dozentenmodul_V1/WebContent/js/datetimepicker_css.js1341
-rw-r--r--Dozentenmodul_V1/WebContent/js/login.js9
-rw-r--r--Dozentenmodul_V1/WebContent/js/tabcontent.js171
-rw-r--r--Dozentenmodul_V1/build/classes/authentifizierung/Ldap.classbin0 -> 3578 bytes
-rw-r--r--Dozentenmodul_V1/build/classes/db/DB_Access.classbin0 -> 2576 bytes
-rw-r--r--Dozentenmodul_V1/build/classes/db/MySQL.classbin0 -> 3047 bytes
-rw-r--r--Dozentenmodul_V1/src/authentifizierung/Ldap.java98
-rw-r--r--Dozentenmodul_V1/src/db/DB_Access.java78
-rw-r--r--Dozentenmodul_V1/src/db/MySQL.java108
64 files changed, 3033 insertions, 0 deletions
diff --git a/Dozentenmodul_V1/.classpath b/Dozentenmodul_V1/.classpath
new file mode 100644
index 00000000..146da894
--- /dev/null
+++ b/Dozentenmodul_V1/.classpath
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre7">
+ <attributes>
+ <attribute name="owner.project.facets" value="java"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v7.0">
+ <attributes>
+ <attribute name="owner.project.facets" value="jst.web"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+ <classpathentry kind="output" path="build/classes"/>
+</classpath>
diff --git a/Dozentenmodul_V1/.project b/Dozentenmodul_V1/.project
new file mode 100644
index 00000000..29247cd1
--- /dev/null
+++ b/Dozentenmodul_V1/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Dozentenmodul_V1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+ </natures>
+</projectDescription>
diff --git a/Dozentenmodul_V1/.settings/.jsdtscope b/Dozentenmodul_V1/.settings/.jsdtscope
new file mode 100644
index 00000000..887f573a
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/.jsdtscope
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="WebContent"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+ <attributes>
+ <attribute name="hide" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/Dozentenmodul_V1/.settings/org.eclipse.jdt.core.prefs b/Dozentenmodul_V1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..11f6e462
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/Dozentenmodul_V1/.settings/org.eclipse.wst.common.component b/Dozentenmodul_V1/.settings/org.eclipse.wst.common.component
new file mode 100644
index 00000000..4bb00e74
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="Dozentenmodul_V1">
+ <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+ <property name="context-root" value="Dozentenmodul_V1"/>
+ <property name="java-output-path" value="/Dozentenmodul_V1/build/classes"/>
+ </wb-module>
+</project-modules>
diff --git a/Dozentenmodul_V1/.settings/org.eclipse.wst.common.project.facet.core.xml b/Dozentenmodul_V1/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 00000000..518a3cac
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <runtime name="Apache Tomcat v7.0"/>
+ <fixed facet="java"/>
+ <fixed facet="wst.jsdt.web"/>
+ <fixed facet="jst.web"/>
+ <installed facet="java" version="1.7"/>
+ <installed facet="jst.web" version="3.0"/>
+ <installed facet="wst.jsdt.web" version="1.0"/>
+</faceted-project>
diff --git a/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.container b/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 00000000..3bd5d0a4
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file
diff --git a/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.name b/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 00000000..05bd71b6
--- /dev/null
+++ b/Dozentenmodul_V1/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/ESXI_Redirection.jsp b/Dozentenmodul_V1/WebContent/GUI/de/ESXI_Redirection.jsp
new file mode 100644
index 00000000..06223d4b
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/ESXI_Redirection.jsp
@@ -0,0 +1,37 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/Login.css">
+<SCRIPT LANGUAGE="JavaScript" SRC="${pageContext.request.contextPath}/js/login.js">
+</SCRIPT>
+<title>Dozentenmodul V1</title>
+</head>
+<body>
+ <img id="Logo" alt="bwLehrpool" src="${pageContext.request.contextPath}/img/openslx-logo.png">
+
+ <form>
+ <p>Sie sind hier: <a href="${pageContext.request.contextPath}/GUI/Home.jsp">Home</a>
+ <input id="englisch" type="image" src="${pageContext.request.contextPath}/img/grossbritannien.gif" onclick="changeToEnglish();return false;">
+ <input id="deutsch" type="image" src="${pageContext.request.contextPath}/img/deutsch.gif" onclick="changeToDeutsch();return false;"></p>
+ </form>
+ <p>Zur weiteren Bearbeitung ihrer virtuellen Laborumgebung benötigen Sie die Anwendung "vSphere Client".</p>
+ <p>Diese finden Sie unter folgendem Link:</p>
+ <p><a href="www.google.de">vSphere CLient</a></p>
+ <br>
+ <p>Ist die Software bereits installiert, starten Sie diese und geben Sie folgende Verbindungsdaten ein:</p>
+
+ <table>
+ <tr>
+ <td>Benutzername: </td>
+ <td>&lt;Ihr BWIDM-Benutzername&gt;</td>
+ </tr>
+ <tr>
+ <td>Passwort: </td>
+ <td>&lt;Ihr BWIDM-Passwort&gt;</td>
+ </tr>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/Home.jsp b/Dozentenmodul_V1/WebContent/GUI/de/Home.jsp
new file mode 100644
index 00000000..1ea16e1b
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/Home.jsp
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<%@ page language="java" import="db.MySQL"%>
+<%@ page language="java" import="java.sql.*"%>
+<head>
+<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+<link rel="stylesheet" type="text/css"
+ href="/Dozentenmodul_V1/css/Layout.css"></link>
+<title>Login Dozentenmodul</title>
+</head>
+<body>
+ <div id="left">
+ <div>
+ <img src="/Dozentenmodul_V1/img/openslx-logo.png" alt="bwLehrpool" />
+ </div>
+ <div>
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="VL_erzeugen.jsp">VL erzeugen</a></li>
+ <li>Logout</li>
+ </ul>
+ </div>
+ </div>
+ <div id="right">
+ <div id="header">
+ <h1 id="Ueberschrift">Dozentenmodul</h1>
+ </div>
+ <hr></hr>
+ <div>
+ Sprache: <img alt="de" src="/Dozentenmodul_V1/img/de.png"> de |
+ <img alt="en" src="/Dozentenmodul_V1/img/us.png"> us
+ </div>
+ <hr></hr>
+
+ <div id="breadcrumb">
+ <p>
+ Sie sind hier: <a href="Loginseite.html">Login</a>
+ </p>
+ </div>
+ <hr></hr>
+ <div id="Content">
+ <h2>Herzlich Willkommen im Dozentenmodul des bwLehrpools</h2>
+ <hr></hr>
+ <h3>Ihre Aktiven VL's:</h3>
+ <ul>
+ <%
+ MySQL sql = new MySQL();
+ Connection con = sql.getConnection();
+ ResultSet rs = sql.getActiveVLs(con, 2);
+
+ while (rs.next()) {
+ %>
+
+ <li><%=rs.getString("Laborname")%> <img
+ src="/Dozentenmodul_V1/img/Pencil3.png" alt="Bearbeiten"
+ onclick="location.href='VL_erzeugen.jsp'" /> <img
+ src="/Dozentenmodul_V1/img/DeleteRed.png" alt="Löschen" /> <img
+ src="/Dozentenmodul_V1/img/Shutdown_Box_Red.png" alt="Deaktivieren" /></li>
+
+
+ <%
+ }
+ %>
+ </ul>
+ <hr></hr>
+ <h3>Ihre Inaktiven VL's:</h3>
+ <ul>
+ <%
+ ResultSet In = sql.getInactiveVLs(con, 2);
+
+ while (In.next()) {
+ %>
+ <li><%=rs.getString("Laborname")%></li>
+ <%
+}
+%>
+ </ul>
+ <hr></hr>
+ <h3>Anfragen für ihre VL's:</h3>
+ <ul>
+ <li>bla</li>
+ <li>bla</li>
+ </ul>
+
+ </div>
+ </div>
+</body>
+
+</html>
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/Home_old.jsp b/Dozentenmodul_V1/WebContent/GUI/de/Home_old.jsp
new file mode 100644
index 00000000..97894f33
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/Home_old.jsp
@@ -0,0 +1,32 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/Login.css">
+<SCRIPT LANGUAGE="JavaScript" SRC="${pageContext.request.contextPath}/js/login.js">
+</SCRIPT>
+<title>Dozentenmodul V1</title>
+</head>
+<body>
+ <img id="Logo" alt="bwLehrpool" src="${pageContext.request.contextPath}/img/openslx-logo.png">
+
+ <form>
+ <p>Sie sind hier: <a href="${pageContext.request.contextPath}/GUI/Home.jsp">Home</a>
+ <input id="englisch" type="image" src="${pageContext.request.contextPath}/img/grossbritannien.gif" onclick="changeToEnglish();return false;">
+ <input id="deutsch" type="image" src="${pageContext.request.contextPath}/img/deutsch.gif" onclick="changeToDeutsch();return false;"></p>
+ </form>
+ <p>Welche Aktion möchten Sie ausführen?</p><form>
+ <input type="radio" name="Aktion" value="Vorlage_to_new_Labor"> eine Vorlage nutzen um ein Labor zu erstellen (empfohlen)<br/>
+ <input type="radio" name="Aktion" value="new_Labor"> ein neues Labor erzeugen (nicht empfohlen)<br/>
+ <input type="radio" name="Aktion" value="edit_Labor"> ein vorhandenes Labor bearbeiten <br/>
+ <input type="radio" name="Aktion" value="delete_Labor"> ein vorhandenes Labor löschen <br/>
+ <br/>
+ <input type="submit" value="Weiter">
+ </form>
+
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/Login_Error.jsp b/Dozentenmodul_V1/WebContent/GUI/de/Login_Error.jsp
new file mode 100644
index 00000000..d3e01215
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/Login_Error.jsp
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<p>Error</p>
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/Login_old.jsp b/Dozentenmodul_V1/WebContent/GUI/de/Login_old.jsp
new file mode 100644
index 00000000..b3d956dc
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/Login_old.jsp
@@ -0,0 +1,42 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/Login.css">
+<SCRIPT LANGUAGE="JavaScript" SRC="${pageContext.request.contextPath}/js/login.js">
+</SCRIPT>
+<title>Dozentenmodul V1</title>
+</head>
+<body>
+ <img id="Logo" alt="bwLehrpool" src="${pageContext.request.contextPath}/img/openslx-logo.png">
+
+ <form>
+ <p>Sie sind hier: <a href="${pageContext.request.contextPath}/GUI/Login.jsp">Login</a>
+ <input id="englisch" type="image" src="${pageContext.request.contextPath}/img/grossbritannien.gif" onclick="changeToEnglish();return false;">
+ <input id="deutsch" type="image" src="${pageContext.request.contextPath}/img/deutsch.gif" onclick="changeToDeutsch();return false;"></p>
+ </form>
+ <p>Herzlich Willkommen im Dozentenmodul des bwLerhpools!</p>
+ <p>blablabla</p>
+
+ <form action="/Dozentenmodul_V1/Ldap" method="post">
+ <table>
+ <tr>
+ <td><label>Benutzername:</label></td>
+ <td><input type="text" name="Benutzername" maxlength="30" size="30"></td>
+ </tr>
+ <tr>
+ <td>Passwort:</td>
+ <td><input name="Password" type="password" maxlength="30" size="30"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td align="right"><input id="button" type="submit" value="Login"></td>
+ </tr>
+ </table>
+ </form>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/Loginsite.jsp b/Dozentenmodul_V1/WebContent/GUI/de/Loginsite.jsp
new file mode 100644
index 00000000..11167803
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/Loginsite.jsp
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+<link rel="stylesheet" type="text/css" href="/Dozentenmodul_V1/css/Layout.css">
+<title>Login Dozentenmodul</title>
+</head>
+<body>
+<div id="left">
+<div>
+<img src="/Dozentenmodul_V1/img/openslx-logo.png" alt="bwLehrpool"/>
+</div>
+</div>
+<div id="right">
+<div id="header">
+<h1 id="Ueberschrift">Dozentenmodul</h1>
+</div>
+<hr></hr>
+<div>
+Sprache: <img alt="de" src="/Dozentenmodul_V1/img/de.png"> de | <img alt="en" src="/Dozentenmodul_V1/img/us.png"> us
+</div>
+<hr></hr>
+<div id="breadcrumb">
+<p>Sie sind hier: <a href="Loginseite.html">Login</a></p>
+</div>
+<hr></hr>
+<div id="Content">
+<h2>Herzlich Willkommen im Dozentenmodul des bwLehrpools</h2>
+<form action="/Dozentenmodul_V1/Ldap" method="post">
+<table>
+<tr>
+<td style="width: 143px"><label>bwIDM-Benutzername: </label></td>
+<td><input name="User" type="text" /></td>
+</tr>
+<tr>
+<td style="width: 143px"><label>bwIDM-Passwort:</label></td>
+<td><input name="Password" type="password" /></td>
+</tr>
+<tr>
+<td style="width: 143px"></td>
+<td><button type="submit" id="loginButton" name="login">Login</button></td>
+</tr>
+</table>
+</form>
+</div>
+</div>
+</body>
+
+</html>
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/VL_bearbeiten.jsp b/Dozentenmodul_V1/WebContent/GUI/de/VL_bearbeiten.jsp
new file mode 100644
index 00000000..79087358
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/VL_bearbeiten.jsp
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/VL_erzeugen.jsp b/Dozentenmodul_V1/WebContent/GUI/de/VL_erzeugen.jsp
new file mode 100644
index 00000000..a70cb222
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/VL_erzeugen.jsp
@@ -0,0 +1,233 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+<%@ page language="java" import="db.MySQL"%>
+<%@ page language="java" import="java.sql.*"%>
+<link rel="stylesheet" type="text/css"
+ href="/Dozentenmodul_V1/css/Layout.css"></link>
+<script type="text/javascript" src="/Dozentenmodul_V1/js/tabcontent.js"></script>
+<script type="text/javascript" src="/Dozentenmodul_V1/js/datetimepicker_css.js"></script>
+ <title>Login Dozentenmodul</title>
+</head>
+<body>
+ <div id="left">
+ <div>
+ <img src="/Dozentenmodul_V1/img/openslx-logo.png" alt="bwLehrpool" />
+ </div>
+ <div>
+ <ul>
+ <li><a href="Home.html">Home</a></li>
+ <li><a href="VL_erzeugen.html">VL erzeugen</a></li>
+ <li>Logout</li>
+ </ul>
+ </div>
+ </div>
+ <div id="right">
+ <div id="header">
+ <h1 id="Ueberschrift">Dozentenmodul</h1>
+ </div>
+ <hr></hr>
+ <div>
+ Sprache: <img alt="de" src="/Dozentenmodul_V1/img/de.png"></img> de |
+ <img alt="en" src="/Dozentenmodul_V1/img/us.png"></img> us
+ </div>
+ <hr></hr>
+
+ <div id="breadcrumb">
+ <p>
+ Sie sind hier: <a href="Loginseite.html">Login</a>
+ </p>
+ </div>
+ <hr></hr>
+ <div id="Content">
+ <h2>Herzlich Willkommen im Dozentenmodul des bwLehrpools</h2>
+ <hr></hr>
+ <ul class="tabs" persist="true">
+ <li><a href="#" rel="allgemein">Allgemein</a></li>
+ <li><a href="#" rel="system">System</a></li>
+ <li><a href="#" rel="software">Software</a></li>
+ </ul>
+ <form>
+ <div class="tabcontents">
+ <div id="allgemein" class="tabcontent">
+ <fieldset>
+ <legend>Allgemeine Informationen zum Verantwortlichen</legend>
+ <table>
+ <tr>
+ <td>Vorname: *</td>
+ <td><input name="Vorname_V" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Nachname: *</td>
+ <td><input name="Nachname_V" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Hochschule: *</td>
+ <td><input name="Hochschule_V" type="text" /></td>
+ </tr>
+ <tr>
+ <td>E-Mail: *</td>
+ <td><input name="Email_V" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Tel.-Nummer:</td>
+ <td><input name="Tel_V" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Fakultät:</td>
+ <td><input name="Fakultät_V" type="text" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ <br></br>
+ <fieldset>
+ <legend>Allgemeine Informationen zum Ersteller</legend>
+ <table>
+ <tr>
+ <td>Vorname: *</td>
+ <td><input name="Vorname_E" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Nachname: *</td>
+ <td><input name="Nachname_E" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Hochschule: *</td>
+ <td><input name="Hochschule_E" type="text" /></td>
+ </tr>
+ <tr>
+ <td>E-Mail: *</td>
+ <td><input name="Email_E" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Tel.-Nummer:</td>
+ <td><input name="Tel_E" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Fakultät:</td>
+ <td><input name="Fakultät_E" type="text" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ <div id="system" class="tabcontent">
+ <fieldset>
+ <legend>Systeminformationen</legend>
+ <table>
+ <tr>
+ <td>Laborname (Anzeigename): *</td>
+ <td><input name="Laborname" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Kurzbeschreibung: *</td>
+ <td><input name="shortDesc" type="text" /></td>
+ </tr>
+ <tr>
+ <td>Langbeschreibung: *</td>
+ <td><textarea name="TextArea1" cols="20" rows="5"></textarea></td>
+ </tr>
+ <tr>
+ <td>Kommentar:</td>
+ <td><textarea name="TextArea1" cols="20" rows="5"></textarea></td>
+ </tr>
+ <tr>
+ <td>Betriebssystem: *</td>
+ <td><select name="OS">
+ <%
+ MySQL sql = new MySQL();
+ Connection con = sql.getConnection();
+ ResultSet OS = sql.getOSList(con);
+
+ while (OS.next()) {
+ %>
+ <option><%=OS.getString("OS")%></option>
+
+ <%
+ }
+ %>
+ </select></td>
+ </tr>
+ <tr>
+ <td>Gültigkeitsdatum: *</td>
+ <td>von: <input type="text" id="von_date" maxlength="25"
+ size="25" readonly="readonly" /> <img
+ src="/Dozentenmodul_V1/img/Calendar/cal.gif"
+ onclick="javascript:NewCssCal ('von_date','yyyyMMdd','arrow',true,'24',true)"
+ style="cursor: pointer" /> bis: <input type="text"
+ id="bis_date" maxlength="25" size="25" readonly="readonly" />
+ <img src="/Dozentenmodul_V1/img/Calendar/cal.gif"
+ onclick="javascript:NewCssCal ('bis_date','yyyyMMdd','arrow',true,'24',true)"
+ style="cursor: pointer" />
+ </td>
+ </tr>
+ <tr>
+ <td>Labor sichtbar: *</td>
+ <td><input name="sichtbar" type="radio" value="ja" />Ja<br></br>
+ <input name="sichtbar" type="radio" value="nein" />Nein</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ <div id="software" class="tabcontent">
+ <p>
+ Sortierung nach: <select name="sort">
+ <option>Hersteller</option>
+ <option>Lizenzpflichtig/-frei</option>
+ </select>
+ </p>
+ <fieldset id="sw_chooser">
+ <legend>Verfügbare Software</legend>
+ <div class="container">
+ <%
+ //out.println("<h1>"+request.getParameterValues("sort")+"</h1>");
+
+ ResultSet rs = sql.getHersteller(con);
+
+ while (rs.next()) {
+ ResultSet sw = sql.getSoftware(con, rs.getString("Hersteller"));
+ %>
+ <label><b><%=rs.getString("Hersteller")%></b></label><br />
+
+
+
+ <%
+ while (sw.next()) {
+ %>
+
+ <input type="checkbox"><%=rs.getString("Hersteller") + " "
+ + sw.getString("Produktname")%></input>
+ <br />
+
+ <%
+ }
+ }
+ %>
+ </div>
+ </fieldset>
+ <fieldset id="sw_choosed">
+ <legend>Ausgewählte Software</legend>
+ <div class="container">
+ <label>dasjhdja</label>
+ </div>
+ </fieldset>
+ <br></br>
+ <button name="addSW">Software hinzufügen</button>
+ </div>
+ <hr></hr>
+ </div>
+ </div>
+ </form>
+ </div>
+</body>
+
+</html>
diff --git a/Dozentenmodul_V1/WebContent/GUI/de/createLabor.jsp b/Dozentenmodul_V1/WebContent/GUI/de/createLabor.jsp
new file mode 100644
index 00000000..26b846d9
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/de/createLabor.jsp
@@ -0,0 +1,232 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+ <%@ page language="java" import="db.MySQL" %>
+ <%@ page language="java" import="java.sql.*" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" type="text/css"
+ href="${pageContext.request.contextPath}/css/Input.css">
+<SCRIPT LANGUAGE="JavaScript"
+ SRC="${pageContext.request.contextPath}/js/login.js">
+</SCRIPT>
+<script
+ src="${pageContext.request.contextPath}/js/datetimepicker_css.js"></script>
+<title>Dozentenmodul V1</title>
+</head>
+<body onload="location.href='#allgemein'">
+ <img id="Logo" alt="bwLehrpool"
+ src="${pageContext.request.contextPath}/img/openslx-logo.png">
+
+ <form>
+ <p>
+ Sie sind hier: <a
+ href="${pageContext.request.contextPath}/GUI/Home.jsp">Home</a> -> <a
+ href="${pageContext.request.contextPath}/GUI/createLabor.jsp">Labor
+ erzeugen</a> <input id="englisch" type="image"
+ src="${pageContext.request.contextPath}/img/grossbritannien.gif"
+ onclick="changeToEnglish();return false;"> <input
+ id="deutsch" type="image"
+ src="${pageContext.request.contextPath}/img/deutsch.gif"
+ onclick="changeToDeutsch();return false;">
+ </p>
+ </form>
+ <form action="/Dozentenmodul_V1/DB_Access" method="post">
+ <article class="input"> <section id="allgemein">
+ <h2>
+ <a href="#allgemein">Allgemein</a>
+ </h2>
+ <fieldset>
+ <legend>Informationen zum Verantwortlichen</legend>
+ <div>
+ <table>
+ <tr>
+ <td>Vorname: *</td>
+ <td><input type="text" name="Verantwortlicher_Vorname"
+ size="60" required="required" ></td>
+ </tr>
+ <tr>
+ <td>Nachname: *</td>
+ <td><input type="text" name="Verantwortlicher_Nachname"
+ size="60" required="required" ></td>
+ </tr>
+ <tr>
+ <td>Hochschule: *</td>
+ <td><input type="text" name="Verantwortlicher_Hochschule"
+ size="60" required="required" ></td>
+ </tr>
+ <tr>
+ <td>E-Mail: *</td>
+ <td><input type="text" name="Verantwortlicher_Email"
+ size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Tel.-Nummer: *</td>
+ <td><input type="text" name="Verantwortlicher_Tel" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Fakultät: *</td>
+ <td><input type="text" name="Verantwortlicher_Fakultät"
+ size="60" required="required" ></td>
+ </tr>
+ </table>
+ </div>
+ </fieldset>
+ <fieldset>
+ <legend>Informationen zum Ersteller</legend>
+ <div>
+ <table>
+ <tr>
+ <td>Vorname: *</td>
+ <td><input type="text" name="Ersteller_Vorname" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Nachname: *</td>
+ <td><input type="text" name="Ersteller_Nachname" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Hochschule: *</td>
+ <td><input type="text" name="Ersteller_Hochschule" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>E-Mail: *</td>
+ <td><input type="text" name="Ersteller_Email" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Tel.-Nummer: *</td>
+ <td><input type="text" name="Ersteller_Tel" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Fakultät: *</td>
+ <td><input type="text" name="Ersteller_Fakultät" size="60" required="required"></td>
+ </tr>
+ </table>
+ </div>
+ </fieldset>
+ <input id="save" type="submit" value="Speichern"> </section> <section
+ id="system">
+ <h2>
+ <a href="#system">System</a>
+ </h2>
+ <fieldset>
+ <legend>Allgemein</legend>
+ <div>
+ <table>
+ <tr>
+ <td>Laborname (Anzeigename): *</td>
+ <td><input type="text" name="Laborname" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td>Kurzbeschreibung: *</td>
+ <td><input type="text" name="Kurzbeschreibung" size="60" required="required"></td>
+ </tr>
+ <tr>
+ <td valign="top">Langbeschreibung: *</td>
+ <td><textarea rows="10" cols="60" name="Langbeschreibung" required="required"></textarea></td>
+ </tr>
+ <tr>
+ <td valign="top">Kommentar:</td>
+ <td><textarea rows="10" cols="60" name="Kommentar"></textarea></td>
+ </tr>
+ <tr>
+ <td>Betriebssystem: *</td>
+ <td><select size="1" name="OS" required="required">
+ <option>WIN 7</option>
+ <option>LINUX</option>
+ </select></td>
+ </tr>
+ <tr>
+ <td>Gültigkeitsdatum: *</td>
+ <td><p>Gültig von:</p> <input type="Text" id="von_date"
+ maxlength="25" size="25" readonly="readonly" required="required" /> <img
+ src="/Dozentenmodul_V1/img/Calendar/cal.gif"
+ onclick="javascript:NewCssCal ('von_date','yyyyMMdd','arrow',true,'24',true)"
+ style="cursor: pointer" /></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><p>Gültig bis:</p> <input type="Text" id="bis_date"
+ maxlength="25" size="25" readonly="readonly" required="required" /> <img
+ src="/Dozentenmodul_V1/img/Calendar/cal.gif"
+ onclick="javascript:NewCssCal ('bis_date','yyyyMMdd','arrow',true,'24',true)"
+ style="cursor: pointer" /></td>
+ </tr>
+ <tr>
+ <td>Labor jetzt aktivieren: *</td>
+ <td>Ja<input id="aktiv_ja" type="radio" name="aktiv"
+ value="Ja">Nein<input id="aktiv_nein" type="radio"
+ name="aktiv" value="Nein">
+ </td>
+ </tr>
+ </table>
+ </div>
+ </fieldset>
+ <input id="save" type="submit" value="Speichern"> </section> <section
+ id="software">
+ <h2>
+ <a href="#software">Software</a>
+ </h2>
+ <p id="sort">
+ Sortierung nach: <select size="1" name="sort"><option value="Hersteller" selected="selected">Hersteller</option>
+ <option value="Lizenzfrei/-pflichtig">Lizenzfrei/-pflichtig</option></select>
+ <fieldset>
+ <legend>Verwendete Software</legend>
+ <table>
+ <tr>
+ <td>
+ <div class="container">
+ <%
+ //out.println("<h1>"+request.getParameterValues("sort")+"</h1>");
+ MySQL sql=new MySQL();
+ Connection con=sql.getConnection();
+ ResultSet rs=sql.getHersteller(con);
+
+
+
+ while(rs.next())
+ {
+ ResultSet sw=sql.getSoftware(con,rs.getString("Hersteller"));
+ %>
+ <label><b><%=rs.getString("Hersteller") %></b></label><br/>
+
+
+
+ <%
+ while(sw.next())
+ {
+ %>
+
+ <input id="SW_list" type="checkbox" ><%=sw.getString("Produktname") %> <br/>
+
+ <%
+ }
+ }
+
+ %>
+ </div>
+ </td>
+ <td>
+
+ <fieldset>
+ <legend>Ausgewählte Software</legend>
+ <select id="SW" size="10" disabled="disabled">
+ <option>test</option>
+ </select>
+ </fieldset>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input id="buttonAddSW" type="button"
+ value="Software Hinzufügen"></td>
+ </tr>
+
+ </table>
+ </fieldset>
+ <input id="save" type="submit" value="Speichern"> </section> </article>
+ </form>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/en/Home.jsp b/Dozentenmodul_V1/WebContent/GUI/en/Home.jsp
new file mode 100644
index 00000000..d3bec631
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/en/Home.jsp
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<p>test</p>
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/en/Login.jsp b/Dozentenmodul_V1/WebContent/GUI/en/Login.jsp
new file mode 100644
index 00000000..f3568c67
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/en/Login.jsp
@@ -0,0 +1,42 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/Login.css">
+<SCRIPT LANGUAGE="JavaScript" SRC="${pageContext.request.contextPath}/js/login.js">
+</SCRIPT>
+<title>Dozentenmodul V1</title>
+</head>
+<body>
+ <img id="Logo" alt="bwLehrpool" src="${pageContext.request.contextPath}/img/openslx-logo.png">
+
+ <form>
+ <p>Sie sind hier: <a href="${pageContext.request.contextPath}/GUI/Login.jsp">Login</a>
+ <input id="englisch" type="image" src="${pageContext.request.contextPath}/img/grossbritannien.gif" onclick="changeToEnglish();return false;">
+ <input id="deutsch" type="image" src="${pageContext.request.contextPath}/img/deutsch.gif" onclick="changeToDeutsch();return false;"></p>
+ </form>
+ <p>Herzlich Willkommen im Dozentenmodul des bwLerhpools!</p>
+ <p>blablabla</p>
+
+ <form action="Ldap" method="post">
+ <table>
+ <tr>
+ <td><label>Benutzername:</label></td>
+ <td><input type="text" name="Benutzername" maxlength="30" size="30"></td>
+ </tr>
+ <tr>
+ <td>Passwort:</td>
+ <td><input name="Password" type="password" maxlength="30" size="30"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td align="right"><input id="button" type="submit" value="Login"></td>
+ </tr>
+ </table>
+ </form>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/GUI/en/Login_Error.jsp b/Dozentenmodul_V1/WebContent/GUI/en/Login_Error.jsp
new file mode 100644
index 00000000..d3e01215
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/GUI/en/Login_Error.jsp
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+<p>Error</p>
+</body>
+</html> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/META-INF/MANIFEST.MF b/Dozentenmodul_V1/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..5e949512
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-B.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-B.ttf
new file mode 100644
index 00000000..c0142fea
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-B.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-BI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-BI.ttf
new file mode 100644
index 00000000..12e4c7df
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-BI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-C.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-C.ttf
new file mode 100644
index 00000000..8d3e8676
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-C.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-L.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-L.ttf
new file mode 100644
index 00000000..7b7ac7dd
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-L.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-LI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-LI.ttf
new file mode 100644
index 00000000..e36de452
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-LI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-M.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-M.ttf
new file mode 100644
index 00000000..443ec8b7
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-M.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-MI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-MI.ttf
new file mode 100644
index 00000000..321eccf7
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-MI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-R.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-R.ttf
new file mode 100644
index 00000000..45a038ba
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-R.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-RI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-RI.ttf
new file mode 100644
index 00000000..6f819f69
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/Ubuntu-RI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-B.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-B.ttf
new file mode 100644
index 00000000..7bd66657
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-B.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-BI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-BI.ttf
new file mode 100644
index 00000000..6c5b8ba0
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-BI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-R.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-R.ttf
new file mode 100644
index 00000000..fdd309d7
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-R.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-RI.ttf b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-RI.ttf
new file mode 100644
index 00000000..18f81a29
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/UbuntuFonts/UbuntuMono-RI.ttf
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/WEB-INF/web.xml b/Dozentenmodul_V1/WebContent/WEB-INF/web.xml
new file mode 100644
index 00000000..65421878
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/WEB-INF/web.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
+ <display-name>Dozentenmodul_V1</display-name>
+ <welcome-file-list>
+ <welcome-file>/de/GUI/Login.jsp</welcome-file>
+ </welcome-file-list>
+</web-app> \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/css/Input.css b/Dozentenmodul_V1/WebContent/css/Input.css
new file mode 100644
index 00000000..dce35868
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/css/Input.css
@@ -0,0 +1,166 @@
+@CHARSET "ISO-8859-1";
+
+@font-face {
+ font-family: 'Ubuntu';
+ src: url(/Dozentenmodul_V1/UbuntuFonts/Ubuntu-L.ttf);
+}
+
+#Logo{
+ top:0;
+ left:0;
+ height:120px;
+ width:50%;
+}
+
+#deutsch{
+ float:right;
+ margin-right:10px;
+}
+
+#englisch{
+ float:right;
+}
+
+
+article.input section {
+ position: absolute;
+ display: block;
+ width: 80%;
+ height: 120%;
+ top: 200px;
+ left: 50%;
+ margin-left: -30%;
+ background-color: #c5d2de;
+}
+
+article.input section h2 {
+ position: absolute;
+ left: 0;
+ top: -30px;
+ width: 124px;
+ height: 29px;
+ font-family: Ubuntu;
+ font-size: 15px;
+ margin: 0;
+ background-color: #194b7d;
+ border-radius: 15px 15px 0 0;
+ border: solid #ffffff;
+ border-width: 1px 1px 0 0;
+ z-index: 1;
+}
+
+article.input section:nth-child(2) h2 {
+ left: 120px;
+ z-index: 0;
+}
+
+article.input section:nth-child(3) h2 {
+ left: 240px;
+ z-index: -1;
+}
+
+article.input section:nth-child(4) h2 {
+ left: 360px;
+ z-index: -2;
+}
+
+
+article.input section h2 a {
+ display: block;
+ margin: 5px 0 0 0;
+ text-align: center;
+ text-decoration: none;
+ color: #c5d2de;
+}
+
+article.input section:target, article.input section:target h2 {
+ color: #000000;
+ background-color: #c5d2de;
+ z-index: 1;
+}
+
+article.input section:target h2 a {
+ color: #194b7d;
+}
+
+article.input section div{
+ z-index: 1;
+}
+
+article.input section input{
+ width: 100%;
+}
+
+fieldset{
+ margin-top: 10px;
+ margin-left: 30px;
+ margin-right: 30px;
+}
+
+article.input section input{
+ width: 320px;
+}
+
+article.input section textarea{
+ width: 320px;
+ resize:none;
+}
+article.input section select{
+ width: 325px;
+}
+td{
+
+font-family:Ubuntu;
+}
+legend{
+font-family:Ubuntu;
+}
+p{
+font-family:Ubuntu;
+}
+#von_date, #bis_date{
+ width: 300px;
+}
+
+#aktiv_ja, #aktiv_nein{
+ width: 50px;
+}
+
+#sort{
+ margin-left: 10px;
+ margin-top: 10px;
+}
+
+.container {
+ border:2px solid #ccc;
+ width:300px;
+ height: 550px;
+ overflow-y: scroll;
+}
+
+#SW_list{
+ width: 30px;
+}
+
+#choosedSW{
+ margin-top: 10px;
+ margin-left: 10px;
+ width: 300px;
+}
+
+#SW{
+ margin-left: 20px;
+ height:500px;
+ width: 500px;
+ background-color: #c5d2de;
+}
+
+#buttonAddSW{
+ margin-left: 30px;
+ width: 150px;
+}
+#save{
+ float:right;
+ margin-right: 30px;
+ width: 100px;
+} \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/css/Layout.css b/Dozentenmodul_V1/WebContent/css/Layout.css
new file mode 100644
index 00000000..0d2bb44e
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/css/Layout.css
@@ -0,0 +1,120 @@
+html,body{
+ height:100%;
+ background-image:url('../img/bg.png');
+ background-repeat:repeat-x;
+}
+
+
+#Ueberschrift{
+ text-align:left;
+}
+
+#right{
+ position:absolute;
+ width:100%;
+ left:230px;
+
+}
+
+#left{
+ width:220px;
+ min-width:220px;
+ float:left;
+ height:100%;
+ border-right:thin;
+ border-right-color:black;
+ border-right-style:solid;
+}
+
+hr{
+ color:black;
+}
+
+#loginButton{
+ float:right;
+}
+
+ul.tabs
+{
+ padding: 6px 0;
+ font-size: 0;
+ margin:0;
+ list-style-type: none;
+ text-align: left; /*set to left, center, or right to align the tabs as desired*/
+}
+
+ul.tabs li
+{
+ display: inline;
+ margin: 0;
+ margin-right:4px; /*distance between tabs*/
+}
+
+ul.tabs li a
+{
+ font: normal 12px Verdana;
+ text-decoration: none;
+ position: relative;
+ z-index: 1;
+ padding: 6px 14px;
+ border: 1px solid #B7B7B7;
+ color: #000;
+ background: #F7F7F7 url(../img/tabbg2.gif) repeat-x 0 0;
+ border-radius: 3px 3px 0 0;
+ outline:none;
+}
+
+ul.tabs li a:visited
+{
+ color: #000;
+}
+
+ul.tabs li a:hover
+{
+ background:White url(../img/tabbg.gif) repeat-x 0 0;
+}
+
+ul.tabs li.selected a
+{
+ /*selected tab style */
+ position: relative;
+ top: 0px;
+ font-weight:bold;
+ background: white url(../img/tabbg.gif) 0 0 repeat-x;
+ border-bottom-color: white;
+}
+
+
+ul.tabs li.selected a:hover
+{
+ /*selected tab style */
+ text-decoration: none;
+}
+
+div.tabcontent
+{
+ display: block;
+}
+
+div.tabcontents
+{
+ border-top: 1px solid #B7B7B7; padding:30px 16px;
+ border-radius: 8px;
+}
+
+.container {
+ border:2px solid #ccc;
+ width:300px;
+ height: 500px;
+ overflow-y: scroll;
+}
+
+#sw_chooser{
+ width:300px;
+ float:left;
+}
+
+#sw_choosed{
+ width:300px;
+
+}
diff --git a/Dozentenmodul_V1/WebContent/css/Login.css b/Dozentenmodul_V1/WebContent/css/Login.css
new file mode 100644
index 00000000..f21da806
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/css/Login.css
@@ -0,0 +1,35 @@
+@CHARSET "ISO-8859-1";
+
+@font-face {
+ font-family: 'Ubuntu';
+ src: url(/Dozentenmodul_V1/UbuntuFonts/Ubuntu-L.ttf);
+}
+
+#Logo{
+ top:0;
+ left:0;
+ height:120px;
+ width:100%;
+}
+
+#deutsch{
+ float:right;
+ margin-right:10px;
+}
+
+#englisch{
+ float:right;
+}
+
+p{
+font-family:Ubuntu;
+font-size:18pt;
+}
+
+td{
+font-family:Ubuntu;
+}
+
+#button{
+font-family:Ubuntu;
+} \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal.gif
new file mode 100644
index 00000000..8526cf5d
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_close.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_close.gif
new file mode 100644
index 00000000..22b71eaf
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_close.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastforward.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastforward.gif
new file mode 100644
index 00000000..885781bd
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastforward.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastreverse.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastreverse.gif
new file mode 100644
index 00000000..db858c50
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_fastreverse.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_forward.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_forward.gif
new file mode 100644
index 00000000..4d9c2333
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_forward.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_minus.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_minus.gif
new file mode 100644
index 00000000..2861f59f
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_minus.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_plus.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_plus.gif
new file mode 100644
index 00000000..5dc1a52c
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_plus.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Calendar/cal_reverse.gif b/Dozentenmodul_V1/WebContent/img/Calendar/cal_reverse.gif
new file mode 100644
index 00000000..6d51e3f1
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Calendar/cal_reverse.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/DeleteRed.png b/Dozentenmodul_V1/WebContent/img/DeleteRed.png
new file mode 100644
index 00000000..03e31706
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/DeleteRed.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Pencil3.png b/Dozentenmodul_V1/WebContent/img/Pencil3.png
new file mode 100644
index 00000000..1686cc8c
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Pencil3.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/Shutdown_Box_Red.png b/Dozentenmodul_V1/WebContent/img/Shutdown_Box_Red.png
new file mode 100644
index 00000000..9477e47e
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/Shutdown_Box_Red.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/bg.png b/Dozentenmodul_V1/WebContent/img/bg.png
new file mode 100644
index 00000000..6df2510e
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/bg.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/de.png b/Dozentenmodul_V1/WebContent/img/de.png
new file mode 100644
index 00000000..ac4a9773
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/de.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/openslx-logo.png b/Dozentenmodul_V1/WebContent/img/openslx-logo.png
new file mode 100644
index 00000000..2e2f70e8
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/openslx-logo.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/tabbg.gif b/Dozentenmodul_V1/WebContent/img/tabbg.gif
new file mode 100644
index 00000000..ab5606de
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/tabbg.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/tabbg2.gif b/Dozentenmodul_V1/WebContent/img/tabbg2.gif
new file mode 100644
index 00000000..c46e39cc
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/tabbg2.gif
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/img/us.png b/Dozentenmodul_V1/WebContent/img/us.png
new file mode 100644
index 00000000..10f451fe
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/img/us.png
Binary files differ
diff --git a/Dozentenmodul_V1/WebContent/js/datetimepicker_css.js b/Dozentenmodul_V1/WebContent/js/datetimepicker_css.js
new file mode 100644
index 00000000..882601db
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/js/datetimepicker_css.js
@@ -0,0 +1,1341 @@
+//Javasript name: My Date Time Picker
+//Date created: 16-Nov-2003 23:19
+//Creator: TengYong Ng
+//Website: http://www.rainforestnet.com
+//Copyright (c) 2003 TengYong Ng
+//FileName: DateTimePicker_css.js
+//Version: 2.2.4
+// Note: Permission given to use and modify this script in ANY kind of applications if
+// header lines are left unchanged.
+//Permission is granted to redistribute and modify this javascript under a FreeBSD License.
+//New Css style version added by Yvan Lavoie (Québec, Canada) 29-Jan-2009
+//Formatted for JSLint compatibility by Labsmedia.com (30-Dec-2010)
+
+
+//Global variables
+
+var winCal;
+var dtToday;
+var Cal;
+var MonthName;
+var WeekDayName1;
+var WeekDayName2;
+var exDateTime;//Existing Date and Time
+var selDate;//selected date. version 1.7
+var calSpanID = "calBorder"; // span ID
+var domStyle = null; // span DOM object with style
+var cnLeft = "0";//left coordinate of calendar span
+var cnTop = "0";//top coordinate of calendar span
+var xpos = 0; // mouse x position
+var ypos = 0; // mouse y position
+var calHeight = 0; // calendar height
+var CalWidth = 208;// calendar width
+var CellWidth = 30;// width of day cell.
+var TimeMode = 24;// TimeMode value. 12 or 24
+var StartYear = 2013; //First Year in drop down year selection
+var EndYear = 5; // The last year of pickable date. if current year is 2011, the last year that still picker will be 2016 (2011+5)
+var CalPosOffsetX = -1; //X position offset relative to calendar icon, can be negative value
+var CalPosOffsetY = 0; //Y position offset relative to calendar icon, can be negative value
+
+//Configurable parameters start
+var SpanBorderColor = "#000000";//span border color
+var SpanBgColor = "#FFFFFF"; //span background color
+var MonthYearColor = "#cc0033"; //Font Color of Month and Year in Calendar header.
+var WeekHeadColor = "#18861B"; //var WeekHeadColor="#18861B";//Background Color in Week header.
+var SundayColor = "#C0F64F"; //var SundayColor="#C0F64F";//Background color of Sunday.
+var SaturdayColor = "#C0F64F"; //Background color of Saturday.
+var WeekDayColor = "#FFEDA6"; //Background color of weekdays.
+var FontColor = "blue"; //color of font in Calendar day cell.
+var TodayColor = "#ffbd35"; //var TodayColor="#FFFF33";//Background color of today.
+var SelDateColor = "#8DD53C"; //var SelDateColor = "#8DD53C";//Backgrond color of selected date in textbox.
+var YrSelColor = "#cc0033"; //color of font of Year selector.
+var MthSelColor = "#cc0033"; //color of font of Month selector if "MonthSelector" is "arrow".
+var HoverColor = "#E0FF38"; //color when mouse move over.
+var DisableColor = "#999966"; //color of disabled cell.
+var CalBgColor = "#ffffff"; //Background color of Calendar window.
+
+var WeekChar = 2;//number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
+var DateSeparator = "-";//Date Separator, you can change it to "-" if you want.
+var ShowLongMonth = true;//Show long month name in Calendar header. example: "January".
+var ShowMonthYear = true;//Show Month and Year in Calendar header.
+var ThemeBg = "";//Background image of Calendar window.
+var PrecedeZero = true;//Preceding zero [true|false]
+var MondayFirstDay = true;//true:Use Monday as first day; false:Sunday as first day. [true|false] //added in version 1.7
+var UseImageFiles = true;//Use image files with "arrows" and "close" button
+var imageFilesPath = "/Dozentenmodul_V1/img/Calendar/";
+//Configurable parameters end
+
+//use the Month and Weekday in your preferred language.
+var MonthName = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
+var WeekDayName1 = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
+var WeekDayName2 = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
+
+
+//end Configurable parameters
+
+//end Global variable
+
+
+// Calendar prototype
+function Calendar(pDate, pCtrl)
+{
+ //Properties
+ this.Date = pDate.getDate();//selected date
+ this.Month = pDate.getMonth();//selected month number
+ this.Year = pDate.getFullYear();//selected year in 4 digits
+ this.Hours = pDate.getHours();
+
+ if (pDate.getMinutes() < 10)
+ {
+ this.Minutes = "0" + pDate.getMinutes();
+ }
+ else
+ {
+ this.Minutes = pDate.getMinutes();
+ }
+
+ if (pDate.getSeconds() < 10)
+ {
+ this.Seconds = "0" + pDate.getSeconds();
+ }
+ else
+ {
+ this.Seconds = pDate.getSeconds();
+ }
+ this.MyWindow = winCal;
+ this.Ctrl = pCtrl;
+ this.Format = "ddMMyyyy";
+ this.Separator = DateSeparator;
+ this.ShowTime = false;
+ this.Scroller = "DROPDOWN";
+ if (pDate.getHours() < 12)
+ {
+ this.AMorPM = "AM";
+ }
+ else
+ {
+ this.AMorPM = "PM";
+ }
+ this.ShowSeconds = false;
+ this.EnableDateMode = ""
+}
+
+Calendar.prototype.GetMonthIndex = function (shortMonthName)
+{
+ for (var i = 0; i < 12; i += 1)
+ {
+ if (MonthName[i].substring(0, 3).toUpperCase() === shortMonthName.toUpperCase())
+ {
+ return i;
+ }
+ }
+};
+
+Calendar.prototype.IncYear = function () {
+ if (Cal.Year <= dtToday.getFullYear()+EndYear)
+ Cal.Year += 1;
+};
+
+Calendar.prototype.DecYear = function () {
+ if (Cal.Year > StartYear)
+ Cal.Year -= 1;
+};
+
+Calendar.prototype.IncMonth = function() {
+ if (Cal.Year <= dtToday.getFullYear() + EndYear) {
+ Cal.Month += 1;
+ if (Cal.Month >= 12) {
+ Cal.Month = 0;
+ Cal.IncYear();
+ }
+ }
+};
+
+Calendar.prototype.DecMonth = function() {
+ if (Cal.Year >= StartYear) {
+ Cal.Month -= 1;
+ if (Cal.Month < 0) {
+ Cal.Month = 11;
+ Cal.DecYear();
+ }
+ }
+};
+
+Calendar.prototype.SwitchMth = function (intMth)
+{
+ Cal.Month = parseInt(intMth, 10);
+};
+
+Calendar.prototype.SwitchYear = function (intYear)
+{
+ Cal.Year = parseInt(intYear, 10);
+};
+
+Calendar.prototype.SetHour = function(intHour) {
+ var MaxHour,
+ MinHour,
+ HourExp = new RegExp("^\\d\\d"),
+ SingleDigit = new RegExp("^\\d{1}$");
+
+ if (TimeMode === 24) {
+ MaxHour = 23;
+ MinHour = 0;
+ }
+ else if (TimeMode === 12) {
+ MaxHour = 12;
+ MinHour = 1;
+ }
+ else {
+ alert("TimeMode can only be 12 or 24");
+ }
+
+ if ((HourExp.test(intHour) || SingleDigit.test(intHour)) && (parseInt(intHour, 10) > MaxHour)) {
+ intHour = MinHour;
+ }
+
+ else if ((HourExp.test(intHour) || SingleDigit.test(intHour)) && (parseInt(intHour, 10) < MinHour)) {
+ intHour = MaxHour;
+ }
+
+ intHour = parseInt(intHour, 10);
+ if (SingleDigit.test(intHour)) {
+ intHour = "0" + intHour;
+ }
+
+ if (HourExp.test(intHour) && (parseInt(intHour, 10) <= MaxHour) && (parseInt(intHour, 10) >= MinHour)) {
+ if ((TimeMode === 12) && (Cal.AMorPM === "PM")) {
+ if (parseInt(intHour, 10) === 12) {
+ Cal.Hours = 12;
+ }
+ else {
+ Cal.Hours = parseInt(intHour, 10) + 12;
+ }
+ }
+
+ else if ((TimeMode === 12) && (Cal.AMorPM === "AM")) {
+ if (intHour === 12) {
+ intHour -= 12;
+ }
+
+ Cal.Hours = parseInt(intHour, 10);
+ }
+
+ else if (TimeMode === 24) {
+ Cal.Hours = parseInt(intHour, 10);
+ }
+ }
+
+};
+
+Calendar.prototype.SetMinute = function (intMin)
+{
+ var MaxMin = 59,
+ MinMin = 0,
+
+ SingleDigit = new RegExp("\\d"),
+ SingleDigit2 = new RegExp("^\\d{1}$"),
+ MinExp = new RegExp("^\\d{2}$"),
+
+ strMin = 0;
+
+ if ((MinExp.test(intMin) || SingleDigit.test(intMin)) && (parseInt(intMin, 10) > MaxMin))
+ {
+ intMin = MinMin;
+ }
+
+ else if ((MinExp.test(intMin) || SingleDigit.test(intMin)) && (parseInt(intMin, 10) < MinMin))
+ {
+ intMin = MaxMin;
+ }
+
+ strMin = intMin + "";
+ if (SingleDigit2.test(intMin))
+ {
+ strMin = "0" + strMin;
+ }
+
+ if ((MinExp.test(intMin) || SingleDigit.test(intMin)) && (parseInt(intMin, 10) <= 59) && (parseInt(intMin, 10) >= 0))
+ {
+ Cal.Minutes = strMin;
+ }
+};
+
+Calendar.prototype.SetSecond = function (intSec)
+{
+ var MaxSec = 59,
+ MinSec = 0,
+
+ SingleDigit = new RegExp("\\d"),
+ SingleDigit2 = new RegExp("^\\d{1}$"),
+ SecExp = new RegExp("^\\d{2}$"),
+
+ strSec = 0;
+
+ if ((SecExp.test(intSec) || SingleDigit.test(intSec)) && (parseInt(intSec, 10) > MaxSec))
+ {
+ intSec = MinSec;
+ }
+
+ else if ((SecExp.test(intSec) || SingleDigit.test(intSec)) && (parseInt(intSec, 10) < MinSec))
+ {
+ intSec = MaxSec;
+ }
+
+ strSec = intSec + "";
+ if (SingleDigit2.test(intSec))
+ {
+ strSec = "0" + strSec;
+ }
+
+ if ((SecExp.test(intSec) || SingleDigit.test(intSec)) && (parseInt(intSec, 10) <= 59) && (parseInt(intSec, 10) >= 0))
+ {
+ Cal.Seconds = strSec;
+ }
+
+};
+
+Calendar.prototype.SetAmPm = function (pvalue)
+{
+ this.AMorPM = pvalue;
+ if (pvalue === "PM")
+ {
+ this.Hours = parseInt(this.Hours, 10) + 12;
+ if (this.Hours === 24)
+ {
+ this.Hours = 12;
+ }
+ }
+
+ else if (pvalue === "AM")
+ {
+ this.Hours -= 12;
+ }
+};
+
+Calendar.prototype.getShowHour = function() {
+ var finalHour;
+
+ if (TimeMode === 12) {
+ if (parseInt(this.Hours, 10) === 0) {
+ this.AMorPM = "AM";
+ finalHour = parseInt(this.Hours, 10) + 12;
+ }
+
+ else if (parseInt(this.Hours, 10) === 12) {
+ this.AMorPM = "PM";
+ finalHour = 12;
+ }
+
+ else if (this.Hours > 12) {
+ this.AMorPM = "PM";
+ if ((this.Hours - 12) < 10) {
+ finalHour = "0" + ((parseInt(this.Hours, 10)) - 12);
+ }
+ else {
+ finalHour = parseInt(this.Hours, 10) - 12;
+ }
+ }
+ else {
+ this.AMorPM = "AM";
+ if (this.Hours < 10) {
+ finalHour = "0" + parseInt(this.Hours, 10);
+ }
+ else {
+ finalHour = this.Hours;
+ }
+ }
+ }
+
+ else if (TimeMode === 24) {
+ if (this.Hours < 10) {
+ finalHour = "0" + parseInt(this.Hours, 10);
+ }
+ else {
+ finalHour = this.Hours;
+ }
+ }
+
+ return finalHour;
+};
+
+Calendar.prototype.getShowAMorPM = function ()
+{
+ return this.AMorPM;
+};
+
+Calendar.prototype.GetMonthName = function (IsLong)
+{
+ var Month = MonthName[this.Month];
+ if (IsLong)
+ {
+ return Month;
+ }
+ else
+ {
+ return Month.substr(0, 3);
+ }
+};
+
+Calendar.prototype.GetMonDays = function() { //Get number of days in a month
+
+ var DaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+ if (Cal.IsLeapYear()) {
+ DaysInMonth[1] = 29;
+ }
+
+ return DaysInMonth[this.Month];
+};
+
+Calendar.prototype.IsLeapYear = function ()
+{
+ if ((this.Year % 4) === 0)
+ {
+ if ((this.Year % 100 === 0) && (this.Year % 400) !== 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ else
+ {
+ return false;
+ }
+};
+
+Calendar.prototype.FormatDate = function (pDate)
+{
+ var MonthDigit = this.Month + 1;
+ if (PrecedeZero === true)
+ {
+ if ((pDate < 10) && String(pDate).length===1) //length checking added in version 2.2
+ {
+ pDate = "0" + pDate;
+ }
+ if (MonthDigit < 10)
+ {
+ MonthDigit = "0" + MonthDigit;
+ }
+ }
+
+ switch (this.Format.toUpperCase())
+ {
+ case "DDMMYYYY":
+ return (pDate + DateSeparator + MonthDigit + DateSeparator + this.Year);
+ case "DDMMMYYYY":
+ return (pDate + DateSeparator + this.GetMonthName(false) + DateSeparator + this.Year);
+ case "MMDDYYYY":
+ return (MonthDigit + DateSeparator + pDate + DateSeparator + this.Year);
+ case "MMMDDYYYY":
+ return (this.GetMonthName(false) + DateSeparator + pDate + DateSeparator + this.Year);
+ case "YYYYMMDD":
+ return (this.Year + DateSeparator + MonthDigit + DateSeparator + pDate);
+ case "YYMMDD":
+ return (String(this.Year).substring(2, 4) + DateSeparator + MonthDigit + DateSeparator + pDate);
+ case "YYMMMDD":
+ return (String(this.Year).substring(2, 4) + DateSeparator + this.GetMonthName(false) + DateSeparator + pDate);
+ case "YYYYMMMDD":
+ return (this.Year + DateSeparator + this.GetMonthName(false) + DateSeparator + pDate);
+ default:
+ return (pDate + DateSeparator + (this.Month + 1) + DateSeparator + this.Year);
+ }
+};
+
+// end Calendar prototype
+
+function GenCell(pValue, pHighLight, pColor, pClickable)
+{ //Generate table cell with value
+ var PValue,
+ PCellStr,
+ PClickable,
+ vTimeStr;
+
+ if (!pValue)
+ {
+ PValue = "";
+ }
+ else
+ {
+ PValue = pValue;
+ }
+
+ if (pColor === undefined)
+ pColor = CalBgColor;
+
+ if (pClickable !== undefined){
+ PClickable = pClickable;
+ }
+ else{
+ PClickable = true;
+ }
+
+ if (Cal.ShowTime)
+ {
+ vTimeStr = ' ' + Cal.Hours + ':' + Cal.Minutes;
+ if (Cal.ShowSeconds)
+ {
+ vTimeStr += ':' + Cal.Seconds;
+ }
+ if (TimeMode === 12)
+ {
+ vTimeStr += ' ' + Cal.AMorPM;
+ }
+ }
+
+ else
+ {
+ vTimeStr = "";
+ }
+
+ if (PValue !== "")
+ {
+ if (PClickable === true) {
+ if (Cal.ShowTime === true)
+ { PCellStr = "<td id='c" + PValue + "' class='calTD' style='text-align:center;cursor:pointer;background-color:"+pColor+"' onmousedown='selectDate(this," + PValue + ");'>" + PValue + "</td>"; }
+ else { PCellStr = "<td class='calTD' style='text-align:center;cursor:pointer;background-color:" + pColor + "' onmouseover='changeBorder(this, 0);' onmouseout=\"changeBorder(this, 1, '" + pColor + "');\" onClick=\"javascript:callback('" + Cal.Ctrl + "','" + Cal.FormatDate(PValue) + "');\">" + PValue + "</td>"; }
+ }
+ else
+ { PCellStr = "<td style='text-align:center;background-color:"+pColor+"' class='calTD'>"+PValue+"</td>"; }
+ }
+ else
+ { PCellStr = "<td style='text-align:center;background-color:"+pColor+"' class='calTD'>&nbsp;</td>"; }
+
+ return PCellStr;
+}
+
+function RenderCssCal(bNewCal)
+{
+ if (typeof bNewCal === "undefined" || bNewCal !== true)
+ {
+ bNewCal = false;
+ }
+ var vCalHeader,
+ vCalData,
+ vCalTime = "",
+ vCalClosing = "",
+ winCalData = "",
+ CalDate,
+
+ i,
+ j,
+
+ SelectStr,
+ vDayCount = 0,
+ vFirstDay,
+
+ WeekDayName = [],//Added version 1.7
+ strCell,
+
+ showHour,
+ ShowArrows = false,
+ HourCellWidth = "35px", //cell width with seconds.
+
+ SelectAm,
+ SelectPm,
+
+ funcCalback,
+
+ headID,
+ e,
+ cssStr,
+ style,
+ cssText,
+ span;
+
+ calHeight = 0; // reset the window height on refresh
+
+ // Set the default cursor for the calendar
+
+ winCalData = "<span style='cursor:auto;'>";
+ vCalHeader = "<table style='background-color:"+CalBgColor+";width:200px;padding:0;margin:5px auto 5px auto'><tbody>";
+
+ //Table for Month & Year Selector
+
+ vCalHeader += "<tr><td colspan='7'><table border='0' width='200px' cellpadding='0' cellspacing='0'><tr>";
+ //******************Month and Year selector in dropdown list************************
+
+ if (Cal.Scroller === "DROPDOWN")
+ {
+ vCalHeader += "<td align='center'><select name='MonthSelector' onChange='javascript:Cal.SwitchMth(this.selectedIndex);RenderCssCal();'>";
+ for (i = 0; i < 12; i += 1)
+ {
+ if (i === Cal.Month)
+ {
+ SelectStr = "Selected";
+ }
+ else
+ {
+ SelectStr = "";
+ }
+ vCalHeader += "<option " + SelectStr + " value=" + i + ">" + MonthName[i] + "</option>";
+ }
+
+ vCalHeader += "</select></td>";
+ //Year selector
+
+ vCalHeader += "<td align='center'><select name='YearSelector' size='1' onChange='javascript:Cal.SwitchYear(this.value);RenderCssCal();'>";
+ for (i = StartYear; i <= (dtToday.getFullYear() + EndYear); i += 1)
+ {
+ if (i === Cal.Year)
+ {
+ SelectStr = 'selected="selected"';
+ }
+ else
+ {
+ SelectStr = '';
+ }
+ vCalHeader += "<option " + SelectStr + " value=" + i + ">" + i + "</option>\n";
+ }
+ vCalHeader += "</select></td>\n";
+ calHeight += 30;
+ }
+
+ //******************End Month and Year selector in dropdown list*********************
+
+ //******************Month and Year selector in arrow*********************************
+
+ else if (Cal.Scroller === "ARROW")
+ {
+ if (UseImageFiles)
+ {
+ vCalHeader += "<td><img onmousedown='javascript:Cal.DecYear();RenderCssCal();' src='"+imageFilesPath+"cal_fastreverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n";//Year scroller (decrease 1 year)
+ vCalHeader += "<td><img onmousedown='javascript:Cal.DecMonth();RenderCssCal();' src='" + imageFilesPath + "cal_reverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n"; //Month scroller (decrease 1 month)
+ vCalHeader += "<td width='70%' class='calR' style='color:"+YrSelColor+"'>"+ Cal.GetMonthName(ShowLongMonth) + " " + Cal.Year + "</td>"; //Month and Year
+ vCalHeader += "<td><img onmousedown='javascript:Cal.IncMonth();RenderCssCal();' src='" + imageFilesPath + "cal_forward.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n"; //Month scroller (increase 1 month)
+ vCalHeader += "<td><img onmousedown='javascript:Cal.IncYear();RenderCssCal();' src='" + imageFilesPath + "cal_fastforward.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n"; //Year scroller (increase 1 year)
+ calHeight += 22;
+ }
+ else
+ {
+ vCalHeader += "<td><span id='dec_year' title='reverse year' onmousedown='javascript:Cal.DecYear();RenderCssCal();' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white; color:" + YrSelColor + "'>-</span></td>";//Year scroller (decrease 1 year)
+ vCalHeader += "<td><span id='dec_month' title='reverse month' onmousedown='javascript:Cal.DecMonth();RenderCssCal();' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'>&lt;</span></td>\n";//Month scroller (decrease 1 month)
+ vCalHeader += "<td width='70%' class='calR' style='color:" + YrSelColor + "'>" + Cal.GetMonthName(ShowLongMonth) + " " + Cal.Year + "</td>\n"; //Month and Year
+ vCalHeader += "<td><span id='inc_month' title='forward month' onmousedown='javascript:Cal.IncMonth();RenderCssCal();' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'>&gt;</span></td>\n";//Month scroller (increase 1 month)
+ vCalHeader += "<td><span id='inc_year' title='forward year' onmousedown='javascript:Cal.IncYear();RenderCssCal();' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white; color:" + YrSelColor + "'>+</span></td>\n";//Year scroller (increase 1 year)
+ calHeight += 22;
+ }
+ }
+
+ vCalHeader += "</tr></table></td></tr>";
+
+ //******************End Month and Year selector in arrow******************************
+
+ //Calendar header shows Month and Year
+ if (ShowMonthYear && Cal.Scroller === "DROPDOWN")
+ {
+ vCalHeader += "<tr><td colspan='7' class='calR' style='color:" + MonthYearColor + "'>" + Cal.GetMonthName(ShowLongMonth) + " " + Cal.Year + "</td></tr>";
+ calHeight += 19;
+ }
+
+ //Week day header
+
+ vCalHeader += "<tr><td colspan=\"7\"><table style='border-spacing:1px;border-collapse:separate;'><tr>";
+ if (MondayFirstDay === true)
+ {
+ WeekDayName = WeekDayName2;
+ }
+ else
+ {
+ WeekDayName = WeekDayName1;
+ }
+ for (i = 0; i < 7; i += 1)
+ {
+ vCalHeader += "<td style='background-color:"+WeekHeadColor+";width:"+CellWidth+"px;color:#FFFFFF' class='calTD'>" + WeekDayName[i].substr(0, WeekChar) + "</td>";
+ }
+
+ calHeight += 19;
+ vCalHeader += "</tr>";
+ //Calendar detail
+ CalDate = new Date(Cal.Year, Cal.Month);
+ CalDate.setDate(1);
+
+ vFirstDay = CalDate.getDay();
+
+ //Added version 1.7
+ if (MondayFirstDay === true)
+ {
+ vFirstDay -= 1;
+ if (vFirstDay === -1)
+ {
+ vFirstDay = 6;
+ }
+ }
+
+ //Added version 1.7
+ vCalData = "<tr>";
+ calHeight += 19;
+ for (i = 0; i < vFirstDay; i += 1)
+ {
+ vCalData = vCalData + GenCell();
+ vDayCount = vDayCount + 1;
+ }
+
+ //Added version 1.7
+ for (j = 1; j <= Cal.GetMonDays(); j += 1)
+ {
+ if ((vDayCount % 7 === 0) && (j > 1))
+ {
+ vCalData = vCalData + "<tr>";
+ }
+
+ vDayCount = vDayCount + 1;
+ //added version 2.1.2
+ if (Cal.EnableDateMode === "future" && ((j < dtToday.getDate()) && (Cal.Month === dtToday.getMonth()) && (Cal.Year === dtToday.getFullYear()) || (Cal.Month < dtToday.getMonth()) && (Cal.Year === dtToday.getFullYear()) || (Cal.Year < dtToday.getFullYear())))
+ {
+ strCell = GenCell(j, false, DisableColor, false); //Before today's date is not clickable
+ }
+ else if (Cal.EnableDateMode === "past" && ((j >= dtToday.getDate()) && (Cal.Month === dtToday.getMonth()) && (Cal.Year === dtToday.getFullYear()) || (Cal.Month > dtToday.getMonth()) && (Cal.Year === dtToday.getFullYear()) || (Cal.Year > dtToday.getFullYear()))) {
+ strCell = GenCell(j, false, DisableColor, false); //After today's date is not clickable
+ }
+ //if End Year + Current Year = Cal.Year. Disable.
+ else if (Cal.Year > (dtToday.getFullYear()+EndYear))
+ {
+ strCell = GenCell(j, false, DisableColor, false);
+ }
+ else if ((j === dtToday.getDate()) && (Cal.Month === dtToday.getMonth()) && (Cal.Year === dtToday.getFullYear()))
+ {
+ strCell = GenCell(j, true, TodayColor);//Highlight today's date
+ }
+ else
+ {
+ if ((j === selDate.getDate()) && (Cal.Month === selDate.getMonth()) && (Cal.Year === selDate.getFullYear())){
+ //modified version 1.7
+ strCell = GenCell(j, true, SelDateColor);
+ }
+ else
+ {
+ if (MondayFirstDay === true)
+ {
+ if (vDayCount % 7 === 0)
+ {
+ strCell = GenCell(j, false, SundayColor);
+ }
+ else if ((vDayCount + 1) % 7 === 0)
+ {
+ strCell = GenCell(j, false, SaturdayColor);
+ }
+ else
+ {
+ strCell = GenCell(j, null, WeekDayColor);
+ }
+ }
+ else
+ {
+ if (vDayCount % 7 === 0)
+ {
+ strCell = GenCell(j, false, SaturdayColor);
+ }
+ else if ((vDayCount + 6) % 7 === 0)
+ {
+ strCell = GenCell(j, false, SundayColor);
+ }
+ else
+ {
+ strCell = GenCell(j, null, WeekDayColor);
+ }
+ }
+ }
+ }
+
+ vCalData = vCalData + strCell;
+
+ if ((vDayCount % 7 === 0) && (j < Cal.GetMonDays()))
+ {
+ vCalData = vCalData + "</tr>";
+ calHeight += 19;
+ }
+ }
+
+ // finish the table proper
+
+ if (vDayCount % 7 !== 0)
+ {
+ while (vDayCount % 7 !== 0)
+ {
+ vCalData = vCalData + GenCell();
+ vDayCount = vDayCount + 1;
+ }
+ }
+
+ vCalData = vCalData + "</table></td></tr>";
+
+
+ //Time picker
+ if (Cal.ShowTime === true)
+ {
+ showHour = Cal.getShowHour();
+
+ if (Cal.ShowSeconds === false && TimeMode === 24)
+ {
+ ShowArrows = true;
+ HourCellWidth = "10px";
+ }
+
+ vCalTime = "<tr><td colspan='7' style=\"text-align:center;\"><table border='0' width='199px' cellpadding='0' cellspacing='0'><tbody><tr><td height='5px' width='" + HourCellWidth + "'>&nbsp;</td>";
+
+ if (ShowArrows && UseImageFiles) //this is where the up and down arrow control the hour.
+ {
+ vCalTime += "<td style='vertical-align:middle;'><table cellspacing='0' cellpadding='0' style='line-height:0pt;width:100%;'><tr><td style='text-align:center;'><img onclick='nextStep(\"Hour\", \"plus\");' onmousedown='startSpin(\"Hour\", \"plus\");' onmouseup='stopSpin();' src='" + imageFilesPath + "cal_plus.gif' width='13px' height='9px' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td></tr><tr><td style='text-align:center;'><img onclick='nextStep(\"Hour\", \"minus\");' onmousedown='startSpin(\"Hour\", \"minus\");' onmouseup='stopSpin();' src='" + imageFilesPath + "cal_minus.gif' width='13px' height='9px' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td></tr></table></td>\n";
+ }
+
+ vCalTime += "<td width='22px'><input type='text' name='hour' maxlength=2 size=1 style=\"WIDTH:22px\" value=" + showHour + " onkeyup=\"javascript:Cal.SetHour(this.value)\">";
+ vCalTime += "</td><td style='font-weight:bold;text-align:center;'>:</td><td width='22px'>";
+ vCalTime += "<input type='text' name='minute' maxlength=2 size=1 style=\"WIDTH: 22px\" value=" + Cal.Minutes + " onkeyup=\"javascript:Cal.SetMinute(this.value)\">";
+
+ if (Cal.ShowSeconds)
+ {
+ vCalTime += "</td><td style='font-weight:bold;'>:</td><td width='22px'>";
+ vCalTime += "<input type='text' name='second' maxlength=2 size=1 style=\"WIDTH: 22px\" value=" + Cal.Seconds + " onkeyup=\"javascript:Cal.SetSecond(parseInt(this.value,10))\">";
+ }
+
+ if (TimeMode === 12)
+ {
+ SelectAm = (Cal.AMorPM === "AM") ? "Selected" : "";
+ SelectPm = (Cal.AMorPM === "PM") ? "Selected" : "";
+
+ vCalTime += "</td><td>";
+ vCalTime += "<select name=\"ampm\" onChange=\"javascript:Cal.SetAmPm(this.options[this.selectedIndex].value);\">\n";
+ vCalTime += "<option " + SelectAm + " value=\"AM\">AM</option>";
+ vCalTime += "<option " + SelectPm + " value=\"PM\">PM<option>";
+ vCalTime += "</select>";
+ }
+
+ if (ShowArrows && UseImageFiles) //this is where the up and down arrow to change the "Minute".
+ {
+ vCalTime += "</td>\n<td style='vertical-align:middle;'><table cellspacing='0' cellpadding='0' style='line-height:0pt;width:100%'><tr><td style='text-align:center;'><img onclick='nextStep(\"Minute\", \"plus\");' onmousedown='startSpin(\"Minute\", \"plus\");' onmouseup='stopSpin();' src='" + imageFilesPath + "cal_plus.gif' width='13px' height='9px' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td></tr><tr><td style='text-align:center;'><img onmousedown='startSpin(\"Minute\", \"minus\");' onmouseup='stopSpin();' onclick='nextStep(\"Minute\",\"minus\");' src='" + imageFilesPath + "cal_minus.gif' width='13px' height='9px' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td></tr></table>";
+ }
+
+ vCalTime += "</td>\n<td align='right' valign='bottom' width='" + HourCellWidth + "px'></td></tr>";
+ vCalTime += "<tr><td colspan='8' style=\"text-align:center;\"><input style='width:60px;font-size:12px;' onClick='javascript:closewin(\"" + Cal.Ctrl + "\");' type=\"button\" value=\"OK\">&nbsp;<input style='width:60px;font-size:12px;' onClick='javascript: winCal.style.visibility = \"hidden\"' type=\"button\" value=\"Cancel\"></td></tr>";
+ }
+ else //if not to show time.
+ {
+ vCalTime += "\n<tr>\n<td colspan='7' style=\"text-align:right;\">";
+ //close button
+ if (UseImageFiles) {
+ vCalClosing += "<img onmousedown='javascript:closewin(\"" + Cal.Ctrl + "\"); stopSpin();' src='"+imageFilesPath+"cal_close.gif' width='16px' height='14px' onmouseover='changeBorder(this,0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>";
+ }
+ else {
+ vCalClosing += "<span id='close_cal' title='close'onmousedown='javascript:closewin(\"" + Cal.Ctrl + "\");stopSpin();' onmouseover='changeBorder(this, 0)'onmouseout='changeBorder(this, 1)' style='border:1px solid white; font-family: Arial;font-size: 10pt;'>x</span></td>";
+ }
+ vCalClosing += "</tr>";
+ }
+ vCalClosing += "</tbody></table></td></tr>";
+ calHeight += 31;
+ vCalClosing += "</tbody></table>\n</span>";
+
+ //end time picker
+ funcCalback = "function callback(id, datum) {";
+ funcCalback += " var CalId = document.getElementById(id);if (datum=== 'undefined') { var d = new Date(); datum = d.getDate() + '/' +(d.getMonth()+1) + '/' + d.getFullYear(); } window.calDatum=datum;CalId.value=datum;";
+ funcCalback += " if(Cal.ShowTime){";
+ funcCalback += " CalId.value+=' '+Cal.getShowHour()+':'+Cal.Minutes;";
+ funcCalback += " if (Cal.ShowSeconds) CalId.value+=':'+Cal.Seconds;";
+ funcCalback += " if (TimeMode === 12) CalId.value+=''+Cal.getShowAMorPM();";
+ funcCalback += "}if(CalId.onchange!=undefined) CalId.onchange();CalId.focus();winCal.style.visibility='hidden';}";
+
+
+ // determines if there is enough space to open the cal above the position where it is called
+ if (ypos > calHeight)
+ {
+ ypos = ypos - calHeight;
+ }
+
+ if (!winCal)
+ {
+ headID = document.getElementsByTagName("head")[0];
+
+ // add javascript function to the span cal
+ e = document.createElement("script");
+ e.type = "text/javascript";
+ e.language = "javascript";
+ e.text = funcCalback;
+ headID.appendChild(e);
+ // add stylesheet to the span cal
+
+ cssStr = ".calTD {font-family: verdana; font-size: 12px; text-align: center; border:0; }\n";
+ cssStr += ".calR {font-family: verdana; font-size: 12px; text-align: center; font-weight: bold;}";
+
+ style = document.createElement("style");
+ style.type = "text/css";
+ style.rel = "stylesheet";
+ if (style.styleSheet)
+ { // IE
+ style.styleSheet.cssText = cssStr;
+ }
+
+ else
+ { // w3c
+ cssText = document.createTextNode(cssStr);
+ style.appendChild(cssText);
+ }
+
+ headID.appendChild(style);
+ // create the outer frame that allows the cal. to be moved
+ span = document.createElement("span");
+ span.id = calSpanID;
+ span.style.position = "absolute";
+ span.style.left = (xpos + CalPosOffsetX) + 'px';
+ span.style.top = (ypos - CalPosOffsetY) + 'px';
+ span.style.width = CalWidth + 'px';
+ span.style.border = "solid 1pt " + SpanBorderColor;
+ span.style.padding = "0";
+ span.style.cursor = "move";
+ span.style.backgroundColor = SpanBgColor;
+ span.style.zIndex = 100;
+ document.body.appendChild(span);
+ winCal = document.getElementById(calSpanID);
+ }
+
+ else
+ {
+ winCal.style.visibility = "visible";
+ winCal.style.Height = calHeight;
+
+ // set the position for a new calendar only
+ if (bNewCal === true)
+ {
+ winCal.style.left = (xpos + CalPosOffsetX) + 'px';
+ winCal.style.top = (ypos - CalPosOffsetY) + 'px';
+ }
+ }
+
+ winCal.innerHTML = winCalData + vCalHeader + vCalData + vCalTime + vCalClosing;
+ return true;
+}
+
+
+function NewCssCal(pCtrl, pFormat, pScroller, pShowTime, pTimeMode, pShowSeconds, pEnableDateMode)
+{
+ // get current date and time
+
+ dtToday = new Date();
+ Cal = new Calendar(dtToday);
+
+ if (pShowTime !== undefined)
+ {
+ if (pShowTime) {
+ Cal.ShowTime = true;
+ }
+ else {
+ Cal.ShowTime = false;
+ }
+
+ if (pTimeMode)
+ {
+ pTimeMode = parseInt(pTimeMode, 10);
+ }
+ if (pTimeMode === 12 || pTimeMode === 24)
+ {
+ TimeMode = pTimeMode;
+ }
+ else
+ {
+ TimeMode = 24;
+ }
+
+ if (pShowSeconds !== undefined)
+ {
+ if (pShowSeconds)
+ {
+ Cal.ShowSeconds = true;
+ }
+ else
+ {
+ Cal.ShowSeconds = false;
+ }
+ }
+ else
+ {
+ Cal.ShowSeconds = false;
+ }
+
+ }
+
+ if (pCtrl !== undefined)
+ {
+ Cal.Ctrl = pCtrl;
+ }
+
+ if (pFormat!== undefined && pFormat !=="")
+ {
+ Cal.Format = pFormat.toUpperCase();
+ }
+ else
+ {
+ Cal.Format = "MMDDYYYY";
+ }
+
+ if (pScroller!== undefined && pScroller!=="")
+ {
+ if (pScroller.toUpperCase() === "ARROW")
+ {
+ Cal.Scroller = "ARROW";
+ }
+ else
+ {
+ Cal.Scroller = "DROPDOWN";
+ }
+ }
+
+ if (pEnableDateMode !== undefined && (pEnableDateMode === "future" || pEnableDateMode === "past")) {
+ Cal.EnableDateMode= pEnableDateMode;
+ }
+
+ exDateTime = document.getElementById(pCtrl).value; //Existing Date Time value in textbox.
+
+ if (exDateTime)
+ { //Parse existing Date String
+ var Sp1 = exDateTime.indexOf(DateSeparator, 0),//Index of Date Separator 1
+ Sp2 = exDateTime.indexOf(DateSeparator, parseInt(Sp1, 10) + 1),//Index of Date Separator 2
+ tSp1,//Index of Time Separator 1
+ tSp2,//Index of Time Separator 2
+ strMonth,
+ strDate,
+ strYear,
+ intMonth,
+ YearPattern,
+ strHour,
+ strMinute,
+ strSecond,
+ winHeight,
+ offset = parseInt(Cal.Format.toUpperCase().lastIndexOf("M"), 10) - parseInt(Cal.Format.toUpperCase().indexOf("M"), 10) - 1,
+ strAMPM = "";
+ //parse month
+
+ if (Cal.Format.toUpperCase() === "DDMMYYYY" || Cal.Format.toUpperCase() === "DDMMMYYYY")
+ {
+ if (DateSeparator === "")
+ {
+ strMonth = exDateTime.substring(2, 4 + offset);
+ strDate = exDateTime.substring(0, 2);
+ strYear = exDateTime.substring(4 + offset, 8 + offset);
+ }
+ else
+ {
+ if (exDateTime.indexOf("D*") !== -1)
+ { //DTG
+ strMonth = exDateTime.substring(8, 11);
+ strDate = exDateTime.substring(0, 2);
+ strYear = "20" + exDateTime.substring(11, 13); //Hack, nur für Jahreszahlen ab 2000
+ }
+ else
+ {
+ strMonth = exDateTime.substring(Sp1 + 1, Sp2);
+ strDate = exDateTime.substring(0, Sp1);
+ strYear = exDateTime.substring(Sp2 + 1, Sp2 + 5);
+ }
+ }
+ }
+
+ else if (Cal.Format.toUpperCase() === "MMDDYYYY" || Cal.Format.toUpperCase() === "MMMDDYYYY"){
+ if (DateSeparator === ""){
+ strMonth = exDateTime.substring(0, 2 + offset);
+ strDate = exDateTime.substring(2 + offset, 4 + offset);
+ strYear = exDateTime.substring(4 + offset, 8 + offset);
+ }
+ else{
+ strMonth = exDateTime.substring(0, Sp1);
+ strDate = exDateTime.substring(Sp1 + 1, Sp2);
+ strYear = exDateTime.substring(Sp2 + 1, Sp2 + 5);
+ }
+ }
+
+ else if (Cal.Format.toUpperCase() === "YYYYMMDD" || Cal.Format.toUpperCase() === "YYYYMMMDD")
+ {
+ if (DateSeparator === ""){
+ strMonth = exDateTime.substring(4, 6 + offset);
+ strDate = exDateTime.substring(6 + offset, 8 + offset);
+ strYear = exDateTime.substring(0, 4);
+ }
+ else{
+ strMonth = exDateTime.substring(Sp1 + 1, Sp2);
+ strDate = exDateTime.substring(Sp2 + 1, Sp2 + 3);
+ strYear = exDateTime.substring(0, Sp1);
+ }
+ }
+
+ else if (Cal.Format.toUpperCase() === "YYMMDD" || Cal.Format.toUpperCase() === "YYMMMDD")
+ {
+ if (DateSeparator === "")
+ {
+ strMonth = exDateTime.substring(2, 4 + offset);
+ strDate = exDateTime.substring(4 + offset, 6 + offset);
+ strYear = exDateTime.substring(0, 2);
+ }
+ else
+ {
+ strMonth = exDateTime.substring(Sp1 + 1, Sp2);
+ strDate = exDateTime.substring(Sp2 + 1, Sp2 + 3);
+ strYear = exDateTime.substring(0, Sp1);
+ }
+ }
+
+ if (isNaN(strMonth)){
+ intMonth = Cal.GetMonthIndex(strMonth);
+ }
+ else{
+ intMonth = parseInt(strMonth, 10) - 1;
+ }
+ if ((parseInt(intMonth, 10) >= 0) && (parseInt(intMonth, 10) < 12)) {
+ Cal.Month = intMonth;
+ }
+ //end parse month
+
+ //parse year
+ YearPattern = /^\d{4}$/;
+ if (YearPattern.test(strYear)) {
+ if ((parseInt(strYear, 10)>=StartYear) && (parseInt(strYear, 10)<= (dtToday.getFullYear()+EndYear)))
+ Cal.Year = parseInt(strYear, 10);
+ }
+ //end parse year
+
+ //parse Date
+ if ((parseInt(strDate, 10) <= Cal.GetMonDays()) && (parseInt(strDate, 10) >= 1)) {
+ Cal.Date = strDate;
+ }
+ //end parse Date
+
+ //parse time
+
+ if (Cal.ShowTime === true)
+ {
+ //parse AM or PM
+ if (TimeMode === 12)
+ {
+ strAMPM = exDateTime.substring(exDateTime.length - 2, exDateTime.length);
+ Cal.AMorPM = strAMPM;
+ }
+
+ tSp1 = exDateTime.indexOf(":", 0);
+ tSp2 = exDateTime.indexOf(":", (parseInt(tSp1, 10) + 1));
+ if (tSp1 > 0)
+ {
+ strHour = exDateTime.substring(tSp1, tSp1 - 2);
+ Cal.SetHour(strHour);
+
+ strMinute = exDateTime.substring(tSp1 + 1, tSp1 + 3);
+ Cal.SetMinute(strMinute);
+
+ strSecond = exDateTime.substring(tSp2 + 1, tSp2 + 3);
+ Cal.SetSecond(strSecond);
+
+ }
+ else if (exDateTime.indexOf("D*") !== -1)
+ { //DTG
+ strHour = exDateTime.substring(2, 4);
+ Cal.SetHour(strHour);
+ strMinute = exDateTime.substring(4, 6);
+ Cal.SetMinute(strMinute);
+
+ }
+ }
+
+ }
+ selDate = new Date(Cal.Year, Cal.Month, Cal.Date);//version 1.7
+ RenderCssCal(true);
+}
+
+function closewin(id) {
+ if (Cal.ShowTime === true) {
+ var MaxYear = dtToday.getFullYear() + EndYear;
+ var beforeToday =
+ (Cal.Date < dtToday.getDate()) &&
+ (Cal.Month === dtToday.getMonth()) &&
+ (Cal.Year === dtToday.getFullYear())
+ ||
+ (Cal.Month < dtToday.getMonth()) &&
+ (Cal.Year === dtToday.getFullYear())
+ ||
+ (Cal.Year < dtToday.getFullYear());
+
+ if ((Cal.Year <= MaxYear) && (Cal.Year >= StartYear) && (Cal.Month === selDate.getMonth()) && (Cal.Year === selDate.getFullYear())) {
+ if (Cal.EnableDateMode === "future") {
+ if (beforeToday === false) {
+ callback(id, Cal.FormatDate(Cal.Date));
+ }
+ }
+ else
+ callback(id, Cal.FormatDate(Cal.Date));
+ }
+ }
+
+ var CalId = document.getElementById(id);
+ CalId.focus();
+ winCal.style.visibility = 'hidden';
+}
+
+function changeBorder(element, col, oldBgColor)
+{
+ if (col === 0)
+ {
+ element.style.background = HoverColor;
+ element.style.borderColor = "black";
+ element.style.cursor = "pointer";
+ }
+
+ else
+ {
+ if (oldBgColor)
+ {
+ element.style.background = oldBgColor;
+ }
+ else
+ {
+ element.style.background = "white";
+ }
+ element.style.borderColor = "white";
+ element.style.cursor = "auto";
+ }
+}
+
+function selectDate(element, date) {
+ Cal.Date = date;
+ selDate = new Date(Cal.Year, Cal.Month, Cal.Date);
+ element.style.background = SelDateColor;
+ RenderCssCal();
+}
+
+function pickIt(evt)
+{
+ var objectID,
+ dom,
+ de,
+ b;
+ // accesses the element that generates the event and retrieves its ID
+ if (document.addEventListener)
+ { // w3c
+ objectID = evt.target.id;
+ if (objectID.indexOf(calSpanID) !== -1)
+ {
+ dom = document.getElementById(objectID);
+ cnLeft = evt.pageX;
+ cnTop = evt.pageY;
+
+ if (dom.offsetLeft)
+ {
+ cnLeft = (cnLeft - dom.offsetLeft);
+ cnTop = (cnTop - dom.offsetTop);
+ }
+ }
+
+ // get mouse position on click
+ xpos = (evt.pageX);
+ ypos = (evt.pageY);
+ }
+
+ else
+ { // IE
+ objectID = event.srcElement.id;
+ cnLeft = event.offsetX;
+ cnTop = (event.offsetY);
+
+ // get mouse position on click
+ de = document.documentElement;
+ b = document.body;
+
+ xpos = event.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
+ ypos = event.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
+ }
+
+ // verify if this is a valid element to pick
+ if (objectID.indexOf(calSpanID) !== -1)
+ {
+ domStyle = document.getElementById(objectID).style;
+ }
+
+ if (domStyle)
+ {
+ domStyle.zIndex = 100;
+ return false;
+ }
+
+ else
+ {
+ domStyle = null;
+ return;
+ }
+}
+
+
+
+function dragIt(evt)
+{
+ if (domStyle)
+ {
+ if (document.addEventListener)
+ { //for IE
+ domStyle.left = (event.clientX - cnLeft + document.body.scrollLeft) + 'px';
+ domStyle.top = (event.clientY - cnTop + document.body.scrollTop) + 'px';
+ }
+ else
+ { //Firefox
+ domStyle.left = (evt.clientX - cnLeft + document.body.scrollLeft) + 'px';
+ domStyle.top = (evt.clientY - cnTop + document.body.scrollTop) + 'px';
+ }
+ }
+}
+
+// performs a single increment or decrement
+function nextStep(whatSpinner, direction)
+{
+ if (whatSpinner === "Hour")
+ {
+ if (direction === "plus")
+ {
+ Cal.SetHour(Cal.Hours + 1);
+ RenderCssCal();
+ }
+ else if (direction === "minus")
+ {
+ Cal.SetHour(Cal.Hours - 1);
+ RenderCssCal();
+ }
+ }
+ else if (whatSpinner === "Minute")
+ {
+ if (direction === "plus")
+ {
+ Cal.SetMinute(parseInt(Cal.Minutes, 10) + 1);
+ RenderCssCal();
+ }
+ else if (direction === "minus")
+ {
+ Cal.SetMinute(parseInt(Cal.Minutes, 10) - 1);
+ RenderCssCal();
+ }
+ }
+
+}
+
+// starts the time spinner
+function startSpin(whatSpinner, direction)
+{
+ document.thisLoop = setInterval(function ()
+ {
+ nextStep(whatSpinner, direction);
+ }, 125); //125 ms
+}
+
+//stops the time spinner
+function stopSpin()
+{
+ clearInterval(document.thisLoop);
+}
+
+function dropIt()
+{
+ stopSpin();
+
+ if (domStyle)
+ {
+ domStyle = null;
+ }
+}
+
+// Default events configuration
+
+document.onmousedown = pickIt;
+document.onmousemove = dragIt;
+document.onmouseup = dropIt;
diff --git a/Dozentenmodul_V1/WebContent/js/login.js b/Dozentenmodul_V1/WebContent/js/login.js
new file mode 100644
index 00000000..6bdd0199
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/js/login.js
@@ -0,0 +1,9 @@
+function changeToEnglish()
+{
+ window.location.href = 'http://www.msn.com';
+}
+
+function changeToDeutsch()
+{
+ window.location.href = 'http://www.msn.com';
+} \ No newline at end of file
diff --git a/Dozentenmodul_V1/WebContent/js/tabcontent.js b/Dozentenmodul_V1/WebContent/js/tabcontent.js
new file mode 100644
index 00000000..526e940a
--- /dev/null
+++ b/Dozentenmodul_V1/WebContent/js/tabcontent.js
@@ -0,0 +1,171 @@
+/* http://www.menucool.com/tabbed-content Free to use. Version 2013.3.13 */
+
+var tabs = function() {
+ var b = function(c, a) {
+ var b = new RegExp("(^| )" + a + "( |$)");
+ return b.test(c.className) ? true : false
+ }, j = function(a, c) {
+ if (!b(a, c))
+ if (a.className == "")
+ a.className = c;
+ else
+ a.className += " " + c
+ }, h = function(a, b) {
+ var c = new RegExp("(^| )" + b + "( |$)");
+ a.className = a.className.replace(c, "$1");
+ a.className = a.className.replace(/ $/, "")
+ }, g = function(c, b) {
+ var a = document.getElementsByTagName("html");
+ if (a)
+ a[0].scrollTop += b
+ }, e = function() {
+ var b = window.location.pathname;
+ if (b.indexOf("/") != -1)
+ b = b.split("/");
+ var a = b[b.length - 1] || "root";
+ if (a.indexOf(".") != -1)
+ a = a.substring(0, a.indexOf("."));
+ if (a > 20)
+ a = a.substring(a.length - 19);
+ return a
+ }, d = e(), c = function(a) {
+ this.a = 0;
+ this.b = [];
+ this.c = [];
+ this.d = [];
+ this.e = 0;
+ this.f(a)
+ };
+ c.prototype = {
+ g : function(b) {
+ var c = new RegExp(d + b + "=(\\d+)"), a = document.cookie.match(c);
+ return a ? a[1] : this.h()
+ },
+ h : function() {
+ for ( var a = 0, c = this.d.length; a < c; a++)
+ if (b(this.d[a], "selected"))
+ return a;
+ return 0
+ },
+ j : function(d, c) {
+ for ( var b = d.getAttribute("rel"), a = 0; a < this.b.length; a++)
+ if (this.b[a].getAttribute("rel") == b) {
+ j(this.b[a].parentNode, "selected");
+ c && this.e && this.k(this.a, a)
+ } else
+ h(this.b[a].parentNode, "selected");
+ this.l(b)
+ },
+ k : function(a, b) {
+ document.cookie = d + a + "=" + b + "; path=/"
+ },
+ l : function(b) {
+ for ( var a = 0; a < this.c.length; a++)
+ this.c[a].style.display = this.c[a].id == b ? "block" : "none"
+ },
+ m : function(a) {
+ if (a.id)
+ for ( var b = 0; b < this.b.length; b++)
+ if (this.b[b].getAttribute("rel") == a.id)
+ return this.b[b];
+ return a.parentNode.nodeName != "BODY" ? this.m(a.parentNode)
+ : null
+ },
+ n : function(d, c) {
+ var a = document.getElementById(d);
+ if (a) {
+ var b = this.m(a);
+ if (b) {
+ this.j(b, 0);
+ if (!c)
+ setTimeout(function() {
+ a.scrollIntoView();
+ g(a, -120)
+ }, 0);
+ else
+ setTimeout(function() {
+ window.scrollTo(0, 0)
+ }, 0);
+ return 1
+ } else
+ return 0
+ }
+ },
+ f : function(a) {
+ this.a = a.i;
+ this.b = a.getElementsByTagName("a");
+ this.d = a.getElementsByTagName("li");
+ for ( var b = 0; b < this.b.length; b++)
+ if (this.b[b].getAttribute("rel")) {
+ this.c.push(document.getElementById(this.b[b]
+ .getAttribute("rel")));
+ var f = this;
+ this.b[b].onclick = function() {
+ f.j(this, 1);
+ return false
+ }
+ }
+ var e = a.getAttribute("persist") || "";
+ this.e = e.toLowerCase() == "true" ? 1 : 0;
+ var d = window.location.hash;
+ if (d && d.length > 1)
+ if (this.n(d.substring(1), window.location.search
+ .indexOf("noscroll=true") > -1))
+ return;
+ var c = this.e ? parseInt(this.g(a.i)) : this.h();
+ if (c >= this.b.length)
+ c = 0;
+ this.j(this.b[c], 0)
+ }
+ };
+ var a = [], i = function(d) {
+ var b = false;
+ function a() {
+ if (b)
+ return;
+ b = true;
+ setTimeout(d, 4)
+ }
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", a, false);
+ else if (document.attachEvent) {
+ try {
+ var e = window.frameElement != null
+ } catch (f) {
+ }
+ if (document.documentElement.doScroll && !e) {
+ function c() {
+ if (b)
+ return;
+ try {
+ document.documentElement.doScroll("left");
+ a()
+ } catch (d) {
+ setTimeout(c, 10)
+ }
+ }
+ c()
+ }
+ document.attachEvent("onreadystatechange", function() {
+ document.readyState === "complete" && a()
+ })
+ }
+ if (window.addEventListener)
+ window.addEventListener("load", a, false);
+ else
+ window.attachEvent && window.attachEvent("onload", a)
+ }, f = function() {
+ for ( var e = document.getElementsByTagName("ul"), d = 0, f = e.length; d < f; d++)
+ if (b(e[d], "tabs")) {
+ e[d].i = a.length;
+ a.push(new c(e[d]))
+ }
+ };
+ i(f);
+ return {
+ open : function(c, d) {
+ for ( var b = 0; b < a.length; b++)
+ a[b].n(c, d)
+ }
+ }
+}() \ No newline at end of file
diff --git a/Dozentenmodul_V1/build/classes/authentifizierung/Ldap.class b/Dozentenmodul_V1/build/classes/authentifizierung/Ldap.class
new file mode 100644
index 00000000..98f75ea2
--- /dev/null
+++ b/Dozentenmodul_V1/build/classes/authentifizierung/Ldap.class
Binary files differ
diff --git a/Dozentenmodul_V1/build/classes/db/DB_Access.class b/Dozentenmodul_V1/build/classes/db/DB_Access.class
new file mode 100644
index 00000000..3484ea31
--- /dev/null
+++ b/Dozentenmodul_V1/build/classes/db/DB_Access.class
Binary files differ
diff --git a/Dozentenmodul_V1/build/classes/db/MySQL.class b/Dozentenmodul_V1/build/classes/db/MySQL.class
new file mode 100644
index 00000000..96aa3208
--- /dev/null
+++ b/Dozentenmodul_V1/build/classes/db/MySQL.class
Binary files differ
diff --git a/Dozentenmodul_V1/src/authentifizierung/Ldap.java b/Dozentenmodul_V1/src/authentifizierung/Ldap.java
new file mode 100644
index 00000000..0265d350
--- /dev/null
+++ b/Dozentenmodul_V1/src/authentifizierung/Ldap.java
@@ -0,0 +1,98 @@
+package authentifizierung;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.net.Socket;
+import java.net.URL;
+import java.security.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.Hashtable;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.naming.AuthenticationException;
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.naming.ldap.LdapContext;
+import javax.net.ssl.HttpsURLConnection;
+import javax.servlet.RequestDispatcher;
+
+
+
+/**
+ * Servlet implementation class Ldap
+ */
+@WebServlet("/Ldap")
+public class Ldap extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public Ldap() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doPost(request,response);
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ response.setContentType("text/html;charset=UTF-8");
+ PrintWriter out = response.getWriter();
+ String userName=request.getParameter("User");
+ String pass=request.getParameter("Password");
+
+
+ try {
+
+ String base = "ou=hrz,o=fho";
+ String dn = "cn="+userName + "," + base;
+ String ldapURL = "ldaps://fs3.rz.hs-offenburg.de";
+
+ // Setup environment for authenticating
+
+ Hashtable<String, String> environment = new Hashtable<String, String>();
+ environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
+ environment.put(Context.PROVIDER_URL, ldapURL);
+ environment.put(Context.SECURITY_AUTHENTICATION, "simple");
+ environment.put(Context.SECURITY_PRINCIPAL, dn);
+ environment.put(Context.SECURITY_CREDENTIALS, pass);
+
+ try {
+ DirContext authContext = new InitialDirContext(environment);
+ // user is authenticated
+
+ RequestDispatcher disp= getServletContext().getRequestDispatcher("/GUI/de/Home.jsp");
+ disp.forward(request, response);
+ } catch (NamingException ex) {
+ RequestDispatcher disp= getServletContext().getRequestDispatcher("/GUI/de/Login_Error.jsp");
+ disp.forward(request, response);
+ Logger.getLogger(Ldap.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ } finally {
+ out.close();
+ }
+ }
+
+}
diff --git a/Dozentenmodul_V1/src/db/DB_Access.java b/Dozentenmodul_V1/src/db/DB_Access.java
new file mode 100644
index 00000000..99bdca06
--- /dev/null
+++ b/Dozentenmodul_V1/src/db/DB_Access.java
@@ -0,0 +1,78 @@
+package db;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.sql.*;
+
+
+import authentifizierung.Ldap;
+
+/**
+ * Servlet implementation class mySQLServlet
+ */
+@WebServlet("/DB_Access")
+public class DB_Access extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public DB_Access() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doPost(request,response);
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ response.setContentType("text/html;charset=UTF-8");
+ PrintWriter out = response.getWriter();
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ try {
+ Connection con=DriverManager.getConnection("jdbc:mysql://141.79.128.121/bwLehrpool?user=root&password=!N4ye,04u.");
+
+
+ RequestDispatcher disp= getServletContext().getRequestDispatcher("/GUI/de/Login_Error.jsp");
+ disp.forward(request, response);
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ }
+
+}
diff --git a/Dozentenmodul_V1/src/db/MySQL.java b/Dozentenmodul_V1/src/db/MySQL.java
new file mode 100644
index 00000000..64510e82
--- /dev/null
+++ b/Dozentenmodul_V1/src/db/MySQL.java
@@ -0,0 +1,108 @@
+package db;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+public class MySQL {
+
+ public Connection getConnection()
+ {
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException
+ | ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ try {
+ Connection con=DriverManager.getConnection("jdbc:mysql://141.79.128.121/bwLehrpool?user=root&password=!N4ye,04u.");
+ return con;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+
+
+ }
+
+
+ public ResultSet getHersteller(Connection con)
+ {
+ try {
+ Statement stm=con.createStatement();
+ return stm.executeQuery("SELECT distinct Hersteller FROM bwLehrpool.Anwendung order by Hersteller asc;");
+
+
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ return null;
+ }
+ public ResultSet getSoftware(Connection con, String Hersteller)
+ {
+
+ try {
+ Statement stm=con.createStatement();
+
+ return stm.executeQuery("SELECT Produktname FROM bwLehrpool.Anwendung WHERE Hersteller like '"+Hersteller+"' order by Produktname asc;");
+
+
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ return null;
+
+ }
+
+ public ResultSet getActiveVLs(Connection con, int VId)
+ {
+ Statement stm;
+ try {
+ stm = con.createStatement();
+ return stm.executeQuery("SELECT Laborname FROM bwLehrpool.VM where IstAktiv=1 and Verantwortlicher_pk="+VId+";");
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+
+ }
+
+ public ResultSet getInactiveVLs(Connection con, int VId)
+ {
+ Statement stm;
+ try {
+ stm = con.createStatement();
+ return stm.executeQuery("SELECT Laborname FROM bwLehrpool.VM where IstAktiv=0 and Verantwortlicher_pk="+VId+";");
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public ResultSet getOSList(Connection con)
+ {
+ Statement stm;
+ try {
+ stm = con.createStatement();
+ return stm.executeQuery("SELECT distinct OS FROM bwLehrpool.VM;");
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}