// Web software by DavidRegier.com
function ShoppingCart(){this.addToCart=addToCart;this.changeQuan=changeQuan;this.deleteCart=deleteCart;this.getAddCartGUI=getAddCartGUI;this.exportCart=exportCart;this.getCart=getCart;this.getDeleteCartGUI=getDeleteCartGUI;this.getMailCartGUI=getMailCartGUI;this.getMoney=getMoney;this.getSaveCartWin=getSaveCartWin;this.importCart=importCart;this.initAddToCartPopUp=initAddToCartPopUp;this.initChangeQuanPopUp=initChangeQuanPopUp;this.initOrderPage=initOrderPage;this.itemFound=itemFound;this.loadPhotoOrderPage=loadPhotoOrderPage;this.mailCart=mailCart;this.msgNoCook="You have turned off Cookies! You must re-enable cookies to use our shopping cart.";this.quanValid=quanValid;this.removeItem=removeItem;this.saveCart=saveCart;this.setID=setID;this.setSub=setSub;this.setTnPhotoCaptions=setTnPhotoCaptions;this.showMsg=showMsg;this.writeGalleryGUI=writeGalleryGUI;this.writeItem=writeItem;this.writeKahikoGUI=writeKahikoGUI;this.writeOrderIt=writeOrderIt;this.writeShipTaxLink=writeShipTaxLink;this.addToCartTimer=0;this.cartExpDate=GetCookie("saveCart")?SaveCartExpDate:null;this.imageID="";this.enlargement="";this.notForSale=false;this.reportErr=true;this.Msg=new Array();this.Msg.buyIt="Add this item to your shopping cart";this.Msg.closeWin="Close this pop-up window";this.Msg.viewCart="Review & edit your order";this.Msg.checkout="Submit your order";this.Msg.checkoutTip="Submit your completed order from our secure <a href='checkout.aspx' onClick='return setURL( this );'>Checkout Stand</a>";this.Msg.noData="<b>ERROR</b>: Unable to find data for this item";this.Msg.notForSale="This image is not for sale";this.setID();function mailCart(Form){var MailStatus=document.getElementById("MailStatus");var emailRE=/^[\w\.-]*[^\.-]@[\w\.-]+\.[a-zA-Z]{2,}$/;var Sender_Email=Form.Sender_Email;var Recipient_Email=Form.Recipient_Email;if(!Sender_Email.value){Sender_Email.focus();MailStatus.innerHTML="Enter your e-mail address";return false;}
else if( !emailRE.test(Sender_Email.value)){Sender_Email.focus();MailStatus.innerHTML="Sender&rsquo;s e-mail is invalid - bad format";return false;}
else if(!Recipient_Email.value){Recipient_Email.focus();MailStatus.innerHTML="Enter recipient&rsquo;s e-mail address";return false;}
else if( !emailRE.test(Recipient_Email.value)){Recipient_Email.focus();MailStatus.innerHTML="Recipient&rsquo;s e-mail is invalid - bad format";return false;}
else if(Form.Comments.value==Form.Comments.defaultValue)Form.Comments.value="";var SubmitRequest=getAjaxRequest();MailStatus.innerHTML="Sending mail, please wait...";var SubmitButton=document.getElementById("SubmitButton");SubmitButton.style.cursor="wait";SubmitButton.disabled=true;SubmitRequest.onreadystatechange=function(){try{if(SubmitRequest.readyState==4){if(SubmitRequest.status==200){var responseText=SubmitRequest.responseText;if( /<span id='ServerError'>/.test(responseText)){var aspError=responseText.replace(/\r/g, "" ).replace(/\n/g, "" );
aspError=aspError.replace(/^.*<span id='ServerError'>/, "" );
aspError=aspError.replace(/<\/span>.*$/, "" );
MailStatus.innerHTML="<b>Error</b>: Your e-mail was undeliverable";var Error=document.getElementById("ErrorMailingCart");Error.className="ErrorMailingCart";Error.innerHTML=aspError;}
else{MailStatus.innerHTML="Your e-mail was successfully sent &nbsp;<span class='scBullets'>&#149;</span>&nbsp; <a href='javascript:DW.removeWin();' class='dwLink' title='Close this pop-up window'>Close</a>";Form.Recipient_Email.value="";Form.Comments.value=Form.Comments.defaultValue;}}
else
alert("Form post error, please try again...\n\nRequest.status expected: 200\nRequest.status returned: "+SubmitRequest.status);SubmitButton.disabled=false;SubmitButton.style.cursor="default";SubmitRequest=getAjaxRequest();}}
catch(Err){var eMsg="AJAX exception at submitForm\n\n";for(var i in Err)eMsg+=i+": "+Err[i]+"\n";try{alert(eMsg);} catch(Err){}}}
Form.MailLink.value=Form.Sender_Email.value+" has e-mailed you a shopping cart order from the web site of Shane Tegarden Photography. <a href='"+SC.exportCart()+"'>Click here</a> to view the order.";var requestBody=getRequestBody(Form);Form.action="form-mailer.aspx"+((qStr)?"?"+qStr:"");SubmitRequest.open("post",Form.action,true);SubmitRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");SubmitRequest.send(requestBody);}
function getMailCartGUI(Link,evt){if(getAjaxRequest()){var htm="<form name='MailCart' id='MailCart' onSubmit='SC.mailCart( this ); return false;' style='margin:0px 0px 0px 0px;'><input type='hidden' name='ASP_Job' value='Mail_Cart' /><input type='hidden' name='Subject' value='Shane Tegarden Photography &#149; Email Cart' /><input type='hidden' name='MailLink' /><table align='center'><tr align='left'><td style='padding:0px 0px 0px 0px;'>From</td><td style='padding:0px 0px 0px 15px;'><input name='Sender_Email' type='text' style='width:250px;' title='Accurately enter your e-mail'></td></tr><tr align='left'><td style='padding:15px 0px 0px 0px;'>To</td><td style='padding:15px 0px 0px 15px;'><input name='Recipient_Email' type='text' style='width:250px;' title='Accurately enter recipient&rsquo;s e-mail'></td></tr><tr><td colspan='2' align='center' style='padding:15px 0px 0px 0px;'><textarea name='Comments' onFocus='if( value == defaultValue ) value = \"\";' onBlur='if( !value ) value = defaultValue;' title='Message is optional' class='textInputFullWid' style='width:300px; height:100px;'>Your Message</textarea></td></tr><tr><td colspan='2' align='center' style='padding:10px 0px 0px 0px;'><div id='MailStatus' style='font-size:10pt;'>A copy is automatically sent to your address</div></td></tr><tr><td colspan='2' align='center' style='padding:10px 0px 0px 0px;'><input type='submit' name='SubmitButton' id='SubmitButton' value='Send' style='width:60px;'></td></tr><tr><td colspan='2'><div id='ErrorMailingCart' class='off'></div></td></tr></table></form>";var ShipTax=["E-Mail Your Cart",htm];DW.createWindow(ShipTax,[0,360,0],Link,evt,15,[2,0,-20],null,1);var cartSender=GetCookie("cartSender");if(cartSender)setTimeout("document.MailCart.Recipient_Email.focus();",250);else
setTimeout("document.MailCart.Sender_Email.focus();",250);if(0){document.MailCart.Sender_Email.value=testEmail;document.MailCart.Recipient_Email.value=testEmail;document.MailCart.Comments.value="The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.";}}
else{var htm="We're sorry, it appears that your web browser is not AJAX enabled. As a result you cannot use our &ldquo;Mail Cart&rdquo; feature.";DW.createWindow(["Problem Detected",htm],[0,400,0],Link,evt,10,[2,0,-20],null,1);}}
function writeShipTaxLink(){if(GetCookie("cartData")&&!GetCookie("cartShipTax"))document.write("<div align='center' style='margin:40px 0px 20px 0px;'><b>Important</b>: <a href='javascript:void(0);' onClick='return getShipTaxStatus( this, event, \""+fileName+"\", 2 );'>Click here</a> to provide your shipping & tax information now.</div>");}
function writeGalleryGUI(){var htm="<tr align='center'><td colspan='3'><img src='images/"+SC.enlargement+"' class='galleryEnlargement' style='width:"+ID[SC.imageID][1]+"px; height:"+ID[SC.imageID][2]+"px;' /></td></tr><tr><td class='galleryImgFooter1' id='BackLink'></td><td class='galleryImgFooter2'>&ldquo;"+ID[SC.imageID][0]+"&rdquo;</td><td class='galleryImgFooter3'>&lArr; Back</td></tr>";document.getElementById("PhotoTable").style.width=ID[SC.imageID][1]+"px";document.write(htm);}
function writeKahikoGUI(){var hgtAudioConsole=(IE)?"80":"50";var htm="<tr align='center'><td colspan='3'><img src='images/"+SC.enlargement+"' class='kahikoEnlargement' style='width:"+ID[SC.imageID][1]+"px; height:"+ID[SC.imageID][2]+"px;' /></td></tr><tr><td class='kahikoImgFooter1' id='BackLink'></td><td class='kahikoImgFooter2'>&ldquo;"+ID[SC.imageID][0]+"&rdquo;</td><td class='kahikoImgFooter3'><a href='javascript:void(0);' onClick='setAudioPlayer( this, 1 );' class='control' id='PlayAudio'>Listen to Story</a></td></tr><tr align='center'><td colspan='3' id='AudioConsole' style='vertical-align:middle; height:"+hgtAudioConsole+"px;'></td></tr>";document.getElementById("PhotoTable").style.width=ID[SC.imageID][1]+"px";document.write(htm);}
function initOrderPage(){try{if(fileName=="kii-o-na-kahiko-order.aspx"){var EnglishStory=document.getElementById("English_"+SC.imageID);var HawaiianStory=document.getElementById("Hawaiian_"+SC.imageID);document.getElementById("kahikoStoryEng").innerHTML=(EnglishStory)?EnglishStory.innerHTML:"<span class='error'>Error</span>: Cannot find story &ldquo;English_"+SC.imageID+"&rdquo; &nbsp;&#149;&nbsp; Please add the story in the HTML Content below";document.getElementById("kahikoStoryHi").innerHTML=(HawaiianStory)?HawaiianStory.innerHTML:"<span class='error'>Error</span>: Cannot find story &ldquo;Hawaiian_"+SC.imageID+"&rdquo; &nbsp;&#149;&nbsp; Please add the story in the HTML Content below";self.status="";}
if(this.notForSale){var NotForSale=document.getElementById("NotForSale").innerHTML=this.Msg.notForSale;document.getElementById("EcommerceSection").className="off";}}
catch(Err){self.status="Exception at SC.initOrderPage method";if(local){var eMsg="Exception at SC.initOrderPage method\n\n";for(var i in Err)eMsg+=i+": "+Err[i]+"\n";alert(eMsg);}
else
setTimeout("SC.initOrderPage();",250);}}
function setTnPhotoCaptions(){try{var Tbodys=document.getElementsByTagName("tbody");var tBodyCls=(fileName=="kii-o-na-kahiko.aspx")?"kahiko":"gallery";var tdCaptionCls=(fileName=="kii-o-na-kahiko.aspx")?"kahikoCaptionSm":"galleryCaptionSm";for(var i=0;i<Tbodys.length;i++){var Tbody=Tbodys[i];if(Tbody.className==tBodyCls){var ignoreTextNodes=(Tbody.firstChild.tagName)?true:false;var Tr=(ignoreTextNodes)?Tbody.firstChild:Tbody.firstChild.nextSibling;var rowNum=Tr.rowIndex;var NewRow=Tbody.insertRow(rowNum+1);TdImgCell=(ignoreTextNodes)?Tr.firstChild:Tr.firstChild.nextSibling;var nCell=0;while(TdImgCell){var TdCaption=NewRow.insertCell(nCell);nCell++;var imgSrc=(TdImgCell.firstChild.src)?TdImgCell.firstChild.src:TdImgCell.firstChild.nextSibling.src;var PathComponents=imgSrc.split("/");var tn=PathComponents[PathComponents.length-1];var FileComponents=tn.split(".");FileComponents.pop();var imgNameNoExt=FileComponents.join(".");var imgID=imgNameNoExt.replace(/_sm$/i, "" );
TdCaption.className=tdCaptionCls;TdCaption.innerHTML=(ID[imgID])?ID[imgID][0]:"<span class='error'>Error</span>: Cannot find a match for ID <nobr>&ldquo;"+imgID+"&rdquo;</nobr> in the e-commerce data base. Try <a href='javascript:document.location.reload(true);'>reloading</a> the page.";TdImgCell=(ignoreTextNodes)?TdImgCell.nextSibling:TdImgCell.nextSibling.nextSibling}}}
var Tables=document.getElementsByTagName("table");for(var i=0;i<Tables.length;i++){var Table=Tables[i];if(Table.className==tBodyCls)Table.style.visibility="visible";}
self.status="";}
catch(Err){self.status="Exception at SC.setTnPhotoCaptions method";if(local){var eMsg="Exception at SC.setTnPhotoCaptions method\n\n";for(var i in Err)eMsg+=i+": "+Err[i]+"\n";alert(eMsg);}
else
setTimeout("SC.setTnPhotoCaptions();",250);}}
function loadPhotoOrderPage(Img){var FileComponents=Img.src.split("/");var tn=FileComponents[FileComponents.length-1];if( tn && /_sm\.(jpg|gif|jpeg)$/i.test(tn))document.location.href=(fileName=="kii-o-na-kahiko.aspx")?"kii-o-na-kahiko-order.aspx?db="+tn+"#scroll_to":"gallery-order.aspx?db="+tn+"#scroll_to";else
alert("Thumbnail image \u201C"+tn+"\u201D is improperly named. Without exception the file name must end with:\n_Sm.jpg\n\nSome examples of valid file names are:\n  1) LauLoaMahiai_Sm.jpg\n  2) LamaLamaIa_Sm.jpg\n  3) KaHookele_Sm.jpg");}
function setID(){if(fileName=="kii-o-na-kahiko-order.aspx"||fileName=="gallery-order.aspx"){var tn=(qStr&&qStr.getVal("db"))?qStr.getVal("db"):"";if( tn && /_sm\.(jpg|gif|jpeg)$/i.test(tn)){var FileComponents=tn.split(".");var fileExt=FileComponents[FileComponents.length-1];FileComponents.pop();var imgNameNoExt=FileComponents.join(".");var imgID=imgNameNoExt.replace(/_sm$/i, "" );
if(ID[imgID]){this.imageID=imgID;this.enlargement=imgID+"."+fileExt;this.notForSale=(ID[imgID][3]&&ID[imgID][3]==1)?true:false;}
else{alert("ERROR: Cannot find a match for ID \u201C"+imgID+"\u201D in the e-commerce data base.");this.imageID="Error: Undefined";this.enlargement="Error: Undefined";}}
else{alert("Invalid or missing query string");}}}
function getAddCartGUI(hideQuan,hidePrice,hideDescription){gPlacementDW=null;var quanCls=(hideQuan)?"off":"";var priceCls=(hidePrice)?"off":"";var desriptionCls=(hideDescription)?"off":"";var AddCartGUI="<form name='addCartForm' style='margin:10px 0px 0px 0px; text-align:left;' onSubmit='SC.addToCart( this ); return false;'><table align='center' class='fSize12'><tr><td nowrap align='right'><div style='margin:0px 4px 0px 0px;' id='RunningSubtotalLabel'>Subtotal:</div></td><td nowrap><div style='margin:0px 2px 0px 10px;' id='RunningSubtotal'>$0.00</div></td></tr><tr class='"+quanCls+"'><td nowrap align='right'><div style='margin:6px 4px 0px 0px;'>Quantity:</div></td><td nowrap style='padding:6px 2px 0px 12px;'><input type='text' maxlength='4' id='quantity' name='quantity' STYLE='width:60px;' autocomplete='off' title='Enter quantity as a number' /><span id='quantityReadOnly'></span></td></tr><tr class='"+priceCls+"'><td nowrap valign=top align='right'><div style='margin:6px 4px 0px 0px;'>Price:</div></td><td><div style='margin:6px 2px 0px 10px;' id='scPrice'></div></td></tr><tr><td nowrap valign=top align='right'><div style='margin:6px 4px 0px 0px;'>Item:</div></td><td><div style='margin:6px 2px 0px 10px;' id='scItem'></div></td></tr><tr><td nowrap valign=top align='right'><div style='margin:6px 4px 0px 0px;'>Description:</div></td><td><div style='margin:6px 2px 0px 10px;' id='scDescription'></div></td></tr><tr class='"+desriptionCls+"'><td nowrap valign=top align='right'><div style='margin:6px 4px 0px 0px;'>Other Info:</div></td><td><div style='margin:6px 2px 0px 10px;' id='scDescriptionMore'></div></td></tr><tr><td colspan=2 align='center'><input name='add_to_cart_button' type='submit' value='Add to Shopping Cart' style='margin:10px 0px 0px 0px;' title='Click to add this item to your order'><div style='margin:6px 2px 0px 10px;' id='cartItem' class='scBullets'><a href='javascript:DW.removeWin();' onMouseOver='this.title=SC.Msg.closeWin; return true;' class='dwLink'>Close</a> &nbsp;&#149;&nbsp; <a href='cart.aspx' onClick='return getShipTaxStatus( this, null, \"cart.aspx\", 1 );' onMouseOver='this.title=SC.Msg.viewCart; return true;' class='dwLink'>View-Cart</a></div></td></tr></table><input type='hidden' length='10' name='key' /></form>";return["Add To Cart",AddCartGUI];}
this.changeQuanGUI="<form name='changeQuanForm' style='margin:10px 0px 0px 0px; text-align:left;' onSubmit='SC.changeQuan( this ); return false;'><table align='center' class='fSize12'><tr><td nowrap align='right'><div style='margin:0px 4px 0px 0px;' id='RunningSubtotalLabel'>Subtotal:</div></td><td nowrap><div style='margin:0px 2px 0px 10px;' id='RunningSubtotal'>$0.00</div></td></tr><tr><td nowrap valign=top align='right'><div style='margin:6px 4px 0px 0px;'>Item</div></td><td><div style='margin:6px 2px 0px 10px;' id='scItem'></div></td></tr><tr><td nowrap align='right'><div style='margin:6px 4px 0px 0px;'>Old Quantity</div></td><td nowrap><div style='margin:6px 2px 0px 10px;' id='scOldQuan'></div></td></tr><tr><td nowrap align='right'><div style='margin:6px 4px 0px 0px;'>New Quantity</div></td><td nowrap><input type='text' maxlength='4' name='quantity' STYLE='width:60px; margin:6px 2px 0px 12px;' autocomplete='off' title='Enter quantity as a number'></td></tr><tr><td colspan=2 align='center'><input type='submit' value='Change Quantity' STYLE='margin:10px 0px 0px 0px;' title='Click to change quantity of this item'></td></tr></table><input type='hidden' length='10' name='indexNum'></form>";this.ChangeQuan=["Change Quantity",this.changeQuanGUI];this.shipTaxGUI="<form name='shipTaxForm' style='margin:6px 0px 0px 6px; text-align:left;' onSubmit='SC.setShipTaxStatus( this ); return false;'><table align='center'><tr><td align='left'><div style='margin:10px 0px 0px 0px;'>Please Send My Order To:</div><input type='radio' name='LocationShip' id='LocationShip0' style='margin:3px 0px 0px 18px;'><label for='LocationShip0'> The United States, Alaska or Hawaii</label><br/><input type='radio' name='LocationShip' id='LocationShip1' style='margin:0px 0px 0px 18px;'><label for='LocationShip1'> Canada</label><br/><input type='radio' name='LocationShip' id='LocationShip2' style='margin:0px 0px 0px 18px;'><label for='LocationShip2'> A Foreign Country</label><br/><div style='margin:10px 0px 0px 0px;'>I'm Placing This Order From:</div><input type='radio' name='LocationTax' id='LocationTax0' style='margin:3px 0px 0px 18px;'><label for='LocationTax0'> Outside of Hawaii, state tax is waived</label><br/><input type='radio' name='LocationTax' id='LocationTax1' style='margin:0px 0px 0px 18px;'><label for='LocationTax1'> Within Hawaii, state tax is added</label><br/></td></tr><tr><td nowrap align='center'><input type='submit' value='&nbsp;OK&nbsp;' style='margin:10px 0px 0px 0px;' title='Click to set your shipping & tax status'></td></tr></table><input type='hidden' length='10' name='destination'></form>";this.ShipTax=["Shipping & Taxes<div class='fSize9' style='font-weight:normal; font-variant:normal;'><span class=on id='shipTaxTipID'>This info must be provided to view your cart or checkout</span></div>",this.shipTaxGUI];function initAddToCartPopUp(key){clearTimeout(SC.addToCartTimer);this.setSub();var charLength=40;var theItem=key;if(theItem.length>charLength)theItem=theItem.substring(0,charLength)+"...";var quantity=(typeof Item[key][3]=="number"&&Item[key][3]>0)?Item[key][3]:"";if(quantity){var Quantity=document.getElementById("quantity");Quantity.value=Item[key][3];Quantity.readOnly=true;Quantity.className="offScreen";Quantity.style.backgroundColor="white";document.getElementById("quantityReadOnly").innerHTML=Item[key][3];}
var theItem=ID[SC.imageID][0];if(theItem.length>charLength)theItem=theItem.substring(0,charLength)+"...";document.getElementById("scItem").innerHTML=theItem;var name=Item[key][1];if(name.length>charLength)name=name.substring(0,charLength)+"...";document.getElementById("scDescription").innerHTML=name;var description=Item[key][2];if(description){if(description.length>charLength)description=description.substring(0,charLength)+"...";document.getElementById("scDescriptionMore").innerHTML=description;}
document.getElementById("scPrice").innerHTML=this.getMoney(Item[key][0]);document.addCartForm.key.value=key;setTimeout("document.addCartForm.quantity.value ? document.addCartForm.add_to_cart_button.focus() : document.addCartForm.quantity.focus();",250);}
function importCart(){var qStr=decodeURIComponent(document.location.search.substring(1));if(qStr){var qStrRE=/^order=\d+\..+&end$/;if( qStrRE.test(qStr)){var cartData=qStr.getVal("order");var cartShipTax=qStr.getVal("profile");var existingCart=GetCookie("cartData");if((existingCart&&confirm("You already have an existing shopping cart but are about to import a new one.\n\n1) Click OK to import the new order and overwrite your existing cart OR;\n2) Click Cancel to preserve your existing cart"))||!existingCart){cartData=cartData.replace(/e_k_s/g, "x" ).replace(/E_K_S/g, "X" );
SetCookie("cartData",cartData,SC.cartExpDate);SetCookie("cartShipTax",cartShipTax,expDate12Mon);SetCookie("showWelcome","no");}}
else
alert("We\u2019re sorry but an error occurred while trying to import a shopping cart order from the query-string (trailing) portion of the URL:\n\n\u201C?"+document.location.search.substring(1)+"\u201D\n\n\u21D2 Properly formatted query-string\u2019s must start with \u201C?order\u201D and end with \u201C&end\u201D");}}
function exportCart(){var cartData=GetCookie("cartData");var cartShipTax=GetCookie("cartShipTax");var output="Empty";if(cartData&&cartShipTax){var theDomain=theHost.replace(/^www\./, "" );
if(live)theDomain="www."+theDomain;var thePath=document.location.pathname;thePath=thePath.replace(/checkout\.aspx/, "cart.aspx" );
cartData=cartData.replace(/x/g, "e_k_s" ).replace(/X/g, "E_K_S" );
var theQstr="?order="+cartData+"&profile="+cartShipTax+"&end";output="http://"+theDomain+thePath+theQstr;}
return output;}
function getCart(){var cartPage=(fileName=="cart.aspx");var checkoutPage=!cartPage;var cartData=GetCookie("cartData");var cartShipTax=GetCookie("cartShipTax");if(cartShipTax){var ShipTax=cartShipTax.split(".");for(var i in ShipTax)ShipTax[i]=parseInt(ShipTax[i]);}
var CartItems=null;var nRecords=0;if(cartData){CartItems=cartData.split("..");nRecords=CartItems.length;}
var nCols=(cartPage)?7:6;var nColsLess1=nCols-1;var Output=new Array();var NewCookie=new Array();var showCart=(cartData&&cartShipTax);if(showCart&&cartPage)Output.push("<div class='cartTitle'>My Shopping Cart</div>");Output.push("<table align='center' class='cart'>");if(showCart){Output.push("<tr class='cart' align='center'>");if(cartPage)Output.push("<th class='cart'>&nbsp;</th>");if(cartPage)Output.push("<th class='cart'>Quantity</th>");else
Output.push("<th class='cart'>#</th>");Output.push("<th class='cart'>Photo</th>");Output.push("<th class='cart'>Item</th>");Output.push("<th class='cart'>Info</th>");Output.push("<th class='cart'>Cost Ea</th>");Output.push("<th class='cart'>Line Total</th>");Output.push("</tr>");var lineTotal=0;var runningTotal=0;var rowNum=0;while(rowNum<nRecords){var ThisItem=CartItems[rowNum].split(".");var key=ThisItem[1];var quantity=parseInt(ThisItem[0]);if(Item[key]){var price=Item[key][0];var itemName=Item[key][1];var photoID=ID[ThisItem[2]][0];var photoWid=ID[ThisItem[2]][1];var photoHgt=ID[ThisItem[2]][2];var description=(Item[key][2])?Item[key][2]:"<span class='cartBlankLine'>&#151;</span>";Output.push("<tr class='cart' align='center'>");if(cartPage){Output.push("<td class='cart'><a href='javascript:SC.removeItem(");Output.push(rowNum);Output.push(");' title='Remove this item'>Remove</a></td>");}
if(cartPage){Output.push("<td class='cart'><a href='javascript:void(0);' onClick='if( window.DW ) { DW.createWindow( SC.ChangeQuan, [1,300,0], this, event, 6 ); SC.initChangeQuanPopUp( \"");Output.push(key);Output.push("\", ");Output.push(quantity);Output.push(", ");Output.push(rowNum);Output.push(" ); } return false;' title='Change quantity'>");Output.push(quantity);Output.push("</a></td>");}
else{Output.push("<td class='cart'>");Output.push(quantity);Output.push("</td>");}
if(cartPage){Output.push("<td class='cartNowrap'><a href='images/");Output.push(ThisItem[2]);Output.push(".jpg' onClick='return largePic( \"");Output.push(photoID);Output.push("\", ");Output.push(photoWid);Output.push(", ");Output.push(photoHgt);Output.push(", this, event );' title='View image'>");Output.push(photoID);Output.push("</a></td>");}
else{Output.push("<td class='cartNowrap'>");Output.push(photoID);Output.push("</td>");}
Output.push("<td class='cart'>");Output.push(itemName);Output.push("</td>");lineTotal=quantity*price;runningTotal+=lineTotal;Output.push("<td class='cart'>");Output.push(description);Output.push("</td>");Output.push("<td class='cart'>");Output.push(this.getMoney(price));Output.push("</td>");Output.push("<td class='cart'>");Output.push(this.getMoney(lineTotal));if(checkoutPage)Output.push("\r\n");Output.push("</td>");Output.push("</tr>");NewCookie.push(CartItems[rowNum]);}
else if(cartPage){Output.push("<tr class='cart' align='center'>");Output.push("<td class='cart'></td>");Output.push("<td class='cart'><span class='cartBlankLine'>&#151;</span></td>");Output.push("<td class='cart'><span class='cartBlankLine'>&#151;</span></td>");Output.push("<td class='cart'><span class='cartBlankLine'>&#151;</span></td>");Output.push("<td class='cart'><span class='cartBlankLine'>&#151;</span></td>");Output.push("<td class='cart'><span class='cartBlankLine'>&#151;</span></td>");Output.push("<td class='cart'>ERROR: The item referenced by primary key &ldquo;");Output.push(key);Output.push("&rdquo; could not be found in our data-base. This is probably because it has been discontinued.</td>");Output.push("</tr>");}
rowNum++;}
SetCookie("cartData",NewCookie.join(".."),SC.cartExpDate);var runningTotalOut=this.getMoney(runningTotal);Output.push("<tr class='cart'>");Output.push("<td class='cart' colspan='");Output.push(nColsLess1);Output.push("' align='right'>Your Running Total</td>");Output.push("<td class='cart' align='center'>");Output.push(runningTotalOut);Output.push("</td>");Output.push("</tr>");var shipping=0;switch(ShipTax[0]){case 0:var shipping=DB.Cart.BaseShippingToUSA+(DB.Cart.ShippingPercent/100*runningTotal);break;case 1:var shipping=DB.Cart.BaseShippingToCanada+(DB.Cart.ShippingPercent/100*runningTotal);break;}
runningTotal+=shipping;var shippingOut=this.getMoney(shipping);Output.push("<tr class='cart'>");Output.push("<td class='cart' colspan='");Output.push(nColsLess1);Output.push("' align='right'>");if(cartPage)Output.push("<a href='javascript:void(0);' onClick='if( window.DW ) DW.createWindow( [ document.getElementById( \"shippingDT\" ).innerHTML, document.getElementById( \"shippingDD\" ).innerHTML ], [0,500,0], this, event, 6 ); return false;' title='Learn more about Shipping & Turnaround' style='font-size:9pt;'>Learn More</a>&nbsp;&nbsp;");Output.push("Shipping & Handling</td>");Output.push("<td class='cart' align='center'>");Output.push(shippingOut);Output.push("</td>");Output.push("</tr>");var taxCost=(ShipTax[1])?runningTotal*DB.Cart.HawaiiTax/100:0;var taxOutput=this.getMoney(taxCost);Output.push("<tr class='cart'>");Output.push("<td class='cart' colspan='");Output.push(nColsLess1);Output.push("' align='right'>");if(cartPage)Output.push("<a href='javascript:void(0);' onClick='if( window.DW ) DW.createWindow( [ document.getElementById( \"taxDT\" ).innerHTML, document.getElementById( \"taxDD\" ).innerHTML ], [0,400,0], this, event, 6 ); return false;' return true;\" title='Learn more about Hawaii State Tax' style='font-size:9pt;'>Learn More</a>&nbsp;&nbsp;");Output.push(DB.Cart.HawaiiTax);Output.push("% Hawaii State Tax </td>");Output.push("<td class='cart' align='center'>");Output.push(taxOutput);Output.push("</td>");Output.push("</tr>");var gTotalWithTax=runningTotal+taxCost;var gTotalOutput=this.getMoney(gTotalWithTax);if(checkoutPage)document.getElementById("GrandTotal").innerHTML=gTotalOutput+((ShipTax[0]==2)?" + shipping &nbsp;&#149;&nbsp; Credit card info is not required":"");Output.push("<tr class='cart'>");Output.push("<td class='cart' colspan='");Output.push(nColsLess1);Output.push("' align='right'>&nbsp;&nbsp;Grand Total </td>");Output.push("<td class='cart' align=center>");Output.push(gTotalOutput);Output.push("</td>");Output.push("</tr>");}
else if(!navigator.cookieEnabled){Output.push("<tr class='cart' align='center'>");Output.push("<td class='cartWarning'>");Output.push(SC.msgNoCook);Output.push("</td>");Output.push("</tr>");}
else if(!cartData){Output.push("<tr class='cart' align='center'>");Output.push("<td class='cartWarning'>&nbsp;&#151; Your Shopping Cart is Empty &#151;&nbsp;</td>");Output.push("</tr>");}
if(cartData&&cartShipTax&&ShipTax[0]==2){Output.push("<tr class='cart'>");Output.push("<td class='cartForeign' colspan='");Output.push(nCols);Output.push("'>");Output.push(DB.Cart.ForeignShipment);Output.push("</td>");Output.push("</tr>");}
Output.push("</table>");if(cartPage){var backLink="";try{var ref=document.referrer.toLowerCase();if(ref&&(ref.indexOf("/hawaii")>=0||ref.indexOf("/shane")>=0&&ref.indexOf("checkout.aspx")==-1))backLink="<a href='javascript:history.back();' onMouseover='try { SC.showMsg( 1 ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}'>Back</a>"}
catch(Err){backLink="";}
var printLink=(window.print)?"<a href='javascript:if( window.print ) window.print();' onMouseover='try { SC.showMsg( 4 ); } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); } catch(e) {}'>Print Cart</a>&nbsp; &#149; &nbsp;":""
Output.push("<div id='scConsole' class='fSize12 pfHide' style='margin:35px 0px 20px 0px;'>");Output.push((cartData)?this.Msg.checkoutTip:"&nbsp; <br/>");Output.push("</div>");Output.push("<div class='fColorGray102 pfHide' style='margin:25px 0px 0px 0px;'>");Output.push(backLink);if(cartData){if(backLink)Output.push("&nbsp; &#149; &nbsp;");Output.push("<a href='javascript:void(0);' onMouseover='try { SC.showMsg( 9 ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}' onClick='return SC.getDeleteCartGUI( this, event );'>Empty Cart</a>&nbsp; &#149; &nbsp;");Output.push("<a href='javascript:void(0);' onMouseover='try { SC.showMsg( 2 ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}' onClick='gPlacementDW = null; return getShipTaxStatus( this, event, \"\", 1 );'>Shipping & Taxes</a>&nbsp; &#149; &nbsp;");Output.push("<a href='javascript:void(0);' onClick='SC.getMailCartGUI( this, event );' onMouseover='try { SC.showMsg( 3 ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}'>Mail Cart</a>&nbsp; &#149; &nbsp;");Output.push("<a href='javascript:void(0);' onMouseover='try { SC.showMsg( ( ( SC.cartExpDate ) ? 8 : 7 ) ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}' onClick='SC.getSaveCartWin( this, event ); return false;'>Save Cart</a>&nbsp; &#149; &nbsp;");if(printLink)Output.push(printLink);Output.push("<a href='checkout.aspx' onClick='return setURL( this );' onMouseover='try { SC.showMsg( 6 ); return true; } catch(e) {}' onMouseout='try { SC.showMsg( 10 ); return true; } catch(e) {}'>Checkout</a>");}
Output.push("</div>");}
var output=Output.join("");if(0)output=output.replace(/</g, "\r\n<" ).replace(/>/g, ">\r\n" );
return output;}
function showMsg(index){if(!index)index=0;switch(index){case 0:var msg="Ready to submit your order? Click Checkout...";break;case 1:var msg="Shortcut back to the last page you were on";break;case 2:var msg="Review & edit your shipping & tax profile";break;case 3:var msg="E-Mail this order to a friend or yourself";break;case 4:var msg="Get a printer-friendly version of your order";break;case 6:var msg="Submit your completed order on our secure-server";break;case 7:var msg="Save is off &nbsp;&#149;&nbsp; Click to save your order & display it on your next visit";break;case 8:var msg="Save is on &nbsp;&#149;&nbsp; Your order is saved until "+SaveCartExpDate.getMonthName()+" "+SaveCartExpDate.getDate()+", "+SaveCartExpDate.getFullYear();break;case 9:var msg="Need a fresh start? Then empty all items from your cart";break;case 10:var msg=(GetCookie("cartData")?this.Msg.checkoutTip:"&nbsp; <br/>");break;}
if(index){clearTimeout(window.cartMsgTimer);try{document.getElementById("scConsole").innerHTML=msg;} catch(e){}}
else
window.cartMsgTimer=setTimeout("try{ document.getElementById( 'scConsole' ).innerHTML = ' &nbsp;<br/>'; } catch( e ) {}",500);}
function saveCart(Form){var saveCart=(Form.saveCart[0].checked);var cartData=GetCookie("cartData");if(saveCart){SetCookie("showWelcome","no");SetCookie("cartData",cartData,SaveCartExpDate);SetCookie("saveCart","yes",SaveCartExpDate);SC.cartExpDate=SaveCartExpDate;}
else{SetCookie("cartData",cartData);DeleteCookie("saveCart");SC.cartExpDate=null;}
DW.removeWin();}
function getSaveCartWin(Link,evt){var htm="<div class='fSize11'>To save your cart, make sure the &ldquo;Save-Cart&rdquo; radio button is checked & click OK. We will save your order as a cookie until "+SaveCartExpDate.getMonthName()+" "+SaveCartExpDate.getDate()+", "+SaveCartExpDate.getFullYear()+"<div style='margin:10px 0px 10px 0px;'><table align='center' style='border:1px solid rgb( 153,153,153 );'><tr><td class='fSize11' style='background-color:rgb( 225,225,225 );'><form style='margin:5px 12px 5px 8px;' onSubmit='SC.saveCart( this ); return false;'><input type='radio' name='saveCart' id='saveCart0' checked /><label for='saveCart0'>Save-Cart</label>&nbsp; &nbsp;<input type='radio' name='saveCart' id='saveCart1' /><label for='saveCart1'>Don&rsquo;t Save</label>&nbsp;&nbsp; &nbsp;<input type='submit' value=' OK ' /></form></td></tr></table></div><div class='fSize9'>Due to the limitations of cookies, you must use the same computer & browser that you are using now for this feature to work. Additionally, at the end of this session we suggest you e-mail your cart to yourself (click the &ldquo;Mail Cart&rdquo; link) & print your shopping cart.</div></div>";DW.createWindow(["Save My Cart",htm],[1,500,0],Link,evt,10,[2,-250,-20]);}
function changeQuan(Form){var Quantity=Form.quantity;var newQuan=parseInt(Quantity.value);var oldQuan=parseInt(document.getElementById("scOldQuan").innerHTML);if(newQuan!=oldQuan){var rowNum=parseInt(Form.indexNum.value);var cartData=GetCookie("cartData");var cartDataNew="";var Records=cartData.split("..");for(var k=0;k<Records.length;k++){if(k==rowNum){var key=Records[k].split(".")[2];if(quanValid(Quantity,key,oldQuan)){Records[k]=newQuan+"."+Records[k].split(".")[1]+"."+key;}
else
return;}
cartDataNew+=(cartDataNew)?".."+Records[k]:Records[k];}
SetCookie("cartData",cartDataNew,SC.cartExpDate);document.getElementById("shopping_cart").innerHTML=this.getCart();DW.removeWin();}
else{Quantity.value="";Quantity.focus();}}
function removeItem(rowNum){var cartData=GetCookie("cartData");var cartDataNew="";var Records=cartData.split("..");for(var k=0;k<Records.length;k++){if(k!=rowNum)cartDataNew+=(cartDataNew)?".."+Records[k]:Records[k];}
SetCookie("cartData",cartDataNew,SC.cartExpDate);DW.removeWin();document.getElementById("shopping_cart").innerHTML=this.getCart();}
function setSub(showSuccess){var cartData=GetCookie("cartData");var runSub=0;if(cartData){var Items=cartData.split("..");for(var i=0;i<Items.length;i++){var ThisItem=Items[i].split(".");var quan=parseInt(ThisItem[0]);var key=ThisItem[1];var price=parseFloat(Item[key][0]);runSub+=quan*price;}}
if(showSuccess){document.getElementById("RunningSubtotal").innerHTML="Calculating...";SC.runSub=runSub;setTimeout("try{ document.getElementById( 'RunningSubtotal' ).innerHTML = SC.getMoney( SC.runSub ); } catch( e ) {}",1000);}
else
document.getElementById("RunningSubtotal").innerHTML=SC.getMoney(runSub);}
function initChangeQuanPopUp(key,oldQuan,indexNum){var charLength=15;var theItem=key;if(theItem.length>charLength)theItem=theItem.substring(0,charLength)+"...";document.getElementById("scItem").innerHTML=theItem;document.getElementById("scOldQuan").innerHTML=oldQuan;document.changeQuanForm.indexNum.value=indexNum;setTimeout("document.changeQuanForm.quantity.focus()",500);this.setSub(0);}
function quanValid(Quantity,key,oldQuan){var RunningSubtotalLabel=document.getElementById("RunningSubtotalLabel");var RunningSubtotal=document.getElementById("RunningSubtotal");if(key.indexOf("&")>=0)key=key.split("&")[0];function stop(){RunningSubtotalLabel.innerHTML="Error:";Quantity.value="";Quantity.focus();return false;}
if(!Quantity.value){RunningSubtotal.innerHTML="Input quantity";return stop();}
else if(isNaN(Quantity.value)){RunningSubtotal.innerHTML="Input numbers only";return stop();}
else if(parseInt(Quantity.value)<1){RunningSubtotal.innerHTML="Must be 1 or more";return stop();}
RunningSubtotalLabel.innerHTML="Subtotal:";return true;}
function addToCart(Form){clearTimeout(SC.addToCartTimer);var Quantity=Form.quantity;Quantity.value=Quantity.value.replace(/ /g, "" );
var key=Form.key.value;if(quanValid(Quantity,key)){if(navigator.cookieEnabled){var quantity=parseInt(Quantity.value);var cartData=GetCookie("cartData");var newCookie="";if(cartData){var Items=cartData.split("..");var alreadyInCart=false;for(var i=0;i<Items.length;i++){var ExistingItem=Items[i].split(".");var existingQuan=parseInt(ExistingItem[0]);var existingKey=ExistingItem[1];var existingPhotoID=ExistingItem[2];var newCookieQuan;if(key==existingKey&&this.imageID==existingPhotoID){newCookieQuan=quantity+existingQuan;alreadyInCart=true;}
else
newCookieQuan=existingQuan;newCookie+=newCookieQuan+"."+existingKey+"."+existingPhotoID+"..";}
if(!alreadyInCart)newCookie+=quantity+"."+key+"."+this.imageID+"..";}
else
newCookie+=quantity+"."+key+"."+this.imageID+"..";SetCookie("cartData",newCookie.replace(/\.\.$/, "" ), SC.cartExpDate );
this.setSub(1);SC.addToCartTimer=setTimeout("DW.removeWin();",5000);}
else
alert(this.msgNoCook);}}
function writeOrderIt(key){var nArgs=arguments.length;if(nArgs==1&&typeof arguments[0]=="string"){if(this.itemFound(key)){var hideQuan=Item[key][3];var hidePrice=(Item[key][0]==0);var htm="<a href='javascript:void(0);' onMouseOver='this.title=SC.Msg.buyIt;' onClick='if( window.DW ) { DW.createWindow( SC.getAddCartGUI("+hideQuan+","+hidePrice+"), [1,450,0], this, event, 6, [2,20,-15] ); SC.initAddToCartPopUp( \""+key+"\" ); } return false;' oncontextmenu='return reviewData( this, event, \""+key+"\" );'>Order It</a>";document.write(htm);}}
else{var badArgs="";for(var i=0;i<nArgs;i++)badArgs+=arguments[i]+((i<nArgs-1)?", ":"");alert("ERROR: Bad call to method \"SC.writeOrderIt\"\n\nIncorrect number of arguments OR Incorrect data types: "+badArgs);this.reportErr=false;}}
function writeItem(){var forSale=!this.notForSale;if(forSale){var nArgs=arguments.length;var placeItemOnNewRow=(nArgs==1);for(var i=0;i<nArgs;i++){var key=arguments[i];if(typeof key=="string"){if(this.itemFound(key)){var tr1=(placeItemOnNewRow)?"<tr>":"";var tr2=(placeItemOnNewRow)?"</tr>":"";var td1Style=(placeItemOnNewRow)?"":"border-left:40px solid black;";var td3Style=(placeItemOnNewRow)?"":"border-right:40px solid black;";var hideQuan=(Item[key][3])?Item[key][3]:0;var hidePrice=(Item[key][0]==0);var hideDescription=(Item[key][2]=="");var htm=tr1+"<td style='"+td1Style+"'>"+Item[key][1]+"</td><td>"+getMoney(Item[key][0])+"</td><td style='"+td3Style+"'><a href='javascript:void(0);' onMouseOver='this.title=SC.Msg.buyIt;' onClick='if( window.DW ) { DW.createWindow( SC.getAddCartGUI("+hideQuan+","+hidePrice+","+hideDescription+"), [1,400,0], this, event, 6, [2,0,-15] ); SC.initAddToCartPopUp( \""+key+"\" ); } return false;' oncontextmenu='return reviewData( this, event, \""+key+"\" );'>Buy It</a></td>"+tr2;document.write(htm);}}
else{if(this.reportErr){alert("ERROR: Bad call to method \"SC.writeItem\", incorrect data types:\n\nkey: "+key+"\ntypeof key: "+(typeof key));this.reportErr=false;break;}}}}}
function getMoney(num){var fNum="";if(num.toFixed)fNum=""+num.toFixed(2);else{fNum=""+num;var theLength=fNum.length;var theDecLoc=fNum.lastIndexOf(".");if(theDecLoc==-1)fNum=fNum+".00";else{var theDollars=fNum.substring(0,theDecLoc);var theCents=fNum.substring(theDecLoc,theLength);var theCents=""+Math.round(theCents*100);if(theCents=="100"){theDollars=parseFloat(theDollars);theDollars+=1;fNum=theDollars+".00";}
else{var newCents=(theCents.length==1)?"0"+theCents:theCents;fNum=theDollars+"."+newCents;}}}
return(fNum.split(".")[1]=="00")?"$"+fNum.split(".")[0]:"$"+fNum;}
function itemFound(key){if(key==""){if(this.reportErr){alert("Error: Primary Key is an empty string.\n\nAll function calls to SC.writeOrderIt or SC.writeItem must pass the item\u2019s Primary Key as a text string.");this.reportErr=false;}
return false;}
else if(typeof Item[key]=="undefined"){if(this.reportErr){alert("Error: Primary Key \u201C"+key+"\u201D not found in e-commerce data-base.");this.reportErr=false;}
return false;}
else{var ThisItem=Item[key];if(this.reportErr&&ThisItem.length!=3&&ThisItem.length!=4){alert("Error: Incorrect number of data members in Item Array for \u201C"+key+"\u201D\n\nThere must be 3 or 4 members per item - no exceptions...");this.reportErr=false;}}
return true;}
function getDeleteCartGUI(Link,evt){var htm="Remove all items in your cart?<div align='center' style='margin:20px 0px 0px 0px;'><input type='button' value='Yes' id='DW_OK' class='DwOkCancel' onClick='SC.deleteCart();' title='Delete all items in cart' /> &nbsp; <input type='button' value='No' class='DwOkCancel' onClick='DW.removeWin();' title='Don&rsquo;t delete items' /></div>";DW.createWindow(["Empty Cart",htm],[1,270,0],Link,evt,20,[2,-140,-20],null,1);return false;}
function deleteCart(){DW.removeWin();DeleteCookie("cartData");document.getElementById("shopping_cart").innerHTML=this.getCart();}}
SC=new ShoppingCart();