Some more tweaking.
authorEugen Sawin <sawine@me73.com>
Sun, 18 Dec 2011 15:57:15 +0100
changeset 74c0e6fb6cf6ef
parent 73 44d14b5e7bab
child 75 7b3fc980d9d7
Some more tweaking.
books.html
dark.css
experiments.html
factory/makefile
factory/v2012/dark.css
factory/v2012/frame.html
factory/v2012/howiwork.html
factory/v2012/links.html
factory/v2012/linksend.html
factory/v2012/resume.html
factory/v2012/script.js
howiwork.html
index.html
links.html
linksend.html
personalwork.html
resume.html
script.js
     1.1 --- a/books.html	Sun Dec 18 03:44:26 2011 +0100
     1.2 +++ b/books.html	Sun Dec 18 15:57:15 2011 +0100
     1.3 @@ -89,8 +89,10 @@
     1.4  
     1.5          </div>
     1.6          <div id="sidebar">
     1.7 -          <p>
     1.8 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
     1.9 +          <p>           
    1.10 +	    <a href="resume.html">
    1.11 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
    1.12 +            </a>            
    1.13              <br />I'm a programmer,<br />
    1.14              a student of computer science,<br />
    1.15              a music enthusiast.<br />
     2.1 --- a/dark.css	Sun Dec 18 03:44:26 2011 +0100
     2.2 +++ b/dark.css	Sun Dec 18 15:57:15 2011 +0100
     2.3 @@ -1,1 +1,561 @@
     2.4 -*{margin:0;padding:0;outline:0}html{background:#222}body{font:12px/1.4 Helvetica Neue,Arial,Helvetica,'Liberation Sans',FreeSans,sans-serif;color:#8d8d8d;margin:0;padding:0;background:#222;text-align:center}a,a:visited{text-decoration:none;color:#dedede}a:hover{color:#fff;border-bottom:1px dotted #438800}h1,h2,h3,h4{color:#FFF}h1{font-size:3.1em;letter-spacing:-2px;padding:15px 10px 5px 10px}h2{font-size:1.7em;color:#FFF;padding:20px 10px 5px 10px}h3{font-size:1.6em;font-weight:normal;padding:10px 10px 10px 5px}h4{color:#ababab;font-size:1.1em;padding:10px 5px 0 0}h5{font-size:1.0em;padding:0}p,dl{padding:5px 20px;margin:0}ul,ol{margin:5px 20px;padding:0 20px}ul{list-style:none}dt{color:#fafafa}dd{padding-left:25px}img{background:#1b1b1b;border:4px solid #262626;padding:0}img.float-right{margin:5px 0 5px 10px}img.float-left{margin:5px 10px 5px 0}canvas{border:4px solid #262626}#logo{border-style:none;position:relative;margin:0;padding:0;color:#f8f8f8;top:40px;left:25px;height:120px;width:670px}code{margin:5px 0;padding:15px;text-align:left;display:block;overflow:auto;font:500 1em/1.5em 'Lucida Console','Courier New',Monospace;background:#070707}acronym{cursor:help;border-bottom:1px dotted #5b5b5b}blockquote{margin:15px 10px;padding:10px 10px 10px 35px;background:#070707 url(quote.gif) no-repeat 10px 10px;border:1px solid #111;font-weight:normal;font-size:17px;line-height:1.6em;font-style:italic;font-family:Georgia,'Times New Roman',Times,serif;color:#808080}table{margin:15px 0;border-collapse:collapse}th{color:#fafafa;height:38px;padding-left:0;padding-right:12px;text-align:left}tr{color:#5b5b5b;height:15px}td{padding-left:0;padding-right:12px}form{margin:20px 10px;padding:15px 25px 25px 20px;background:#070707}form p{padding:12px 0 5px 0;margin:0}label{font-weight:bold;color:#fafafa}input,select,textarea{margin:5px 0;padding:5px;font:normal 1em Verdana,Tahoma,sans-serif;color:#6a6969;background:#0c0c0c}option{padding-right:.5em}#name,#email,#message{width:480px}input.button{font:bold 12px Arial,Verdana,Sans-serif;height:30px;padding:2px 3px;margin-top:8px;color:#48780e;background:#000;border-width:1px;border-style:solid;border-color:#1b1b1b}#wrap{position:relative;width:1020px;margin:0 auto;text-align:left}#content-wrap{clear:both;width:1020px;float:left;padding-top:15px;padding-bottom:50px}#header{position:relative;width:1020px;height:170px;margin:0;padding:0}#header h1#logo-text a{position:absolute;margin:0;padding:0;font:bold 65px 'Trebuchet MS',Tahoma,Helvetica,Arial,Sans-serif;letter-spacing:-1.5px;color:#f8f8f8;text-decoration:none;text-transform:none;top:70px;left:30px}#header h1#logo-text a:hover{background:0;margin-top:100px;padding-top:100px}#header img{position:relative;top:90px;left:22px;border:0}#header p#intro{position:absolute;margin:0;padding:0;font-family:'Trebuchet MS',Tahoma,Helvetica,Arial,Sans-serif;font-weight:bold;font-size:16px;line-height:1.5em;font-style:normal;text-transform:none;color:#5ad715;width:400px;top:145px;left:22px}#nav{position:absolute;margin:0;padding:0;height:50px;left:0;top:30px}#nav ul{float:left;list-style:none;height:50px;margin:0 0 0 10px;padding:0;display:inline}#nav ul li{display:inline;margin:0;padding:0}#nav ul li a{float:left;margin:0;padding:0 12px;font-weight:bold;font-size:1.25em;text-decoration:none;color:#c95723;color:#999;text-transform:uppercase}#nav ul li a:hover,#nav ul li a:active{color:#eee;background:0;border:0}#nav ul li#current a{color:#d33972}#subnav{position:absolute;margin:17px 280px;padding:0;height:50px;left:10px;top:30px}#subnav ul{float:left;list-style:none;height:50px;margin:0 0 0 10px;padding:0;display:inline}#subnav ul li{display:inline;margin:0;padding:0}#subnav ul li a{float:left;margin:0;padding:0 12px;font:bold 15px/50px 'Trebuchet MS',Helvetica,Arial,Geneva,sans-serif;text-decoration:none;color:#5ad715;text-transform:uppercase}#subnav ul li a:hover,#subnav ul li a:active{color:#eee;background:0;border:0}#subnav ul li#current a{color:#d33972}#main{float:left;width:670px;padding:0;margin:0 0 0 2px;display:inline}#main h2{padding:5px 22px;margin:15px 5px 0 0;color:#FFF}#main h2 a{color:#FFF;text-decoration:none;border:0}#main ul li{list-style:disc}#sidebar{float:right;width:300px;padding:0;margin:0 18px 0 0;display:inline;color:#5d5d5d}#random_quote{color:#c95723;font-style:italic}#sidebar ul.sidemenu{text-align:left;margin:20px 5px 20px 0;padding:0}#sidebar ul.sidemenu li{list-style:none;padding:8px 10px;margin:0}* html body #sidebar ul.sidemenu li{height:1%}#sidebar ul.sidemenu li a{text-decoration:none;border:0;color:#666;font-weight:bold;font-size:9pt}#sidebar ul.sidemenu li a span{color:#444;font-style:italic;font-weight:normal;font-size:8pt}#sidebar ul.sidemenu li a:hover,#sidebar ul.sidemenu li a:hover span{color:#fff}#sidebar ul.sidemenu ul{margin:0;padding:0}#sidebar ul.sidemenu ul li{border:0}#sidebar form#quick-search{padding:0;margin:20px 0 35px 0;border:0;width:290px;height:33px}#sidebar form#quick-search p{margin:0;padding:0}#sidebar form#quick-search input{float:left;border:0;background:transparent;color:#4e4e4e;margin:0}#sidebar form#quick-search .tbox{margin:5px 0 0 0;width:240px;display:inline}#search form#quick-search .btn{width:24px;height:24px}#sidebar form#quick-search label{display:none}#footer{clear:both;background:#222;color:#4e4e4e;width:100%;float:left}#footer a{color:#4e4e4e;border:0}#footer a:hover{color:#fafafa}#footer .rssfeed{background:url(images/rss.gif) no-repeat left 1px;padding-left:17px}#footer-left{float:left;width:70%}#footer-right{float:right;width:25%}.download a{color:#5ad715}.postmeta{padding:7px 5px;margin:5px 5px 5px 5px;font-size:1em;color:#545454;background:#222}.postmeta .date{margin:0 10px 0 5px}.postmeta a.comments{margin:0 10px 0 5px}.postmeta a.readmore{margin:0 10px 0 5px}.post-info{font-size:.95em;padding-top:3px;margin-left:5px;color:#444}.post-info a,.post-info a:visited{color:#ae275a}.float-left{float:left}.float-right{float:right}.align-left{text-align:left}.align-right{text-align:right}.no-border{border:0}.clearer{clear:both}.clear{display:inline-block}.clear:after{display:block;visibility:hidden;clear:both;height:0;content:"."}
     2.5 \ No newline at end of file
     2.6 +/*
     2.7 +ME73.com stylesheet
     2.8 +Author: Eugen Sawin <sawine@me73.com>
     2.9 +*/ 
    2.10 +
    2.11 +* { margin: 0; padding: 0; outline: 0 }
    2.12 +
    2.13 +html { background: #222222; }
    2.14 +
    2.15 +body {
    2.16 +    /*font: 11px/165% 'Lucida Grande', Geneva, Verdana, Arial, Helvetica, sans-serif;*/
    2.17 +    font: 12px/1.4 Helvetica Neue, Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;   
    2.18 +    color: #8D8D8D;	
    2.19 +    margin: 0; 	
    2.20 +    padding: 0; 
    2.21 +    background: #222222;	
    2.22 +    text-align: center;
    2.23 +}
    2.24 +
    2.25 +/* Links */
    2.26 +a, a:visited {
    2.27 +    text-decoration: none;
    2.28 +    color: #DEDEDE;	
    2.29 +}
    2.30 +a:hover {
    2.31 +    color: #fff;
    2.32 +    border-bottom: 1px dotted #438800;
    2.33 +}
    2.34 +
    2.35 +/* headers */
    2.36 +h1, h2, h3, h4 {
    2.37 +    /*font-family: 'Trebuchet MS', Helvetica, Tahoma, Arial, Sans-serif;*/
    2.38 +    /*color: #0AEAEA;*/
    2.39 +    color: #FFF;
    2.40 +}
    2.41 +h1 {    
    2.42 +    font-size: 3.1em;	
    2.43 +    letter-spacing: -2px;
    2.44 +    padding: 15px 10px 5px 10px;	
    2.45 +}
    2.46 +h2 {
    2.47 +    font-size: 1.7em;
    2.48 +    /*color: #895F30;*/
    2.49 +    color: #FFF;
    2.50 +    padding: 20px 10px 5px 10px;	
    2.51 +}
    2.52 +h3 {    
    2.53 +    font-size: 1.6em;	
    2.54 +    font-weight: normal;
    2.55 +    padding: 10px 10px 10px 5px;		
    2.56 +}
    2.57 +
    2.58 +h4 {
    2.59 +    color: #AbAbAb;	
    2.60 +    font-size: 1.1em;
    2.61 +    /*font-weight: bold;*/
    2.62 +    padding: 10px 5px 0px 0px;
    2.63 +}
    2.64 +
    2.65 +h5 {
    2.66 +    font-size: 1.0em;
    2.67 +    padding: 0px 0px 0px 0px;
    2.68 +}
    2.69 +
    2.70 +p, dl {
    2.71 +    padding: 5px 20px;
    2.72 +    margin: 0;
    2.73 +}
    2.74 +
    2.75 +ul, ol {
    2.76 +    margin: 5px 20px;
    2.77 +    padding: 0px 20px;
    2.78 +}
    2.79 +ul { 
    2.80 +    list-style-type: square;
    2.81 +}
    2.82 +
    2.83 +dt {
    2.84 +    /*font-weight: bold;*/
    2.85 +    color: #FAFAFA;
    2.86 +}
    2.87 +dd {
    2.88 +    padding-left: 25px; 
    2.89 +}
    2.90 +
    2.91 +/* images */
    2.92 +img {
    2.93 +    background: #1B1B1B;
    2.94 +    border: 4px solid #262626;
    2.95 +    padding: 0px;
    2.96 +}
    2.97 +
    2.98 +img.float-right {
    2.99 +    margin: 5px 0px 5px 10px;  
   2.100 +}
   2.101 +
   2.102 +img.float-left {
   2.103 +    margin: 5px 10px 5px 0px;
   2.104 +}
   2.105 +
   2.106 +canvas {
   2.107 +    border: 4px solid #262626;  
   2.108 +} 
   2.109 +
   2.110 +#logo {
   2.111 +    border-style: none; 
   2.112 +    position: relative;
   2.113 +    margin: 0; 
   2.114 +    padding: 0;
   2.115 +    color: #F8F8F8;    
   2.116 +    /* change the values of top and left to adjust the position of the logo*/
   2.117 +    top: 40px; left: 25px;
   2.118 +    height: 120px;
   2.119 +    width: 670px;
   2.120 +}
   2.121 +
   2.122 +code {
   2.123 +    margin: 5px 0;
   2.124 +    padding: 15px;
   2.125 +    text-align: left;
   2.126 +    display: block;
   2.127 +    overflow: auto;  
   2.128 +    font: 500 1em/1.5em 'Lucida Console', 'Courier New', Monospace;
   2.129 +    /* white-space: pre; */
   2.130 +    background: #070707;
   2.131 +/*border: 1px solid #111;   */
   2.132 +}
   2.133 +acronym {
   2.134 +    cursor: help;
   2.135 +    border-bottom: 1px dotted #5B5B5B;
   2.136 +}
   2.137 +blockquote {
   2.138 +    margin: 15px 10px;
   2.139 +    padding: 10px 10px 10px 35px;  
   2.140 +    background: #070707 url(quote.gif) no-repeat 10px 10px;
   2.141 +    border: 1px solid #111; 
   2.142 +    font-weight: normal;
   2.143 +    font-size: 17px;
   2.144 +    line-height: 1.6em;
   2.145 +    font-style: italic;
   2.146 +    font-family: Georgia, 'Times New Roman', Times, serif;	
   2.147 +    color: #808080;	
   2.148 +}
   2.149 +
   2.150 +/* start - table */
   2.151 +table {
   2.152 +    margin: 15px 0px; 	
   2.153 +    border-collapse: collapse;			
   2.154 +}
   2.155 +th {
   2.156 +    color: #FAFAFA;
   2.157 +    height: 38px;
   2.158 +    padding-left: 0px;
   2.159 +    padding-right: 12px;	
   2.160 +    text-align: left;	
   2.161 +}
   2.162 +tr {
   2.163 +    color: #5b5b5b;
   2.164 +    height: 15px;		
   2.165 +}
   2.166 +td {
   2.167 +    padding-left: 0px;
   2.168 +    padding-right: 12px;	
   2.169 +}
   2.170 +/* end - table */
   2.171 +
   2.172 +
   2.173 +/* form elements */
   2.174 +form {
   2.175 +    margin: 20px 10px; 
   2.176 +    padding: 15px 25px 25px 20px; 
   2.177 +    background: #070707; 	
   2.178 +/*border: 1px solid #111;	*/
   2.179 +}
   2.180 +form p {
   2.181 +    /*border-bottom: 1px solid #101010;*/
   2.182 +    padding: 12px 0 5px 0;	margin: 0;	
   2.183 +}
   2.184 +label {
   2.185 +    font-weight: bold;	
   2.186 +    color: #FAFAFA;
   2.187 +}
   2.188 +input, select, textarea {
   2.189 +    margin: 5px 0;
   2.190 +    padding: 5px;
   2.191 +    font: normal 1em Verdana, Tahoma, sans-serif;
   2.192 +    color: #6A6969;
   2.193 +    background: #0C0C0C;  
   2.194 +/*border: 1px solid #1C1C1C;*/
   2.195 +}
   2.196 +option { padding-right: 0.5em; } 
   2.197 +
   2.198 +#name, #email, #message{
   2.199 +    width: 480px;
   2.200 +}
   2.201 +input.button { 
   2.202 +    font: bold 12px Arial, Verdana, Sans-serif; 
   2.203 +    height: 30px;
   2.204 +    padding: 2px 3px; 
   2.205 +    margin-top: 8px;
   2.206 +    color: #48780E;
   2.207 +    background: #000;
   2.208 +    border-width: 1px;
   2.209 +    border-style: solid;
   2.210 +    border-color: #1B1B1B;
   2.211 +}
   2.212 +
   2.213 +
   2.214 +/* ------------------------------------------
   2.215 +   LAYOUT
   2.216 +   ------------------------------------------- */ 
   2.217 +#wrap { 
   2.218 +    position: relative;
   2.219 +    width: 1020px;
   2.220 +    margin: 0 auto;
   2.221 +    text-align: left;		
   2.222 +}
   2.223 +#content-wrap {
   2.224 +    clear: both;
   2.225 +    width: 1020px;	
   2.226 +    float: left;	
   2.227 +    padding-top: 15px;
   2.228 +    padding-bottom: 50px;	
   2.229 +}
   2.230 +#header {
   2.231 +    position: relative;
   2.232 +    width: 1020px;	
   2.233 +    height: 170px;	
   2.234 +    margin: 0; 
   2.235 +    padding: 0;			
   2.236 +}
   2.237 +#header h1#logo-text a {
   2.238 +    position: absolute;
   2.239 +    margin: 0; padding: 0;
   2.240 +    font: bold 65px 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;	
   2.241 +    letter-spacing: -1.5px;
   2.242 +    color: #F8F8F8;
   2.243 +    text-decoration: none;
   2.244 +    text-transform: none;
   2.245 +    
   2.246 +    /* change the values of top and left to adjust the position of the logo*/
   2.247 +    top: 70px; left: 30px;	
   2.248 +}
   2.249 +#header h1#logo-text a:hover {
   2.250 +    background: none;
   2.251 +    margin-top: 100px;	
   2.252 +    padding-top: 100px;
   2.253 +}
   2.254 +#header img {
   2.255 +    position: relative;
   2.256 +    top: 90px;
   2.257 +    left: 22px;
   2.258 +    border: 0px;
   2.259 +}
   2.260 +
   2.261 +#header p#intro {
   2.262 +    position: absolute;
   2.263 +    margin: 0; 
   2.264 +    padding: 0;
   2.265 +    font-family: 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;
   2.266 +    font-weight: bold;
   2.267 +    font-size: 16px;	
   2.268 +    line-height: 1.5em;
   2.269 +    font-style: normal;
   2.270 +    text-transform: none;
   2.271 +    /*color: #6D7D2D;*/
   2.272 +    color: #5ad715;
   2.273 +    width: 400px;
   2.274 +    
   2.275 +    /* change the values of top and left to adjust the position */
   2.276 +    top: 145px; 
   2.277 +    left: 22px;		
   2.278 +}
   2.279 +
   2.280 +/*  Navigation  */
   2.281 +#nav {
   2.282 +    position: absolute;
   2.283 +    margin: 0; 
   2.284 +    padding: 0;		
   2.285 +    height: 50px;
   2.286 +    left: 0px;	
   2.287 +    top: 30px;			
   2.288 +}
   2.289 +#nav ul {
   2.290 +    float: left;
   2.291 +    
   2.292 +    height: 50px;
   2.293 +    margin: 0 0 0 10px; 
   2.294 +    padding: 0;	
   2.295 +    display: inline;
   2.296 +}
   2.297 +#nav ul li {
   2.298 +    display: inline;
   2.299 +    margin: 0; 
   2.300 +    padding: 0;
   2.301 +}
   2.302 +#nav ul li a {
   2.303 +    float: left;
   2.304 +    margin: 0;	
   2.305 +    padding: 0 12px;
   2.306 +    font-weight: bold;
   2.307 +    font-size: 1.25em;
   2.308 +    text-decoration: none;	
   2.309 +    color: #c95723;
   2.310 +    color: #999;	
   2.311 +    text-transform: uppercase;
   2.312 +}
   2.313 +#nav ul li a:hover, 
   2.314 +#nav ul li a:active {
   2.315 +    color: #eee;
   2.316 +    background: none;
   2.317 +    border: none;
   2.318 +}
   2.319 +#nav ul li#current a {	
   2.320 +    color: #D33972;	
   2.321 +}
   2.322 +
   2.323 +#subnav{
   2.324 +    position: absolute;
   2.325 +    margin: 17px 280px; 
   2.326 +    padding: 0;		
   2.327 +    height: 50px;
   2.328 +    left: 10px;	
   2.329 +    top: 30px;		
   2.330 +}
   2.331 +
   2.332 +#subnav ul {
   2.333 +    float: left;
   2.334 +  
   2.335 +    height: 50px;
   2.336 +    margin: 0 0 0 10px; 
   2.337 +    padding: 0;	
   2.338 +    display: inline;
   2.339 +}
   2.340 +#subnav ul li {
   2.341 +    display: inline;
   2.342 +    margin: 0; 
   2.343 +    padding: 0;
   2.344 +}
   2.345 +#subnav ul li a {
   2.346 +    float: left;
   2.347 +    margin: 0;	
   2.348 +    padding: 0 12px;
   2.349 +    font: bold 15px/50px 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif;	
   2.350 +    text-decoration: none;	
   2.351 +    color: #5ad715;	
   2.352 +    text-transform: uppercase;
   2.353 +}
   2.354 +#subnav ul li a:hover, 
   2.355 +#subnav ul li a:active {
   2.356 +    color: #eee;
   2.357 +    background: none;
   2.358 +    border: none;
   2.359 +}
   2.360 +#subnav ul li#current a {	
   2.361 +    color: #D33972;	
   2.362 +}
   2.363 +
   2.364 +/* Main Column */
   2.365 +#main {
   2.366 +    float: left;
   2.367 +    width: 670px;
   2.368 +    padding: 0; 
   2.369 +    margin: 0 0 0 2px;
   2.370 +    display: inline;	
   2.371 +}
   2.372 +#main h2 {
   2.373 +    padding: 5px 22px;	
   2.374 +    margin: 15px 5px 0px 0px;
   2.375 +    /*font: bold 2.4em 'Trebuchet MS', Helvetica, Arial, sans-serif;				*/
   2.376 +    /*color: #45D5E6;
   2.377 +      color: #00cccc;*/
   2.378 +    color: #FFF;	
   2.379 +}
   2.380 +#main h2 a {
   2.381 +    /*color: #45D5E6;*/
   2.382 +    color: #FFF;
   2.383 +    text-decoration: none;		
   2.384 +    border: none;		
   2.385 +}
   2.386 +#main ul li {
   2.387 +    /*list-style-image: url(images/bullet.png);*/
   2.388 +    list-style-type: square;
   2.389 +}
   2.390 +
   2.391 +/* Sidebar */	
   2.392 +#sidebar {
   2.393 +    float: right;
   2.394 +    width: 300px;
   2.395 +    padding: 0; 
   2.396 +    margin: 0px 18px 0 0;		
   2.397 +    display: inline;
   2.398 +    color: #5D5D5D;   
   2.399 +/*border: 4px solid #262626;*/
   2.400 +}
   2.401 +
   2.402 +#random_quote {  
   2.403 +    color: #c95723;
   2.404 +    font-style: italic;
   2.405 +}
   2.406 +
   2.407 +#sidebar h2 {
   2.408 +    font-size: 2.3em;
   2.409 +    color: black;
   2.410 +}
   2.411 +
   2.412 +#sidebar h3 {
   2.413 +/*padding: 5px 12px;
   2.414 +  margin: 15px 5px 10px 0;
   2.415 +  font: bold 2.4em 'Trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;				
   2.416 +  color: #45D5E6;*/
   2.417 +/*border-bottom: 1px solid #121212; */
   2.418 +/*background-image: url(pattern.gif);		*/	
   2.419 +}
   2.420 +#sidebar ul.sidemenu {
   2.421 +    text-align: left;
   2.422 +    margin: 20px 5px 20px 0px; 
   2.423 +    padding: 0;		
   2.424 +/*border-top: 1px solid #111;		*/
   2.425 +}
   2.426 +#sidebar ul.sidemenu li {
   2.427 +    list-style: none;
   2.428 +    padding: 8px 10px;
   2.429 +    margin: 0;    
   2.430 +/*border-bottom: 1px solid #111;*/
   2.431 +}
   2.432 +* html body #sidebar ul.sidemenu li {
   2.433 +    height: 1%;
   2.434 +}
   2.435 +#sidebar ul.sidemenu li a {
   2.436 +    text-decoration: none;	
   2.437 +    border: none;
   2.438 +    color: #666666;
   2.439 +    font-weight: bold;		
   2.440 +    /*font-family: 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;*/
   2.441 +    font-size: 9pt;		
   2.442 +}
   2.443 +#sidebar ul.sidemenu li a span {
   2.444 +    color: #444;	
   2.445 +    /*font-family: Georgia, 'Times New Roman', Times, serif;*/
   2.446 +    font-style: italic;
   2.447 +    font-weight: normal;	
   2.448 +    font-size: 8pt;
   2.449 +}
   2.450 +#sidebar ul.sidemenu li a:hover,
   2.451 +#sidebar ul.sidemenu li a:hover span {	
   2.452 +    color: #fff;	
   2.453 +}
   2.454 +#sidebar ul.sidemenu ul { margin: 0 0 0 0px; padding: 0; }
   2.455 +#sidebar ul.sidemenu ul li { border: none; }
   2.456 +
   2.457 +/* header quick search */
   2.458 +#sidebar form#quick-search {
   2.459 +    padding: 0; 
   2.460 +    margin: 20px 0 35px 0;
   2.461 +    border: none;
   2.462 +    width: 290px; height: 33px;
   2.463 +/*background: url(header-search.gif) no-repeat;		*/
   2.464 +}
   2.465 +#sidebar form#quick-search p {
   2.466 +    margin: 0; 
   2.467 +    padding: 0;		
   2.468 +}
   2.469 +#sidebar form#quick-search input {
   2.470 +    float: left;
   2.471 +    border: none;
   2.472 +    background: transparent;
   2.473 +    color: #4E4E4E;	
   2.474 +    margin: 0;
   2.475 +}
   2.476 +#sidebar form#quick-search .tbox {
   2.477 +    margin: 5px 0 0 0px; 
   2.478 +    width: 240px;	
   2.479 +    display: inline;	
   2.480 +}
   2.481 +#search form#quick-search .btn{
   2.482 +    width: 24px; height: 24px;			
   2.483 +}
   2.484 +#sidebar form#quick-search label {
   2.485 +    display: none;
   2.486 +}
   2.487 +
   2.488 +/* footer */
   2.489 +#footer {
   2.490 +    clear: both;
   2.491 +    /*padding: 1em 0 2.5em 0;*/
   2.492 +    background: #222222;
   2.493 +    color: #4E4E4E;
   2.494 +    width: 100%;
   2.495 +    float: left;			
   2.496 +}
   2.497 +#footer a {	
   2.498 +    color: #4E4E4E;
   2.499 +    /*color: #0E909C;*/
   2.500 +    border: none;
   2.501 +}
   2.502 +#footer a:hover {
   2.503 +    color: #fafafa;
   2.504 +}
   2.505 +#footer .rssfeed {
   2.506 +    background: url(images/rss.gif) no-repeat left 1px;
   2.507 +    padding-left: 17px;
   2.508 +}
   2.509 +#footer-left {
   2.510 +    float: left;
   2.511 +    width: 70%;
   2.512 +}
   2.513 +#footer-right {
   2.514 +    float: right;
   2.515 +    width: 25%;
   2.516 +}
   2.517 +
   2.518 +.download a
   2.519 +{	
   2.520 +    color: #5ad715;
   2.521 +}
   2.522 +
   2.523 +/* postmeta */
   2.524 +.postmeta {	
   2.525 +    padding: 7px 5px; 
   2.526 +    margin: 5px 5px 5px 5px;	
   2.527 +    font-size: 1em;	
   2.528 +    color: #545454;
   2.529 +    /*border: 1px solid #111; */
   2.530 +    background: #222222; 
   2.531 +}
   2.532 +.postmeta .date{ margin: 0 10px 0 5px;	}
   2.533 +.postmeta a.comments { margin: 0 10px 0 5px;	}
   2.534 +.postmeta a.readmore { margin: 0 10px 0 5px;	}
   2.535 +
   2.536 +.post-info { font-size: .95em; padding-top: 3px; margin-left: 5px; color: #444;	}
   2.537 +.post-info a, .post-info a:visited { color: #AE275A; }
   2.538 +
   2.539 +/* alignment classes */
   2.540 +.float-left  { float: left; }
   2.541 +.float-right { float: right; }
   2.542 +.align-left  { text-align: left; }
   2.543 +.align-right { text-align: right; }
   2.544 +
   2.545 +/* display and additional classes */
   2.546 +.no-border { 
   2.547 +    border: none; 
   2.548 +}
   2.549 +
   2.550 +.clearer { 
   2.551 +    clear: both; 
   2.552 +}
   2.553 +
   2.554 +.clear {
   2.555 +    display:inline-block; 
   2.556 +}
   2.557 +
   2.558 +.clear:after {
   2.559 +    display:block; 
   2.560 +    visibility:hidden; 
   2.561 +    clear:both; 
   2.562 +    height:0; 
   2.563 +    content: "."; 
   2.564 +}
   2.565 +
   2.566 +
     3.1 --- a/experiments.html	Sun Dec 18 03:44:26 2011 +0100
     3.2 +++ b/experiments.html	Sun Dec 18 15:57:15 2011 +0100
     3.3 @@ -51,8 +51,10 @@
     3.4  
     3.5          </div>
     3.6          <div id="sidebar">
     3.7 -          <p>
     3.8 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
     3.9 +          <p>           
    3.10 +	    <a href="resume.html">
    3.11 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
    3.12 +            </a>            
    3.13              <br />I'm a programmer,<br />
    3.14              a student of computer science,<br />
    3.15              a music enthusiast.<br />
     4.1 --- a/factory/makefile	Sun Dec 18 03:44:26 2011 +0100
     4.2 +++ b/factory/makefile	Sun Dec 18 15:57:15 2011 +0100
     4.3 @@ -6,6 +6,8 @@
     4.4  
     4.5  compile:
     4.6  	./create_page -a $(FRAME)
     4.7 -	java -jar yuicompressor.jar $(VERSION)/script.js -o ../script.js --charset utf-8
     4.8 -	java -jar yuicompressor.jar $(VERSION)/dark.css -o ../dark.css --charset utf-8
     4.9 +	cp $(VERSION)/script.js ../
    4.10 +	cp $(VERSION)/dark.css ../
    4.11 +	#java -jar yuicompressor.jar $(VERSION)/script.js -o ../script.js --charset utf-8
    4.12 +	#java -jar yuicompressor.jar $(VERSION)/dark.css -o ../dark.css --charset utf-8
    4.13  
     5.1 --- a/factory/v2012/dark.css	Sun Dec 18 03:44:26 2011 +0100
     5.2 +++ b/factory/v2012/dark.css	Sun Dec 18 15:57:15 2011 +0100
     5.3 @@ -71,7 +71,9 @@
     5.4      margin: 5px 20px;
     5.5      padding: 0px 20px;
     5.6  }
     5.7 -ul { list-style: none; }
     5.8 +ul { 
     5.9 +    list-style-type: square;
    5.10 +}
    5.11  
    5.12  dt {
    5.13      /*font-weight: bold;*/
    5.14 @@ -281,7 +283,7 @@
    5.15  }
    5.16  #nav ul {
    5.17      float: left;
    5.18 -    list-style: none;
    5.19 +    
    5.20      height: 50px;
    5.21      margin: 0 0 0 10px; 
    5.22      padding: 0;	
    5.23 @@ -324,7 +326,7 @@
    5.24  
    5.25  #subnav ul {
    5.26      float: left;
    5.27 -    list-style: none;
    5.28 +  
    5.29      height: 50px;
    5.30      margin: 0 0 0 10px; 
    5.31      padding: 0;	
    5.32 @@ -378,7 +380,7 @@
    5.33  }
    5.34  #main ul li {
    5.35      /*list-style-image: url(images/bullet.png);*/
    5.36 -    list-style: disc;
    5.37 +    list-style-type: square;
    5.38  }
    5.39  
    5.40  /* Sidebar */	
    5.41 @@ -392,11 +394,16 @@
    5.42  /*border: 4px solid #262626;*/
    5.43  }
    5.44  
    5.45 -#random_quote {   
    5.46 +#random_quote {  
    5.47      color: #c95723;
    5.48      font-style: italic;
    5.49  }
    5.50  
    5.51 +#sidebar h2 {
    5.52 +    font-size: 2.3em;
    5.53 +    color: black;
    5.54 +}
    5.55 +
    5.56  #sidebar h3 {
    5.57  /*padding: 5px 12px;
    5.58    margin: 15px 5px 10px 0;
     6.1 --- a/factory/v2012/frame.html	Sun Dec 18 03:44:26 2011 +0100
     6.2 +++ b/factory/v2012/frame.html	Sun Dec 18 15:57:15 2011 +0100
     6.3 @@ -36,8 +36,10 @@
     6.4            /insert{content}
     6.5          </div>
     6.6          <div id="sidebar">
     6.7 -          <p>
     6.8 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
     6.9 +          <p>           
    6.10 +	    <a href="resume.html">
    6.11 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
    6.12 +            </a>            
    6.13              <br />I'm a programmer,<br />
    6.14              a student of computer science,<br />
    6.15              a music enthusiast.<br />
     7.1 --- a/factory/v2012/howiwork.html	Sun Dec 18 03:44:26 2011 +0100
     7.2 +++ b/factory/v2012/howiwork.html	Sun Dec 18 15:57:15 2011 +0100
     7.3 @@ -34,7 +34,7 @@
     7.4  The saviour of web frontends. Makes web development endurable.</li>
     7.5  <li>
     7.6  <h4>Go  *</h4>
     7.7 -Good idea, weird syntax. Doesn't go well with me.</li>
     7.8 +Good idea, weird syntax. Doesn't go well with me. Might give it another go.</li>
     7.9  <li>
    7.10  <h4>Common Lisp  **</h4>
    7.11  The purity of programming love. Haven't seen the light yet.</li>
     8.1 --- a/factory/v2012/links.html	Sun Dec 18 03:44:26 2011 +0100
     8.2 +++ b/factory/v2012/links.html	Sun Dec 18 15:57:15 2011 +0100
     8.3 @@ -24,7 +24,8 @@
     8.4  <h2>Professional</h2>
     8.5  <ul>
     8.6  <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
     8.7 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
     8.8 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called 
     8.9 +<a href="http://eprover.org">E</a>.
    8.10  </li>
    8.11  </ul>
    8.12  
    8.13 @@ -33,15 +34,12 @@
    8.14  <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
    8.15  A good friend and designer for the visual arts.
    8.16  </li>-->
    8.17 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
    8.18 -A fellow student and companion in the quest for world domination.
    8.19 +<li><h4><a href="http://www.chris-koenig.de">Christian K&ouml;nig</a></h4>
    8.20 +An ex-fellow student and companion in the quest for world domination.
    8.21  </li>
    8.22  <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
    8.23 -A friend, programmer and amateuer photographer.
    8.24 +An ex-fellow student and friendly programmer.
    8.25  </li>
    8.26 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
    8.27 -A fellow student of artificial intelligence.
    8.28 -</li>-->
    8.29  </ul>
    8.30  
    8.31  <h2>Recursive</h2>
     9.1 --- a/factory/v2012/linksend.html	Sun Dec 18 03:44:26 2011 +0100
     9.2 +++ b/factory/v2012/linksend.html	Sun Dec 18 15:57:15 2011 +0100
     9.3 @@ -13,6 +13,9 @@
     9.4  
     9.5  <h2>The Bad</h2>
     9.6  <ul>
     9.7 +<li><h4><a href="https://twitter.com/notchnik">@notchnik</a></h4>
     9.8 +The emptyness in 140 characters.
     9.9 +</li>
    9.10  <li><h4><a href="https://plus.google.com/101733701635400621767/">Google+ profile</a></h4>
    9.11  Staying in touch with people by keeping them at a distance.
    9.12  </li>
    9.13 @@ -21,7 +24,8 @@
    9.14  <h2>Professional</h2>
    9.15  <ul>
    9.16  <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
    9.17 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
    9.18 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called 
    9.19 +<a href="http://eprover.org">E</a>.
    9.20  </li>
    9.21  </ul>
    9.22  
    9.23 @@ -30,15 +34,12 @@
    9.24  <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
    9.25  A good friend and designer for the visual arts.
    9.26  </li>-->
    9.27 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
    9.28 -A fellow student and companion in the quest for world domination.
    9.29 +<li><h4><a href="http://www.chris-koenig.de">Christian K&ouml;nig</a></h4>
    9.30 +An ex-fellow student and companion in the quest for world domination.
    9.31  </li>
    9.32  <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
    9.33 -A friend, programmer and amateuer photographer.
    9.34 +An ex-fellow student and friendly programmer.
    9.35  </li>
    9.36 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
    9.37 -A fellow student of artificial intelligence.
    9.38 -</li>-->
    9.39  </ul>
    9.40  
    9.41  <h2>Recursive</h2>
    10.1 --- a/factory/v2012/resume.html	Sun Dec 18 03:44:26 2011 +0100
    10.2 +++ b/factory/v2012/resume.html	Sun Dec 18 15:57:15 2011 +0100
    10.3 @@ -2,7 +2,7 @@
    10.4  <h2>Employment</h2>
    10.5  <ul>
    10.6  <li>
    10.7 -<h4>Software Engineer, Comsoft GmbH, 03/2010-09/2010</h4>
    10.8 +<h4>Software Engineer, <a href="http://comsoft.aero">Comsoft GmbH</a>, 03/2010-09/2010</h4>
    10.9  <ul>
   10.10  <li>
   10.11  Development of safety-critical back end systems for the ATC domain.
   10.12 @@ -12,37 +12,37 @@
   10.13  </li>
   10.14  </ul>
   10.15  </li>
   10.16 -<li><h4>Working Student &amp; Internship, Comsoft GmbH, 10/2008-02/2010</h4>
   10.17 +<li><h4>Working Student &amp; Internship, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2008-02/2010</h4>
   10.18  Development for safety-critical embedded systems.
   10.19  </li>
   10.20  <li>
   10.21 -<h4>Student Assistant, University of Applied Sciences Offenburg, 10/2008-03/2009</h4>
   10.22 +<h4>Student Assistant, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 10/2008-03/2009</h4>
   10.23  Assistance at a university course for object-oriented software development.
   10.24  </li>
   10.25  </ul>
   10.26  <h2>Education</h2>
   10.27  <ul>
   10.28  <li>
   10.29 -<h4>University of Freiburg, since 10/2010</h4>
   10.30 +<h4><a href="http://uni-freiburg.de">University of Freiburg</a>, since 10/2010</h4>
   10.31  M.Sc. in Applied Computer Science.<br />
   10.32  Emphasis in Artificial Intelligence and Algorithm Theory.
   10.33  </li>
   10.34  <li>
   10.35 -<h4>University of Applied Sciences Offenburg, 03/2007-02/2010</h4>
   10.36 +<h4><a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 03/2007-02/2010</h4>
   10.37  B.Sc. in Applied Computer Science.<br />
   10.38  Emphasis in Distributed Systems.
   10.39  </li>
   10.40  </ul>
   10.41  <h2>Accompanying the Studies</h2>
   10.42  <ul>
   10.43 -<li><h4>Bachelor Thesis, Comsoft GmbH, 10/2009-04/2010</h4>
   10.44 +<li><h4>Bachelor Thesis, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2009-04/2010</h4>
   10.45  "Flexible Modeling of Dynamic Air Space Constraints and its Application in Departure Flow Optimisation"  
   10.46  <div class="download"><a href="http://me73.com/downloads/campus_magazin_29.pdf">
   10.47  Campus Mag (P. 36 / German)</a></div>
   10.48  <div class="download"><a href="http://me73.com/downloads/discover_me_24.pdf">
   10.49  Discover ME (P. 22 / German)</a></div>
   10.50  </li>
   10.51 -<li><h4>University Project, University of Applied Sciences Offenburg &amp; Karlsruhe Institute of Technology, 2008</h4>
   10.52 +<li><h4>University Project, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a> &amp; <a href="http://kit.edu">Karlsruhe Institute of Technology</a>, 2008</h4>
   10.53  Development of a client for 3D data streaming and visualisation. 
   10.54  </li>
   10.55  </ul>
    11.1 --- a/factory/v2012/script.js	Sun Dec 18 03:44:26 2011 +0100
    11.2 +++ b/factory/v2012/script.js	Sun Dec 18 15:57:15 2011 +0100
    11.3 @@ -1,5 +1,6 @@
    11.4  var QUOTES_NUMBER = 39;
    11.5 -var SERVER = "http://me73.com"
    11.6 +var port = 8080;
    11.7 +var SERVER = "http://" + window.location.hostname + ":" + port;
    11.8  
    11.9  $(document).ready(function() {     
   11.10      var image = new Image();
   11.11 @@ -31,28 +32,28 @@
   11.12  click_events["logo"][0]["min_y"] = 0;
   11.13  click_events["logo"][0]["max_y"] = menu_height;
   11.14  click_events["logo"][0]["func"] = switch_page;
   11.15 -click_events["logo"][0]["args"] = "personalwork.html";
   11.16 +click_events["logo"][0]["args"] = new Array("personalwork.html");
   11.17  click_events["logo"][1] = new Object();
   11.18  click_events["logo"][1]["min_x"] = Math.round(menu_width/4) + 1;
   11.19  click_events["logo"][1]["max_x"] = Math.round(menu_width/2);
   11.20  click_events["logo"][1]["min_y"] = 0;
   11.21  click_events["logo"][1]["max_y"] = menu_height;
   11.22  click_events["logo"][1]["func"] = switch_page;
   11.23 -click_events["logo"][1]["args"] = "howiwork.html";
   11.24 +click_events["logo"][1]["args"] = new Array("howiwork.html");
   11.25  click_events["logo"][2] = new Object();
   11.26  click_events["logo"][2]["min_x"] = Math.round(menu_width/2) + 1;
   11.27  click_events["logo"][2]["max_x"] = Math.round(menu_width/4*3);
   11.28  click_events["logo"][2]["min_y"] = 0;
   11.29  click_events["logo"][2]["max_y"] = menu_height;
   11.30  click_events["logo"][2]["func"] = switch_page;
   11.31 -click_events["logo"][2]["args"] = "books.html";
   11.32 +click_events["logo"][2]["args"] = new Array("books.html");
   11.33  click_events["logo"][3] = new Object();
   11.34  click_events["logo"][3]["min_x"] = Math.round(menu_width/4*3) + 1;
   11.35  click_events["logo"][3]["max_x"] = menu_width - 1;
   11.36  click_events["logo"][3]["min_y"] = 0;
   11.37  click_events["logo"][3]["max_y"] = menu_height;
   11.38  click_events["logo"][3]["func"] = switch_page;
   11.39 -click_events["logo"][3]["args"] = "links.html";
   11.40 +click_events["logo"][3]["args"] = new Array("links.html", "linksend.html");
   11.41  
   11.42  function handle_click(e) {
   11.43      var offset = $("#logo").offset();
   11.44 @@ -69,7 +70,7 @@
   11.45  }
   11.46  
   11.47  function switch_page(id, params) {
   11.48 -    var page = params["args"];
   11.49 +    var page = params["args"][0];
   11.50      $("body").load(page);
   11.51      document.location.href = page;    
   11.52  }
   11.53 @@ -100,11 +101,18 @@
   11.54      context.drawImage(event.target, 0, 0);
   11.55      var white = new Colour(255, 255, 255);
   11.56      for (var i in click_events["logo"]) {
   11.57 -        var p = click_events["logo"][i];        
   11.58 -        var pos = document.location.href.lastIndexOf("/") + 1;       
   11.59 -        if (p["args"] == document.location.href.substr(pos)) {         
   11.60 -            color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);           
   11.61 -        } else {
   11.62 +        var p = click_events["logo"][i];       
   11.63 +        var pos = document.location.href.lastIndexOf("/") + 1; 
   11.64 +        var page = document.location.href.substr(pos);
   11.65 +        var found = false;
   11.66 +        for (var j in p["args"]) {
   11.67 +            if (page == p["args"][j]) {         
   11.68 +                color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);
   11.69 +                found = true;
   11.70 +                break;
   11.71 +            }
   11.72 +        }
   11.73 +        if (!found) {
   11.74              color_area("logo", p["min_x"], p["max_x"], 0, 70, white);
   11.75          }
   11.76      }
   11.77 @@ -163,25 +171,11 @@
   11.78  function load_random_quote() {
   11.79      var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html";
   11.80      $.ajax({url: SERVER + file,
   11.81 -            success: write_quote});   
   11.82 -    return;
   11.83 -    var currentFile = self.location.hostname + self.location.pathname;		
   11.84 -    var request = http_request_object();
   11.85 -    var url  = "http://" + self.location.hostname + file;	
   11.86 -    request.open("GET", url, false);
   11.87 -    request.setRequestHeader("User-Agent", navigator.userAgent);
   11.88 -    request.send(null)
   11.89 -    
   11.90 -    // if (oRequest.status == 200) alert(oRequest.responseText);
   11.91 -    // else alert("Error executing XMLHttpRequest call!");	
   11.92 -    //document.write(url);
   11.93 -    //document.write(request.responseText);
   11.94 -    document.getElementById('random_quote').innerHTML = request.responseText;
   11.95 +            success: write_quote});
   11.96  }
   11.97  
   11.98 -function write_quote(data, status, xhr) {
   11.99 -    alert(data);
  11.100 -    $("random_quote").replaceWith(data);
  11.101 +function write_quote(data, status, xhr) {   
  11.102 +    $("#random_quote").html(data);
  11.103  }
  11.104  
  11.105  function load_footer()
    12.1 --- a/howiwork.html	Sun Dec 18 03:44:26 2011 +0100
    12.2 +++ b/howiwork.html	Sun Dec 18 15:57:15 2011 +0100
    12.3 @@ -69,7 +69,7 @@
    12.4  The saviour of web frontends. Makes web development endurable.</li>
    12.5  <li>
    12.6  <h4>Go  *</h4>
    12.7 -Good idea, weird syntax. Doesn't go well with me.</li>
    12.8 +Good idea, weird syntax. Doesn't go well with me. Might give it another go.</li>
    12.9  <li>
   12.10  <h4>Common Lisp  **</h4>
   12.11  The purity of programming love. Haven't seen the light yet.</li>
   12.12 @@ -112,8 +112,10 @@
   12.13  
   12.14          </div>
   12.15          <div id="sidebar">
   12.16 -          <p>
   12.17 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   12.18 +          <p>           
   12.19 +	    <a href="resume.html">
   12.20 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   12.21 +            </a>            
   12.22              <br />I'm a programmer,<br />
   12.23              a student of computer science,<br />
   12.24              a music enthusiast.<br />
    13.1 --- a/index.html	Sun Dec 18 03:44:26 2011 +0100
    13.2 +++ b/index.html	Sun Dec 18 15:57:15 2011 +0100
    13.3 @@ -40,8 +40,10 @@
    13.4  
    13.5          </div>
    13.6          <div id="sidebar">
    13.7 -          <p>
    13.8 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
    13.9 +          <p>           
   13.10 +	    <a href="resume.html">
   13.11 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   13.12 +            </a>            
   13.13              <br />I'm a programmer,<br />
   13.14              a student of computer science,<br />
   13.15              a music enthusiast.<br />
    14.1 --- a/links.html	Sun Dec 18 03:44:26 2011 +0100
    14.2 +++ b/links.html	Sun Dec 18 15:57:15 2011 +0100
    14.3 @@ -59,7 +59,8 @@
    14.4  <h2>Professional</h2>
    14.5  <ul>
    14.6  <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
    14.7 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
    14.8 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called 
    14.9 +<a href="http://eprover.org">E</a>.
   14.10  </li>
   14.11  </ul>
   14.12  
   14.13 @@ -68,15 +69,12 @@
   14.14  <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
   14.15  A good friend and designer for the visual arts.
   14.16  </li>-->
   14.17 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
   14.18 -A fellow student and companion in the quest for world domination.
   14.19 +<li><h4><a href="http://www.chris-koenig.de">Christian K&ouml;nig</a></h4>
   14.20 +An ex-fellow student and companion in the quest for world domination.
   14.21  </li>
   14.22  <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
   14.23 -A friend, programmer and amateuer photographer.
   14.24 +An ex-fellow student and friendly programmer.
   14.25  </li>
   14.26 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
   14.27 -A fellow student of artificial intelligence.
   14.28 -</li>-->
   14.29  </ul>
   14.30  
   14.31  <h2>Recursive</h2>
   14.32 @@ -94,8 +92,10 @@
   14.33  
   14.34          </div>
   14.35          <div id="sidebar">
   14.36 -          <p>
   14.37 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   14.38 +          <p>           
   14.39 +	    <a href="resume.html">
   14.40 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   14.41 +            </a>            
   14.42              <br />I'm a programmer,<br />
   14.43              a student of computer science,<br />
   14.44              a music enthusiast.<br />
    15.1 --- a/linksend.html	Sun Dec 18 03:44:26 2011 +0100
    15.2 +++ b/linksend.html	Sun Dec 18 15:57:15 2011 +0100
    15.3 @@ -48,6 +48,9 @@
    15.4  
    15.5  <h2>The Bad</h2>
    15.6  <ul>
    15.7 +<li><h4><a href="https://twitter.com/notchnik">@notchnik</a></h4>
    15.8 +The emptyness in 140 characters.
    15.9 +</li>
   15.10  <li><h4><a href="https://plus.google.com/101733701635400621767/">Google+ profile</a></h4>
   15.11  Staying in touch with people by keeping them at a distance.
   15.12  </li>
   15.13 @@ -56,7 +59,8 @@
   15.14  <h2>Professional</h2>
   15.15  <ul>
   15.16  <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
   15.17 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
   15.18 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called 
   15.19 +<a href="http://eprover.org">E</a>.
   15.20  </li>
   15.21  </ul>
   15.22  
   15.23 @@ -65,15 +69,12 @@
   15.24  <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
   15.25  A good friend and designer for the visual arts.
   15.26  </li>-->
   15.27 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
   15.28 -A fellow student and companion in the quest for world domination.
   15.29 +<li><h4><a href="http://www.chris-koenig.de">Christian K&ouml;nig</a></h4>
   15.30 +An ex-fellow student and companion in the quest for world domination.
   15.31  </li>
   15.32  <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
   15.33 -A friend, programmer and amateuer photographer.
   15.34 +An ex-fellow student and friendly programmer.
   15.35  </li>
   15.36 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
   15.37 -A fellow student of artificial intelligence.
   15.38 -</li>-->
   15.39  </ul>
   15.40  
   15.41  <h2>Recursive</h2>
   15.42 @@ -86,8 +87,10 @@
   15.43  
   15.44          </div>
   15.45          <div id="sidebar">
   15.46 -          <p>
   15.47 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   15.48 +          <p>           
   15.49 +	    <a href="resume.html">
   15.50 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   15.51 +            </a>            
   15.52              <br />I'm a programmer,<br />
   15.53              a student of computer science,<br />
   15.54              a music enthusiast.<br />
    16.1 --- a/personalwork.html	Sun Dec 18 03:44:26 2011 +0100
    16.2 +++ b/personalwork.html	Sun Dec 18 15:57:15 2011 +0100
    16.3 @@ -182,8 +182,10 @@
    16.4  
    16.5          </div>
    16.6          <div id="sidebar">
    16.7 -          <p>
    16.8 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
    16.9 +          <p>           
   16.10 +	    <a href="resume.html">
   16.11 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   16.12 +            </a>            
   16.13              <br />I'm a programmer,<br />
   16.14              a student of computer science,<br />
   16.15              a music enthusiast.<br />
    17.1 --- a/resume.html	Sun Dec 18 03:44:26 2011 +0100
    17.2 +++ b/resume.html	Sun Dec 18 15:57:15 2011 +0100
    17.3 @@ -37,7 +37,7 @@
    17.4  <h2>Employment</h2>
    17.5  <ul>
    17.6  <li>
    17.7 -<h4>Software Engineer, Comsoft GmbH, 03/2010-09/2010</h4>
    17.8 +<h4>Software Engineer, <a href="http://comsoft.aero">Comsoft GmbH</a>, 03/2010-09/2010</h4>
    17.9  <ul>
   17.10  <li>
   17.11  Development of safety-critical back end systems for the ATC domain.
   17.12 @@ -47,37 +47,37 @@
   17.13  </li>
   17.14  </ul>
   17.15  </li>
   17.16 -<li><h4>Working Student &amp; Internship, Comsoft GmbH, 10/2008-02/2010</h4>
   17.17 +<li><h4>Working Student &amp; Internship, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2008-02/2010</h4>
   17.18  Development for safety-critical embedded systems.
   17.19  </li>
   17.20  <li>
   17.21 -<h4>Student Assistant, University of Applied Sciences Offenburg, 10/2008-03/2009</h4>
   17.22 +<h4>Student Assistant, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 10/2008-03/2009</h4>
   17.23  Assistance at a university course for object-oriented software development.
   17.24  </li>
   17.25  </ul>
   17.26  <h2>Education</h2>
   17.27  <ul>
   17.28  <li>
   17.29 -<h4>University of Freiburg, since 10/2010</h4>
   17.30 +<h4><a href="http://uni-freiburg.de">University of Freiburg</a>, since 10/2010</h4>
   17.31  M.Sc. in Applied Computer Science.<br />
   17.32  Emphasis in Artificial Intelligence and Algorithm Theory.
   17.33  </li>
   17.34  <li>
   17.35 -<h4>University of Applied Sciences Offenburg, 03/2007-02/2010</h4>
   17.36 +<h4><a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 03/2007-02/2010</h4>
   17.37  B.Sc. in Applied Computer Science.<br />
   17.38  Emphasis in Distributed Systems.
   17.39  </li>
   17.40  </ul>
   17.41  <h2>Accompanying the Studies</h2>
   17.42  <ul>
   17.43 -<li><h4>Bachelor Thesis, Comsoft GmbH, 10/2009-04/2010</h4>
   17.44 +<li><h4>Bachelor Thesis, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2009-04/2010</h4>
   17.45  "Flexible Modeling of Dynamic Air Space Constraints and its Application in Departure Flow Optimisation"  
   17.46  <div class="download"><a href="http://me73.com/downloads/campus_magazin_29.pdf">
   17.47  Campus Mag (P. 36 / German)</a></div>
   17.48  <div class="download"><a href="http://me73.com/downloads/discover_me_24.pdf">
   17.49  Discover ME (P. 22 / German)</a></div>
   17.50  </li>
   17.51 -<li><h4>University Project, University of Applied Sciences Offenburg &amp; Karlsruhe Institute of Technology, 2008</h4>
   17.52 +<li><h4>University Project, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a> &amp; <a href="http://kit.edu">Karlsruhe Institute of Technology</a>, 2008</h4>
   17.53  Development of a client for 3D data streaming and visualisation. 
   17.54  </li>
   17.55  </ul>
   17.56 @@ -86,8 +86,10 @@
   17.57  
   17.58          </div>
   17.59          <div id="sidebar">
   17.60 -          <p>
   17.61 -	    <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   17.62 +          <p>           
   17.63 +	    <a href="resume.html">
   17.64 +              <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
   17.65 +            </a>            
   17.66              <br />I'm a programmer,<br />
   17.67              a student of computer science,<br />
   17.68              a music enthusiast.<br />
    18.1 --- a/script.js	Sun Dec 18 03:44:26 2011 +0100
    18.2 +++ b/script.js	Sun Dec 18 15:57:15 2011 +0100
    18.3 @@ -1,1 +1,376 @@
    18.4 -var QUOTES_NUMBER=39;var SERVER="http://me73.com";$(document).ready(function(){var a=new Image();a.onload=init_logo;a.src="images/logobase.png";$("#logo").click(handle_click);$("#logo").hover(function(){$(this).css("cursor","pointer")},function(){$(this).css("cursor","auto")})});$(document).keypress(function(a){if(a.which==13){a.preventDefault();update_logo()}});var menu_width=670;var menu_height=120;var click_events=new Array();click_events.logo=new Array();click_events.logo[0]=new Object();click_events.logo[0]["min_x"]=0;click_events.logo[0]["max_x"]=Math.round(menu_width/4);click_events.logo[0]["min_y"]=0;click_events.logo[0]["max_y"]=menu_height;click_events.logo[0]["func"]=switch_page;click_events.logo[0]["args"]="personalwork.html";click_events.logo[1]=new Object();click_events.logo[1]["min_x"]=Math.round(menu_width/4)+1;click_events.logo[1]["max_x"]=Math.round(menu_width/2);click_events.logo[1]["min_y"]=0;click_events.logo[1]["max_y"]=menu_height;click_events.logo[1]["func"]=switch_page;click_events.logo[1]["args"]="howiwork.html";click_events.logo[2]=new Object();click_events.logo[2]["min_x"]=Math.round(menu_width/2)+1;click_events.logo[2]["max_x"]=Math.round(menu_width/4*3);click_events.logo[2]["min_y"]=0;click_events.logo[2]["max_y"]=menu_height;click_events.logo[2]["func"]=switch_page;click_events.logo[2]["args"]="books.html";click_events.logo[3]=new Object();click_events.logo[3]["min_x"]=Math.round(menu_width/4*3)+1;click_events.logo[3]["max_x"]=menu_width-1;click_events.logo[3]["min_y"]=0;click_events.logo[3]["max_y"]=menu_height;click_events.logo[3]["func"]=switch_page;click_events.logo[3]["args"]="links.html";function handle_click(c){var f=$("#logo").offset();var a=c.pageX-f.left;var g=c.pageY-f.top;for(var b in click_events[c.target.id]){var d=click_events[c.target.id][b];if(d&&a>=d.min_x&&a<=d.max_x&&g>=d.min_y&&g<=d.max_y){d.func(c.target.id,d);break}}}function switch_page(c,b){var a=b.args;$("body").load(a);document.location.href=a}function color_area(c,l,b,j,m,a){var e=document.getElementById(c);var d=e.getContext("2d");var g=d.getImageData(0,0,menu_width,menu_height);var f=g.data;for(var i=j;i<=m;i+=1){for(var k=l;k<=b;k+=1){var h=getPixel(g,k,i);if(h.a>0){a.a=h.a;setPixel(g,k,i,a)}}}d.putImageData(g,0,0)}function init_logo(e){var b=document.getElementById("logo");var d=b.getContext("2d");var g=d.getImageData(0,0,menu_width,menu_height);b.width=menu_width;b.height=menu_height;d.drawImage(e.target,0,0);var a=new Colour(255,255,255);for(var c in click_events.logo){var f=click_events.logo[c];var h=document.location.href.lastIndexOf("/")+1;if(f.args==document.location.href.substr(h)){color_area("logo",f.min_x,f.max_x,70,f.max_y,a)}else{color_area("logo",f.min_x,f.max_x,0,70,a)}}}function update_logo(){var c=document.getElementById("logo");var d=c.getContext("2d");var e=d.getImageData(0,0,menu_width,menu_height);var h=e.data;var b=new Colour(255,255,255);for(var g=0;g<menu_height;g+=1){for(var a=0;a<menu_width;a+=1){var f=getPixel(e,a,g);if(f.a>0){setPixel(e,a,g,new Colour(90,215,21,f.a))}}}d.putImageData(e,0,0)}function Colour(f,e,c,d){this.r=f;this.g=e;this.b=c;this.a=d==undefined?255:d}Colour.prototype.equals=function(a){for(p in this){if(typeof(a[p])==undefined||this[p]!=a[p]){return false}}return true};function setPixel(d,a,e,b){var c=4*(a+e*d.width);d.data[c]=b.r;d.data[c+1]=b.g;d.data[c+2]=b.b;d.data[c+3]=b.a}function getPixel(j,d,k){var f=4*(d+k*j.width);var i=j.data[f];var h=j.data[f+1];var c=j.data[f+2];var e=j.data[f+3];return new Colour(i,h,c,e)}function load_random_quote(){var c="/quotes/quote"+Math.floor(Math.random()*QUOTES_NUMBER+1)+".html";$.ajax({url:SERVER+c,success:write_quote});return;var a=self.location.hostname+self.location.pathname;var d=http_request_object();var b="http://"+self.location.hostname+c;d.open("GET",b,false);d.setRequestHeader("User-Agent",navigator.userAgent);d.send(null);document.getElementById("random_quote").innerHTML=d.responseText}function write_quote(b,a,c){alert(b);$("random_quote").replaceWith(b)}function load_footer(){var c="/footer.html";var a=self.location.hostname+self.location.pathname;var d=http_request_object();var b="http://"+self.location.hostname+c;d.open("GET",b,false);d.setRequestHeader("User-Agent",navigator.userAgent);d.send(null);document.getElementById("footer").innerHTML=d.responseText}function Complex(b,a){this.real=b;this.imag=a}var MIN_C=new Complex(-2.2,-1.4);var MAX_C=new Complex(1,1.4);var min_c=MIN_C;var max_c=MAX_C;var MIN_ITER=100;var max_iter=MIN_ITER;var zoom=1;var resolution=3;var bailout=4;function Result(b,a){this.z=b;this.iter=a}function complex_quad(a){return new Complex(Math.pow(a.real,2)-Math.pow(a.imag,2),2*a.real*a.imag)}function complex_quad_value(a){return Math.pow(a.real,2)+Math.pow(a.imag,2)}function complex_add(b,a){return new Complex(b.real+a.real,b.imag+a.imag)}function complex_equal(b,a){return(b.real==a.real)&&(b.imag==a.imag)}function iterate(a,b){z_quad=complex_quad(a);return new Complex(z_quad.real+b.real,z_quad.imag+b.imag)}function test(g,d){var b=0;var f=new Complex(0,0);var e=new Complex(-1,0);var a=complex_quad_value(f);while(b<d&&!complex_equal(f,e)&&a<=bailout){e=f;f=iterate(f,g);a=complex_quad_value(f);b++}return new Result(a,b)}function draw(m,n,l,i,B){var a=document.getElementById("mandelbrot");if(a.getContext){zoom+=i;var t=a.getContext("2d");if(B!=0){resolution=Math.max(1,resolution+B)}if(m!=0){max_iter=Math.max(MIN_ITER,max_iter+m)}var d="rgb(255, 0, 0)";var e="rgb(255, 255, 255)";var s=a.width;var q=a.height;var u=Math.max(s,q);var E=Math.round(s/q);var z=new Complex(max_c.real-min_c.real,max_c.imag-min_c.imag);dx_min=z.real/100*(n+i);dx_max=z.real/100*(n-i);dy_min=z.imag/100*(l+i);dy_max=z.imag/100*(l-i);var v=new Complex(dx_min*E/2,dy_min);var D=new Complex(dx_max*E/2,dy_max);min_c=complex_add(min_c,v);max_c=complex_add(max_c,D);z=new Complex(max_c.real-min_c.real,max_c.imag-min_c.imag);for(var f=0;f<q;f+=resolution){for(var h=0;h<s;h+=resolution){var A=new Complex(min_c.real+z.real/u*h,min_c.imag+z.imag/u*f);var k=test(A,max_iter);var o=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/20)),2));var w=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/25)),2));var C=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/20)),2));var j="rgb("+o+","+w+","+C+")";t.fillStyle=j;t.fillRect(h,f,resolution,resolution)}}}}function getEventOffsetX(a){if(a.offsetX!=null){return a.offsetX}var b=a.target||a.srcElement;setPageTopLeft(b);return(a.clientX-b.pageLeft)}function getEventOffsetY(a){if(a.offsetY!=null){return a.offsetY}var b=a.target||a.srcElement;setPageTopLeft(b);return(a.clientY-b.pageTop)}function setPageTopLeft(d){var c=0,b=0,a=d;while(d.offsetParent){b+=d.offsetLeft;c+=d.offsetTop;d=d.offsetParent}a.pageTop=c;a.pageLeft=b}function draw2(c){var b=0;var d=0;var a=(getEventOffsetX(c)-335)/167.5;var f=(getEventOffsetY(c)-140)/70;var e=0;draw(b,a,f,e,d)};
    18.5 \ No newline at end of file
    18.6 +var QUOTES_NUMBER = 39;
    18.7 +var port = 8080;
    18.8 +var SERVER = "http://" + window.location.hostname + ":" + port;
    18.9 +
   18.10 +$(document).ready(function() {     
   18.11 +    var image = new Image();
   18.12 +    image.onload = init_logo;
   18.13 +    image.src = "images/logobase.png";
   18.14 +    $("#logo").click(handle_click);   
   18.15 +    $("#logo").hover(function() {
   18.16 +        $(this).css("cursor", "pointer");
   18.17 +    }, function() {
   18.18 +        $(this).css("cursor", "auto");
   18.19 +    }); 
   18.20 +});
   18.21 +
   18.22 +$(document).keypress( function(event) {
   18.23 +    if (event.which == 13) {            
   18.24 +	event.preventDefault();
   18.25 +        update_logo();	    
   18.26 +    }
   18.27 +});
   18.28 +
   18.29 +var menu_width = 670;
   18.30 +var menu_height = 120;
   18.31 +
   18.32 +var click_events = new Array();
   18.33 +click_events["logo"] = new Array();
   18.34 +click_events["logo"][0] = new Object();
   18.35 +click_events["logo"][0]["min_x"] = 0;
   18.36 +click_events["logo"][0]["max_x"] = Math.round(menu_width/4);
   18.37 +click_events["logo"][0]["min_y"] = 0;
   18.38 +click_events["logo"][0]["max_y"] = menu_height;
   18.39 +click_events["logo"][0]["func"] = switch_page;
   18.40 +click_events["logo"][0]["args"] = new Array("personalwork.html");
   18.41 +click_events["logo"][1] = new Object();
   18.42 +click_events["logo"][1]["min_x"] = Math.round(menu_width/4) + 1;
   18.43 +click_events["logo"][1]["max_x"] = Math.round(menu_width/2);
   18.44 +click_events["logo"][1]["min_y"] = 0;
   18.45 +click_events["logo"][1]["max_y"] = menu_height;
   18.46 +click_events["logo"][1]["func"] = switch_page;
   18.47 +click_events["logo"][1]["args"] = new Array("howiwork.html");
   18.48 +click_events["logo"][2] = new Object();
   18.49 +click_events["logo"][2]["min_x"] = Math.round(menu_width/2) + 1;
   18.50 +click_events["logo"][2]["max_x"] = Math.round(menu_width/4*3);
   18.51 +click_events["logo"][2]["min_y"] = 0;
   18.52 +click_events["logo"][2]["max_y"] = menu_height;
   18.53 +click_events["logo"][2]["func"] = switch_page;
   18.54 +click_events["logo"][2]["args"] = new Array("books.html");
   18.55 +click_events["logo"][3] = new Object();
   18.56 +click_events["logo"][3]["min_x"] = Math.round(menu_width/4*3) + 1;
   18.57 +click_events["logo"][3]["max_x"] = menu_width - 1;
   18.58 +click_events["logo"][3]["min_y"] = 0;
   18.59 +click_events["logo"][3]["max_y"] = menu_height;
   18.60 +click_events["logo"][3]["func"] = switch_page;
   18.61 +click_events["logo"][3]["args"] = new Array("links.html", "linksend.html");
   18.62 +
   18.63 +function handle_click(e) {
   18.64 +    var offset = $("#logo").offset();
   18.65 +    var x = e.pageX - offset.left;
   18.66 +    var y = e.pageY - offset.top;   
   18.67 +    for (var i in click_events[e.target.id]) {
   18.68 +        var ces = click_events[e.target.id][i];
   18.69 +        if (ces && x >= ces["min_x"] && x <= ces["max_x"]
   18.70 +            && y >= ces["min_y"] && y <= ces["max_y"]) {    
   18.71 +            ces["func"](e.target.id, ces);
   18.72 +            break;
   18.73 +        }
   18.74 +    }
   18.75 +}
   18.76 +
   18.77 +function switch_page(id, params) {
   18.78 +    var page = params["args"][0];
   18.79 +    $("body").load(page);
   18.80 +    document.location.href = page;    
   18.81 +}
   18.82 +
   18.83 +function color_area(id, min_x, max_x, min_y, max_y, colour) {
   18.84 +    var canvas = document.getElementById(id);
   18.85 +    var context = canvas.getContext("2d");  
   18.86 +    var image = context.getImageData(0, 0, menu_width, menu_height);
   18.87 +    var pixels = image.data;    
   18.88 +    for (var y = min_y; y <= max_y; y += 1) {
   18.89 +        for (var x = min_x; x <= max_x; x += 1) {
   18.90 +            var pix_colour = getPixel(image, x, y);
   18.91 +            if (pix_colour.a > 0) {
   18.92 +                colour.a = pix_colour.a;
   18.93 +                setPixel(image, x, y, colour);
   18.94 +            }
   18.95 +        }
   18.96 +    }   
   18.97 +    context.putImageData(image, 0, 0);
   18.98 +}
   18.99 +
  18.100 +function init_logo(event) {
  18.101 +    var canvas = document.getElementById("logo");
  18.102 +    var context = canvas.getContext("2d"); 
  18.103 +    var image = context.getImageData(0, 0, menu_width, menu_height);  
  18.104 +    canvas.width = menu_width;
  18.105 +    canvas.height = menu_height;
  18.106 +    context.drawImage(event.target, 0, 0);
  18.107 +    var white = new Colour(255, 255, 255);
  18.108 +    for (var i in click_events["logo"]) {
  18.109 +        var p = click_events["logo"][i];       
  18.110 +        var pos = document.location.href.lastIndexOf("/") + 1; 
  18.111 +        var page = document.location.href.substr(pos);
  18.112 +        var found = false;
  18.113 +        for (var j in p["args"]) {
  18.114 +            if (page == p["args"][j]) {         
  18.115 +                color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);
  18.116 +                found = true;
  18.117 +                break;
  18.118 +            }
  18.119 +        }
  18.120 +        if (!found) {
  18.121 +            color_area("logo", p["min_x"], p["max_x"], 0, 70, white);
  18.122 +        }
  18.123 +    }
  18.124 +}
  18.125 +
  18.126 +function update_logo() {
  18.127 +    var canvas = document.getElementById("logo");
  18.128 +    var context = canvas.getContext("2d");  
  18.129 +    var image = context.getImageData(0, 0, menu_width, menu_height);
  18.130 +    var pixels = image.data;
  18.131 +    var white = new Colour(255, 255, 255);
  18.132 +    for (var y = 0; y < menu_height; y += 1) {
  18.133 +        for (var x = 0; x < menu_width; x += 1) {
  18.134 +            var pix_colour = getPixel(image, x, y);
  18.135 +            if (pix_colour.a > 0) {
  18.136 +                setPixel(image, x, y, new Colour(90, 215, 21, pix_colour.a));
  18.137 +            }
  18.138 +        }
  18.139 +    }   
  18.140 +    context.putImageData(image, 0, 0);
  18.141 +}
  18.142 +
  18.143 +function Colour(r, g, b, a) {
  18.144 +    this.r = r;
  18.145 +    this.g = g;
  18.146 +    this.b = b;
  18.147 +    this.a = a == undefined ? 255 : a;
  18.148 +}
  18.149 +Colour.prototype.equals = function(rhs) {
  18.150 +    for (p in this) {
  18.151 +        if (typeof(rhs[p]) == undefined
  18.152 +           || this[p] != rhs[p]) {           
  18.153 +            return false;
  18.154 +        }
  18.155 +    }
  18.156 +    return true;
  18.157 +}
  18.158 +
  18.159 +function setPixel(image, x, y, color) {
  18.160 +    var index = 4 * (x + y * image.width);
  18.161 +    image.data[index] = color.r;
  18.162 +    image.data[index + 1] = color.g;
  18.163 +    image.data[index + 2] = color.b;
  18.164 +    image.data[index + 3] = color.a;
  18.165 +}
  18.166 +
  18.167 +function getPixel(image, x, y) {   
  18.168 +    var index = 4 * (x + y * image.width);
  18.169 +    var r = image.data[index];
  18.170 +    var g = image.data[index + 1];
  18.171 +    var b = image.data[index + 2];
  18.172 +    var a = image.data[index + 3];
  18.173 +    return new Colour(r, g, b, a);
  18.174 +}
  18.175 +
  18.176 +function load_random_quote() {
  18.177 +    var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html";
  18.178 +    $.ajax({url: SERVER + file,
  18.179 +            success: write_quote});
  18.180 +}
  18.181 +
  18.182 +function write_quote(data, status, xhr) {   
  18.183 +    $("#random_quote").html(data);
  18.184 +}
  18.185 +
  18.186 +function load_footer()
  18.187 +{
  18.188 +	var file = "/footer.html";
  18.189 +	var currentFile = self.location.hostname + self.location.pathname;		
  18.190 +	var request = http_request_object();
  18.191 +	var url  = "http://" + self.location.hostname + file;	
  18.192 +	request.open("GET", url, false);
  18.193 +	request.setRequestHeader("User-Agent", navigator.userAgent);
  18.194 +	request.send(null)
  18.195 +	// if (oRequest.status == 200) alert(oRequest.responseText);
  18.196 +	// else alert("Error executing XMLHttpRequest call!");	
  18.197 +	//document.write(url);
  18.198 +	//document.write(request.responseText);
  18.199 +    document.getElementById('footer').innerHTML = request.responseText;
  18.200 +}
  18.201 +
  18.202 +
  18.203 +
  18.204 +// Mandelbrot functions
  18.205 +function Complex(real, imag) 
  18.206 +{
  18.207 +	this.real = real;
  18.208 +	this.imag = imag;
  18.209 +}
  18.210 +
  18.211 +var MIN_C = new Complex(-2.2, -1.4);
  18.212 +var MAX_C = new Complex(1.0, 1.4);
  18.213 +var min_c = MIN_C;
  18.214 +var max_c = MAX_C;
  18.215 +var MIN_ITER = 100;
  18.216 +var max_iter = MIN_ITER;
  18.217 +var zoom = 1.0;
  18.218 +var resolution = 3;
  18.219 +var bailout = 4.0;
  18.220 +
  18.221 +function Result(z, iter) 
  18.222 +{
  18.223 +	this.z = z;
  18.224 +	this.iter = iter;
  18.225 +}
  18.226 +
  18.227 +function complex_quad(c)
  18.228 +{
  18.229 +	return new Complex(Math.pow(c.real, 2) - Math.pow(c.imag, 2), 
  18.230 +		2.0 * c.real * c.imag);
  18.231 +}
  18.232 +
  18.233 +function complex_quad_value(c)
  18.234 +{
  18.235 +	return Math.pow(c.real, 2) + Math.pow(c.imag, 2);
  18.236 +}
  18.237 +
  18.238 +function complex_add(c1, c2)
  18.239 +{
  18.240 +	return new Complex(c1.real + c2.real, c1.imag + c2.imag);
  18.241 +}
  18.242 +
  18.243 +function complex_equal(c1, c2)
  18.244 +{	
  18.245 +	return (c1.real == c2.real) && (c1.imag == c2.imag);
  18.246 +}
  18.247 +
  18.248 +function iterate(z, c) 
  18.249 +{
  18.250 +	z_quad = complex_quad(z);
  18.251 +	return new Complex(z_quad.real + c.real, z_quad.imag + c.imag);
  18.252 +}
  18.253 +
  18.254 +function test(c, max_iter) 
  18.255 +{
  18.256 +	var iter = 0;
  18.257 +	var z = new Complex(0.0, 0.0);
  18.258 +	var last_z = new Complex(-1.0, 0.0);
  18.259 +	var quad_z = complex_quad_value(z);
  18.260 +	
  18.261 +	while (iter < max_iter
  18.262 +		&& !complex_equal(z, last_z)
  18.263 +		&& quad_z <= bailout)
  18.264 +	{
  18.265 +		last_z = z;
  18.266 +		z = iterate(z, c);
  18.267 +		quad_z = complex_quad_value(z);
  18.268 +		iter++;
  18.269 +	}
  18.270 +	return new Result(quad_z, iter);
  18.271 +}
  18.272 +
  18.273 +function draw(diter, dx, dy, dz, dres)
  18.274 +{  
  18.275 +	var canvas = document.getElementById('mandelbrot'); 
  18.276 +	
  18.277 +	if (canvas.getContext)
  18.278 +	{  
  18.279 +		zoom += dz;
  18.280 +		var ctx = canvas.getContext('2d');
  18.281 +
  18.282 +		if (dres != 0)
  18.283 +		{		
  18.284 +			resolution = Math.max(1, resolution + dres);
  18.285 +		}
  18.286 +
  18.287 +		if (diter != 0)
  18.288 +		{
  18.289 +			max_iter = Math.max(MIN_ITER, max_iter + diter);
  18.290 +		}
  18.291 +		
  18.292 +		var red = "rgb(255, 0, 0)";
  18.293 +		var white = "rgb(255, 255, 255)";
  18.294 +		var width = canvas.width;
  18.295 +		var height = canvas.height;
  18.296 +		var dim = Math.max(width, height);
  18.297 +		var dim_ratio = Math.round(width / height);	
  18.298 +		var diff_c = new Complex(max_c.real - min_c.real,
  18.299 +			max_c.imag - min_c.imag);
  18.300 +		dx_min = diff_c.real / 100 * (dx + dz);
  18.301 +		dx_max = diff_c.real / 100 * (dx - dz);
  18.302 +
  18.303 +		dy_min = diff_c.imag / 100 * (dy + dz);
  18.304 +		dy_max = diff_c.imag / 100 * (dy - dz);
  18.305 +
  18.306 +		var min_inc = new Complex(dx_min * dim_ratio / 2.0, dy_min);
  18.307 +		var max_inc = new Complex(dx_max * dim_ratio / 2.0, dy_max);
  18.308 +		min_c = complex_add(min_c, min_inc);
  18.309 +		max_c = complex_add(max_c, max_inc);
  18.310 +		diff_c = new Complex(max_c.real - min_c.real,
  18.311 +			max_c.imag - min_c.imag);
  18.312 +		
  18.313 +		for (var y = 0; y < height; y += resolution) 
  18.314 +		{
  18.315 +			for (var x = 0; x < width; x += resolution) 
  18.316 +			{    			
  18.317 +				var c = new Complex(min_c.real + diff_c.real / dim * x, 
  18.318 +					min_c.imag + diff_c.imag / dim * y);  	
  18.319 +			 	var result = test(c, max_iter);	
  18.320 +		 		var r = Math.min(255, Math.pow(Math.max(0, 
  18.321 +		 			(result.iter - max_iter / 20.0)), 2));
  18.322 +				var g = Math.min(255, Math.pow(Math.max(0, 
  18.323 +					(result.iter - max_iter / 25.0)), 2));			
  18.324 +		 		var b = Math.min(255, Math.pow(Math.max(0, 
  18.325 +					(result.iter - max_iter / 20.0)), 2));
  18.326 +		 		var colour = "rgb(" + r + "," + g + "," + b + ")";
  18.327 +		 		ctx.fillStyle = colour; 
  18.328 +				ctx.fillRect(x, y, resolution, resolution);			
  18.329 +			}
  18.330 +  		}
  18.331 +	}  
  18.332 +} 
  18.333 +
  18.334 +function getEventOffsetX(evt)
  18.335 +{
  18.336 +	if (evt.offsetX != null)
  18.337 +		return evt.offsetX;
  18.338 + 
  18.339 +    var obj = evt.target || evt.srcElement;
  18.340 +   	setPageTopLeft(obj);
  18.341 +    return (evt.clientX - obj.pageLeft);
  18.342 +}
  18.343 +
  18.344 +function getEventOffsetY(evt)
  18.345 +{
  18.346 +	if (evt.offsetY != null)
  18.347 +		return evt.offsetY;
  18.348 + 
  18.349 +    var obj = evt.target || evt.srcElement;
  18.350 +   	setPageTopLeft(obj);
  18.351 +    return (evt.clientY - obj.pageTop);
  18.352 +}
  18.353 + 
  18.354 +function setPageTopLeft( o )
  18.355 +{
  18.356 +    var top = 0,
  18.357 +    left = 0,
  18.358 +    obj = o;
  18.359 + 
  18.360 +    while (o.offsetParent)
  18.361 +     {
  18.362 +         left += o.offsetLeft ;
  18.363 +         top += o.offsetTop ;
  18.364 +         o = o.offsetParent ;
  18.365 +    };
  18.366 + 
  18.367 +    obj.pageTop = top;
  18.368 +    obj.pageLeft = left; 
  18.369 +}
  18.370 + 
  18.371 +function draw2(evt)
  18.372 +{
  18.373 +	var iter = 0;
  18.374 +	var res = 0;
  18.375 +	var x = (getEventOffsetX(evt) - 335) / 167.5;
  18.376 +    var y = (getEventOffsetY(evt) - 140) / 70;
  18.377 +	var z = 0;
  18.378 +	draw(iter, x, y, z, res);
  18.379 +}
  18.380 +
  18.381 +