var requests = new Array(); function ajax(url, callback, retrytime, rclass, obsolescent) { newHttpRequest(getFolder()+url, callback, retrytime, rclass, obsolescent); } function newHttpRequest(url, callback, retrytime,rclass,obsolescent) { /* var s = ""; for(var i=0; i"; } document.getElementById("ajaxtest").innerHTML = s;*/ if(rclass) { for(var n=0; n0 && requests[0].obsolete==true) requests.splice(0,1); if(requests.length>0) requests[0].sendHttpRequest(); } else ok = false; if(!ok) { var date = new Date(); if((!retrytime || retrytime==0 || date.getTime()0 && requests[0].obsolete==true) requests.splice(0,1); if(requests.length>0) requests[0].sendHttpRequest(); } } } } } function getFolder() { return "http://www.simongoodway.com/"; } var pages = new Array(); function Page() { this.title; this.picture; this.text = new Array(); this.casestudies = new Array(); this.testimonials = new Array(); } function caseStudy(name,desc,num) { this.name = name; this.description = desc; this.num = num; } function Testimonial() { this.attribution; this.testimonial = new Array(); } var pic = new Image(50,50); var prev_pic = new Image(50,50); var next_pic = new Image(50,50); var clockID = 0; var rate = 0.7; var weighted = 0.5; var bx = new Array(); var by = new Array(); var bmode = new Array(); var block = 0; var inprogress=0; var image; var counter = 0; var ims = 79; var images = new Array(); var current_pic; var current_pic_num; var current_pic_total; var currentHash; var usedArrows = false; for(var i=1; i<=ims; i++) images[i]=0; for(i=0; i<20; i++){ bmode[i]=-1; bx[i]=0; by[i]=0; } function goto(page) { document.location='##'+page; show(); } function setup() { startTimer(); show(); setTimeout("checkHash()",100); } function checkHash() { h = window.location.hash.substr(2); if(!h) h = "main"; if(currentHash != h) show(); setTimeout("checkHash()",100); } function pageWidth() { var a = window.innerWidth; if(!a) a = 0; var b = document.body.clientWidth; if(!b) b = 0; var c = document.documentElement.clientWidth; if(!c) c = 0; var d = 800; return Math.max(Math.max(a,b),Math.max(c,d)); } function prevpic() { prev_pic.src = ""; pic.src = ""; next_pic.src = ""; if(!current_pic) return; setClass("prev_piccy","hidden",""); $('prev_piccy').src = ""; if(current_pic_total==2 && current_pic_num==1) { $('next_piccy').src = ""; setClass("next_piccy","hidden",""); } else { $('next_piccy').src = "casestudies/"+current_pic+"_"+(current_pic_num<10?"0":"")+current_pic_num+".jpg"; setClass("next_piccy","","hidden"); } current_pic_num = (current_pic_num>1?current_pic_num-1:current_pic_total); $('piccy').src = "casestudies/"+current_pic+"_"+(current_pic_num<10?"0":"")+current_pic_num+".jpg"; if(current_pic_total>2 || current_pic_num==2) { prev_pic_num = (current_pic_num>1?current_pic_num-1:current_pic_total); //$('prev_piccy').src = "casestudies/"+current_pic+"_"+(prev_pic_num<10?"0":"")+prev_pic_num+".jpg"; prev_pic.src = "casestudies/"+current_pic+"_"+(prev_pic_num<10?"0":"")+prev_pic_num+".jpg"; prev_pic.onload = function() { $('prev_piccy').src = this.src; setClass("prev_piccy","","hidden"); } } $('tip').innerHTML = ""; usedArrows = true; } function nextpic() { prev_pic.src = ""; pic.src = ""; next_pic.src = ""; if(!current_pic) return; setClass("next_piccy","hidden",""); $('next_piccy').src = ""; if(current_pic_total==2 && current_pic_num==2) { $('prev_piccy').src = ""; setClass("prev_piccy","hidden",""); } else { $('prev_piccy').src = "casestudies/"+current_pic+"_"+(current_pic_num<10?"0":"")+current_pic_num+".jpg"; setClass("prev_piccy","","hidden"); } current_pic_num = (current_pic_num2 || current_pic_num==1) { next_pic_num = (current_pic_numtotal) return; var image; var preload_pic = new Image(50,50); preload_pic.image = image; preload_pic.next = n+1; preload_pic.total = total; if(n<10) n="0"+n; preload_pic.src='casestudies/'+image+'_'+n+'.jpg'; preload_pic.onload = function() { preloadCaseStudy(this.image, this.next, this.total); } } function embiggen(image) { if(!image) return; prev_pic.src = ""; pic.src = ""; next_pic.src = ""; setClass("case_study","","hidden"); setClass("prev_piccy","hidden",""); setClass("piccy","","hidden"); setClass("next_piccy","hidden",""); setClass("blurb","","hidden"); $('piccy').src = "nav/hourglass.gif"; $('prev_piccy').src = ""; $('next_piccy').src = ""; current_pic = image; current_pic_num = 1; current_pic_total = blurb_num[image]; $('blurb').innerHTML = blurb[image]; $('testimonial').innerHTML = ""; pic.src="casestudies/"+image+"_01.jpg"; pic.onload = function() { $('piccy').src = this.src; $('piccy').style.visibility = "visible"; } if(current_pic_total>1) { showArrows(); if(current_pic_total>2) { prev_pic_num = (current_pic_num>1?current_pic_num-1:current_pic_total); //$('prev_piccy').src = "casestudies/"+current_pic+"_"+(prev_pic_num<10?"0":"")+prev_pic_num+".jpg"; prev_pic.src = "casestudies/"+current_pic+"_"+(prev_pic_num<10?"0":"")+prev_pic_num+".jpg"; prev_pic.onload = function() { $('prev_piccy').src = this.src; setClass("prev_piccy","","hidden"); } } next_pic_num = (current_pic_num1) setTimeout("preloadCaseStudy('"+image+"',2,"+current_pic_total+")", 5000); } function hideArrows() { $('arrows').style.visibility='hidden'; $('arrows').style.height=0; $('arrows').style.position='absolute'; $('tip').innerHTML = ""; } function showArrows() { $('arrows').style.visibility='visible'; $('arrows').style.height=27; $('arrows').style.position='relative'; if(!usedArrows) $('tip').innerHTML = "Click on the 'Next' arrow to see other images from this project."; else $('tip').innerHTML = ""; } function moveFunction(sliderPosition) { var s = Math.ceil(sliderPosition*9)+1; if(s==1) s=2; var price = s*20; $("price_picture").style.backgroundPosition = "0px -"+((s-2)*300)+"px"; $('priceinpounds').innerHTML = price; $('price').innerHTML = Math.round(price / currency[pounds][1] * currency[document.f.currency.value][1]/10)*10; } function stopFunction(sliderPosition) { } function setCurrency() { $('currency').innerHTML = currency[document.f.currency.value][3]; $('price').innerHTML = Math.round($('priceinpounds').innerHTML / currency[pounds][1] * currency[document.f.currency.value][1]/10)*10; } function Overlay(name,probability,prerequisites,postrequisites,duration,leave,cancelledby) { this.name = name; this.probability = probability; this.prerequisites = prerequisites.split(","); this.postrequisites = postrequisites.split(","); this.duration = duration; this.leave = leave; this.cancelledby = cancelledby.split(","); this.displayed = false; this.img = new Image; this.img.name = this.name; this.img.duration = this.duration; this.img.onload = function(){ createElement("img","sidebar",this.name,"","sidebar","src",this.src); setTimeout("endOverlay('"+this.name+"');",this.duration); cancelOverlays(this.name); } } var overlays = new Array(); overlays.push(new Overlay("babygiraffeblink",18,"","lionup",300,false,"")); overlays.push(new Overlay("birdblink",18,"","birdflyaway",300,false,"")); overlays.push(new Overlay("elephantblink",18,"","",300,false,"")); overlays.push(new Overlay("giraffeblink",18,"","",300,false,"")); overlays.push(new Overlay("hippo1blink",18,"","drain",300,false,"")); overlays.push(new Overlay("hippo2blink",18,"","drain",300,false,"")); overlays.push(new Overlay("hippobirdblink",18,"","drain",300,false,"")); overlays.push(new Overlay("lionblink",18,"","lionup",300,false,"")); overlays.push(new Overlay("monkeyblink",18,"","monkeysnake",300,false,"")); overlays.push(new Overlay("snakeblink",18,"","monkeysnake",300,false,"")); overlays.push(new Overlay("ripple1",15,"","drain",1000,false,"")); overlays.push(new Overlay("ripple2",15,"","drain",1000,false,"")); overlays.push(new Overlay("ripple3",15,"","drain",1000,false,"")); overlays.push(new Overlay("waves",15,"","drain",1200,false,"")); overlays.push(new Overlay("hippobirddrill",9,"","drain",1000,false,"")); overlays.push(new Overlay("hippobirddrilldrained",9,"drain","",1000,false,"")); overlays.push(new Overlay("butterfly1",9,"","",4000,false,"")); overlays.push(new Overlay("butterfly2",9,"","",4000,false,"")); overlays.push(new Overlay("butterfly3",9,"","",4000,false,"")); overlays.push(new Overlay("squirrel",4,"","lionup",2420,false,"")); overlays.push(new Overlay("birdflap",4,"","birdflyaway",800,false,"")); overlays.push(new Overlay("birdhop",4,"","birdflyaway",1300,false,"")); overlays.push(new Overlay("giraffesmile",4,"","lionup",3500,false,"")); overlays.push(new Overlay("lionroar",4,"lionup","",2400,false,"")); overlays.push(new Overlay("monkeyswing",3,"","monkeysnake",1000,false,"")); overlays.push(new Overlay("snakeslither",3,"","monkeysnake",1000,false,"")); overlays.push(new Overlay("duck",3,"","drain",3600,false,"")); overlays.push(new Overlay("crab",3,"drain","",16000,false,"")); overlays.push(new Overlay("elephanttrunk",3,"","drain",1500,false,"")); overlays.push(new Overlay("birdflyaway",2,"","birdflyaway",1200,true,"")); overlays.push(new Overlay("liondown",6,"lionup","",700,false,"")); overlays.push(new Overlay("lionup",2,"","lionup",700,true,"liondown")); overlays.push(new Overlay("giraffetwist",2,"","monkeysnake,lionup",5000,false,"")); overlays.push(new Overlay("monkeysnake",1,"","monkeysnake,lionup",3500,true,"")); overlays.push(new Overlay("drain",1,"","drain",1800,true,"")); var randmax = 0; for(var i=0; i=0; i++) { r -= overlays[i].probability; } i--; var canDo = true; // check prerequisites for(var j=0; j0 && currentHash!="testimonials") { var more = createElement("div","more","","","testimonial"); createElement("a","","","More testimonials...",more,"href","javascript:void(0);","onclick","document.location='##testimonials'; show();"); } if(p.casestudies.length>0) $('tip').innerHTML = "Click on the thumbnails to enlarge."; } function loadPage(s) { pages[currentHash] = new Page(); s = s.split("\r\n"); for(var i=0; i