if(typeof(AC)=="undefined"){AC={}}AC.RetailCalendar=Class.create();Object.extend(AC.RetailCalendar.prototype,{calendar:null,calendarlinkEl:null,store:null,workshops:null,months:[],monthabbrs:[],monthLengths:[31,28,31,30,31,30,31,31,30,31,30,31],daynames:[],readmoretext:"",signintext:"",learnmoretext:"",onetoonetext:"",moredropdownEl:null,firstcat:"",currentcat:null,today:{date:null,day:null,month:null,year:null},selectedDate:{date:null,day:null,month:null,year:null},currentDate:{date:null,day:null,month:null,year:null},endDate:{date:null,day:null,month:null,year:null},morecat:null,moretext:null,weekviewEl:null,weekviewlistsEl:null,inititemEl:null,calendarwrapperEl:null,calendarcellsEl:null,dateviewnavEl:null,startdatemonthEl:null,startdatedateEl:null,enddatemonthEl:null,enddatedateEl:null,enddateyearEl:null,dateheadersEl:null,monthviewmonthEl:null,monthviewyearEl:null,monthviewrowsEl:null,selectedcells:$A(),calendartitle:null,initialize:function(a,e){this.calendar=e;
this.calendarlinkEl=$("storecalendar-calendarlink");this.storeNumber=a;this.calendartitle=AC.Tracking.pageName()+" - Calendar";
this.moredropdownEl=this.calendar.select("#storecalendar-categories #moredropdown")[0]||null;
var f=this.changeCategory.bindAsEventListener(this);var d=this.calendar.select("#storecalendar-categories li a");
this.firstcat=this.currentcat=(d.length>0)?d[0].getHrefId():"";d.each(function(h,g){Event.observe(h,"click",f);
if(h.getHrefId()=="more"){this.morecat=h;this.moretext=h.firstChild.data}}.bind(this));
var c=new Date();this.selectedDate=this.getSelectedDate(c);this.currentDate=this.getSelectedDate(c);
if(this.months.length===0){var b=this;getLang(function(g){b.months=g.months;b.monthabbrs=g.monthabbrs;
b.daynames=g.daynames;b.readmoretext=g.readmoretext;b.signintext=g.signintext;b.learnmoretext=g.learnmoretext;
b.onetoonetext=g.onetoonetext;b.localizedResourcesDidLoad()})}else{this.localizedResourcesDidLoad()
}},localizedResourcesDidLoad:function(){this.initWeekView();this.createWeekView();
this.initMonthView();this.createMonthView();this.initDateView();this.createDateView();
this.sendReq($H({store:this.storeNumber}))},initStripes:function(){this.weekviewEl.select(".odd").invoke("removeClassName","odd");
this.weekviewEl.select(".even").invoke("removeClassName","even");this.weekviewEl.select(".noworkshops").invoke("hide");
this.weekviewlistsEl.each(function(b,a){this.zebraStripe(b);this.displayNoWorkshopsText(b)
}.bind(this))},initDateView:function(){this.dateviewnavEl=$("storecalendar-dateviewnav");
this.startdatemonthEl=this.calendar.down("#storecalendar-startdate .month");this.startdatedateEl=this.calendar.down("#storecalendar-startdate .date");
this.enddatemonthEl=this.calendar.down("#storecalendar-enddate .month");this.enddatedateEl=this.calendar.down("#storecalendar-enddate .date");
this.enddateyearEl=this.calendar.down("#storecalendar-enddate .year");var a=this.changeDateView.bindAsEventListener(this);
this.calendar.select("#storecalendar-nav .navigation").invoke("observe","click",a);
Event.observe($("storecalendar-gototoday"),"click",a)},initWeekView:function(){this.weekviewEl=$("storecalendar-weekview");
this.weekviewlistsEl=this.weekviewEl.select("ul");this.dateheadersEl=this.calendar.select("#storecalendar-weekview h3");
this.inititemEl=this.weekviewlistsEl[0].down(0);this.inititemEl.remove()},initMonthView:function(){this.calendarwrapperEl=$("storecalendar-calendarwrapper");
this.calendarcellsEl=this.calendar.select("#storecalendar-monthview tbody tr td");
this.monthviewmonthEl=$("storecalendar-month");this.monthviewyearEl=$("storecalendar-year");
this.monthviewrowsEl=this.calendar.select("#storecalendar-monthview tbody tr");
var d=this.calendar.select("#storecalendar-monthviewclose")[0];Event.observe(d,"click",function(e){Event.stop(e);
this.closeCalendar()}.bindAsEventListener(this));var c=this.calendarwrapperEl.select("tr th");
c.each(function(f,e){f.innerHTML=this.daynames[e].charAt(0)}.bind(this));Event.observe(this.calendarlinkEl,"click",this.openCalendar.bindAsEventListener(this));
var a=this.calendar.select(".storecalendar-monthnav");var b=this.changeMonth.bindAsEventListener(this);
a.invoke("observe","click",b);this.calendarcellsEl.each(function(e,f){Event.observe(e,"mousedown",this.selectDate.bindAsEventListener(this));
Event.observe(e,"click",this.changeDate.bindAsEventListener(this))}.bind(this))
},createDateView:function(){this.startdatemonthEl.innerHTML=this.monthabbrs[this.selectedDate.month];
this.startdatedateEl.innerHTML=this.selectedDate.date;this.enddatemonthEl.innerHTML=this.monthabbrs[this.endDate.month];
this.enddatedateEl.innerHTML=this.endDate.date;this.enddateyearEl.innerHTML=this.endDate.year
},removeClassNamesFromEach:function(a){a.each(function(c,b){c.removeClassName(c.readAttribute("class"))
})},createWeekView:function(){this.removeClassNamesFromEach(this.weekviewlistsEl);
this.weekviewlistsEl.each(function(i,h){i.select("li").invoke("remove")});var c=this.selectedDate.day;
var a=this.daynames[c];var g=this.selectedDate.month;var f=this.months[g];var d=this.selectedDate.year;
var b=this.selectedDate.date;var e=this.getMonthLength(g,d);this.dateheadersEl.each(function(j,h){if(b>e){g=g+1;
if(g>11){d=d+1;g=0}}if(b>e){b=1}j.down(".day").innerHTML=this.daynames[c];j.down(".month").innerHTML=this.months[g];
j.down(".date").innerHTML=b;j.down(".year").innerHTML=d;var i=new Date(d,g,b);this.selectedcells[h]=d+"_"+g+"_"+b;
this.weekviewlistsEl[h].addClassName(i.valueOf());c=(c<6)?c+1:0;b=b+1}.bind(this))
},createMonthView:function(){this.monthviewmonthEl.innerHTML=this.months[this.currentDate.month];
this.monthviewyearEl.innerHTML=this.currentDate.year;var h=new Date(this.currentDate.year,this.currentDate.month,1);
var a=h.getDay();var f=this.getPrevMonth().month;var b=this.getPrevMonth().year;
var g=this.getMonthLength(f,b);var m=this.getMonthLength(this.currentDate.month,this.currentDate.year);
this.removeClassNamesFromEach(this.monthviewrowsEl);this.removeClassNamesFromEach(this.calendarcellsEl);
var c=1;var d=false;var l=false;var e=null;var j=new Date();var k={date:j.getDate(),month:j.getMonth(),year:j.getFullYear(),day:j.getDay()};
this.calendarcellsEl.each(function(n,o){var q=this.currentDate.month;var p=this.currentDate.year;
if(o<a){c=(g-a)+(o+1);q=this.getPrevMonth().month;p=this.getPrevMonth().year}else{if(o>=(m+a)){if(d){c=1;
d=false}else{c=c+1}q=this.getNextMonth().month;p=this.getNextMonth().year}else{if(!d){c=1;
d=true}else{c=c+1}if(c==k.date&&q==k.month&&p==k.year){n.addClassName("today")}if(c==this.selectedDate.date&&q==this.selectedDate.month&&p==this.selectedDate.year){n.addClassName("selecteddate");
l=true;e=o}n.addClassName("selectedmonth");var r=n.up("tr");r.addClassName("viewingmonth")
}}n.id=p+"_"+q+"_"+c;n.down(".date").innerHTML=c}.bind(this));this.selectedcells.each(function(p,n){var o=$(p)||false;
if(o){o.addClassName("selectedweek")}});var i=this.selectedcells[6].split("_");
this.endDate={date:i[2],month:i[1],year:i[0]}},changeCategory:function(a){Event.stop(a);
var b=Event.findElement(a,"a");var c=b.getHrefId();if(c!="more"){if(b.up("#more")){this.morecat.innerHTML=b.firstChild.data
}else{this.morecat.innerHTML=this.moretext}if(this.moredropdownEl.visible()){this.closeMore()
}this.calendar.removeClassName(this.currentcat);this.calendar.addClassName(c);this.currentcat=c;
this.initStripes()}else{if(!this.moredropdownEl.visible()){Event.observe(document.body,"click",this.clickOffMore.bindAsEventListener(this))
}else{Event.stopObserving(document.body,"click",this.clickOffMore.bindAsEventListener(this))
}this.moredropdownEl.toggle()}},changeDate:function(c){Event.stop(c);var a=Event.findElement(c,"td");
a.removeClassName("down");if(a.hasClassName("selectedmonth")){var d=a.readAttribute("id").split("_");
var b=new Date(d[0],d[1],d[2]);this.selectedDate=this.getSelectedDate(b);this.changeToSelectedDate();
this.closeCalendar()}},changeDateView:function(l){Event.stop(l);var h=Event.findElement(l,"a");
var i=h.getHrefId();if(!this.dateviewnavEl.hasClassName("off")||i=="today"){switch(i){case"prev":var k=this.selectedDate.date-7;
if(k<1){var d=this.getPrevMonth().month;var c=this.getPrevMonth().year;var e=this.getMonthLength(d,c);
this.selectedDate.date=this.currentDate.date=e+k;this.selectedDate.month=this.currentDate.month=d;
this.selectedDate.year=this.currentDate.year=c}else{this.selectedDate.date=this.currentDate.date=k
}break;case"next":var k=this.selectedDate.date+7;var j=this.getMonthLength(this.selectedDate.month,this.selectedDate.year);
if(k>j){var f=this.getNextMonth().month;var a=this.getNextMonth().year;this.selectedDate.date=this.currentDate.date=k-j;
this.selectedDate.month=this.currentDate.month=f;this.selectedDate.year=this.currentDate.year=a
}else{this.selectedDate.date=this.currentDate.date=k}break;case"today":var g=new Date();
this.selectedDate=this.currentDate=this.getSelectedDate(g);default:break}var b=new Date(this.selectedDate.year,this.selectedDate.month,this.selectedDate.date);
this.selectedDate.day=b.getDay();this.changeToSelectedDate();if(i=="today"){this.closeCalendar()
}}else{this.closeCalendarQuick();this.calendarlinkEl.toggleClassName("activated")
}},changeMonth:function(i){Event.stop(i);var e=Event.findElement(i,"a");var g=e.getHrefId();
var b=this.currentDate.month;var c=this.currentDate.year;var f=this.currentDate.day;
var a=1;var d=new Date();switch(g){case"prev":b=this.getPrevMonth().month;c=this.getPrevMonth().year;
if(b==d.getMonth()&&c==d.getFullYear()){a=d.getDate()}var h=new Date(c,b,a);f=h.getDay();
break;case"next":b=this.getNextMonth().month;c=this.getNextMonth().year;if(b==d.getMonth()&&c==d.getFullYear()){a=d.getDate()
}var h=new Date(c,b,a);f=h.getDay();break;default:break}this.currentDate.date=a;
this.currentDate.month=b;this.currentDate.year=c;this.currentDate.day=f;this.createMonthView();
this.displayWorkshopsOnCal()},selectDate:function(a){Event.findElement(a,"td").addClassName("down")
},getSelectedDate:function(a){return{date:a.getDate(),day:a.getDay(),month:a.getMonth(),year:a.getFullYear()}
},clickOffMore:function(a){if($(Event.element(a)).up("#more")!=this.moredropdownEl){this.closeMore()
}},closeMore:function(){this.moredropdownEl.hide()},zebraStripe:function(b){var a=$A();
if(this.currentcat==""){a=b.select("li")}else{b.select("li").each(function(d,c){if(d.hasClassName(this.currentcat)){a[a.length]=d
}}.bind(this))}a.each(function(d,c){d.addClassName((c%2==1)?"odd":"even")})},displayNoWorkshopsText:function(b){var a=false;
var c=this.currentcat;if(c==""){if(b.select("li").length>0){a=true}}else{b.select("li").each(function(e,d){if(e.hasClassName(c)||e.hasClassName("specialevent")){a=true
}})}if(!a){b.next("div.noworkshops").show()}},changeToSelectedDate:function(){this.createWeekView();
this.createMonthView();this.createDateView();this.displayWorkshops();this.displayWorkshopsOnCal();
this.currentDate=this.getSelectedDate(new Date(this.selectedDate.year,this.selectedDate.month,this.selectedDate.date))
},getPrevMonth:function(){var b=(this.currentDate.month>0)?this.currentDate.month-1:11;
var a=(b==11)?this.currentDate.year-1:this.currentDate.year;return{month:b,year:a}
},getNextMonth:function(){var b=(this.currentDate.month<11)?this.currentDate.month+1:0;
var a=(b==0)?this.currentDate.year+1:this.currentDate.year;return{month:b,year:a}
},openCalendar:function(a){Event.stop(a);this.calendarwrapperEl.show();this.dateviewnavEl.addClassName("off");
this.calendarlinkEl.toggleClassName("activated");var b={sprop3:this.calendartitle};
AC.Tracking.trackClick(b,this,"o",this.calendartitle);(this.calendarlinkEl.hasClassName("activated"))?Event.observe(document.body,"click",this.clickOffCalendar.bind(this)):this.closeCalendarQuick()
},clickOffCalendar:function(a){if($(Event.element(a)).up("#storecalendar-calendarwrapper")!=this.calendarwrapperEl){this.closeCalendarQuick();
this.calendarlinkEl.toggleClassName("activated")}},closeCalendarQuick:function(){this.calendarwrapperEl.hide();
this.dateviewnavEl.removeClassName("off");Event.stopObserving(document.body,"click")
},closeCalendar:function(){setTimeout(function(){new Effect.Fade(this.calendarwrapperEl,{duration:0.5,afterFinish:function(){this.calendarlinkEl.toggleClassName("activated");
this.closeCalendarQuick()}.bind(this)})}.bind(this),300)},getMonthLength:function(b,a){return(b==1&&((a%4==0&&a%100!=0)||a%400==0))?29:this.monthLengths[b]
},sendReq:function(b){var a=new Ajax.Request("/retail/scripts/storewidget.php",{method:"POST",parameters:b,onComplete:this.acknowledgeComplete.bind(this)})
},acknowledgeComplete:function(c){var d=c.responseText;var a=new Function("return "+d)();
if(a){var b=a;this.store=b[0];this.workshops=this.store.workshops;this.initWorkshops();
this.displayWorkshops();this.displayWorkshopsOnCal();this.calendar.removeClassName("loading")
}},scopedEval:function(stringValue){try{return(function(){return eval("("+stringValue+")")
})()}catch(e){alert("Error: "+e);return null}},newDate:function(b,c,a){return new Date(b,c,a)
},initWorkshops:function(){this.workshopElements=$A();var c=Builder.node("img",{width:"140",height:"100"});
var b=930;var a="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras metus nisl, semper eget, ultrices sit amet, ultricies ut, ipsum. Integer sit amet dui. Donec nulla odio, sodales ac, malesuada nec, tristique id, lacus. Mauris nisl nulla, rhoncus id, hendrerit vel, hendrerit nec, orci. Phasellus molestie nulla id leo. Donec nec massa. Vivamus non urna vel risus aliquet accumsan. Vivamus auctor tellus id leo. Nunc euismod, nibh quis gravida ultricies, massa tortor vestibulum magna, non tristique velit lacus et pede. Fusce viverra tempus felis. Aliquam auctor. Ut ac mi in odio fermentum vulputate. Quisque ornare euismod dolor. Curabitur in magna in arcu sodales venenatis. Nullam ac magna.";
var d=this.getTruncationLength(this.weekviewEl,a,b);var e=false;this.workshops.each(function(o,p){var n=new Date(o.startTime.getFullYear(),o.startTime.getMonth(),o.startTime.getDate());
var i=this.inititemEl.cloneNode(true);var f="vevent "+this.firstcat;o.tags.each(function(z,A){var B=z.toLowerCase().gsub(/\s+/,"");
if(B=="gettingstarted"&&o.products.length>0){B=o.products[0].toLowerCase().gsub(/\s+/,"")+" gettingstarted"
}f+=" "+B});i.addClassName(f);var r=i.down(".dtstart");r.innerHTML=o.startTime.toFormattedTime();
r.writeAttribute({title:o.startTime.toJSON()});var j=i.down(".dtend");j.innerHTML=o.endTime.toFormattedTime();
j.writeAttribute({title:o.endTime.toJSON()});var v=i.down(".summary span");v.innerHTML=o.name;
var w=i.down(".description");var u=o.description.unescapeHTML();if(o.tags[0]=="specialevent"){w.innerHTML=u;
if(o.imageURL!=null){var m=c.cloneNode(true);Element.writeAttribute(m,{src:o.imageURL,alt:o.name});
Element.addClassName(m,"right");v.insert({before:m})}}else{if(o.tags[0]=="One to One"){var h=i.down(".conciergelink");
h.innerHTML=this.signintext;h.writeAttribute({href:"http://onetoone.apple.com/",title:this.signintext+" "+o.name});
var x=i.down("h6 span");var l=i.down(".onetoonelink");l.innerHTML=this.learnmoretext;
l.writeAttribute({href:"http://www.apple.com/ca/retail/onetoone/",title:this.learnmoretext});
x.innerHTML=this.onetoonetext;Element.addClassName(x,"one-to-one-subhead");var g='... <a class="morelink" href="#workshop_'+p+'" title="'+this.readmoretext+" "+o.name+'">'+this.readmoretext+"</a>";
var q=g.length-(5+this.readmoretext.length);truncateTo=d+q;var k=u.truncateDesc(truncateTo,g);
w.innerHTML=k;var s=w.down(".morelink")||false;if(s){Event.observe(s,"click",function(z){Event.stop(z);
w.innerHTML=o.description;var A=w.up("li");A.addClassName("open")}.bindAsEventListener(this))
}e=true}else{var t=i.down(".conciergelink");var y=t.firstChild.data;t.writeAttribute({href:o.workshopURL,title:y+" "+o.name});
var g='... <a class="morelink" href="#workshop_'+p+'" title="'+this.readmoretext+" "+o.name+'">'+this.readmoretext+"</a>";
var q=g.length-(5+this.readmoretext.length);truncateTo=d+q;var k=u.truncateDesc(truncateTo,g);
w.innerHTML=k;var s=w.down(".morelink")||false;if(s){Event.observe(s,"click",function(z){Event.stop(z);
w.innerHTML=o.description;var A=w.up("li");A.addClassName("open")}.bindAsEventListener(this))
}e=true}}this.workshopElements[p]={dateClass:n.valueOf(),element:i}}.bind(this))
},getTruncationLength:function(b,h,d){var g=document.createElement("span");g.id="ellipsisSpan";
g.style.whiteSpace="nowrap";var f=document.createTextNode(h);g.appendChild(f);b.appendChild(g);
var c=h.length;if(g.offsetWidth>d){var a=0;var e=Math.floor((h.length*d)/g.offsetWidth);
f.deleteData(e-1,h.length-e);if(g.offsetWidth<d){var a=e;while(g.offsetWidth<(d)&&a<h.length){f.appendData(h.charAt(a));
a++}}else{while(g.offsetWidth>d){f.deleteData(f.length-1,1)}}c=f.length}Element.remove(g);
return c},getTruncationLengthOriginal:function(b,f,d){var e=Builder.node("span",{id:"ellipsisSpan",style:"white-space:nowrap"},[f]);
b.insert(e);var c=f.length;if(e.offsetWidth>d){var a=1;e.innerHTML="";while(e.offsetWidth<(d)&&a<f.length){e.innerHTML=f.substr(0,a);
a++}c=e.firstChild.data.length}Element.remove(e);return c},displayWorkshops:function(){this.weekviewlistsEl.each(function(d,a){var c=$w(d.className)[0];
var b=this.workshopElements.findAll(function(e){return e.dateClass==c});b.each(function(f,e){d.appendChild(f.element)
})}.bind(this));this.initStripes()},displayWorkshopsOnCal:function(){this.workshops.each(function(d,b){var a=d.startTime;
var c=a.getFullYear()+"_"+a.getMonth()+"_"+a.getDate();var e=$(c)||false;if(e&&d.tags[0]=="specialevent"){e.addClassName("event")
}}.bind(this))}});String.prototype.truncateDesc=function(b,a){a=a||"...";b-=a.length;
return(this.length>b)?this.substring(0,this.lastIndexOf(" ",b)).replace(/\W*$/,"")+a:this
};Date.prototype.toFormattedTime=function(){var a=this.getHours();a=(a==0)?24:a;
return((a>12)?a-12:a)+":"+this.getMinutes().toPaddedString(2)+" "+((a>=12)?"pm":"am")
};Element.addMethods({getHrefId:function(a){return a.readAttribute("href").split("#")[1]
}});
