if(window.ActiveXObject&&!window.XMLHttpRequest)document.execCommand("BackgroundImageCache",false,true);var NextId=1,Custom="Custom",GoogleCheckout="GoogleCheckout",PayPal="PayPal",Email="Email",AustralianDollar=AUD="AUD",CanadianDollar=CAD="CAD",CzechKoruna=CZK="CZK",DanishKrone=DKK="DKK",Euro=EUR="EUR",HongKongDollar=HKD="HKD",HungarianForint=HUF="HUF",IsraeliNewSheqel=ILS="ILS",JapaneseYen=JPY="JPY",MexicanPeso=MXN="MXN",NorwegianKrone=NOK="NOK",NewZealandDollar=NZD="NZD",PolishZloty=PLN="PLN",PoundSterling=GBP="GBP",SingaporeDollar=SGD="SGD",SwedishKrona=SEK="SEK",SwissFranc=CHF="CHF",USDollar=USD="USD";function Cart(){this.Version='2.0';this.Shelf=new Shelf();this.items={};this.isLoaded=false;this.pageIsReady=false;this.quantity=0;this.total=0;this.taxRate=0;this.taxCost=0;this.shippingFlatRate=0;this.shippingTotalRate=0;this.shippingQuantityRate=0;this.shippingRate=0;this.shippingCost=0;this.currency=USD;this.checkoutTo=PayPal;this.email="";this.merchantId="";this.submitOptions=['size','color'];this.sandboxMode=true;this.continue_url="";this.cartHeaders=['Name','Price','Quantity','Total'];this.add=function(){if(!this.pageIsReady){this.initializeView();this.update()}if(!this.isLoaded){this.load();this.update()}var newItem=new CartItem();if(!arguments||arguments.length===0){error('No values passed for item.');return}var argumentArray=arguments;if(arguments[0]&&typeof(arguments[0])!='string'&&typeof(arguments[0])!='number'){argumentArray=arguments[0]}newItem.parseValuesFromArray(argumentArray);newItem.checkQuantityAndPrice();if(this.hasItem(newItem)){var id=this.hasItem(newItem);this.items[id].quantity=parseInt(this.items[id].quantity,10)+parseInt(newItem.quantity,10)}else{this.items[newItem.id]=newItem}this.update()};this.remove=function(id){var tempArray={};for(var item in this.items){if(item!=id){tempArray[item]=this.items[item]}}this.items=tempArray};this.empty=function(){simpleCart.items={};simpleCart.update()};this.checkout=function(){if(simpleCart.quantity===0){error("Cart is empty");return}switch(simpleCart.checkoutTo){case PayPal:simpleCart.paypalCheckout();break;case GoogleCheckout:simpleCart.googleCheckout();break;case Email:simpleCart.emailCheckout();break;default:simpleCart.customCheckout();break}};this.paypalCheckout=function(){var form=document.createElement("form");var counter=1;form.style.display="none";form.method="POST";if(this.sandboxMode){form.action="https://www.sandbox.paypal.com/cgi-bin/webscr"}else{form.action="https://www.paypal.com/cgi-bin/webscr"}form.acceptCharset="utf-8";form.appendChild(this.createHiddenElement("cmd","_cart"));form.appendChild(this.createHiddenElement("upload","1"));form.appendChild(this.createHiddenElement("business",this.email));form.appendChild(this.createHiddenElement("currency_code",this.currency));form.appendChild(this.createHiddenElement("return",this.continue_url));if(this.taxRate){form.appendChild(this.createHiddenElement("tax_cart",this.currencyStringForPaypalCheckout(this.taxCost)))}for(var current in this.items){var item=this.items[current];form.appendChild(this.createHiddenElement("item_name_"+counter,item.name));form.appendChild(this.createHiddenElement("item_number_"+counter,counter));form.appendChild(this.createHiddenElement("quantity_"+counter,item.quantity));form.appendChild(this.createHiddenElement("amount_"+counter,this.currencyStringForPaypalCheckout(item.price)));var descriptionString="";var ocounter=0;for(var field in item){if(typeof(item[field])!="function"&&this.submitOptions.inArray(field)){form.appendChild(this.createHiddenElement("on"+ocounter+"_"+counter,field));form.appendChild(this.createHiddenElement("os"+ocounter+"_"+counter,item[field]));ocounter++}}descriptionString=descriptionString.substring(1);counter++}if(this.shippingCost!=0){form.appendChild(this.createHiddenElement("item_name_"+counter,"Shipping"));form.appendChild(this.createHiddenElement("item_number_"+counter,counter));form.appendChild(this.createHiddenElement("quantity_"+counter,"1"));form.appendChild(this.createHiddenElement("amount_"+counter,this.currencyStringForPaypalCheckout(this.shippingCost)))}document.body.appendChild(form);form.submit();document.body.removeChild(form)};this.googleCheckout=function(){if(this.currency!=USD&&this.currency!=GBP){error("Google Checkout only allows the USD and GBP for currency.");return}else if(this.merchantId===""||this.merchantId===null||!this.merchantId){error("No merchant Id for google checkout supplied.");return}var form=document.createElement("form");var counter=1;form.style.display="none";form.method="POST";if(this.sandboxMode){form.action="https://sandbox.google.com/checkout/api/checkout/v2/checkoutForm/Merchant/"+this.merchantId}else{form.action="https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/"+this.merchantId}form.acceptCharset="utf-8";form.appendChild(this.createHiddenElement("_charset_",""));form.appendChild(this.createHiddenElement("continue_url",this.continue_url));for(var current in this.items){var item=this.items[current];form.appendChild(this.createHiddenElement("item_name_"+counter,item.name));form.appendChild(this.createHiddenElement("item_quantity_"+counter,item.quantity));form.appendChild(this.createHiddenElement("item_price_"+counter,item.price));form.appendChild(this.createHiddenElement("item_currency_"+counter,this.currency));form.appendChild(this.createHiddenElement("item_tax_rate_"+counter,this.taxRate));var descriptionString="";for(var field in item){if(typeof(item[field])!="function"&&this.submitOptions.inArray(field)){descriptionString=descriptionString+", "+field+": "+item[field]}}descriptionString=descriptionString.substring(1);form.appendChild(this.createHiddenElement("item_description_"+counter,descriptionString));counter++}form.appendChild(this.createHiddenElement("_charset_",""));document.body.appendChild(form);form.submit();document.body.removeChild(form)};this.emailCheckout=function(){return};this.customCheckout=function(){return};this.load=function(){this.items={};this.total=0.00;this.quantity=0;if(readCookie('simpleCart')){var data=unescape(readCookie('simpleCart')).split('++');for(var x=0,xlen=data.length;x<xlen;x++){var info=data[x].split('||');var newItem=new CartItem();if(newItem.parseValuesFromArray(info)){newItem.checkQuantityAndPrice();this.items[newItem.id]=newItem}}}this.isLoaded=true};this.save=function(){var dataString="";for(var item in this.items){dataString=dataString+"++"+this.items[item].print()}createCookie('simpleCart',dataString.substring(2),30)};this.initializeView=function(){this.totalOutlets=getElementsByClassName('simpleCart_total');this.quantityOutlets=getElementsByClassName('simpleCart_quantity');this.cartDivs=getElementsByClassName('simpleCart_items');this.taxCostOutlets=getElementsByClassName('simpleCart_taxCost');this.taxRateOutlets=getElementsByClassName('simpleCart_taxRate');this.shippingCostOutlets=getElementsByClassName('simpleCart_shippingCost');this.finalTotalOutlets=getElementsByClassName('simpleCart_finalTotal');this.addEventToArray(getElementsByClassName('simpleCart_checkout'),simpleCart.checkout,"click");this.addEventToArray(getElementsByClassName('simpleCart_empty'),simpleCart.empty,"click");this.Shelf.readPage();this.pageIsReady=true};this.updateView=function(){this.updateViewTotals();if(this.cartDivs&&this.cartDivs.length>0){this.updateCartView()}};this.updateViewTotals=function(){var outlets=[["quantity","none"],["total","currency"],["shippingCost","currency"],["taxCost","currency"],["taxRate","percentage"],["finalTotal","currency"]];for(var x=0,xlen=outlets.length;x<xlen;x++){var arrayName=outlets[x][0]+"Outlets",outputString;for(var element in this[arrayName]){switch(outlets[x][1]){case"none":outputString=""+this[outlets[x][0]];break;case"currency":outputString=this.valueToCurrencyString(this[outlets[x][0]]);break;case"percentage":outputString=this.valueToPercentageString(this[outlets[x][0]]);break;default:outputString=""+this[outlets[x][0]];break}this[arrayName][element].innerHTML=""+outputString}}};this.updateCartView=function(){var newRows=[],x,newRow,item,current,header,newCell,info,outputValue,option,headerInfo;newRow=document.createElement('div');for(header in this.cartHeaders){if(typeof this.cartHeaders[header]=='function')continue;newCell=document.createElement('div');headerInfo=this.cartHeaders[header].split("_");newCell.innerHTML=headerInfo[0];newCell.className="item"+headerInfo[0];for(x=1,xlen=headerInfo.length;x<xlen;x++){if(headerInfo[x].toLowerCase()=="noheader"){newCell.style.display="none"}}newRow.appendChild(newCell)}newRow.className="cartHeaders";newRows[0]=newRow;x=1;for(current in this.items){newRow=document.createElement('div');item=this.items[current];for(header in this.cartHeaders){if(typeof this.cartHeaders[header]=='function')continue;newCell=document.createElement('div');info=this.cartHeaders[header].split("_");switch(info[0].toLowerCase()){case"total":outputValue=this.valueToCurrencyString(parseFloat(item.price)*parseInt(item.quantity,10));break;case"increment":outputValue=this.valueToLink("+","javascript:;","onclick=\"simpleCart.items[\'"+item.id+"\'].increment();\"");break;case"decrement":outputValue=this.valueToLink("-","javascript:;","onclick=\"simpleCart.items[\'"+item.id+"\'].decrement();\"");break;case"remove":outputValue=this.valueToLink("Remove","javascript:;","onclick=\"simpleCart.items[\'"+item.id+"\'].remove();\"");break;case"price":outputValue=this.valueToCurrencyString(item[info[0].toLowerCase()]?item[info[0].toLowerCase()]:" ");break;default:outputValue=item[info[0].toLowerCase()]?item[info[0].toLowerCase()]:" ";break}for(var y=1,ylen=info.length;y<ylen;y++){option=info[y].toLowerCase();switch(option){case"image":case"img":outputValue=this.valueToImageString(outputValue);break;case"input":outputValue=this.valueToTextInput(outputValue,"onchange=\"simpleCart.items[\'"+item.id+"\'].set(\'"+outputValue+"\' , this.value);\"");break;case"div":case"span":case"h1":case"h2":case"h3":case"h4":case"p":outputValue=this.valueToElement(option,outputValue,"");break;case"noheader":break;default:error("unkown header option: "+option);break}}newCell.innerHTML=outputValue;newCell.className="item"+info[0];newRow.appendChild(newCell)}newRow.className="itemContainer";newRows[x]=newRow;x++}for(current in this.cartDivs){var div=this.cartDivs[current];if(typeof div=='function')continue;while(div.childNodes[0]){div.removeChild(div.childNodes[0])}for(var j=0,jLen=newRows.length;j<jLen;j++){div.appendChild(newRows[j])}}};this.addEventToArray=function(array,functionCall,theEvent){for(var outlet in array){var element=array[outlet];if(element.addEventListener){element.addEventListener(theEvent,functionCall,false)}else if(element.attachEvent){element.attachEvent("on"+theEvent,functionCall)}}};this.createHiddenElement=function(name,value){var element=document.createElement("input");element.type="hidden";element.name=name;element.value=value;return element};this.currencySymbol=function(){switch(this.currency){case JPY:return"&yen;";case EUR:return"&euro;";case GBP:return"&pound;";case USD:case CAD:case AUD:case NZD:case HKD:case SGD:return"&#36;";default:return""}};this.currencyStringForPaypalCheckout=function(value){if(this.currencySymbol=="&#36;"){return"$"+parseFloat(value).toFixed(2)}else{return""+parseFloat(value).toFixed(2)}};this.valueToCurrencyString=function(value){return parseFloat(value).toCurrency(this.currencySymbol())};this.valueToPercentageString=function(value){return parseFloat(100*value).toFixed(0)+"%"};this.valueToImageString=function(value){if(value.match(/<\s*img.*src\=/)){return value}else{return"<img src=\""+value+"\" />"}};this.valueToTextInput=function(value,html){return"<input type=\"text\" value=\""+value+"\" "+html+" />"};this.valueToLink=function(value,link,html){return"<a href=\""+link+"\" "+html+" >"+value+"</a>"};this.valueToElement=function(type,value,html){return"<"+type+" "+html+" > "+value+"</"+type+">"};this.hasItem=function(item){for(var current in this.items){var testItem=this.items[current];var matches=true;for(var field in item){if(typeof(item[field])!="function"&&field!="quantity"&&field!="id"){if(item[field]!=testItem[field]){matches=false}}}if(matches){return current}}return false};this.update=function(){if(!simpleCart.isLoaded){simpleCart.load()}if(!simpleCart.pageIsReady){simpleCart.initializeView()}this.updateTotals();this.updateView();this.save()};this.updateTotals=function(){this.total=0;this.quantity=0;for(var current in this.items){var item=this.items[current];if(item.quantity<1){item.remove()}else if(item.quantity!==null&&item.quantity!="undefined"){this.quantity=parseInt(this.quantity,10)+parseInt(item.quantity,10)}if(item.price){this.total=parseFloat(this.total)+parseInt(item.quantity,10)*parseFloat(item.price)}}this.shippingCost=this.shipping();this.taxCost=parseFloat(this.total)*this.taxRate;this.finalTotal=this.shippingCost+this.taxCost+this.total};this.shipping=function(){if(parseInt(this.quantity,10)===0)return 0;var shipping=parseFloat(this.shippingFlatRate)+parseFloat(this.shippingTotalRate)*parseFloat(this.total)+parseFloat(this.shippingQuantityRate)*parseInt(this.quantity,10),nextItem,next;for(next in this.items){nextItem=this.items[next];if(nextItem.shipping){if(typeof nextItem.shipping=='function'){shipping+=parseFloat(nextItem.shipping())}else{shipping+=parseFloat(nextItem.shipping)}}}return shipping};this.initialize=function(){simpleCart.initializeView();simpleCart.load();simpleCart.update()}}function CartItem(){this.id="c"+NextId++}CartItem.prototype.set=function(field,value){field=field.toLowerCase();if(typeof(this[field])!="function"&&field!="id"){if(field=="quantity"){value=value.replace(/[^(\d|\.)]*/gi,"");value=value.replace(/,*/gi,"");value=parseInt(value,10)}else if(field=="price"){value=value.replace(/[^(\d|\.)]*/gi,"");value=value.replace(/,*/gi,"");value=parseFloat(value)}if(typeof(value)=="number"&&isNaN(value)){error("Improperly formatted input.")}else{this[field]=value;this.checkQuantityAndPrice()}}else{error("Cannot change "+field+", this is a reserved field.")}simpleCart.update()};CartItem.prototype.increment=function(){this.quantity=parseInt(this.quantity,10)+1;simpleCart.update()};CartItem.prototype.decrement=function(){if(parseInt(this.quanity,10)<2){this.remove()}else{this.quantity=parseInt(this.quantity,10)-1;simpleCart.update()}};CartItem.prototype.print=function(){var returnString='';for(var field in this){if(typeof(this[field])!="function"){returnString+=escape(field)+"="+escape(this[field])+"||"}}return returnString.substring(0,returnString.length-2)};CartItem.prototype.checkQuantityAndPrice=function(){if(!this.price||this.quantity==null||this.quantity=='undefined'){this.quantity=1;error('No quantity for item.')}else{this.quantity=(""+this.quantity).replace(/,*/gi,"");this.quantity=parseInt((""+this.quantity).replace(/[^(\d|\.)]*/gi,""),10);if(isNaN(this.quantity)){error('Quantity is not a number.');this.quantity=1}}if(!this.price||this.price==null||this.price=='undefined'){this.price=0.00;error('No price for item or price not properly formatted.')}else{this.price=(""+this.price).replace(/,*/gi,"");this.price=parseFloat((""+this.price).replace(/[^(\d|\.)]*/gi,""));if(isNaN(this.price)){error('Price is not a number.');this.price=0.00}}};CartItem.prototype.parseValuesFromArray=function(array){if(array&&array.length&&array.length>0){for(var x=0,xlen=array.length;x<xlen;x++){array[x].replace(/||/,"| |");array[x].replace(/\+\+/,"+ +");var value=array[x].split('=');if(value.length>1){if(value.length>2){for(var j=2,jlen=value.length;j<jlen;j++){value[1]=value[1]+"="+value[j]}}this[unescape(value[0]).toLowerCase()]=unescape(value[1])}}return true}else{return false}};CartItem.prototype.remove=function(){simpleCart.remove(this.id);simpleCart.update()};function Shelf(){this.items={}}Shelf.prototype.readPage=function(){this.items={};var newItems=getElementsByClassName("simpleCart_shelfItem");for(var current in newItems){var newItem=new ShelfItem();this.checkChildren(newItems[current],newItem);this.items[newItem.id]=newItem}};Shelf.prototype.checkChildren=function(item,newItem){for(var x=0;typeof item!='function'&&item.childNodes[x];x++){var node=item.childNodes[x];if(node.className&&node.className.match(/item_/)){var data=node.className.split('_');if(data[1]=="add"||data[1]=="Add"){var tempArray=[];tempArray.push(node);var addFunction=simpleCart.Shelf.addToCart(newItem.id);simpleCart.addEventToArray(tempArray,addFunction,"click");node.id=newItem.id}else{newItem[data[1]]=node}}if(node.childNodes[0]){this.checkChildren(node,newItem)}}};Shelf.prototype.empty=function(){this.items={}};Shelf.prototype.addToCart=function(id){return function(){if(simpleCart.Shelf.items[id]){simpleCart.Shelf.items[id].addToCart()}else{error("Shelf item with id of "+id+" does not exist.")}}};function ShelfItem(){this.id="s"+NextId++}ShelfItem.prototype.remove=function(){simpleCart.Shelf.items[this.id]=null};ShelfItem.prototype.addToCart=function(){var outStrings=[],valueString;for(var field in this){if(typeof(this[field])!="function"&&field!="id"){valueString="";switch(field){case"price":if(this[field].value){valueString=this[field].value}else if(this[field].innerHTML){valueString=this[field].innerHTML}valueString=valueString.replace(/[^(\d|\.)]*/gi,"");valueString=valueString.replace(/,*/,"");break;case"image":valueString=this[field].src;break;default:if(this[field].value){valueString=this[field].value}else if(this[field].innerHTML){valueString=this[field].innerHTML}else if(this[field].src){valueString=this[field].src}else{valueString=this[field]}break}outStrings.push(field+"="+valueString)}}simpleCart.add(outStrings)};function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()}else var expires="";document.cookie=name+"="+value+expires+"; path=/"}function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)===0)return c.substring(nameEQ.length,c.length)}return null}function eraseCookie(name){createCookie(name,"",-1)}var getElementsByClassName=function(className,tag,elm){if(document.getElementsByClassName){getElementsByClassName=function(className,tag,elm){elm=elm||document;var elements=elm.getElementsByClassName(className),nodeName=(tag)?new RegExp("\\b"+tag+"\\b","i"):null,returnElements=[],current;for(var i=0,il=elements.length;i<il;i+=1){current=elements[i];if(!nodeName||nodeName.test(current.nodeName)){returnElements.push(current)}}return returnElements}}else if(document.evaluate){getElementsByClassName=function(className,tag,elm){tag=tag||"*";elm=elm||document;var classes=className.split(" "),classesToCheck="",xhtmlNamespace="http://www.w3.org/1999/xhtml",namespaceResolver=(document.documentElement.namespaceURI===xhtmlNamespace)?xhtmlNamespace:null,returnElements=[],elements,node;for(var j=0,jl=classes.length;j<jl;j+=1){classesToCheck+="[contains(concat(' ', @class, ' '), ' "+classes[j]+" ')]"}try{elements=document.evaluate(".//"+tag+classesToCheck,elm,namespaceResolver,0,null)}catch(e){elements=document.evaluate(".//"+tag+classesToCheck,elm,null,0,null)}while((node=elements.iterateNext())){returnElements.push(node)}return returnElements}}else{getElementsByClassName=function(className,tag,elm){tag=tag||"*";elm=elm||document;var classes=className.split(" "),classesToCheck=[],elements=(tag==="*"&&elm.all)?elm.all:elm.getElementsByTagName(tag),current,returnElements=[],match;for(var k=0,kl=classes.length;k<kl;k+=1){classesToCheck.push(new RegExp("(^|\\s)"+classes[k]+"(\\s|$)"))}for(var l=0,ll=elements.length;l<ll;l+=1){current=elements[l];match=false;for(var m=0,ml=classesToCheck.length;m<ml;m+=1){match=classesToCheck[m].test(current.className);if(!match){break}}if(match){returnElements.push(current)}}return returnElements}}return getElementsByClassName(className,tag,elm)};String.prototype.reverse=function(){return this.split("").reverse().join("")};Number.prototype.withCommas=function(){var x=6,y=parseFloat(this).toFixed(2).toString().reverse();while(x<y.length){y=y.substring(0,x)+","+y.substring(x);x+=4}return y.reverse()};Number.prototype.toCurrency=function(){return(arguments[0]?arguments[0]:"$")+this.withCommas()};function error(message){try{console.log(message)}catch(err){}}Array.prototype.inArray=function(value){var i;for(i=0;i<this.length;i++){if(this[i]===value){return true}}return false};var simpleCart=new Cart();window.onload=simpleCart.initialize;
