sawine@0: var QUOTES_NUMBER = 32; sawine@0: sawine@0: function load_page(html, params) sawine@0: { sawine@0: if (params != "") sawine@0: html += "?"; sawine@0: window.location = html + params; sawine@0: //window.location.reload(); sawine@0: } sawine@0: sawine@0: function google_an1() sawine@0: { sawine@0: var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); sawine@0: document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); sawine@0: } sawine@0: sawine@0: function google_an2() sawine@0: { sawine@0: var pageTracker = _gat._getTracker("UA-2137333-1"); sawine@0: pageTracker._initData(); sawine@0: pageTracker._trackPageview(); sawine@0: } sawine@0: sawine@0: function google_an() sawine@0: { sawine@0: google_an1(); sawine@0: if (typeof(_gat) == "object") sawine@0: google_an2(); sawine@0: } sawine@0: sawine@0: function http_request_object() sawine@0: { sawine@0: var xmlHttpObject = null; sawine@0: sawine@0: if (typeof(XMLHttpRequest) != "undefined") sawine@0: { sawine@0: xmlHttpObject = new XMLHttpRequest(); sawine@0: } sawine@0: sawine@0: //For IE6 and IE5 sawine@0: if (xmlHttpObject == null) sawine@0: { sawine@0: try sawine@0: { sawine@0: xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP"); sawine@0: } sawine@0: catch(e) sawine@0: { sawine@0: try sawine@0: { sawine@0: xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP"); sawine@0: } sawine@0: catch(e) sawine@0: { sawine@0: xmlHttpObject = null; sawine@0: } sawine@0: } sawine@0: } sawine@0: return xmlHttpObject; sawine@0: } sawine@0: sawine@0: function load_header(current) sawine@0: { sawine@0: var file; sawine@0: if (current == "home") sawine@0: file = "/homenav.html"; sawine@0: else if (current == "resume") sawine@0: file = "/resumenav.html"; sawine@0: else if (current == "howiwork") sawine@0: file = "/howiworknav.html"; sawine@0: else if (current == "personalwork") sawine@0: file = "/personalworknav.html"; sawine@0: else if (current == "tutorials") sawine@0: file = "/tutorialsnav.html"; sawine@0: else if (current == "contact") sawine@0: file = "/contactnav.html"; sawine@0: sawine@0: var currentFile = self.location.hostname + self.location.pathname; sawine@0: var request = http_request_object(); sawine@0: var url = "http://" + self.location.hostname + file; sawine@0: request.open("GET", url, false); sawine@0: request.setRequestHeader("User-Agent", navigator.userAgent); sawine@0: request.send(null) sawine@0: // if (oRequest.status == 200) alert(oRequest.responseText); sawine@0: // else alert("Error executing XMLHttpRequest call!"); sawine@0: //document.write(url); sawine@0: document.getElementById('header').innerHTML = request.responseText; sawine@0: //document.write(request.responseText); sawine@0: sawine@0: //alert(request.responseText); sawine@0: } sawine@0: sawine@0: function load_sidebar() sawine@0: { sawine@0: var file = "/sidebar.html"; sawine@0: var currentFile = self.location.hostname + self.location.pathname; sawine@0: var request = http_request_object(); sawine@0: var url = "http://" + self.location.hostname + file; sawine@0: request.open("GET", url, false); sawine@0: request.setRequestHeader("User-Agent", navigator.userAgent); sawine@0: request.send(null) sawine@0: // if (oRequest.status == 200) alert(oRequest.responseText); sawine@0: // else alert("Error executing XMLHttpRequest call!"); sawine@0: //document.write(url); sawine@0: //document.write(request.responseText); sawine@0: document.getElementById('sidebar').innerHTML = request.responseText; sawine@0: } sawine@0: sawine@0: function load_random_quote() sawine@0: { sawine@0: var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html"; sawine@0: var currentFile = self.location.hostname + self.location.pathname; sawine@0: var request = http_request_object(); sawine@0: var url = "http://" + self.location.hostname + file; sawine@0: request.open("GET", url, false); sawine@0: request.setRequestHeader("User-Agent", navigator.userAgent); sawine@0: request.send(null) sawine@0: // if (oRequest.status == 200) alert(oRequest.responseText); sawine@0: // else alert("Error executing XMLHttpRequest call!"); sawine@0: //document.write(url); sawine@0: //document.write(request.responseText); sawine@0: document.getElementById('random_quote').innerHTML = request.responseText; sawine@0: } sawine@0: sawine@0: function load_footer() sawine@0: { sawine@0: var file = "/footer.html"; sawine@0: var currentFile = self.location.hostname + self.location.pathname; sawine@0: var request = http_request_object(); sawine@0: var url = "http://" + self.location.hostname + file; sawine@0: request.open("GET", url, false); sawine@0: request.setRequestHeader("User-Agent", navigator.userAgent); sawine@0: request.send(null) sawine@0: // if (oRequest.status == 200) alert(oRequest.responseText); sawine@0: // else alert("Error executing XMLHttpRequest call!"); sawine@0: //document.write(url); sawine@0: //document.write(request.responseText); sawine@0: document.getElementById('footer').innerHTML = request.responseText; sawine@0: } sawine@7: sawine@7: // Mandelbrot functions sawine@7: function Complex(real, imag) sawine@7: { sawine@7: this.real = real; sawine@7: this.imag = imag; sawine@7: } sawine@7: sawine@7: var MIN_C = new Complex(-2.2, -1.4); sawine@7: var MAX_C = new Complex(1.0, 1.4); sawine@7: var min_c = MIN_C; sawine@7: var max_c = MAX_C; sawine@7: var max_iter = 100; sawine@10: var zoom = 1.0; sawine@7: sawine@7: function Result(z, iter) sawine@7: { sawine@7: this.z = z; sawine@7: this.iter = iter; sawine@7: } sawine@7: sawine@7: function complex_quad(c) sawine@7: { sawine@7: return new Complex(Math.pow(c.real, 2) - Math.pow(c.imag, 2), sawine@7: 2.0 * c.real * c.imag); sawine@7: } sawine@7: sawine@7: function complex_quad_value(c) sawine@7: { sawine@7: return Math.pow(c.real, 2) + Math.pow(c.imag, 2); sawine@7: } sawine@7: sawine@7: function complex_add(c1, c2) sawine@7: { sawine@7: return new Complex(c1.real + c2.real, c1.imag + c2.imag); sawine@7: } sawine@7: sawine@7: function iterate(z, c) sawine@7: { sawine@7: z_quad = complex_quad(z); sawine@7: return new Complex(z_quad.real + c.real, z_quad.imag + c.imag); sawine@7: } sawine@7: sawine@7: function test(c, max_iter) sawine@7: { sawine@7: var iter = 0; sawine@7: var z = new Complex(0.0, 0.0); sawine@7: while (complex_quad_value(z) <= 4.0 sawine@7: && iter < max_iter) sawine@7: { sawine@7: z = iterate(z, c); sawine@7: iter++; sawine@7: } sawine@7: return new Result(z, iter); sawine@7: } sawine@7: sawine@7: function draw(iter, x, y, z) sawine@7: { sawine@7: var canvas = document.getElementById('mandelbrot'); sawine@7: if (canvas.getContext) sawine@7: { sawine@12: var ctx = canvas.getContext('2d'); sawine@10: z = z / 10.0; sawine@10: zoom += z; sawine@10: if (zoom < 1) sawine@10: zoom = 1; sawine@10: x = x / 10.0 / zoom; sawine@10: y = y / 10.0 / zoom; sawine@10: var min_inc = new Complex(x + z, y + z); sawine@10: var max_inc = new Complex(x - z, y - z); sawine@7: min_c = complex_add(min_c, min_inc); sawine@7: max_c = complex_add(max_c, max_inc); sawine@7: max_iter += iter; sawine@7: var diff_c = new Complex(max_c.real - min_c.real, sawine@7: max_c.imag - min_c.imag); sawine@7: var width = canvas.width; sawine@7: var height = canvas.height; sawine@7: var dim = Math.max(width, height); sawine@7: ctx.clearRect(0, 0, width, height); sawine@7: sawine@7: for (var y = 0; y < height; y++) sawine@7: { sawine@7: for (var x = 0; x < width; x++) sawine@7: { sawine@7: if (true) sawine@7: { sawine@7: var c = new Complex(min_c.real + diff_c.real sawine@7: / dim * x, sawine@7: min_c.imag + diff_c.imag / dim * y); sawine@7: var result = test(c, max_iter); sawine@7: sawine@7: if (result.iter < max_iter) sawine@7: { sawine@13: var r = Math.min(255, Math.pow(Math.max(0, sawine@13: (result.iter - max_iter / 20.0)), 2)); sawine@13: var g = Math.min(255, Math.pow(Math.max(0, sawine@13: (result.iter - max_iter / 25.0)), 2)); sawine@13: var b = Math.min(255, Math.pow(Math.max(0, sawine@13: (result.iter - max_iter / 20.0)), 2)); sawine@7: var colour = r + "," + g + "," + b; sawine@7: ctx.fillStyle = "rgb(" + colour + ")"; sawine@7: ctx.fillRect(x, y, 1, 1); sawine@7: } sawine@7: } sawine@7: } sawine@7: } sawine@7: } sawine@7: }