Added hacker symbol to logo.
1 var QUOTES_NUMBER = 32;
3 function load_page(html, params)
7 window.location = html + params;
8 //window.location.reload();
13 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
14 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
19 var pageTracker = _gat._getTracker("UA-2137333-1");
20 pageTracker._initData();
21 pageTracker._trackPageview();
27 if (typeof(_gat) == "object")
31 function http_request_object()
33 var xmlHttpObject = null;
35 if (typeof(XMLHttpRequest) != "undefined")
37 xmlHttpObject = new XMLHttpRequest();
41 if (xmlHttpObject == null)
45 xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
51 xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
62 function load_header(current)
65 if (current == "home")
66 file = "/homenav.html";
67 else if (current == "resume")
68 file = "/resumenav.html";
69 else if (current == "howiwork")
70 file = "/howiworknav.html";
71 else if (current == "personalwork")
72 file = "/personalworknav.html";
73 else if (current == "tutorials")
74 file = "/tutorialsnav.html";
75 else if (current == "contact")
76 file = "/contactnav.html";
78 var currentFile = self.location.hostname + self.location.pathname;
79 var request = http_request_object();
80 var url = "http://" + self.location.hostname + file;
81 request.open("GET", url, false);
82 request.setRequestHeader("User-Agent", navigator.userAgent);
84 // if (oRequest.status == 200) alert(oRequest.responseText);
85 // else alert("Error executing XMLHttpRequest call!");
86 //document.write(url);
87 document.getElementById('header').innerHTML = request.responseText;
88 //document.write(request.responseText);
90 //alert(request.responseText);
93 function load_sidebar()
95 var file = "/sidebar.html";
96 var currentFile = self.location.hostname + self.location.pathname;
97 var request = http_request_object();
98 var url = "http://" + self.location.hostname + file;
99 request.open("GET", url, false);
100 request.setRequestHeader("User-Agent", navigator.userAgent);
102 // if (oRequest.status == 200) alert(oRequest.responseText);
103 // else alert("Error executing XMLHttpRequest call!");
104 //document.write(url);
105 //document.write(request.responseText);
106 document.getElementById('sidebar').innerHTML = request.responseText;
109 function load_random_quote()
111 var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html";
112 var currentFile = self.location.hostname + self.location.pathname;
113 var request = http_request_object();
114 var url = "http://" + self.location.hostname + file;
115 request.open("GET", url, false);
116 request.setRequestHeader("User-Agent", navigator.userAgent);
118 // if (oRequest.status == 200) alert(oRequest.responseText);
119 // else alert("Error executing XMLHttpRequest call!");
120 //document.write(url);
121 //document.write(request.responseText);
122 document.getElementById('random_quote').innerHTML = request.responseText;
125 function load_footer()
127 var file = "/footer.html";
128 var currentFile = self.location.hostname + self.location.pathname;
129 var request = http_request_object();
130 var url = "http://" + self.location.hostname + file;
131 request.open("GET", url, false);
132 request.setRequestHeader("User-Agent", navigator.userAgent);
134 // if (oRequest.status == 200) alert(oRequest.responseText);
135 // else alert("Error executing XMLHttpRequest call!");
136 //document.write(url);
137 //document.write(request.responseText);
138 document.getElementById('footer').innerHTML = request.responseText;
143 // Mandelbrot functions
144 function Complex(real, imag)
150 var MIN_C = new Complex(-2.2, -1.4);
151 var MAX_C = new Complex(1.0, 1.4);
155 var max_iter = MIN_ITER;
160 function Result(z, iter)
166 function complex_quad(c)
168 return new Complex(Math.pow(c.real, 2) - Math.pow(c.imag, 2),
169 2.0 * c.real * c.imag);
172 function complex_quad_value(c)
174 return Math.pow(c.real, 2) + Math.pow(c.imag, 2);
177 function complex_add(c1, c2)
179 return new Complex(c1.real + c2.real, c1.imag + c2.imag);
182 function complex_equal(c1, c2)
184 return (c1.real == c2.real) && (c1.imag == c2.imag);
187 function iterate(z, c)
189 z_quad = complex_quad(z);
190 return new Complex(z_quad.real + c.real, z_quad.imag + c.imag);
193 function test(c, max_iter)
196 var z = new Complex(0.0, 0.0);
197 var last_z = new Complex(-1.0, 0.0);
198 var quad_z = complex_quad_value(z);
200 while (iter < max_iter
201 && !complex_equal(z, last_z)
202 && quad_z <= bailout)
206 quad_z = complex_quad_value(z);
209 return new Result(quad_z, iter);
212 function draw(diter, dx, dy, dz, dres)
214 var canvas = document.getElementById('mandelbrot');
216 if (canvas.getContext)
219 var ctx = canvas.getContext('2d');
223 resolution = Math.max(1, resolution + dres);
228 max_iter = Math.max(MIN_ITER, max_iter + diter);
231 var red = "rgb(255, 0, 0)";
232 var white = "rgb(255, 255, 255)";
233 var width = canvas.width;
234 var height = canvas.height;
235 var dim = Math.max(width, height);
236 var dim_ratio = Math.round(width / height);
237 var diff_c = new Complex(max_c.real - min_c.real,
238 max_c.imag - min_c.imag);
239 dx_min = diff_c.real / 100 * (dx + dz);
240 dx_max = diff_c.real / 100 * (dx - dz);
242 dy_min = diff_c.imag / 100 * (dy + dz);
243 dy_max = diff_c.imag / 100 * (dy - dz);
245 var min_inc = new Complex(dx_min * dim_ratio / 2.0, dy_min);
246 var max_inc = new Complex(dx_max * dim_ratio / 2.0, dy_max);
247 min_c = complex_add(min_c, min_inc);
248 max_c = complex_add(max_c, max_inc);
249 diff_c = new Complex(max_c.real - min_c.real,
250 max_c.imag - min_c.imag);
252 for (var y = 0; y < height; y += resolution)
254 for (var x = 0; x < width; x += resolution)
256 var c = new Complex(min_c.real + diff_c.real / dim * x,
257 min_c.imag + diff_c.imag / dim * y);
258 var result = test(c, max_iter);
259 var r = Math.min(255, Math.pow(Math.max(0,
260 (result.iter - max_iter / 20.0)), 2));
261 var g = Math.min(255, Math.pow(Math.max(0,
262 (result.iter - max_iter / 25.0)), 2));
263 var b = Math.min(255, Math.pow(Math.max(0,
264 (result.iter - max_iter / 20.0)), 2));
265 var colour = "rgb(" + r + "," + g + "," + b + ")";
266 ctx.fillStyle = colour;
267 ctx.fillRect(x, y, resolution, resolution);
273 function getEventOffsetX(evt)
275 if (evt.offsetX != null)
278 var obj = evt.target || evt.srcElement;
280 return (evt.clientX - obj.pageLeft);
283 function getEventOffsetY(evt)
285 if (evt.offsetY != null)
288 var obj = evt.target || evt.srcElement;
290 return (evt.clientY - obj.pageTop);
293 function setPageTopLeft( o )
299 while (o.offsetParent)
301 left += o.offsetLeft ;
314 var x = (getEventOffsetX(evt) - 335) / 167.5;
315 var y = (getEventOffsetY(evt) - 140) / 70;
317 draw(iter, x, y, z, res);