var currency = new Array(5); currency[0] = new Array('USD','1.3160','US dollars','$'); currency[1] = new Array('GBP','0.83220','British pounds','£'); var pounds = 1; currency[2] = new Array('AUD','1.2311','Australian dollars','$'); currency[3] = new Array('CAD','1.3189','Canadian dollars','$'); currency[4] = new Array('EUR','1','Euros','€'); var minPrice = 40; // also set in data.php var maxPrice = 200; // also set in data.php var blurb=new Array(); var blurb_num=new Array(); 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 landingpage = ""; 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); setTimeout("loadBackgroundPages()",1000); var b = getElementsByClass("buttona"); for(var i=0; i1?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"); } } setInnerHTML("tip",""); 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]; setInnerHTML("blurb",blurb[image]); setInnerHTML("testimonial",""); 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'; setInnerHTML("tip",""); } function showArrows() { $('arrows').style.visibility='visible'; $('arrows').style.height=27; $('arrows').style.position='relative'; if(!usedArrows) setInnerHTML("tip","Click on the 'Next' arrow to see other images from this project."); else setInnerHTML("tip",""); } function moveFunction(sliderPosition) { var s = Math.max(0,Math.ceil(sliderPosition*9)-1); var price = minPrice+s*((maxPrice-minPrice)/8); $("price_picture").style.backgroundPosition = "0px -"+(s*300)+"px"; setInnerHTML("priceinpounds",Math.round(price/10)*10); setInnerHTML("price",Math.round(price / currency[pounds][1] * currency[$("currencyfield").value][1]/10)*10); } function setCurrency() { setInnerHTML("currency",currency[$("currencyfield").value][3]); setInnerHTML("price",Math.round($('priceinpounds').innerHTML / currency[pounds][1] * currency[$("currencyfield").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) setInnerHTML("tip","Click on the thumbnails to enlarge."); if(currentHash=="prices") { $("price_picture").style.backgroundImage = "url(pics/pricescale.jpg)"; $("price_picture").style.backgroundPosition = "0px -2400px"; setInnerHTML("priceinpounds",maxPrice); setInnerHTML("price",Math.round(maxPrice / currency[pounds][1] * currency[$("currencyfield").value][1]/10)*10); setCurrency(); } if(currentHash=="contactme") { setFocus('name'); } } function setInnerHTML(e,s) { if(typeof(e)=="string") e = $(e); removeChildren(e); appendTextNode(e,s); //e.appendChild(document.createTextNode(s)); } function loadPage(s) { s = s.split("\r\n"); var p = s[0]; pages[p] = new Page(); for(var i=1; i=0; i--) { n.removeChild(n.childNodes[i]); } } function $(e) { return document.getElementById(e); } function appendTextNode(appendTo,txt) { if(!txt) return; if(typeof(txt)!="string") { appendTo.appendChild(document.createTextNode(txt)); return; } var s = txt.indexOf("<"); var left, mid, right; if(s==-1) { left = txt; if(left.length>0) appendTo.appendChild(document.createTextNode(left)); } else { var e = txt.indexOf(">",s); if(e==-1) { left = txt; if(left.length>0) appendTo.appendChild(document.createTextNode(left)); } else { left = txt.substring(0,s); if(left.length>0) appendTo.appendChild(document.createTextNode(left)); mid = txt.substring(s+1,e); right = txt.substring(e+1); var z = mid.split(" "); var type = z[0]; var nodeclass=""; var nodeid=""; var fields=""; var textnode=""; for(var j=1; j"; var e = right.indexOf(str); var nests = 0; var prevnests = -1; var nested = 0; while(e!=-1 && prevnests < nested) { left = right.substring(0,e); nested = 0; var n1=-1; do { var n = n1; n1=left.indexOf("<"+type+">",n+1); var n2=left.indexOf("<"+type+" ",n+1); if( ( n1 >= 0 && n2 >= 0 && n2= 0 ) ) n1 = n2; if(n1>=0) nested++; } while(n1>=0 && nested<50); prevnests = nests; for(n1=prevnests; n10) appendTextNode(el,left); if(right.length>0) appendTextNode(appendTo,right); } else { if(right.length>0) appendTextNode(appendTo,right); } } } } function getElementsByClass(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (var i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; } function createElement(type,cl,id,childTextNode,appendTo) { if(typeof(appendTo)=="string") appendTo = $(appendTo); var e; var appended = false; if(type=="tr" && appendTo && appendTo.insertRow!==undefined) { appended = true; e = appendTo.insertRow(-1); } else if(type=="td" && appendTo && appendTo.insertCell!==undefined) { appended = true; e = appendTo.insertCell(-1); } else e = document.createElement(type); if(cl) e.setAttribute("class",cl); if(cl) e.setAttribute("className",cl); if(id) e.setAttribute("id",id); if(childTextNode) (typeof(childTextNode)=="string"||typeof(childTextNode)=="number"?appendTextNode(e,childTextNode):e.appendChild(childTextNode)); for(var i=5; i0; j++) { if(s[j].length>0) { var t = s[j].split(":"); if(t.length>1) e.style[t[0].replace(/^\s*|\s*$/g,'')] = t[1].replace(/^\s*|\s*$/g,''); } } } else { e.setAttribute(arguments[i],arguments[i+1]); } } } if(appendTo && !appended) appendTo.appendChild(e); return e; } function setClass(el, classAdd, classRemove) { if(typeof(el)=="string") el = $(el); if(el) { var cl = el.className; cl = cl.split(" "); var cl2 = ""; for(var i=0; i0 && 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/"; } function sliderClick(e) { if(document.onmousemove == slideIsMove) return; var oPix = document.childNodes ? 'px' : 0; e2 = sliderMousePos(e); var theNewPos = e2[0]-$("slider2").offsetLeft-8; if( theNewPos < 0 ) { theNewPos = 0; } if( theNewPos > 139 ) { theNewPos = 139; } $("MWJ_slider_controls0").style.left = theNewPos + oPix; slideIsDown(e); moveFunction(theNewPos/139); } function slideIsDown(e) { var slider = $("MWJ_slider_controls0"); //make note of starting positions and detect mouse movements window.msStartCoord = sliderMousePos(e); window.lyStartCoord = slider.style?[parseInt(slider.style.left),parseInt(slider.style.top)]:[parseInt(slider.left),parseInt(slider.top)]; if( document.captureEvents && Event.MOUSEMOVE ) { document.captureEvents(Event.MOUSEMOVE); document.captureEvents(Event.MOUSEUP); } window.storeMOUSEMOVE = document.onmousemove; window.storeMOUSEUP = document.onmouseup; window.storeLayer = slider; document.onmousemove = slideIsMove; document.onmouseup = slideIsMove; return false; } function sliderMousePos(e) { //get the position of the mouse if( !e ) { e = window.event; } if( !e || ( typeof( e.pageX ) != 'number' && typeof( e.clientX ) != 'number' ) ) { return [0,0]; } if( typeof( e.pageX ) == 'number' ) { var xcoord = e.pageX; var ycoord = e.pageY; } else { var xcoord = e.clientX; var ycoord = e.clientY; if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || window.navigator.vendor == 'KDE' ) ) { if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) ) { xcoord += document.documentElement.scrollLeft; ycoord += document.documentElement.scrollTop; } else if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) ) { xcoord += document.body.scrollLeft; ycoord += document.body.scrollTop; } } } return [xcoord,ycoord]; } function slideIsMove(e) { if (window.getSelection) window.getSelection().removeAllRanges(); else if (document.selection && document.selection.empty) document.selection.empty(); //move the slider to its newest position var msMvCo = sliderMousePos(e); if( !e ) { e = window.event ? window.event : ( new Object() ); } var theLayer = window.storeLayer.style ? window.storeLayer.style : window.storeLayer; var oPix = document.childNodes ? 'px' : 0; var theNewPos = window.lyStartCoord[0] + ( msMvCo[0] - window.msStartCoord[0] ); if( theNewPos < 0 ) { theNewPos = 0; } if( theNewPos > 139 ) { theNewPos = 139; } theLayer.left = theNewPos + oPix; //run the user's functions and reset the mouse monitoring as before if( e.type && e.type.toLowerCase() == 'mousemove' ) { moveFunction(theNewPos/139); } else { document.onmousemove = storeMOUSEMOVE; document.onmouseup = window.storeMOUSEUP; if( window.storeLayer.stopFunc ) { window.storeLayer.stopFunc(theNewPos/window.storeLayer.maxLength); } } }