function doValidate(c,f){var j;for(var g in f){var b=$(g+"_h");j=true;var d=c.elements[g];if(d.type=="text"){j=c[g].value.match(f[g])}else{if(d.type=="select-one"){j=d.selectedIndex>0}else{if(d.length>0){j=false;for(var a=0;a<d.length;a++){if(d[a].checked){j=true}}if(!j){if(b){b.style.background="#ff3333"}alert("Please select an option from\n the highlighted field and try again. "+g);return false}else{b.style.background="transparent"}}}}if(!j){c[g].style.background="#ffccca";alert("Please check the highlighted\n field and try again.");if(b){}return false;break}else{c[g].style.background="#ffffff"}}return true}var frw_jar;if(typeof CookieJar=="object"){frw_jar=new CookieJar({expires:60*60*24*365*2,path:"/",secure:true})}function checkSavedDetails(){var d=["fullname","address1","address2","address3","address4","postcode","region","email","telephone"];if(typeof frw_jar=="object"){var a=frw_jar.get("cust_ref");if(a!=null){for(var c=0;c<d.length;c++){if(a[d[c]]){var f=$(d[c]);if(f.options){for(var b=0;b<f.options.length;b++){if(f.options[b].value==a[d[c]]){f.selectedIndex=b;break}}}else{f.value=a[d[c]]}}}$("rememberme").checked=true}}}function saveDetails(){var c=["fullname","address1","address2","address3","address4","postcode","region","email","telephone"];var a={};for(var b=0;b<c.length;b++){if($(c[b]).value){a[c[b]]=$(c[b]).value}frw_jar.put("cust_ref",a)}}function validate(c){main.submitting=true;var b;var a;switch(c.id){case"step1":if($("rememberme").checked){saveDetails()}else{if(typeof frw_jar=="object"){b=frw_jar.get("cust_ref");if(b!=null){frw_jar.remove("cust_ref")}}}a=$FR("step1","payment_method");main.paymentMethod=a;main.paymentMethodChange();if(main.paymentMethod=="google"){return doValidate(c,{fullname:/^[\w ]+$/,region:true,units:true,telephone:/^[0-9\(\) ]+$/})}else{return doValidate(c,{fullname:/^[\w ]+$/,address1:/^[\w ]+$/,postcode:/^[\w ]+$/,region:true,units:true,telephone:/^[0-9\(\) ]+$/})}break;case"step2b":if($("sample_pack").selectedIndex>0){main.requiredSamples=$F("sample_pack");main.sendSamples=true;main.save();return true}alert("please select a sample pack option from the list");return false;break;case"step2":if(main.subTotal<main.minOrderValue){alert("You have not reached the minimum order value of "+main.getPounds(main.minOrderValue));main.submitting=false;return false}if(main.orderedFrames.length>0||main.orderedMounts.length>0||main.sendSamples){main.save();return true}else{alert("your order is empty")}main.submitting=false;return false;default:main.submitting=false;return false;break}}function $FR(d,a){if($(d)){if(typeof $(d).getInputs=="function"){if($(d).getInputs("radio",a)){var c=$(d).getInputs("radio",a);for(var b=0;b<c.length;b++){if(c[b].checked){return c[b].value}}return""}else{return""}}else{return""}}else{return""}}function startOrder(a){window.location.href="/framing/?step=1&units="+$FR("unitof","units")+((a!="")?"&"+a:"")}function showHowTo(){window.open("howto.html","frwhowto","width=622, height=500, scrollbars = 1, resize = 0  ")}var Dialog={info:function(d,c){var b=$("contentarea1");var a=$("contentarea2");a.innerHTML=d;b.style.display="none";a.style.display="block"},closeInfo:function(){var b=$("contentarea1");var a=$("contentarea2");a.innerHTML="";a.style.display="none";b.style.display="block"}};var PictureFrame=Class.create({value:0,canvas:false,costBreakDown:{total:null,qty:null,frame:null,noBacking:null,glassNonRef:null,glassClear:null},id:"",initialize:function(i,a,f,c,e,g,h,d,b){this.qty=i;this.width=a;this.height=f;this.range=c;this.moulding=e;this.noBacking=g;this.glass=h;this.metric=b;this.canvas=d},toString:function(){return"{"+this.qty+", "+this.width+", "+this.height+", "+this.range+", "+this.moulding+", "+this.noBacking+", "+this.glass+", "+this.metric+", "+this.value+"}:PictureFrame"},toAdminTableRow:function(){var c=' class=""';var a=main.getPounds(this.value).split(".");var b="<tr>";b+='<td class="ad_bcol" style="text-align:right">'+this.qty+"</td>";b+='<td class="ad_col" style="text-align:center">'+this.width+" x "+this.height+" <strong>"+(this.metric?"mm":"&quot;")+"</strong>";b+='<td class="ad_col" style="text-align:center">'+this.moulding+"</td>";b+='<td class="ad_col" style="text-align:right">'+main.getPounds(this.costBreakDown.frame)+"</td>";if(!this.noBacking){b+='<td class="ad_col" style="text-align:right">'+main.getPounds(this.costBreakDown.mdf)+"</td>"}else{if(this.canvas){b+='<td class="ad_col" style="text-align:center"><em>canvas on stretcher bars</em></td>'}else{b+='<td class="ad_col" style="text-align:center">&mdash;</td>'}}if(this.costBreakDown.glassClear>0){b+='<td class="ad_col" style="text-align:right">'+main.getPounds(this.costBreakDown.glassClear)+"</td>"}else{b+='<td class="ad_col" style="text-align:center">&mdash;</td>'}if(this.costBreakDown.glassNonRef>0){b+='<td class="ad_col" style="text-align:right">'+main.getPounds(this.costBreakDown.glassNonRef)+"</td>"}else{b+='<td class="ad_col" style="text-align:center">&mdash;</td>'}b+='<td class="ad_col" style="text-align:right">'+a[0]+"</td>";b+='<td class="ad_fcol">'+a[1]+"</td>";b+="</tr>";return b},toTableRow:function(d,c){var b=' style="border-top:1px #fff dotted;"';var a="";if(!c){a=' <a href="javascript:main.removeFramingRow('+d+')">X</a>'}return"<tr><td"+b+">"+this.qty+"</td><td"+b+"><strong>"+this.width+" x "+this.height+"</strong> "+(this.metric?"mm":"&quot;")+" <strong>"+this.moulding+"</strong>, glass:"+this.glass+(this.noBacking?"":", MDF back")+(this.canvas?", <em>(canvas on stretcher bars)</em>":"")+"</td><td"+b+' align="right">'+main.getPounds(this.value)+a+"</td></tr>"},setValue:function(a){this.value=a},setBreakDown:function(a){this.costBreakDown=a}});var Mount=Class.create({initialize:function(k,a,i,j,h,e,d,b,f,g,c){this.qty=k;this.width=a;this.height=i;this.mountInner=j;this.mountOuter=h;this.vgrvs=e;this.border=d;this.sides=b;this.bottom=f;this.top=g;this.doubleMount=String(this.mountOuter).length>1;this.metric=c},setValue:function(a){this.value=a},toTableRow:function(f,e){var d=' style="border-top:1px #fff dotted;"';var g=this.doubleMount?"Inner:"+this.mountInner+" / Outer:"+this.mountOuter:"Single:"+this.mountInner;var b="";var c="&quot;";if(main.metric){c="mm"}if(((this.sides==this.bottom)&&(this.sides==this.top))&&(main.toMetric(this.sides)>0)){b=", border:"+this.sides+c+" even"}else{if((main.toMetric(this.sides)>0)||(main.toMetric(this.bottom)>0)||(main.toMetric(this.top)>0)){b=main.toMetric(this.sides)>0?"sides:"+this.sides+c:"";b+=main.toMetric(this.bottom)>0?(b.length>0?", bottom:"+this.bottom+c:"bottom:"+this.bottom+c):"";b+=main.toMetric(this.top)>0?(b.length>0?", top:"+this.top+c:"top:"+this.top+c):""}}var a="";if(!e){a=' <a href="javascript:main.removeMountRow('+f+')">X</a>'}return"<tr><td"+d+">"+this.qty+"</td><td"+d+"><strong>"+this.width+" x "+this.height+"</strong> "+(this.metric?"mm":"&quot;")+" <strong>"+g+"</strong> "+b+" "+(this.vgrvs?", with v-grooves":"")+"</td><td"+d+' align="right">'+main.getPounds(this.value)+a+"</td></tr>"},toAdminTableRow:function(){var b=main.getPounds(this.value).split(".");var a="";var d="&quot;";if(main.metric){d="mm"}if(((this.sides==this.bottom)&&(this.sides==this.top))&&(main.toMetric(this.sides)>0)){a=this.sides+d}else{if((main.toMetric(this.sides)>0)||(main.toMetric(this.bottom)>0)||(main.toMetric(this.top)>0)){a=main.toMetric(this.sides)>0?this.sides+d:"";a+=main.toMetric(this.bottom)>0?(a.length>0?", "+this.bottom+d+" B":this.bottom+d+" B"):"";a+=main.toMetric(this.top)>0?(a.length>0?", "+this.top+d+" T":this.top+d+" T"):"";a+=" ("+this.border+")"}else{a=this.border}}var c="<tr>";c+='<td class="ad_bcol" style="text-align:right">'+this.qty+"</td>";c+='<td class="ad_col" style="text-align:center">'+this.width+" x "+this.height+" <strong>"+(this.metric?"mm":"&quot;")+"</strong></td>";if(!this.doubleMount){c+='<td class="ad_col" style="text-align:center">'+this.mountInner+"</td>"}else{c+='<td class="ad_col" style="text-align:center">&mdash;</td>'}if(this.doubleMount){c+='<td class="ad_col" style="text-align:center">'+this.mountInner+"</td>"}else{c+='<td class="ad_col" style="text-align:center">&mdash;</td>'}if(this.doubleMount){c+='<td class="ad_col" style="text-align:center">'+this.mountOuter+"</td>"}else{c+='<td class="ad_col" style="text-align:center">&mdash;</td>'}if(this.vgrvs){c+='<td class="ad_col" style="text-align:center">YES</td>'}else{c+='<td class="ad_col" style="text-align:center">&mdash;</td>'}c+='<td class="ad_col" style="text-align:center">'+a+"</td>";c+='<td class="ad_col" style="text-align:right">'+b[0]+"</td>";c+='<td class="ad_fcol">'+b[1]+"</td>";c+="</tr>";return c}});var Framing=Class.create({postage:[["UK Mainland",1250],["Isle of Man",1650],["Isles of Scilly",1650],["Guernsey",1800],["Jersey",1800],["UK Offshore",2000],["Collect",0]],minOrderValue:4000,prices:[],frameList:new Object(),frameListAll:[],metric:false,MMtoInch:25.4,browseOnly:false,selectedRange:"",minDimension:5,maxTotalDimension:60,maxDimension:36,autofill:false,sendSamples:false,lookupMountPart:"",beforeZoomHTML:"",subTotal:null,orderedFrames:[],orderedMounts:[],pe:null,printing:0,paymentMethod:"",requiredSamples:"",browseMouldingsWindowHTML:'<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title"><strong>Moulding sample gallery <a href="javascript:Dialog.closeInfo();" style="color:white">Go to order form</a></strong></td><td class="fr_title" align="right">filter by range <select onchange="javascript:main.showMouldings(this.value)"><option value="all" selected>-all-</option><option value="A">A</option><option value="B">B</option><option value="C">C</option><option value="D">D</option></select></td></tr><tr><td colspan="2" valign="top" align="center"><div style="font-size:120%" align="center"><p><a href="javascript:window.history.back()" style="font-size:1.2em; color:#ffffff">Return to introduction.</a><br/>Click on the moulding to start your order <br/>Please allow for both monitor and manufacturer\'s colour and tone variations.</p></div><div style="padding-left:35px;"><div id="mouldings"></div></td></tr></table>',browseMountsWindowHTMLsrc:'<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title">Available mounts</td><td class="fr_title" align="right"><a href="javascript:Dialog.closeInfo();" style="color:white">Return to order form</a></td></tr><tr><td colspan="2" class="nuteralback"><div style="font-size:120%" align="center"><p>Click a swatch to select or click <img src="images/magnifier.png" align="absmiddle"/> to zoom in and focus on an individual mount.<br/>Please allow for both monitor and manufacturer\'s colour and tone variations.</p></div><p align="center"><a href="javascript:window.history.back()" style="font-size:1.2em; color:#ffffff">Return to introduction.</a></p><div id="mounts"></div><br clear="all"/><div style="float:left; height:11px;">&nbsp;</div></td></tr></table>',mouldingsWindowHTML:'<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title"><strong>Moulding sample gallery <a href="javascript:Dialog.closeInfo();" style="color:white">Return to order form</a></strong></td><td class="fr_title" align="right">filter by range <select onchange="javascript:main.showMouldings(this.value)"><option value="all" selected>-all-</option><option value="A">A</option><option value="B">B</option><option value="C">C</option><option value="D">D</option></select></td></tr><tr><td colspan="2" valign="top" align="center"><div style="font-size:120%" align="center"><p>Click on the moulding to select it<br/>Please allow for both monitor and manufacturer\'s colour and tone variations.</p></div><div style="padding-left:35px;"><div id="mouldings"></div></td></tr></table>',mountsWindowHTMLsrc:'<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title">Available mounts</td><td class="fr_title" align="right"><a href="javascript:Dialog.closeInfo();" style="color:white">Return to order form</a></td></tr><tr><td colspan="2" class="nuteralback"><div style="font-size:120%" align="center"><p>Click a swatch to select or click <img src="images/magnifier.png" align="absmiddle"/> to zoom in and focus on an individual mount.<br/>Please allow for both monitor and manufacturer\'s colour and tone variations.</p></div><div id="mounts"></div><br clear="all"/><div style="float:left; height:11px;">&nbsp;</div></td></tr></table>',mountsWindowHTML:"",slideshowOption:"all",slideshowFramesUp:12,slideshowOffset:0,submitting:false,initialize:function(){},save:function(){var b=new Hash();b.set("orderedFrames",this.orderedFrames);b.set("orderedMounts",this.orderedMounts);b.set("requiredSamples",this.requiredSamples);if(this.requiredSamples!=""){this.sendSamples=true}b.set("sendSamples",this.sendSamples);var a=$("order");if(a){$("order").value=b.toJSON()}else{console.warn("tried to set 'order' value however the element wasn't found")}},step2init:function(){$("clearonload").hide();$("allcontent").show();$("leftinset").show();this.init()},init:function(mode){var ord=$("order");if(ord&&ord.value!=""){var foo=ord.value;var obj=eval("("+foo+")");if(obj.orderedFrames){this.orderedFrames=[];if(obj.orderedFrames.length>0){for(var i=0;i<obj.orderedFrames.length;i++){var pf=new PictureFrame();var e=obj.orderedFrames[i];for(var prop in e){if(prop=="costBreakDown"){pf.costBreakDown={};for(var cb in e[prop]){pf.costBreakDown[cb]=e[prop][cb]}}else{pf[prop]=e[prop]}}this.orderedFrames.push(pf)}}if(this.orderedFrames.length!=obj.length){}}if(obj.orderedMounts){this.orderedMounts=[];if(obj.orderedMounts.length>0){for(i=0;i<obj.orderedMounts.length;i++){var mn=new Mount(obj.orderedMounts[i].qty,obj.orderedMounts[i].width,obj.orderedMounts[i].height,obj.orderedMounts[i].mountInner,obj.orderedMounts[i].mountOuter,obj.orderedMounts[i].vgrvs,obj.orderedMounts[i].border,obj.orderedMounts[i].sides,obj.orderedMounts[i].bottom,obj.orderedMounts[i].top,obj.orderedMounts[i].metric);mn.setValue(obj.orderedMounts[i].value);this.orderedMounts.push(mn)}if(this.orderedFrames.length!=obj.length){}}}this.requiredSamples=obj.requiredSamples?obj.requiredSamples:"";this.sendSamples=obj.sendSamples?obj.sendSamples:false}else{this.orderedFrames=[];this.orderedMounts=[];this.sendSamples=false;this.requiredSamples=""}if($("units")){this.metric=$F("units")=="metric"}if(mode&&mode=="summary"){this.summarise();if($FR("step1","payment_method")){this.paymentMethodChange($FR("step1","payment_method"))}}else{if(mode&&mode=="adminsummary"){this.summariseForAdmin()}else{if(mode&&mode=="slideshow"){this.showMouldingsAsSlideShow("all",0)}else{if(this.orderedFrames.length>0){this.invalidateRows(this.orderedFrames,"framingRows")}if(this.orderedMounts.length>0){this.invalidateRows(this.orderedMounts,"mountRows")}var uo=$("unitsof");if(uo){uo.innerHTML=(this.metric?"<string>Units are in milimeters</strong>":"<strong>Units are in inches</strong> to enter a fraction of an inch use the notation <strong>1 1/2</strong>")}if($("mnt_double")){this.toggleDoubleMount($("mnt_double"))}if($("frm_auto-fill")){this.toggleAutoFill($("frm_auto-fill"))}if($("frm_qty")){$("frm_qty").focus()}}}}},checkBeforeUnload:function(a){if(!this.submitting&&(this.orderedFrames.length>0||this.orderedMounts.length>0)){a.returnValue="You have unsaved information."}},paymentMethodChange:function(a){if($("frm_first_select")){$("frm_first_select").hide()}if(typeof a=="string"){this.paymentMethod=a}else{if(typeof a=="object"){this.paymentMethod=a.value}}if(this.paymentMethod=="google"){$("frm_postcode").hide();$("frm_address").hide();$("formarea").show()}else{if(this.paymentMethod=="callback"){$("frm_postcode").show();$("frm_address").show();$("formarea").show()}}},toggleSendSamples:function(a){this.sendSamples=a.checked},addOption:function(a){if(this.frameList[a.range]==undefined){this.frameList[a.range]=new Array()}this.frameList[a.range].push({id:a.id,code:a.code});if(a.range!="MOUNT"){this.frameListAll.push({id:a.id,code:a.code,range:a.range})}},toggleAutoFill:function(a){this.autofill=a.checked},toggleDoubleMount:function(a){var b=a.checked;if(b){$("mnt_2").style.display="inline";$("mnt_1").innerHTML="Inner"}else{$("mnt_2").style.display="none";$("mnt_1").innerHTML="Mount"}},addPriceBand:function(a){a.mm=Number(parseInt(Number(a.inches)*Number(this.MMtoInch)*100)/100);this.prices.push(a)},getPriceList:function(c){var a='<table cellpadding="4" cellspacing="1" border="0" class="pricelist">';switch(c){case"mounts":a+='<tr><td align="center">Outer Size<br/>or Frame Size</td><td align="center">Single<br/>Mount</td><td align="center">Double<br/>Mount</td><td align="center">V-Groove<br/>= Extra</td></tr>';break;case"frames":a+='<tr><td align="center">Frame Size</td><td align="center">Range<br/>A</td><td align="center">Range<br/>B</td><td align="center">Range<br/>C</td><td align="center">Range<br/>D</td><td align="center">MDF<br/>Back</td><td align="center">Clear<br/>Glass</td><td align="center">Non<br/>Reflective<br/>Glass</td></tr>';break}for(var b=0;b<this.prices.length;b++){switch(c){case"mounts":a+='<tr><td align="center">'+this.prices[b].name+'</td><td align="right">'+this.getPounds(this.prices[b].single,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b]["double"],"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].vgroove,"N/A")+"</td></tr>";break;case"frames":a+='<tr><td align="center">'+this.prices[b].name+'</td><td align="right">'+this.getPounds(this.prices[b].range_a,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].range_b,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].range_c,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].range_d,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].mdf,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].clear,"N/A")+'</td><td align="right">'+this.getPounds(this.prices[b].non_reflective,"N/A")+"</td></tr>";break}}return a+'</table><br/><a href="javascript:Dialog.closeInfo();" style="color:white"><strong>back</strong></a>'},frmChange:function(a){if(this.autofill){var b="mnt_"+a.name.substr(4);if(b){$(b).value=a.value}}this.updateEditSubTotal()},mfrmChange:function(a){this.updateMountEditSubTotal()},addFramingRow:function(){if(this.framingRowValidates(true)){var b=true;if($("frm_custom").value!=""&&($("frm_custom").value).toUpperCase()==($("frm_moulding").value).toUpperCase()){b=false;b=window.confirm('The moulding "'+$("frm_moulding").value+'" has not been added to the online mail-order catalogue.\nPlease confirm that the code is correct\n\nPress "OK" to add this item to the order as shown,\nOr press "Cancel" to update this item.')}if(b){var c=this.getPictureFrame();var a=this.getFrameValue(c);if(a){c.setValue(a);c.setBreakDown(this.getFrameValueExtended(c));this.orderedFrames.push(c);this.invalidateRows(this.orderedFrames,"framingRows");$("frm_qty").value=$("frm_width").value=$("frm_height").value=$("frm_range").value=$("frm_moulding").value="";if(this.autofill){$("mnt_inner").focus()}else{$("frm_qty").focus()}this.frmChange()}else{alert("failed to price this frame, please check and try again")}}}},addMountRow:function(){if(this.mountRowValidates(true)){var b=this.getMount();var a=this.getMountValue(b);if(a){b.setValue(a);this.orderedMounts.push(b);this.invalidateRows(this.orderedMounts,"mountRows");$("mnt_qty").value=$("mnt_width").value=$("mnt_height").value=$("mnt_inner").value=$("mnt_outer").value=$("mnt_sides").value=$("mnt_top").value=$("mnt_bottom").value="";if(this.autofill){$("frm_qty").focus()}else{$("mnt_qty").focus()}this.frmChange()}else{alert("failed to price this mount, please check and try again")}}},getPictureFrame:function(){return new PictureFrame(parseInt($F("frm_qty")),$F("frm_width"),$F("frm_height"),$F("frm_range"),$F("frm_moulding").toUpperCase(),$FR("frm_entry","frm_back")!="MDF",$FR("frm_entry","frm_glass"),$FR("frm_entry","frm_back")!="MDF",this.metric)},getMount:function(){return new Mount(parseInt($F("mnt_qty")),$F("mnt_width"),$F("mnt_height"),$F("mnt_inner"),$F("mnt_outer"),$("mnt_vgroove").checked,$F("mnt_border"),$F("mnt_sides"),$F("mnt_bottom"),$F("mnt_top"),this.metric)},invalidateRows:function(b,f,c){var e="";if(b.length>0){e='<table width="100%" cellspacing="0" cellpadding="3" border="0">';for(var d=0;d<b.length;d++){var a=b[d];e+=a.toTableRow(d,c)}e+="</table>"}if(c){return e}$(f).innerHTML=e;this.updateSubTotal();return true},invalidateRowsAdminStyle:function(b,f,c){var e="";if(b.length>0){if(f=="mounts"){e='<tr><td class="adt_bcol" width="80">QUANTITY</td><td class="adt_col">FRAME SIZE ('+(this.metric?"MM":"INCHES")+')</td><td class="adt_col">SINGLE MOUNT<br/>COLOUR No.</td><td class="adt_col">DOUBLE MOUNT<br/>INNER</td><td class="adt_col">DOUBLE MOUNT<br/>OUTER</td><td class="adt_col">\'V\' GROOVE</td><td class="adt_col">BORDER WIDTH</td><td class="adt_col">&nbsp;</td><td class="adt_fcol">&nbsp;</td></tr>'}else{e='<tr><td class="adt_bcol" width="80">QUANTITY</td><td class="adt_col">FRAME SIZE ('+(this.metric?"MM":"INCHES")+')</td><td class="adt_col">MOULDING No.</td><td class="adt_col">FRAME PRICE</td><td class="adt_col">M.D.F. BACK</td><td class="adt_col">CLEAR GLASS</td><td class="adt_col">NON.REF. GLASS</td><td class="adt_col">TOTAL £</td><td class="adt_fcol">p</td></tr>'}for(var d=0;d<b.length;d++){var a=b[d];e+=a.toAdminTableRow(d,c)}}if(c){return e}return true},getSampleSummary:function(){var a="";if(this.requiredSamples!=""){if(this.orderedFrames.length==0&&this.orderedMounts.length==0){a="<p>Sample pack: <strong>"+this.requiredSamples+"</strong> "+this.getPounds(this.getSamplesPrice())+"</p>"}else{a="<p>Sample pack: <strong>"+this.requiredSamples+"</strong></p>"}}return a},summarise:function(){var a=this.invalidateRows(this.orderedFrames,null,true);a=a!=""?"<p><strong>FRAMES</strong></p>"+a:"";var c=this.invalidateRows(this.orderedMounts,null,true);var b="";if(a!=""){b='style="border-top:2px white solid; padding-top:3px; margin-top:5px;"'}c=c!=""?"<p "+b+"><strong>MOUNTBOARDS</strong></p>"+c:"";$("summary").innerHTML=a+c+this.getSampleSummary();var d=$("totals");if(d){this.updateSubTotal();this.displayTotals()}},summariseForAdmin:function(){var a='<table class="adt_formpart" width="100%" cellspacing="0" cellpadding="3" border="0" style=border-top:2px black solid;">';if(this.orderedFrames.length>0){a+='<tr><td class="adt_top" colspan="9"><strong>FRAME ORDER FORM</strong></td></tr>';a+=this.invalidateRowsAdminStyle(this.orderedFrames,null,true)}if(this.orderedMounts.length>0){a+='<tr><td class="adt_top" colspan="9"><strong>MOUNTBOARD ORDER FROM</strong></td></tr>';a+=this.invalidateRowsAdminStyle(this.orderedMounts,"mounts",true)}if(this.requiredSamples!=""){if(this.orderedMounts.length==0&&this.orderedFrames.length==0){a+="<p>Sample pack: <strong>"+this.requiredSamples+"</strong> "+this.getPounds(this.getSamplesPrice())+"</p>"}else{a+="<p>Sample pack: <strong>"+this.requiredSamples+"</strong></p>"}}a+='<tr><td colspan="5" rowspan="4" style="border-top:2px black solid;">'+$("addressinfo").innerHTML+"</td>";var c=parseInt($F("fr_delivery"));var b=parseInt($F("fr_subtotal"));var d=main.getPounds(b).split(".");a+='<td colspan="2" valign="top" style="text-align:right; border-left:1px black solid;border-top:2px black solid;">SUBTOTAL</td><td style="text-align:right; border-left:1px black solid;border-top:2px black solid;">'+d[0]+'</td><td style="border-left:1px black solid;border-right:1px black solid;border-top:2px black solid;">'+d[1]+"</td></tr>";d=main.getPounds(c).split(".");a+='<td colspan="2" valign="top" style="text-align:right; border:1px black solid; border-right:none">DELIVERY</td><td style="text-align:right; border:1px black solid; border-right:none">'+d[0]+'</td><td style="border:1px black solid;">'+(d[0]!="n/a"?d[1]:"n/a")+"</td></tr>";d=main.getPounds(b+c).split(".");a+='<td colspan="2" valign="top" style="text-align:right; border-left:1px black solid; border-bottom:1px black solid;">GRAND TOTAL</td><td style="text-align:right; border-left:1px black solid; border-bottom:1px black solid;">'+d[0]+'</td><td style="border-left:1px black solid; border-bottom:1px black solid; border-right:1px black solid;">'+d[1]+"</td></tr>";a+='<tr><td colspan="4" valign="top">'+$("metadata").innerHTML+"</td></tr>";a+="</table>";$("summary").innerHTML=a},displayTotals:function(){var b=$("totals");if(b){this.updateSubTotal();var c='<table cellpadding="0" cellspacing="0" border="0">';c+='<tr><td align="right" style="border-bottom:1px white solid;">Subtotal&nbsp;</td><td align="right" style="border-bottom:1px white solid;">'+this.getPounds(this.subTotal)+"</td></tr>";if(this.orderedFrames.length==0&&this.orderedMounts.length==0&&this.requiredSamples!=""){c+='<tr><td align="right" style="border-bottom:1px white solid;">Delivery&nbsp;</td><td align="right" style="border-bottom:1px white solid;">FREE</td></tr>';c+='<tr><td align="right" style="border-bottom:2px white solid;">Grand Total&nbsp;</td><td align="right" style="border-bottom:2px white solid;"><strong>'+this.getPounds(this.subTotal)+"</strong></td></tr>"}else{if($F("region")!="-please select-"){for(var a=0;a<this.postage.length;a++){if(this.postage[a][0]==$F("region")){c+='<tr><td align="right" style="border-bottom:1px white solid;">Delivery&nbsp;</td><td align="right" style="border-bottom:1px white solid;">'+this.getPounds(this.postage[a][1])+"</td></tr>";c+='<tr><td align="right" style="border-bottom:2px white solid;">Grand Total&nbsp;</td><td align="right" style="border-bottom:2px white solid;"><strong>'+this.getPounds(this.postage[a][1]+this.subTotal)+"</strong></td></tr>";break}}}else{c+='<tr><td align="right" style="border-bottom:1px white solid;">Delivery&nbsp;</td><td align="right" style="border-bottom:1px white solid;">&mdash;.&mdash;</td></tr>';c+='<tr><td align="right" style="border-bottom:2px white solid;">Grand Total&nbsp;</td><td align="right" style="border-bottom:2px white solid;"><strong>&mdash;.&mdash;</strong></td></tr>'}}c+="</table>";b.innerHTML=c}},updateEditSubTotal:function(){var d="n/a";if(this.framingRowValidates(false)){var a=this.getPictureFrame();if(a){var b=this.toMetric(a.width)+this.toMetric(a.height);var c=this.getFramePriceElements(b);if(a.glass=="clear"&&c.clear==null){a.glass="none"}if(a.glass=="non reflective"&&c.non_reflective==null){a.glass="none"}this.updateGlassOptions(c,a);a.value=this.getFrameValue(a);d=this.getPounds(a.value)}}$("frtotal").innerHTML=d},updateGlassOptions:function(b,a){if(b.clear==null){this.setRadioValue("frm_entry","frm_glass","none");$("glass_not_ok").show();$("glass_ok").hide()}else{$("glass_ok").show();$("glass_not_ok").hide()}},updateMountEditSubTotal:function(){var b="n/a";if(this.mountRowValidates(false)){var a=this.getMount();if(a){a.value=this.getMountValue(a,false);b=this.getPounds(a.value)}}$("mntotal").innerHTML=b},getSamplesPrice:function(){if(this.orderedMounts.length==0&&this.orderedFrames.length==0&&this.requiredSamples!=""){switch(this.requiredSamples){case"watercolour samples":return 500;break;case"oil samples":return 500;break;case"combined pack":return 800;break}}return 0},updateSubTotal:function(){this.subTotal=0;for(var a=0;a<this.orderedFrames.length;a++){this.subTotal+=this.orderedFrames[a].value}for(a=0;a<this.orderedMounts.length;a++){this.subTotal+=this.orderedMounts[a].value}this.subTotal+=this.getSamplesPrice()},removeFramingRow:function(a){this.orderedFrames.splice(a,1);this.invalidateRows(this.orderedFrames,"framingRows")},removeMountRow:function(a){this.orderedMounts.splice(a,1);this.invalidateRows(this.orderedMounts,"mountRows")},getFrameValue:function(a){var b=this.getFrameValueExtended(a);return b.total},getFrameValueExtended:function(a){var c=this.toMetric(a.width)+this.toMetric(a.height);var g=this.getFramePriceElements(c);var f=g.complete["range_"+a.range];var h=a.noBacking?0:g.mdf;var e=a.glass=="non reflective"?g.non_reflective:0;var d=a.glass=="clear"?g.clear:0;var b=(f+h+e+d)*a.qty;return{total:b,qty:a.qty,frame:f,mdf:h,glassNonRef:e,glassClear:d};return false},getFramePriceElements:function(c){for(var d=0;d<this.prices.length;d++){if(Math.floor(this.prices[d].mm)>=Math.floor(c)){var e=this.prices[d];var b=this.prices[d].mdf;var f=this.prices[d].non_reflective;var a=this.prices[d].clear;return{complete:e,mdf:b,non_reflective:f,clear:a}}}return false},getMountValue:function(b,a){var c=this.toMetric(b.width)+this.toMetric(b.height);for(var d=0;d<this.prices.length;d++){if(this.prices[d].mm>=c){var e=-1;if(b.doubleMount){e=this.prices[d]["double"]}else{e=this.prices[d]["single"]}if(e>0){if(b.vgrvs){var f=this.prices[d]["vgroove"];if(f>0){e+=f}else{if(arguments.length==1){alert("v-grooves cannot be cut on a mount of this size")}return false}}return e*b.qty}}}return false},checkValidOption:function(c,a){$("frm_custom").value="";for(var e in this.frameList){for(var b=0;b<this.frameList[e].length;b++){if(this.frameList[e][b].code==c){if(a&&e=="MOUNT"){return true}if(!a&&e!="MOUNT"){$("frm_range").value=e.toLowerCase();return true}}}}if(c.length>0&&!a){var d=(c.substr(0,1)).toUpperCase();if("ABCD".indexOf(d)!=-1){$("frm_range").value=d.toLowerCase();$("frm_custom").value=c;return true}}return false},framingRowValidates:function(f){var e=Number($F("frm_qty"));if(isNaN(e)||parseInt($F("frm_qty"))<1||Math.round(e)!=e||e==""){if(f){alert("please enter a valid quantity.")}return false}var b=this.toMetric($F("frm_width"));var c=this.toMetric($F("frm_height"));var a=this.minDimension*this.MMtoInch;var d=this.maxDimension*this.MMtoInch;if(isNaN(b)||isNaN(c)){if(f){alert("please check the dimensions supplied.")}return false}else{if(b<a||c<a){if(f){alert("size is smaller than the minimum dimension.")}return false}else{if((b+c)>(this.maxTotalDimension*this.MMtoInch)){if(f){alert("overall size is larger than the maximum allowed total dimension.")}return false}else{if(b>d||c>d){if(f){alert("size is larger than the maximum dimension.")}return false}else{if(!this.checkValidOption($F("frm_moulding").toUpperCase(),false)){if(f){alert("invalid moulding selected, please check and try again")}return false}}}}}return true},mountRowValidates:function(f){var e=Number($F("mnt_qty"));if(isNaN(e)||parseInt($F("frm_qty"))<1||Math.round(e)!=e||e==""){if(f){alert("please enter a valid quantity.")}return false}var b=this.toMetric($F("mnt_width"));var c=this.toMetric($F("mnt_height"));var a=this.minDimension*this.MMtoInch;var d=this.maxDimension*this.MMtoInch;if($F("mnt_border")=="even"){$("mnt_top").value=$("mnt_bottom").value=$("mnt_sides").value}if(isNaN(b)||isNaN(c)||isNaN($F("mnt_sides"))){if(f){alert("please check the dimensions supplied.")}return false}else{if(b<a||c<a){if(f){alert("size is smaller than the minimum dimension.")}return false}else{if(b+c>this.maxTotalDimension*this.MMtoInch){if(f){alert("overall size is larger than the maximum allowed total dimension.")}return false}else{if(b>d||c>d){if(f){alert("size is larger than the maximum dimension.")}return false}else{if(!this.checkValidOption($F("mnt_inner"),true)){if(f){alert("invalid mount selected, please check and try again")}return false}else{if($("mnt_double").checked&&!this.checkValidOption($F("mnt_outer"),true)){if(f){alert("invalid outer mount selected, please check and try again")}return false}}}}}}if(b+c<355){}return true},mountBorderOptionChange:function(a){if(a.selectedIndex>0){$("mnt_bottom_container").show()}else{$("mnt_bottom_container").hide()}},toMetric:function(n){if(this.metric){if(!isNaN(Number(n))){return Number(n)}else{return 0}}else{if(!isNaN(Number(n))){var r=Number(n)*this.MMtoInch;return r}else{if(typeof n=="string"){if(n.indexOf("/")>-1){while(n.match(/(\d) (\d)/)){n=n.replace(/(\d) (\d)/,"$1+$2")}n=n.replace(/["']/,"");r=Number(eval(this.MMtoInch+"*("+n+")"));return r}}}}return Number(n)},lookupPricing:function(){Dialog.info('<div id="popupWin"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="fr_title">Price list</td><td class="fr_title" align="right"><a href="javascript:Dialog.closeInfo();" style="color:white"><strong>Return to form</strong></a></td></tr><tr><td valign="top" style="background-color:#A20000; padding:25px 25px 50px 50px;" align="center"><p><strong>Price list for mounts</strong></p>'+this.getPriceList("mounts")+'</td><td valign="top" style="background-color:#A20000; padding:25px 50px 50px 25px;" align="center"><p><strong>Price list for frames</strong></p>'+this.getPriceList("frames")+"</td></tr></table></div>")},lookupMoulding:function(){if(this.browseOnly){Dialog.info('<div id="popupWin">'+this.browseMouldingsWindowHTML+"</div>");this.showMouldings("all");this.browseOnly=false;this.selectedRange=""}else{Dialog.info('<div id="popupWin">'+this.mouldingsWindowHTML+"</div>");this.syncSelectedRange()}},lookupMount:function(g){this.lookupMountPart=g;if(this.mountsWindowHTML!=""){Dialog.info(this.mountsWindowHTML,{width:this.popupWidth,height:this.popupHeight})}else{if(this.browseOnly){Dialog.info('<div id="popupWin">'+this.browseMountsWindowHTMLsrc+"</div>")}else{Dialog.info('<div id="popupWin">'+this.mountsWindowHTMLsrc+"</div>")}var a=$("mounts");var c=new Template('<div class="mount" style="background-image:url(\'get_image.php?id=#{id}&mthumb\')"><a href="javascript:main.selectMount(\'#{name}\');"><img src="/framing/images/spacer.gif" height="74" width="74" id="mount_#{id}" border="0" alt="click to select this mount"/></a><br/><div style="width:90px; padding-top:3px;"><div style="float:left;"><a href="javascript:main.zoomImage(\'#{id}\',\'#{name}\',true);"><img src="images/magnifier.png" height="16" width="16" alt="enlarge this image" border="0" align="absmiddle" style="margin-left:5px;"/></a></div><div style="float:right; padding-top:3px;"><strong>#{name}</strong></div></div></div>');var f="";var d=this.frameList.MOUNT;if(d){for(var b=0;b<d.length;b++){f+=c.evaluate({id:d[b].id,name:d[b].code})}}a.innerHTML=f;if(!this.browseOnly){this.mountsWindowHTML='<div id="popupWin"'+($("popupWin").innerHTML)+"</div>"}else{this.browseOnly=false}}},syncSelectedRange:function(){if(this.selectedRange!=""){}else{this.showMouldings("all")}},setRadioValue:function(e,a,g){var d=$(e);var c=d[a];var b=c.length;while(b--){if(c[b].value==g){c[b].checked=true;break}}},getRadioValue:function(e,a){var d=$(e);var c=d[a];var b=c.length;while(b--){if(c[b].checked){return c[b].value}}return c.checked&&c.value},showMouldings:function(g,h,d){this.lookupMountPart="";var a=$("mouldings");var c=new Template('<div class="moulding"><div style="width:150px; padding-top:3px; font-size:110%; position:absolute; z-index:2;"><div style="float:right; padding-top:3px;"><strong>#{name}</strong></div></div><a href="javascript:main.selectMoulding(\'#{name}\');"><img src="get_image.php?id=#{id}&thumb" id="moulding_#{id}" border="0" alt="click to select this moulding"/></a><br/><div style="float:left; margin-top:5px;"><a href="get_image.php?id=#{id}&full" rel="lightbox[moulding]" title="#{name}"><img src="images/magnifier.png" height="16" width="16" alt="enlarge this image" border="0" align="absmiddle"/>zoom in</a></div></div>');var f="";if(!g){g=this.getRadioValue("rangeselect","range")}this.selectedRange=g;if(g=="all"){el=this.frameListAll}else{el=this.frameList[g]}if(el){if(!h){h=0}if(!d){d=99999}for(var b=h;b<Math.min(el.length,h+d);b++){f+=c.evaluate({id:el[b].id,name:el[b].code})}}a.innerHTML=f;this.syncMouldingsHTML()},showMouldingsAsSlideShow:function(g,d){this.slideshowOffset=d;this.slideshowOption=g;var h=this.slideshowFramesUp;var b=$("gallery");var f=new Template('<div class="mouldingSlide"><div style="width:150px; padding-top:3px; font-size:110%; position:absolute; z-index:2;"><div style="float:left;">range <strong>#{range}</strong></div><div style="float:right; padding-top:3px;"><strong>#{name}</strong></div></div><a href="get_image.php?id=#{id}&full" rel="lightbox" title="#{name}"><img src="get_image.php?id=#{id}&thumb" id="moulding_#{id}" border="0"/></a><br/></div>');var k="";var a;if(g!="all"){a=this.frameList[g]}else{a=this.frameListAll}var j=Math.min(d+h,a.length);if(a){for(var e=d;e<j;e++){k+=f.evaluate({id:a[e].id,name:a[e].code,range:a[e].range})}}k+='<br clear="all"/><p><strong>showing '+d+" - "+j+" of "+a.length+"</strong></p>";k+="<p>";if(d>0){k+="<a href=\"javascript:main.showMouldingsAsSlideShow('"+g+"',"+(d-h)+')">&lt; previous</a>&nbsp;'}if(d<a.length){k+="<a href=\"javascript:main.showMouldingsAsSlideShow('"+g+"',"+(d+h)+')">next &gt;</a>&nbsp;'}k+="</p>";b.innerHTML=k},syncMouldingsHTML:function(){if(!this.browseOnly){if($("popupWin")){this.mouldingsWindowHTML=$("popupWin").innerHTML}}},zoomImage:function(d,c,a){this.beforeZoomHTML=$("popupWin").innerHTML;var b;if(a){b=new Template('<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title">Selecting moulding <strong>#{title}</strong></td><td class="fr_title" align="right"><a href="javascript:main.closeZoom();" style="color:white">Return to moulding selection</a></td></tr><tr><td colspan="2" align="center" style="padding:30px" class="nuteralback"><div class="blockwhite"></div><div class="blockswatch"><a href="javascript:main.selectMount(\'#{title}\');" ><img src="get_image.php?id=#{id}&full" alt="click to select this option"/></a><br/><a href="javascript:main.selectMount(\'#{title}\');" style="color:white">Select this option</a></div><div class="blockblack"></div></td></tr></table>')}else{b=new Template('<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td class="fr_title">Selecting moulding <strong>#{title}</strong></td><td class="fr_title" align="right"><a href="javascript:main.closeZoom();" style="color:white">Return to moulding selection</a></td></tr><tr><td colspan="2" align="center" style="padding:30px;" class="nuteralback"><a href="javascript:main.selectMoulding(#{id});" ><img src="get_image.php?id=#{id}&full" alt="click to select this option"/></a><br/><a href="javascript:main.selectMoulding(#{id});" style="color:white">Select this option</a></td></tr></table>')}$("popupWin").innerHTML=b.evaluate({id:d,title:c})},closeZoom:function(){$("popupWin").innerHTML=this.beforeZoomHTML;if(this.lookupMountPart==""){this.syncSelectedRange()}},selectMoulding:function(a){Dialog.closeInfo();$("frm_moulding").value=a.toUpperCase();$("frm_qty").focus();this.frmChange()},selectMount:function(a){Dialog.closeInfo();$(this.lookupMountPart).value=a;this.updateMountEditSubTotal();$("mnt_qty").focus();this.frmChange()},getPounds:function(){var a=arguments.length>1?arguments[1]:"n/a";var b=arguments[0];if(b==false||b==null){return a}var c=String(b);if(c.length>2){c="£"+c.substr(0,c.length-2)+"."+c.substr(c.length-2,2)}else{if(c.length==1){c="£0.0"+c}else{c="£0."+c}}return c}});var main=new Framing();function timedSubmit(c,a){var d=document.getElementById(a);var b=parseInt(d.innerHTML);var f=setInterval(function(){if(b){d.innerHTML=--b}else{clearInterval(f);c.submit()}},1000)};