script.js
author Eugen Sawin <sawine@me73.com>
Sun, 18 Dec 2011 03:44:26 +0100
changeset 73 44d14b5e7bab
parent 71 bf0295436e1c
child 74 c0e6fb6cf6ef
permissions -rw-r--r--
Added backed pages.
sawine@72
     1
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)};