var BasicContainer=Class.create({initialize:function(n){this.container=new Element("table",{"class":"basicCont",id:"parent",cellspacing:"0"}).hide();n.insert(this.container);var c=new Element("tbody",{});this.container.insert(c);var l=new Element("tr",{});c.insert(l);var k=new Element("td",{"class":"basicCont",id:"topLeftCorner",colspan:"1"});l.insert(k);var d=new Element("td",{"class":"basicCont",id:"topCenter",colspan:"1"});l.insert(d);var f=new Element("td",{"class":"basicCont",id:"topRightCorner",colspan:"1"});l.insert(f);var g=new Element("tr",{});c.insert(g);var e=new Element("td",{"class":"basicCont",id:"centerLeft",colspan:"1"});g.insert(e);this.contentContainer=new Element("td",{"class":"basicCont",id:"centerCenter",colspan:"1"});g.insert(this.contentContainer);var j=new Element("td",{"class":"basicCont",id:"centerRight",colspan:"1"});g.insert(j);var b=new Element("tr",{});c.insert(b);var h=new Element("td",{"class":"basicCont",id:"bottomLeftCorner",colspan:"1"});b.insert(h);var m=new Element("td",{"class":"basicCont",id:"bottomCenter",colspan:"1"});b.insert(m);var i=new Element("td",{"class":"basicCont",id:"bottomRightCorner",colspan:"1"});b.insert(i)},showContainer:function(b){Effect.Appear(this.container,{duration:b})},hideContainer:function(b){this.container.hide()}});function showBookmarks(){var f=6;var e=18;var b=$("bookmarksButtonImg").cumulativeOffset();var d=b[0]+f;var c=b[1]+e;var h=d+"px";var g=c+"px";$("bookmarksContainer").setStyle({left:h,top:g});Effect.toggle("bookmarksContainer","slide",{duration:0.45})}var CheckoutConf=Class.create({initialize:function(b){this.visible=0;this.cartID=b;this.cartSaved=0;this.cartAgreed=0;this.gCheckoutButton_enabled=new Element("img",{src:"https://checkout.google.com/buttons/checkout.gif?merchant_id=110025326466909&w=180&h=46&style=trans&variant=text&loc=en_US",alt:"Google Checkout"});this.gCheckoutButton_disabled=new Element("img",{src:"https://checkout.google.com/buttons/checkout.gif?merchant_id=110025326466909&w=180&h=46&style=trans&variant=disabled&loc=en_US",alt:"Google Checkout"});this.paypalButton_enabled=new Element("img",{src:"/images/checkoutConfPopup/paypalBttn_enabled.gif",alt:"Paypal"});this.paypalButton_disabled=new Element("img",{src:"/images/checkoutConfPopup/paypalBttn_disabled.gif",alt:"Paypal"});this.item=new Array();this.item[0]="<b>After your purchase is complete, you will be presented with a download code and instructions on how to redeem your new ringtones. Your code and download instructions will also be emailed to you.</b>";this.item[1]="Please be sure that your phone supports the ringtone format you have selected before proceeding. For more information, please visit our <a href='javascript:ctrl.changePage(\"help\")'>FAQ</a> section.";this.item[2]='From the time of purchase, you have <b>30 days</b> to redeem your ringtones by entering your code in the appropriate field on the "Redeem" page. Once your code has been entered, your order will remain active for <b>3 days</b> allowing you to complete your downloads.';this.item[3]="Due to the nature of digital media, <b>all sales are final.</b>"},build:function(k){this.overlayContainer=new Element("div",{id:"popupOverlay","class":"popupOverlay"});this.contentContainer=new Element("div",{id:"popupContent","class":"popupContent"});k.insert(this.overlayContainer);k.insert(this.contentContainer);var i=new Element("table",{"class":"popup_main",cellspacing:"0",cellpadding:"0"});var e=new Element("tbody",{});i.insert(e);var f=new Element("tr",{});e.insert(f);var r=new Element("img",{src:"/images/checkoutConfPopup/popup_topLeftCorner.gif"});var N=new Element("td",{"class":"popup_topLeftCorner"}).insert(r);f.insert(N);var M=new Element("td",{"class":"popup_topBorder"});f.insert(M);var p=new Element("img",{src:"/images/checkoutConfPopup/popup_topRightCorner.gif"});var L=new Element("td",{"class":"popup_topRightCorner"}).insert(p);f.insert(L);var d=new Element("tr",{});e.insert(d);var K=new Element("td",{"class":"popup_leftBorder"});d.insert(K);var J=new Element("td",{"class":"popup_mainContent"});d.insert(J);var m=new Element("table",{"class":"popup_content"});J.insert(m);var B=new Element("tbody",{});m.insert(B);var j=new Element("tr",{});B.insert(j);var v=new Element("td",{colspan:"2"});j.insert(v);var O=new Element("table",{}).setStyle({width:"100%"});v.insert(O);var z=new Element("tbody",{});O.insert(z);var F=new Element("tr",{});z.insert(F);var s=new Element("img",{src:"/images/checkoutConfPopup/popup_title.jpg"});var w=new Element("td",{"class":"popup_contentTitle"}).update(s);F.insert(w);this.popup_cartStatus=new Element("td",{"class":"popup_cartStatus",id:"popup_cartStatus"});F.insert(this.popup_cartStatus);this.item.each(function(V,Q){var U=new Element("tr",{});B.insert(U);var T=new Element("td",{"class":"popup_contentItemArrow"});if(Q==0){var S=new Element("img",{src:"/images/checkoutConfPopup/popup_itemArrow.gif"});T.insert(S)}U.insert(T);var R=new Element("td",{"class":"popup_contentItem"}).update(V);U.insert(R)});var h=new Element("tr",{});B.insert(h);var u=new Element("td",{});h.insert(u);var t=new Element("td",{"class":"popup_checkbox"});h.insert(t);this.mainContent_checkbox=new Element("input",{type:"checkbox",name:"agree",id:"agree"});t.insert(this.mainContent_checkbox);Event.observe(this.mainContent_checkbox,"click",ctrl.enableCheckout);var l=new Element("label",{"for":"agree"}).update("I Have Read and Understand These Conditions");t.insert(l);var g=new Element("tr",{});B.insert(g);var P=new Element("td",{colspan:"2"});g.insert(P);var x=new Element("table",{}).setStyle({width:"99%"});P.insert(x);var y=new Element("tbody",{});x.insert(y);var c=new Element("tr",{});y.insert(c);var C=new Element("td",{}).setStyle({width:"20%"});c.insert(C);this.mainContent_submitBttnGCheckout=new Element("td",{"class":"popup_submitButton"}).setStyle({width:"30%"});c.insert(this.mainContent_submitBttnGCheckout);this.mainContent_submitBttnPaypal=new Element("td",{"class":"popup_submitButton"}).setStyle({width:"30%"});c.insert(this.mainContent_submitBttnPaypal);var A=new Element("td",{"class":"popup_cancelButton"}).setStyle({width:"20%"}).insert("Or, ");c.insert(A);var D=new Element("a",{href:"javascript:ctrl.checkoutConfPopup()"}).update("Cancel");A.insert(D);var I=new Element("td",{"class":"popup_rightBorder"});d.insert(I);var b=new Element("tr",{});e.insert(b);var o=new Element("img",{src:"/images/checkoutConfPopup/popup_bottomLeftCorner.gif"});var H=new Element("td",{"class":"popup_bottomLeftCorner"}).insert(o);var G=new Element("td",{"class":"popup_bottomBorder"});var n=new Element("img",{src:"/images/checkoutConfPopup/popup_bottomRightCorner.gif"});var E=new Element("td",{"class":"popup_bottomRightCorner"}).insert(n);b.insert(H);b.insert(G);b.insert(E);this.contentContainer.update(i);this.ppFormCont=new Element("div",{id:"ppFormCont"}).hide();this.contentContainer.insert(this.ppFormCont)},saveCart:function(b){if(b==""){this.popup_cartStatus.update("Your Cart Is Empty");return""}itemsJSON=b.toJSON();var d=Base64.encode("savecart");var c=Base64.encode(itemsJSON);var e=Base64.encode(this.cartID);new Ajax.Request("/cgi/server.py",{method:"post",parameters:{r:d,cid:e,contents:c},onLoading:function(){this.popup_cartStatus.update("Saving your cart...");this.cartSaved=0}.bind(this),onSuccess:function(g){if(g.responseText){var f=g.responseText;if(f){f=Base64.decode(f);this.cartID=f.strip();Cookie.set("cid",Base64.encode(this.cartID),"7");this.popup_cartStatus.update("Your cart has been saved");this.cartSaved=1;this.submitBttnToggle()}}else{usr_msg="Sorry, we were unable to save your cart.<br />Please refresh the page and try again.";admin_msg="checkoutconf.js/saveCart/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}.bind(this),onFailure:function(){usr_msg="Sorry, we were unable to save your cart.<br />Please refresh the page and try again.";admin_msg="checkoutconf.js/saveCart/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})},processCheckout:function(n){if(n=="pp"){cartContents=ctrl.getCart();this.popup_cartStatus.update("Sending your order to PayPal...");var c=new Element("form",{action:"https://www.paypal.com/cgi-bin/webscr",method:"post"});var p=new Element("input",{type:"hidden",name:"cmd",value:"_cart"});c.insert(p);var k=new Element("input",{type:"hidden",name:"upload",value:"1"});c.insert(k);var i=new Element("input",{type:"hidden",name:"business",value:"newpurchase@busitones.com"});c.insert(i);var m=new Element("input",{type:"hidden",name:"notify_url",value:"http://www.busitones.com/cgi/paypal_notification_server.py"});c.insert(m);var g=new Element("input",{type:"hidden",name:"custom",value:this.cartID});c.insert(g);var e=new Element("input",{type:"hidden",name:"no_note",value:"1"});c.insert(e);var o=this.cartID.split("-");var l=o[o.length-1];var j=new Element("input",{type:"hidden",name:"return",value:"http://www.busitones.com/#page=redeem&code="+l});c.insert(j);var h=new Element("input",{type:"hidden",name:"rm",value:"2"});c.insert(h);var b=new Element("input",{type:"hidden",name:"cbt",value:"Download Your Ringtones!"});c.insert(b);cartContents.each(function(x,r){var t="";t="item_name_"+(r+1).toString();var w=new Element("input",{type:"hidden",name:t,value:x.dispname});c.insert(w);t="amount_"+(r+1).toString();var v=new Element("input",{type:"hidden",name:t,value:x.price});c.insert(v);t="on0_"+(r+1).toString();var u=new Element("input",{type:"hidden",name:t,value:"format"});c.insert(u);t="os0_"+(r+1).toString();var s=new Element("input",{type:"hidden",name:t,value:x.format});c.insert(s)});this.ppFormCont.insert(c);History.set("cid",Base64.encode(this.cartID));c.submit()}else{if(n=="gc"){if(this.cartAgreed&&this.cartSaved){var d=Base64.encode("submitcart");var f=Base64.encode(this.cartID);new Ajax.Request("/cgi/server.py",{method:"post",parameters:{r:d,cid:f},onLoading:function(){this.popup_cartStatus.update("Sending your order to Google Checkout...")}.bind(this),onSuccess:function(s){if(s.responseText){var r=s.responseText;if(r){r=Base64.decode(r);this.popup_cartStatus.update("...Success!");History.set("cid",Base64.encode(this.cartID));window.location=r}}else{usr_msg="Sorry, Google is not responding.<br />Please wait a few seconds and try again.";admin_msg="checkoutconf.js/processCheckout/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}.bind(this),onFailure:function(){usr_msg="Sorry, Google is not responding.<br />Please wait a few seconds and try again.";admin_msg="checkoutconf.js/saveCart/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})}}}},submitBttnToggle:function(){if(this.cartSaved){if(this.mainContent_checkbox.checked){var b=new Element("a",{href:'javascript:ctrl.submitCart("gc")'});b.insert(this.gCheckoutButton_enabled);this.mainContent_submitBttnGCheckout.update(b);var c=new Element("a",{href:'javascript:ctrl.submitCart("pp")'});c.insert(this.paypalButton_enabled);this.mainContent_submitBttnPaypal.update(c);this.cartAgreed=1}else{this.mainContent_submitBttnGCheckout.update(this.gCheckoutButton_disabled);this.mainContent_submitBttnPaypal.update(this.paypalButton_disabled);this.cartAgreed=0}}},onError:function(b,e){this.popup_cartStatus.update(e);BrowserDetect.init();var d="Error Message: "+b;d+="\r\nMessage Shown to User: "+e;d+="\r\nBrowser: "+BrowserDetect.browser;d+="\r\nBrowser Version: "+BrowserDetect.version;d+="\r\nUser OS: "+BrowserDetect.OS;d+="\r\nCart ID: "+this.cartID;var c=Base64.encode("error");d=Base64.encode(d);new Ajax.Request("/cgi/utility_server.py",{method:"post",parameters:{r:c,msg:d},onSuccess:function(f){}})},showContainer:function(b){this.overlayContainer.show();new Effect.Appear(this.contentContainer,{duration:b});this.visible=1},hideContainer:function(b){this.cartAgreed=0;new Effect.Fade(this.overlayContainer,{duration:b/2});new Effect.Fade(this.contentContainer,{duration:b/2});this.visible=0}});var FormatChooser=Class.create({initialize:function(k){this.container=new Element("div",{"class":"formatPopup"}).hide();var g=new Element("table",{"class":"formatPopupTable",cellspacing:0});this.container.insert(g);var c=new Element("tbody",{});g.insert(c);var b=new Element("tr",{});c.insert(b);var p=new Element("td",{"class":"formatPopupTitle",colspan:2}).update("Select Format");b.insert(p);var o=new Element("tr",{});c.insert(o);var m=new Element("td",{"class":"formatPopupOption",colspan:2});this.formatOpt1=new Element("input",{type:"radio",name:"group1",value:"mp3",id:"mp3",defaultChecked:"true",checked:"true"});m.insert(this.formatOpt1);var e=new Element("label",{"for":"mp3"}).update("Mp3");m.insert(e);o.insert(m);var l=new Element("tr",{});c.insert(l);var j=new Element("td",{"class":"formatPopupOption",colspan:2});this.formatOpt2=new Element("input",{type:"radio",name:"group1",value:"iPhone",id:"iphone"});j.insert(this.formatOpt2);var f=new Element("label",{"for":"iphone"}).update("iPhone");j.insert(f);l.insert(j);var h=new Element("tr",{});c.insert(h);var d=new Element("a",{href:"javascript:ctrl.cancelFormat()",alt:"cancel"});var i=new Element("img",{src:"/images/formatChooser/cancelButton.gif"});d.insert(i);var n=new Element("td",{"class":"formatPopupCancel",id:"formatPopupCancel"});h.insert(n);n.insert(d);this.submit=new Element("td",{"class":"formatPopupSubmit",id:"formatPopupSubmit"});h.insert(this.submit);k.insert(this.container)},choose:function(h){var j=new Element("a",{href:"javascript:ctrl.addToCart("+h+");",alt:"submit"});var g=new Element("img",{src:"/images/formatChooser/submitButton.gif"});j.insert(g);this.submit.update(j);var b=59;var e=-34;var k=$("add_"+h).cumulativeOffset();var d=k[0]+b;var f=k[1]+e;var c=d+"px";var i=f+"px";if(this.container.visible()){new Effect.Move(this.container,{x:d,y:f,mode:"absolute"})}else{this.container.setStyle({left:c,top:i});Effect.Appear(this.container,{duration:0.15})}},getFormat:function(){var b="";if(this.formatOpt1.checked){b=this.formatOpt1.value}else{b=this.formatOpt2.value}return b},close:function(b){this.container.hide()}});var HelloContainer=Class.create(BasicContainer,{initialize:function($super,b){$super(b);this._build()},_build:function(){var n=new Element("table",{"class":"hello",cellspacing:"0"});this.contentContainer.insert(n);var b=new Element("tbody",{});n.insert(b);var d=new Element("tr",{});b.insert(d);var i=new Element("td",{"class":"hello",id:"leftContainer",colspan:"1"});d.insert(i);var m=new Element("img",{src:"/images/hello/phones.jpg",alt:"Make an impression."});i.insert(m);var k=new Element("td",{"class":"hello",id:"rightContainer",colspan:"1"});d.insert(k);var c=new Element("div",{"class":"hello",id:"headlineContainer"});k.insert(c);var j=new Element("img",{src:"/images/hello/headline.png",alt:"Ringtones designed for the polished professional"});c.insert(j);var e=new Element("div",{"class":"hello",id:"textContainer"});k.insert(e);var l=new Element("img",{src:"/images/hello/text.png",alt:"Take a listen"});e.insert(l);var f=new Element("div",{"class":"hello",id:"listenButtonContainer"});k.insert(f);var h=new Element("img",{src:"/images/hello/button.png","class":"listenButtonContainer"});var g=new Element("a",{href:'javascript:ctrl.changePage("ringtones")'}).insert(h);f.insert(g)}});var HelpContainer=Class.create(BasicContainer,{initialize:function($super,b){this.title="Have questions about our tones? We're here to help!";this.questions=new Array();$$("#content_help div").each(function(d,e){q=d.childElements()[0].innerHTML;a=d.childElements()[1].innerHTML;var c=new Array(q,a);this.questions.push(c)}.bind(this));$super(b);this._build()},_build:function(){var j=new Element("table",{"class":"help",cellspacing:"0"});this.contentContainer.insert(j);var c=new Element("tbody",{});j.insert(c);var d=new Element("tr",{});c.insert(d);var f=new Element("td",{"class":"help",id:"title",colspan:"1"}).update(this.title);d.insert(f);var e=new Element("tr",{});c.insert(e);var g=new Element("td",{"class":"help",id:"body",colspan:"1"});e.insert(g);var h=new Element("div",{"class":"help",id:"contentWrapper"});g.insert(h);var i=new Element("table",{"class":"helpTable"});h.insert(i);var b=new Element("tbody",{});i.insert(b);this.questions.each(function(l,k){var m=l[0];var t=l[1];this.questions[k][2]=k;k=k.toString();var n=new Element("tr",{});b.insert(n);var p=new Element("td",{"class":"questions"}).update(m);n.insert(p);var o={ID:k};Event.observe(n,"click",ctrl.showAnswer.bindAsEventListener(o));var r=new Element("tr",{});b.insert(r);var s=new Element("td",{"class":"answers",id:"answer_"+k}).update(t).hide();r.insert(s);var o={ID:k};Event.observe(r,"click",ctrl.showAnswer.bindAsEventListener(o))}.bind(this))},displayAnswer:function(c){var b="answer_"+c;this.questions.each(function(f,d){if(f[2]==c){$(b).toggle()}else{var e="answer_"+d;$(e).hide()}});new Effect.Highlight($(b),{startcolor:"#ffff99",endcolor:"#fcfcfc"})}});var HelpPopupContainer=Class.create({initialize:function(){this.visible=0},build:function(l){this.helpPopup=new Element("table",{"class":"helpPopupContainer",cellspacing:"0"});l.insert(this.helpPopup);var v=new Element("tbody",{});this.helpPopup.insert(v);var d=new Element("tr",{});v.insert(d);var b=new Element("td",{"class":"helpPopupContainer",id:"mainRow"});d.insert(b);var s=new Element("table",{"class":"helpPopupFormContainer",cellspacing:"2"});b.insert(s);var y=new Element("tbody",{});s.insert(y);var c=new Element("tr",{});y.insert(c);var f=new Element("td",{"class":"helpPopupFormContainer",id:"title",colspan:"1"}).update("Your Name*:");c.insert(f);var k=new Element("td",{"class":"helpPopupFormContainer",id:"inputCol",colspan:"1"});c.insert(k);this.nameInput=new Element("input",{type:"text",name:"name","class":"helpPopupNameInput",maxlength:"36"});k.insert(this.nameInput);var t=new Element("tr",{});y.insert(t);var u=new Element("td",{"class":"helpPopupFormContainer",id:"title",colspan:"1"}).update("Your Email:");t.insert(u);var z=new Element("td",{"class":"helpPopupFormContainer",id:"inputCol",colspan:"1"});t.insert(z);this.emailInput=new Element("input",{type:"text",name:"email","class":"helpPopupEmailInput",maxlength:"36"});z.insert(this.emailInput);var n=new Element("tr",{});y.insert(n);var p=new Element("td",{"class":"helpPopupFormContainer",id:"helpPopupTitle",colspan:"2"}).update("How can we help you?");n.insert(p);var C=new Element("tr",{});y.insert(C);var e=new Element("td",{"class":"helpPopupFormContainer",id:"helpPopupCol",colspan:"2"});C.insert(e);this.helpInput=new Element("textarea",{name:"help","class":"helpPopupInput"});e.insert(this.helpInput);var j=new Element("tr",{});y.insert(j);var w=new Element("td",{"class":"helpPopupFormContainer",id:"button",colspan:"2"});j.insert(w);var B=new Element("table",{"class":"helpPopupBttnContainer",cellspacing:"0"});w.insert(B);var m=new Element("tbody",{});B.insert(m);var x=new Element("tr",{});m.insert(x);this.feedbackCol=new Element("td",{"class":"helpPopupBttnContainer",id:"feedback"});x.insert(this.feedbackCol);var i=new Element("td",{"class":"helpPopupBttnContainer",id:"cancelBttn"});x.insert(i);var h=new Element("img",{src:"/images/helpPopup/cancelButton.gif",alt:"Cancel"});var g=new Element("a",{href:"javascript:ctrl.helpPopup()"}).insert(h);i.insert(g);var A=new Element("td",{"class":"helpPopupBttnContainer",id:"submitBttn"});x.insert(A);var r=new Element("img",{src:"/images/helpPopup/sendButton.gif",alt:"Send"});var o=new Element("a",{href:"javascript:ctrl.helpPopupSend()"}).insert(r);A.insert(o)},sendHelp:function(){var f=this._validateName(this.nameInput.value);var g=this._validateEmail(this.emailInput.value);var e=this._validateHelp(this.helpInput.value);if(!f.msg.blank()){this._showFeedback(f.msg,"fail")}else{if(!g.msg.blank()){this._showFeedback(g.msg,"fail")}else{if(!e.msg.blank()){this._showFeedback(e.msg,"fail")}else{var d=Base64.encode(f.val);var c=Base64.encode(g.val);var b=Base64.encode(e.val);request=Base64.encode("help");new Ajax.Request("/cgi/server.py",{method:"post",parameters:{r:request,n:d,e:c,h:b},onLoading:function(){ctrl.helpPopupContainer._showFeedback("Sending Message...","info")},onSuccess:function(i){if(i.responseText){var h=i.responseText;h=Base64.decode(h).evalJSON();if(h){if(h[0]=="pass"){this._showFeedback("Your Email Has Been Sent!","pass");this._emptyForm();setTimeout("ctrl.helpPopupContainer.hideContainer(1.5)",2000)}else{this._showFeedback("Your email could not be sent.","fail");usr_msg="Sorry, your message could not be sent.";admin_msg="send help email didn't return a successful response.";this.onError(admin_msg,usr_msg)}}}else{usr_msg="Sorry, your message could not be sent.";admin_msg="send help email didn't return a successful response.";this.onError(admin_msg,usr_msg)}}.bind(this),onFailure:function(){usr_msg="Sorry, your message could not be sent.";admin_msg="send help email query returned a failed status.";this.onError(admin_msg,usr_msg)}.bind(this)})}}}},_showFeedback:function(c,b){if(b=="fail"){this.feedbackCol.setStyle({color:"#b2280f"})}else{if(b=="pass"){this.feedbackCol.setStyle({color:"#008000"})}else{if(b=="info"){this.feedbackCol.setStyle({color:"#333333"})}}}this.feedbackCol.update(c)},_validateName:function(e){var c=new Object();var b=e.strip().stripScripts().stripTags();var d=/[0-9_\.\?]/;if(b.blank()){c.msg="";c.val="";return c}else{if(d.test(b)){c.msg="Name Can Be Letters Only";c.val="";return c}else{c.msg="";c.val=b;return c}}},_validateEmail:function(e){var c=new Object();var b=e.strip();var d=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if(b.blank()){c.msg="Email Cannot Be Empty";c.val="";return c}else{if(!d.test(b)){c.msg="Invalid Email Address";c.val="";return c}else{c.msg="";c.val=b;return c}}},_validateHelp:function(d){var c=new Object();var b=d.strip().stripScripts().stripTags();if(b.blank()){c.msg="";c.val="";return c}else{c.msg="";c.val=b;return c}},_emptyForm:function(){this.nameInput.value="";this.emailInput.value="";this.helpInput.value=""},onError:function(b,e){this._showFeedback(e,"fail");BrowserDetect.init();var d="Error Message: "+b;d+="\r\nMessage Shown to User: "+e;d+="\r\nBrowser: "+BrowserDetect.browser;d+="\r\nBrowser Version: "+BrowserDetect.version;d+="\r\nUser OS: "+BrowserDetect.OS;d+="\r\nCart ID: "+this.cartID;var c=Base64.encode("error");d=Base64.encode(d);new Ajax.Request("/cgi/utility_server.py",{method:"post",parameters:{r:c,msg:d},onSuccess:function(f){}})},showContainer:function(f){var g=-100;var e=-335;var b=$("footRow_right").cumulativeOffset();var d=b[0]+g;var c=b[1]+e;var i=d+"px";var h=c+"px";this.helpPopup.setStyle({left:i,top:h});Effect.Appear(this.helpPopup,{duration:f});this.visible=1;this.feedbackCol.update("")},hideContainer:function(b){Effect.Fade(this.helpPopup,{duration:b});this.visible=0;this._emptyForm()}});var Ctrl=Class.create({initialize:function(){this.def_page="hello";this.def_toneCategory="Phonetones";this.def_tonePage=1;this.def_numPerPage=12;this.def_pageTransDur=0.5;this.cur_page="";this.cartID="";this.toneContainer="";this.cartContainer="";this.helloContainer="";Event.observe("hello","click",this.pageEventHandler);Event.observe("ringtones","click",this.pageEventHandler);Event.observe("help","click",this.pageEventHandler);Event.observe("redeem","click",this.pageEventHandler)},initPages:function(){if(History.hash.keys().size()){var b=History.hash.toObject();if(!b.page){History.set("page",this.def_page);b.page=this.def_page}this.pageHandler(b)}else{History.set("page",this.def_page);this.pageHandler({page:this.def_page})}History.Registry.set({id:"page",onStateChange:function(c){History.set("page",c);this.pageHandler({page:c})}.bind(this)});History.Observer.start()},changePage:function(b){var c={page:b};History.set("page",c.page);ctrl.pageHandler(c)},pageEventHandler:function(b){Event.stop(b);var c={page:this.id};History.set("page",c.page);ctrl.pageHandler(c)},pageHandler:function(b){var c=History.hash.toObject();c.page=(b.page)?b.page:c.page;if(this.cur_page==c.page){return}if(c.cid){if(!this.toneContainer){this.initTones()}this.cartID=Base64.decode(c.cid);this.cartContainer.restoreCart(this.cartID);History.unset("cid")}else{if(Cookie.get("cid")&&!this.cur_page){this.cartID=Base64.decode(Cookie.get("cid"));this.initTones();this.cartContainer.restoreCart(this.cartID)}}if(!this.cur_page.empty()){switch(this.cur_page){case"ringtones":this.stopTone();this.toneContainer.hideContainer(this.def_pageTransDur);this.formatChooser.close(0);this.packagePopup.closePackage(0);this.cartContainer.hideContainer(this.def_pageTransDur);if(this.checkoutConf){this.checkoutConf.hideContainer("0")}break;case"hello":this.helloContainer.hideContainer(this.def_pageTransDur);break;case"help":this.helpContainer.hideContainer(this.def_pageTransDur);break;case"redeem":this.redeemContainer.hideContainer(this.def_pageTransDur);break}}switch(c.page){case"help":if(!this.helpContainer){this.initHelp()}this.helpContainer.showContainer(this.def_pageTransDur);break;case"hello":if(!this.helloContainer){this.initHello()}this.helloContainer.showContainer(this.def_pageTransDur);break;case"redeem":if(!this.redeemContainer){this.initRedeem()}if(c.code){this.redeemContainer.setCode(c.code);this.redeemContainer.submitCode()}this.redeemContainer.showContainer(this.def_pageTransDur);break;case"ringtones":if(!this.toneContainer){this.initTones()}this.toneContainer.showContainer(this.def_pageTransDur);this.cartContainer.showContainer(this.def_pageTransDur);this.toneContainer.getCategories();this.toneContainer.getRingtones();break;default:break}this.cur_page=c.page},initTones:function(){this.toneContainer=new ToneContainer($("primaryParent"));this.formatChooser=new FormatChooser($("primaryParent"));this.packagePopup=new PackagePopup($("primaryParent"));this.cartContainer=new CartContainer($("secondaryParent"));this.toneContainer.numPerPage=this.def_numPerPage;this.toneContainer.curCategory=this.def_toneCategory},categoryEventHandler:function(b){Event.stop(b);var c=History.hash.toObject();c.cat=this.id;c.catpage=ctrl.def_tonePage;ctrl.categoryHandler(c)},categoryHandler:function(b){if(ctrl.toneContainer.curPlayingToneIndex>-1){ctrl.stopTone()}ctrl.toneContainer.curCategory=b.cat;ctrl.toneContainer.curTonesPage=b.catpage;ctrl.formatChooser.close(0);ctrl.packagePopup.closePackage(0);ctrl.toneContainer.getRingtones()},catpageEventHandler:function(b){Event.stop(b);ctrl.stopTone();var c=History.hash.toObject();if(this.id=="prev_page"){c.catpage=ctrl.toneContainer.curTonesPage-1}else{if(this.id=="next_page"){c.catpage=ctrl.toneContainer.curTonesPage+1}}ctrl.catpageHandler(c)},catpageHandler:function(b){this.toneContainer.curTonesPage=b.catpage;this.toneContainer.getRingtones();this.packagePopup.closePackage(0)},playTone:function(b){this.cartContainer.stopTone();this.packagePopup.stopTone();this.packagePopup.closePackage();this.toneContainer.playTone(b)},stopTone:function(){ctrl.toneContainer.stopTone()},mouseOverTone:function(c){var b=this.INDEX.toString();ctrl.toneContainer.mouseOverTone(b)},mouseOutTone:function(c){var b=this.INDEX.toString();ctrl.toneContainer.mouseOutTone(b)},mouseOverPackage:function(c){var b=this.INDEX.toString();ctrl.toneContainer.mouseOverPackage(b)},mouseOutPackage:function(c){var b=this.INDEX.toString();ctrl.toneContainer.mouseOutPackage(b)},chooseFormat:function(b){this.packagePopup.closePackage();this.formatChooser.choose(b)},cancelFormat:function(){this.formatChooser.close(0)},addToCart:function(b){var c=this.toneContainer.getItem(b);var d=this.formatChooser.getFormat();c.format=d;this.cartContainer.addItem(c);this.formatChooser.close(0);this.packagePopup.closePackage(0)},removeFromCart:function(b){this.cartContainer.removeItem(b)},showPackage:function(b){this.toneContainer.hidePackageButton(b);this.toneContainer.stopTone();this.cartContainer.stopTone();this.packagePopup.stopTone();if((this.packagePopup.index!=b)&&(this.toneContainer.curCategory==this.packagePopup.curCategory)){this.toneContainer.showPackageButton(this.packagePopup.index)}this.packagePopup.showPackage(b,this.toneContainer.curCategory)},closePackage:function(b){this.packagePopup.closePackage(0)},packagePlayTone:function(b){this.toneContainer.stopTone();this.cartContainer.stopTone();this.packagePopup.playTone(b)},packageStopTone:function(){this.packagePopup.stopTone()},checkCoupon:function(){ctrl.cartContainer.checkCoupon()},cartPlayTone:function(b){this.toneContainer.stopTone();this.packagePopup.stopTone();this.cartContainer.playTone(b)},cartStopTone:function(){ctrl.cartContainer.stopTone()},checkoutConfPopup:function(){if(!this.checkoutConf){this.checkoutConf=new CheckoutConf(this.cartID);this.checkoutConf.build($(document.body))}if(this.checkoutConf.visible==0){this.checkoutConf.showContainer(this.def_pageTransDur);this.checkoutConf.saveCart(this.cartContainer.items)}else{this.checkoutConf.hideContainer(this.def_pageTransDur)}},submitCart:function(b){this.checkoutConf.processCheckout(b)},getCart:function(){return this.cartContainer.getItems()},enableCheckout:function(){ctrl.checkoutConf.submitBttnToggle()},initHello:function(){this.helloContainer=new HelloContainer($("primaryParent"))},initHelp:function(){this.helpContainer=new HelpContainer($("primaryParent"))},showAnswer:function(b){ctrl.helpContainer.displayAnswer(this.ID)},initRedeem:function(){this.redeemContainer=new RedeemContainer($("primaryParent"))},submitCode:function(){this.redeemContainer.submitCode();if(this.redeemContainer.getCode()){History.set("code",this.redeemContainer.getCode())}},helpPopup:function(){if(!this.helpPopupContainer){this.helpPopupContainer=new HelpPopupContainer();var b=this.helpPopupContainer.build($("primaryParent"))}if(this.helpPopupContainer.visible==0){this.helpPopupContainer.showContainer(this.def_pageTransDur)}else{if(this.helpPopupContainer.visible==1){this.helpPopupContainer.hideContainer(this.def_pageTransDur)}}},helpPopupSend:function(){this.helpPopupContainer.sendHelp()},showLoadingIndicator:function(){$("loading_statusIndicator").show()},hideLoadingIndicator:function(){Effect.SlideUp("loading_statusIndicator",{duration:0.25})}});var PackagePopup=Class.create({initialize:function(b){this.container=new Element("div",{"class":"packagePopupBase"}).hide();this.titleContainer=new Element("div",{"class":"packagePopupTitle"});this.container.insert(this.titleContainer);this.contentContainer=new Element("div",{"class":"packagePopupContent"});this.container.insert(this.contentContainer);this.footerContainer=new Element("div",{"class":"packagePopupFooter"});this.container.insert(this.footerContainer);b.insert(this.container)},_populate:function(e,g){var d=ctrl.toneContainer.curCategory;var c=ctrl.toneContainer.tones[d][e];this.curPlayingToneID=-1;this.index=e;this.curCategory=g;this.packageVisible=false;this.tones=c.contents;var b=c.dispname.split("_");b[1]=b[1].capitalize();b=b[1]+" "+b[2].slice(2,3);this.titleContainer.update(b);var f=new Element("div",{"class":"packagePopupContentWrapper",id:"content"});this.contentContainer.update(f);this.tones.each(function(m,p){var j=new Element("div",{"class":"packagePopupItemRow",id:"item_"+p});f.insert(j);var l=m.split("_");l[1]=l[1].capitalize();l=l[1]+" "+l[2].slice(1,3);var k=new Element("div",{"class":"packagePopupItemName"}).update(l);j.insert(k);var o=new Element("img",{src:"/images/packagePopup/playButton.gif",id:"itemPreviewButton"});var i=new Element("a",{href:"javascript:ctrl.packagePlayTone("+p+");"}).insert(o);var n=new Element("div",{"class":"packagePopupItemPreview",id:"preview_"+p}).update(i);j.insert(n)}.bind(this));var h=new Element("a",{href:"javascript:ctrl.closePackage("+e+")",alt:"close"}).insert("Close");this.footerContainer.update(h)},playTone:function(d){var c=this.tones[d];c=Base64.encode(c);var b="/cgi/stream.py?n="+c;if(this.curPlayingToneID!=-1&&this.curPlayingToneID!=d){ctrl.packageStopTone()}soundManager.createSound({id:d.toString(),url:b,volume:80,whileloading:function(){},onplay:function(){var e=new Element("img",{src:"/images/packagePopup/pauseButton.gif"});var f=new Element("a",{href:"javascript:ctrl.packageStopTone();"});f.insert(e);$("preview_"+d).update(f)},whileplaying:function(){},onstop:function(){var f=new Element("img",{src:"/images/packagePopup/playButton.gif"});var e=new Element("a",{href:"javascript:ctrl.packagePlayTone("+d+");"});e.insert(f);$("preview_"+d).update(e)},onfinish:function(){ctrl.packagePlayTone(d)}});this.curPlayingToneID=d;soundManager.play(d.toString())},stopTone:function(){if(this.curPlayingToneID>-1){soundManager.stop(this.curPlayingToneID.toString());soundManager.destroySound(this.curPlayingToneID.toString());this.curPlayingToneID=-1}},showPackage:function(h,c){this._populate(h,c);this.packageVisible=true;var b=47;var f=-62;var j=$(h+"_preview").cumulativeOffset();var e=j[0]+b;var g=j[1]+f;var d=e+"px";var i=g+"px";if(this.container.visible()){new Effect.Move(this.container,{x:e,y:g,mode:"absolute"})}else{this.container.setStyle({left:d,top:i});Effect.Appear(this.container,{duration:0.15})}},closePackage:function(b){this.stopTone();this.container.hide();if(this.packageVisible){ctrl.toneContainer.showPackageButton(this.index);this.packageVisible=false}}});var RedeemContainer=Class.create(BasicContainer,{initialize:function($super,b){this.disclaimer="Please retrieve your Busitones redemption code from your purchase confirmation email. You have 30 days from the time of purchase to enter your redemption code in the above field. Once entered, you have 3 days to complete your downloads. If you need assistance with your redemption code or downloading, please <a href='javascript:ctrl.helpPopup()'>click here</a>.";$super(b);this._build()},_build:function(){var p=new Element("table",{"class":"redeem",cellspacing:"0"});this.contentContainer.insert(p);var b=new Element("tbody",{});p.insert(b);var l=new Element("tr",{});b.insert(l);var o=new Element("td",{"class":"redeemHeader",id:"title",colspan:"1"});l.insert(o);var g=new Element("img",{src:"/images/redeem/title.jpg",alt:"Download Your Tones"});o.insert(g);var h=new Element("td",{"class":"redeemHeader",id:"instructions",colspan:"1"});l.insert(h);var i=new Element("img",{src:"/images/redeem/enterYourCode.gif",alt:"Enter Your Code"});h.insert(i);var m=new Element("td",{"class":"redeemHeader",id:"codeField",colspan:"1"});l.insert(m);this.codeInput=new Element("input",{type:"text",name:"code","class":"redeemInput",maxlength:"12"});m.insert(this.codeInput);var d=new Element("td",{"class":"redeemHeader",id:"codeButton",colspan:"1"});l.insert(d);var j=new Element("img",{src:"/images/redeem/inputSubmit.png",alt:"Enter"});var n=new Element("a",{href:"javascript:ctrl.submitCode();"}).insert(j);d.insert(n);var c=new Element("tr",{});b.insert(c);var k=new Element("td",{"class":"redeemHeader",id:"disclaimer",colspan:"4"}).update(this.disclaimer);c.insert(k);var f=new Element("tr",{});b.insert(f);this.redeemFeedback=new Element("div",{"class":"redeemFeedback"}).update("&nbsp");this.redeemMessage_col1=new Element("td",{"class":"redeemCart",id:"message",colspan:"4"}).insert(this.redeemFeedback).hide();f.insert(this.redeemMessage_col1);var e=new Element("tr",{});b.insert(e);this.redeemContent_col1=new Element("td",{"class":"redeemCart",id:"container",colspan:"4"}).update("&nbsp");e.insert(this.redeemContent_col1)},submitCode:function(){var e=this._validateCode();if(!e){var c=Base64.encode("redeem");var d=this.codeInput.value;var b=Base64.encode(d);new Ajax.Request("/cgi/server.py",{method:"get",parameters:{r:c,c:b},onLoading:function(){ctrl.showLoadingIndicator()},onSuccess:function(g){ctrl.hideLoadingIndicator();if(g.responseText){var f=g.responseText;f=Base64.decode(f).evalJSON();if(f){this._populateBasket(f)}}else{usr_msg="Sorry, your order was unable to be retrieved.<br />Please wait a few seconds and try again.";admin_msg="redeem.js/submitcode/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}.bind(this),onFailure:function(){usr_msg="Sorry, your order was unable to be retrieved.<br />Please wait a few seconds and try again.";admin_msg="redeem.js/submitcode/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})}},setCode:function(b){this.codeInput.value=b},getCode:function(){return this.codeInput.value.strip().stripTags().stripScripts()},_populateBasket:function(f){this.redeemContent_col1.update("");if(f.status=="valid"){var l=f.cartContents.sort(function(p,o){var n=p.dispname.toLowerCase();var r=o.dispname.toLowerCase();return((n<r)?-1:((n>r)?1:0))});var k=new Element("table",{"class":"redeemContents",id:"contents",cellspacing:"0px"});this.redeemContent_col1.insert(k);var b=new Element("tbody",{});k.insert(b);var g=new Element("tr",{});b.insert(g);var h="Enjoy your ringtones, <b>"+f.buyername+"!</b>";var d=new Element("td",{"class":"redeemContents",id:"greeting",colspan:"3"}).update(h);g.insert(d);var c=new Element("tr",{});b.insert(c);var j=new Element("td",{"class":"itemsContainer"});c.insert(j);var m=new Element("div",{"class":"itemsContainerWrapper"});j.insert(m);var e=new Element("table",{"class":"itemsTable"});m.insert(e);var i=new Element("tbody",{});e.insert(i);l.each(function(A,w){var r=new Element("tr",{});i.insert(r);if(!A.type){A.type="single"}var o=A.dispname.split("_");o[1]=o[1].capitalize();switch(o[0]){case"st":showname="Simpletones "+o[1]+" ";break;case"tt":showname="Tunetones "+o[1]+" ";break;case"pt":showname="Phonetones "+o[1]+" ";break}if(A.type=="single"){showname+=o[2].slice(1,3);var x=new Element("td",{"class":"itemsTable",id:"name"}).update(showname);r.insert(x);var v=new Element("span",{"class":"itemsTable",id:"description"}).update(" ");x.insert(v)}else{if(A.type=="package"){showname+=o[2].slice(2,3);var x=new Element("td",{"class":"itemsTable",id:"name"}).update(showname);r.insert(x);var v=new Element("span",{"class":"itemsTable",id:"description"}).update("Package of "+A.contents.length);x.insert(v)}}var y=new Element("td",{"class":"itemsTable",id:"format"}).update(A.format);r.insert(y);var t=new Element("img",{src:"/images/redeem/downloadButton.gif",alt:"Download"});var u="/cgi/download.py";u+="?n="+Base64.encode(A.dispname.replace(/ /g,"_"));u+="&f="+Base64.encode(A.format);u+="&t="+Base64.encode(A.type);var z=new Element("a",{href:u}).insert(t);var n=new Element("td",{"class":"itemsTable",id:"download"}).insert(z);r.insert(n);if(w==(f.cartContents.length-1)){var s=new Element("tr");i.insert(s);var p=new Element("td",{"class":"itemsTable",id:"footer",colspan:"3"}).update("&nbsp;");s.insert(p)}}.bind(this))}else{if(f.status=="invalid"){this._displayFeedback("Invalid code. Please check your code and try again.")}else{if(f.status=="downloadExpired"){this._displayFeedback("This download code has expired.")}else{if(f.status=="cartExpired"){this._displayFeedback("This order has expired.")}}}}},_validateCode:function(){var c=this.codeInput.value.strip().stripTags().stripScripts();var b="";if(c.length==0){b="Code field cannot be empty."}else{if(c.length!=12){b="Invalid code. Please check your code and try again."}}if(b==""){this._displayFeedback(b);return 0}else{this._displayFeedback(b);return 1}},_displayFeedback:function(b){if(b==""){this.redeemMessage_col1.hide()}else{this.redeemFeedback.update(b);this.redeemMessage_col1.show()}},onError:function(b,e){this._displayFeedback(e);BrowserDetect.init();var d="Error Message: "+b;d+="\r\nMessage Shown to User: "+e;d+="\r\nBrowser: "+BrowserDetect.browser;d+="\r\nBrowser Version: "+BrowserDetect.version;d+="\r\nUser OS: "+BrowserDetect.OS;d+="\r\nCart ID: "+this.cartID;var c=Base64.encode("error");d=Base64.encode(d);new Ajax.Request("/cgi/utility_server.py",{method:"post",parameters:{r:c,msg:d},onSuccess:function(f){}})}});var RingtoneBaseContainer=Class.create({initialize:function(n){this.container=new Element("table",{"class":"ringtoneBaseCont",id:"parent",cellspacing:"0"}).hide();n.insert(this.container);var c=new Element("tbody",{});this.container.insert(c);var l=new Element("tr",{});c.insert(l);var k=new Element("td",{"class":"ringtoneBaseCont",id:"topLeftCorner",colspan:"1"});l.insert(k);var d=new Element("td",{"class":"ringtoneBaseCont",id:"topCenter",colspan:"1"});l.insert(d);var f=new Element("td",{"class":"ringtoneBaseCont",id:"topRightCorner",colspan:"1"});l.insert(f);var g=new Element("tr",{});c.insert(g);var e=new Element("td",{"class":"ringtoneBaseCont",id:"centerLeft",colspan:"1"});g.insert(e);this.contentContainer=new Element("td",{"class":"ringtoneBaseCont",id:"centerCenter",colspan:"1"});g.insert(this.contentContainer);var j=new Element("td",{"class":"ringtoneBaseCont",id:"centerRight",colspan:"1"});g.insert(j);var b=new Element("tr",{});c.insert(b);var h=new Element("td",{"class":"ringtoneBaseCont",id:"bottomLeftCorner",colspan:"1"});b.insert(h);var m=new Element("td",{"class":"ringtoneBaseCont",id:"bottomCenter",colspan:"1"});b.insert(m);var i=new Element("td",{"class":"ringtoneBaseCont",id:"bottomRightCorner",colspan:"1"});b.insert(i)},showContainer:function(b){Effect.Appear(this.container,{duration:b})},hideContainer:function(b){this.container.hide()}});var ToneContainer=Class.create(RingtoneBaseContainer,{initialize:function($super,b){$super(b);this._build();this.categories=[];this.tones=[];this.numPerPage=0;this.toneLocation="";this.curCategory="";this.curTonesPage=1;this.curPlayingToneIndex=-1;this.loading=0},_build:function(){var e=new Element("table",{"class":"ringtoneContent",cellspacing:"0"});this.contentContainer.insert(e);var b=new Element("tbody",{});e.insert(b);var f=new Element("tr",{});b.insert(f);var h=new Element("td",{"class":"ringtoneContent",id:"header",colspan:"1"});var g=new Element("img",{src:"/images/ringtones/header.jpg"});h.insert(g);f.insert(h);this.ringtoneContent_categories=new Element("td",{"class":"ringtoneContent",id:"categories",colspan:"1"});f.insert(this.ringtoneContent_categories);var d=new Element("tr",{});b.insert(d);this.ringtoneContent_body=new Element("td",{"class":"ringtoneContent",id:"body",colspan:"2"});d.insert(this.ringtoneContent_body);var c=new Element("tr",{});b.insert(c);this.ringtoneContent_pageCtrl=new Element("td",{"class":"ringtoneContent",id:"pageCtrl",colspan:"2"});c.insert(this.ringtoneContent_pageCtrl)},getCategories:function(){if(this.categories.size()){this._populateCategories()}else{request=Base64.encode("categories");new Ajax.Request("/cgi/server.py",{method:"get",parameters:{r:request},onSuccess:function(c){if(c.responseText){var b=c.responseText;b=Base64.decode(b).evalJSON();if(b){this.categories=b.categories;this._populateCategories()}else{usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="ringtones.js/getRingtones/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}}.bind(this),onFailure:function(){usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="ringtones.js/getRingtones/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})}},_populateCategories:function(){this.ringtoneContent_categories.update("");var d=new Element("table",{"class":"ringtoneCategories"});this.ringtoneContent_categories.insert(d);var b=new Element("tbody",{});d.insert(b);var c="";this.categories.each(function(h,e){if(e%3===0){categoryRow=new Element("tr",{});b.insert(categoryRow)}var g=new Element("td",{"class":"ringtoneCategoryItem",id:h}).update(h);categoryRow.insert(g);try{Event.observe(g,"click",ctrl.categoryEventHandler)}catch(f){}});this.setCategory()},getRingtones:function(){if(this.tones[this.curCategory]){this._populateRingtones()}else{cat=Base64.encode(this.curCategory);request=Base64.encode("ringtones");new Ajax.Request("/cgi/server.py",{method:"get",parameters:{r:request,c:cat},onLoading:function(){ctrl.showLoadingIndicator()},onSuccess:function(c){ctrl.hideLoadingIndicator();if(c.responseText){var b=c.responseText;b=Base64.decode(b).evalJSON();if(b.ringtones){this.tones[this.curCategory]=b.ringtones;this._populateRingtones()}else{usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="ringtones.js/getRingtones/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}}.bind(this),onFailure:function(){usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="ringtones.js/getRingtones/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})}},_populateRingtones:function(){this.ringtoneContent_body.update("");this.setCategory();var b=this.tones[this.curCategory].size();var f=Math.ceil(b/this.numPerPage);var e=(this.curTonesPage-1)*this.numPerPage;var m=e+this.numPerPage;var g=[];for(var k=e;k<m&&this.tones[this.curCategory][k];k++){g.push(this.tones[this.curCategory][k])}var i=new Element("table",{"class":"ringtones",id:"ringtones",cellspacing:"0"});this.ringtoneContent_body.insert(i);var c=new Element("tbody",{});i.insert(c);g.each(function(L,s){var G=L.dispname;var A=L.price;var I=L.type;var D=L.contents;var C=s;s=s+(this.curTonesPage-1)*this.numPerPage;var r=new Element("tr");c.insert(r);if(I=="single"){var p=G.split("_");p[1]=p[1].capitalize();p=p[1]+" "+p[2].slice(1,3);var E=new Element("td",{"class":"ringtoneItem",id:"ringtoneItem_name"}).update(p);r.insert(E);var o=new Element("img",{src:"/images/ringtones/playButton.gif"});var y=new Element("a",{href:"javascript:ctrl.playTone("+s+");"});y.insert(o);var w=new Element("td",{"class":"ringtoneItem_preview",id:s+"_preview"}).insert(y);r.insert(w);var u={INDEX:s};Event.observe(w,"mouseover",ctrl.mouseOverTone.bindAsEventListener(u));Event.observe(w,"mouseout",ctrl.mouseOutTone.bindAsEventListener(u));var v=new Element("td",{"class":"ringtoneItem_status",id:s+"_status"}).update("&nbsp;");r.insert(v)}else{if(I=="package"){var p=G.split("_");p[1]=p[1].capitalize();p=p[1]+" "+p[2].slice(2,3);var K=new Element("span",{"class":"ringtoneItem",id:"ringtoneItem_type"}).insert(" Package of "+D.length);var E=new Element("td",{"class":"ringtoneItem",id:"ringtoneItem_name"}).insert(p);E.insert(K);r.insert(E);var x=new Element("img",{src:"/images/ringtones/viewPackageButton.gif"});var J=new Element("a",{href:"javascript:ctrl.showPackage("+s+");"});J.insert(x);var t=new Element("td",{"class":"ringtoneItem_preview",id:s+"_preview"}).insert(J);r.insert(t);var u={INDEX:s};Event.observe(t,"mouseover",ctrl.mouseOverPackage.bindAsEventListener(u));Event.observe(t,"mouseout",ctrl.mouseOutPackage.bindAsEventListener(u));var v=new Element("td",{"class":"ringtoneItem_status",id:s+"_status"}).update("&nbsp;");r.insert(v)}}var A=new Element("td",{"class":"ringtoneItem",id:"ringtoneItem_price"}).update("$"+A);r.insert(A);var n=new Element("img",{src:"/images/ringtones/addItButton.gif"});var F=new Element("a",{href:"javascript:ctrl.chooseFormat("+s+");"});F.insert(n);var B=new Element("td",{"class":"ringtoneItem_add",id:"add_"+s}).insert(F);r.insert(B);if(C==g.length-1){var z=new Element("tr");c.insert(z);var H=new Element("td",{"class":"ringtoneItem",colspan:"5"}).update("&nbsp;");z.insert(H)}}.bind(this));this.ringtoneContent_pageCtrl.update("");if(e>0){var d=new Element("span",{id:"prev_page"}).update("< Prev");this.ringtoneContent_pageCtrl.insert(d);Event.observe("prev_page","click",ctrl.catpageEventHandler)}var l=" Page "+(this.curTonesPage)+" of "+(f)+" ";var h=new Element("span",{id:"pagecount"}).update(l);this.ringtoneContent_pageCtrl.insert(h);if(m<b){var j=new Element("span",{id:"next_page"}).update("Next >");this.ringtoneContent_pageCtrl.insert(j);Event.observe("next_page","click",ctrl.catpageEventHandler)}},getItem:function(b){var d=this.tones[this.curCategory][b];var c=new Object();c.type=d.type;c.dispname=d.dispname;c.price=d.price;c.contents=d.contents;return c},setCategory:function(){this.categories.each(function(b){if(this.curCategory==b){$(b).setStyle({fontWeight:"bold"})}else{$(b).setStyle({fontWeight:"normal"})}}.bind(this))},playTone:function(b){var d=this.tones[this.curCategory][b].dispname.replace(/ /g,"_");d=Base64.encode(d);var c="/cgi/stream.py?n="+d;if(this.curPlayingToneIndex!=-1&&this.curPlayingToneIndex!=b){ctrl.stopTone()}soundManager.createSound({id:b.toString(),url:c,volume:80,whileloading:function(){$(b+"_status").update("Loading...")},onplay:function(){var e=new Element("img",{src:"/images/ringtones/pauseButton.gif"});var f=new Element("a",{href:"javascript:ctrl.stopTone();"});f.insert(e);$(b+"_preview").update(f)},whileplaying:function(){$(b+"_status").update("Playing...")},onstop:function(){var f=new Element("img",{src:"/images/ringtones/playButton.gif"});var e=new Element("a",{href:"javascript:ctrl.playTone("+b+");"});e.insert(f);$(b+"_preview").update(e);$(b+"_status").update("&nbsp;")},onfinish:function(){ctrl.playTone(b)}});this.curPlayingToneIndex=b;soundManager.play(b.toString())},stopTone:function(){if(this.curPlayingToneIndex>-1){soundManager.stop(this.curPlayingToneIndex.toString());soundManager.destroySound(this.curPlayingToneIndex.toString());this.curPlayingToneIndex=-1}},mouseOverTone:function(b){if(this.curPlayingToneIndex!=b){$(b+"_status").update("Click To Preview")}},mouseOutTone:function(b){if(this.curPlayingToneIndex!=b){$(b+"_status").update("&nbsp;")}},mouseOverPackage:function(b){if(this.curPlayingToneIndex!=b){$(b+"_status").update("Preview Package Tones")}},mouseOutPackage:function(b){if(this.curPlayingToneIndex!=b){$(b+"_status").update("&nbsp;")}},showPackageButton:function(c){try{var e=new Element("img",{src:"/images/ringtones/viewPackageButton.gif"});var b=new Element("a",{href:"javascript:ctrl.showPackage("+c+");"});b.insert(e);$(c+"_preview").update(b)}catch(d){}},hidePackageButton:function(b){var d=new Element("img",{src:"/images/ringtones/hidePackageButton.gif"});var c=new Element("a",{href:"javascript:ctrl.closePackage("+b+");"});c.insert(d);$(b+"_preview").update(c)},onError:function(b,e){alert(e);BrowserDetect.init();var d="Error Message: "+b;d+="\r\nMessage Shown to User: "+e;d+="\r\nBrowser: "+BrowserDetect.browser;d+="\r\nBrowser Version: "+BrowserDetect.version;d+="\r\nUser OS: "+BrowserDetect.OS;d+="\r\nCart ID: "+this.cartID;var c=Base64.encode("error");d=Base64.encode(d);new Ajax.Request("/cgi/utility_server.py",{method:"post",parameters:{r:c,msg:d},onSuccess:function(f){}})}});var CartBaseContainer=Class.create({initialize:function(n){this.container=new Element("table",{"class":"cartBaseCont",id:"parent",cellspacing:"0"}).hide();n.insert(this.container);var c=new Element("tbody",{});this.container.insert(c);var l=new Element("tr",{});c.insert(l);var k=new Element("td",{"class":"cartBaseCont",id:"topLeftCorner",colspan:"1"});l.insert(k);var d=new Element("td",{"class":"cartBaseCont",id:"topCenter",colspan:"1"});l.insert(d);var f=new Element("td",{"class":"cartBaseCont",id:"topRightCorner",colspan:"1"});l.insert(f);var g=new Element("tr",{});c.insert(g);var e=new Element("td",{"class":"cartBaseCont",id:"centerLeft",colspan:"1"});g.insert(e);this.contentContainer=new Element("td",{"class":"cartBaseCont",id:"centerCenter",colspan:"1"});g.insert(this.contentContainer);var j=new Element("td",{"class":"cartBaseCont",id:"centerRight",colspan:"1"});g.insert(j);var b=new Element("tr",{});c.insert(b);var h=new Element("td",{"class":"cartBaseCont",id:"bottomLeftCorner",colspan:"1"});b.insert(h);var m=new Element("td",{"class":"cartBaseCont",id:"bottomCenter",colspan:"1"});b.insert(m);var i=new Element("td",{"class":"cartBaseCont",id:"bottomRightCorner",colspan:"1"});b.insert(i)},showContainer:function(b){Effect.Appear(this.container,{duration:b})},hideContainer:function(b){this.container.hide()}});var CartContainer=Class.create(CartBaseContainer,{initialize:function($super,b){this.items=new Array();this.curPlayingToneIndex=-1;this.pauseBttn=new Element("img",{src:"/images/cart/pauseButton.gif"});this.deleteBttn=new Element("img",{src:"/images/cart/playButton.gif"});$super(b);this._build()},_build:function(){var l=new Element("table",{"class":"cartContent",cellspacing:"0"});this.contentContainer.insert(l);var b=new Element("tbody",{});l.insert(b);var i=new Element("tr",{});b.insert(i);var g=new Element("td",{"class":"cartContent",id:"cartContent_logo",colspan:"1"});var r=new Element("img",{src:"/images/cart/header.jpg"});g.insert(r);i.insert(g);var c=new Element("tr",{});b.insert(c);var k=new Element("td",{"class":"cartContent",id:"cartContent_cell",colspan:"1"});c.insert(k);var h=new Element("div",{"class":"cartContent",id:"cartContent_body"});k.insert(h);var p=new Element("table",{"class":"cartContent_items",id:"cartContent_items",colspan:"1",cellspacing:0});h.insert(p);this.mainContentTable=new Element("tbody",{});p.insert(this.mainContentTable);var e=new Element("tr",{});b.insert(e);var n=new Element("td",{"class":"cartContent",id:"cartContent_total",colspan:"1"});e.insert(n);var d=new Element("table",{"class":"cartTotal",id:"cartTotal_container",cellspacing:"0",cellpadding:"0"});n.insert(d);var o=new Element("tbody",{});d.insert(o);var e=new Element("tr",{});o.insert(e);var s=new Element("td",{"class":"cartTotal",id:"cartTotal_txt"}).insert("SUBTOTAL: ");e.insert(s);this.total=new Element("td",{"class":"cartTotal",id:"cartTotal_amt"}).update("$0.00");e.insert(this.total);var j=new Element("a",{href:"javascript:ctrl.checkoutConfPopup();"});var m=new Element("img",{src:"/images/cart/checkoutButton.gif"});j.insert(m);var f=new Element("td",{"class":"cartTotal",id:"cartTotal_checkout"}).insert(j);e.insert(f);$("minicart").update("Your cart is empty");return true},addItem:function(e){var g=this.items.push(e);var j=g-1;var c=new Element("tr",{id:j+"_cartItem"});this.mainContentTable.insert(c);if(e.type=="single"){var h=e.dispname.split("_");h[1]=h[1].capitalize();h=h[1]+" "+h[2].slice(1,3);var b=new Element("td",{"class":"cartItem",id:"cartItem_item"}).update(h);c.insert(b);var f=new Element("img",{src:"/images/cart/playButton.gif"});var l=new Element("a",{href:"javascript:ctrl.cartPlayTone("+j+");"}).insert(f);var o=new Element("td",{"class":"cartItem",id:"cartItem_preview_"+j}).insert(l);c.insert(o)}else{if(e.type=="package"){var h=e.dispname.split("_");h[1]=h[1].capitalize();h=h[1]+" "+h[2].slice(2,3);var b=new Element("td",{"class":"cartItem",id:"cartItem_item"}).update(h);c.insert(b);var o=new Element("td",{"class":"cartItem",id:"cartItem_preview_"+j});c.insert(o)}}var m=new Element("td",{"class":"cartItem",id:"cartItem_format"}).update(e.format);c.insert(m);var i=new Element("td",{"class":"cartItem",id:"cartItem_price"}).update("$"+e.price);var n=new Element("img",{src:"/images/cart/remove.gif",alt:"x"});var k=new Element("a",{href:"javascript:ctrl.removeFromCart("+j+");"}).insert(n);c.insert(i);var d=new Element("td",{"class":"cartItem",id:"cartItem_options"}).update(k);c.insert(d);new Effect.Highlight(b,{startcolor:"#fdfdfd",endcolor:"#ebebea"});this.updateTotal()},getItems:function(){return this.items},restoreCart:function(b){b=Base64.encode(b);request=Base64.encode("restorecart");new Ajax.Request("/cgi/server.py",{method:"get",parameters:{r:request,cid:b},onSuccess:function(d){if(d.responseText){var c=d.responseText;c=Base64.decode(c).evalJSON();if(c){if(c.status=="new"||c.status==""){c.contents.each(function(f,e){this.addItem(f)}.bind(this));this.updateTotal()}else{if(c.status=="delivered"){ctrl.cartID="";Cookie.unset("cid")}}}}else{usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="shoppingcart.js/restoreCart/onSuccess: returned no data";this.onError(admin_msg,usr_msg)}}.bind(this),onFailure:function(){usr_msg="Sorry, we're having some troubles.\r\nPlease refresh the page and try again.";admin_msg="shoppingcart.js/restoreCart/onFailure: returned status code not 2xx";this.onError(admin_msg,usr_msg)}.bind(this)})},removeItem:function(b){if(delete this.items[b]){$(b+"_cartItem").remove()}this.updateTotal()},updateTotal:function(){var c=0;this.items.each(function(d){if(d){c+=parseFloat(d.price)}});var b="$"+c.toFixed(2);this.total.update(b);this._updateMiniCart()},_updateMiniCart:function(){var c=0;this.items.each(function(e,d){if(e){c=c+1}});var b="<a href=\"javascript:ctrl.changePage('ringtones')\">Your cart</a>";if(c==0){$("minicart").update(b+" is empty")}else{if(c==1){$("minicart").update(b+" has 1 item")}else{$("minicart").update(b+" has "+c+" items")}}},checkCoupon:function(){var b=$("coupon_code").value.strip().stripTags().stripScripts();if(b.length==0){$("cartCoupon_result").update("coupon code")}else{if(b.length>0&&b.length!=8){$("cartCoupon_result").update("code invalid")}else{$("cartCoupon_result").update("checking...")}}},playTone:function(b){var d=this.items[b].dispname.replace(/ /g,"_");d=Base64.encode(d);var c="/cgi/stream.py?n="+d;if(this.curPlayingToneIndex!=-1&&this.curPlayingToneIndex!=b){ctrl.cartStopTone()}soundManager.createSound({id:b.toString(),url:c,volume:80,whileloading:function(){},onplay:function(){var e=new Element("a",{href:"javascript:ctrl.cartStopTone();"});var g=new Element("img",{src:"/images/cart/pauseButton.gif"});e.insert(g);var f=$("cartItem_preview_"+b);f.update(e)},whileplaying:function(){},onstop:function(){var e=new Element("a",{href:"javascript:ctrl.cartPlayTone("+b+");"});var f=new Element("img",{src:"/images/cart/playButton.gif"});e.insert(f);$("cartItem_preview_"+b).update(e)},onfinish:function(){ctrl.cartPlayTone(b)}});this.curPlayingToneIndex=b;soundManager.play(b.toString())},stopTone:function(){if(this.curPlayingToneIndex>-1){soundManager.stop(this.curPlayingToneIndex.toString());soundManager.destroySound(this.curPlayingToneIndex.toString());this.curPlayingToneIndex=-1}},onError:function(b,e){alert(e);BrowserDetect.init();var d="Error Message: "+b;d+="\r\nMessage Shown to User: "+e;d+="\r\nBrowser: "+BrowserDetect.browser;d+="\r\nBrowser Version: "+BrowserDetect.version;d+="\r\nUser OS: "+BrowserDetect.OS;d+="\r\nCart ID: "+this.cartID;var c=Base64.encode("error");d=Base64.encode(d);new Ajax.Request("/cgi/utility_server.py",{method:"post",parameters:{r:c,msg:d},onSuccess:function(f){}})}});