Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){ this.activeDiv=null; this.currentDateEl=null; this.getDateStatus=null; this.getDateToolTip=null; this.getDateText=null; this.timeout=null; this.onSelected=onSelected||null; this.onClose=onClose||null; this.dragging=false; this.hidden=false; this.minYear=1970; this.maxYear=2050; this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"]; this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"]; this.isPopup=true; this.weekNumbers=true; this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD; this.showsOtherMonths=false; this.dateStr=dateStr; this.ar_days=null; this.showsTime=false; this.time24=true; this.yearStep=2; this.hiliteToday=true; this.multiple=null; this.table=null; this.element=null; this.tbody=null; this.firstdayname=null; this.monthsCombo=null; this.yearsCombo=null; this.hilitedMonth=null; this.activeMonth=null; this.hilitedYear=null; this.activeYear=null; this.dateClicked=false; if(typeof Calendar._SDN=="undefined"){ if(typeof Calendar._SDN_len=="undefined") Calendar._SDN_len=3; var ar=new Array(); for(var i=8;i>0;){ ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len); } Calendar._SDN=ar; if(typeof Calendar._SMN_len=="undefined") Calendar._SMN_len=3; ar=new Array(); for(var i=12;i>0;){ ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len); } Calendar._SMN=ar; } }; Calendar._C=null; Calendar.is_ie=(/msie/i.test(navigator.userAgent)&& !/opera/i.test(navigator.userAgent)); Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent)); Calendar.is_opera=/opera/i.test(navigator.userAgent); Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent); Calendar.is_gecko=navigator.userAgent.match(/gecko/i); Calendar.getStyle=function(element,style){ if(element.currentStyle){ var y=element.currentStyle[style]; }else if(window.getComputedStyle){ var y=document.defaultView.getComputedStyle(element,null).getPropertyValue(style); } return y; }; Calendar.getAbsolutePos=function(element){ var res=new Object(); res.x=0;res.y=0; do{ res.x+=element.offsetLeft||0; res.y+=element.offsetTop||0; element=element.offsetParent; if(element){ if(element.tagName.toUpperCase()=='BODY')break; var p=Calendar.getStyle(element,'position'); if(p!=='static')break; } }while(element); return res; if(element!==null){ res.x=element.offsetLeft; res.y=element.offsetTop; var offsetParent=element.offsetParent; var parentNode=element.parentNode; while(offsetParent!==null){ res.x+=offsetParent.offsetLeft; res.y+=offsetParent.offsetTop; if(offsetParent!=document.body&&offsetParent!=document.documentElement){ res.x-=offsetParent.scrollLeft; res.y-=offsetParent.scrollTop; } if(Calendar.is_gecko){ while(offsetParent!=parentNode&&parentNode!==null){ res.x-=parentNode.scrollLeft; res.y-=parentNode.scrollTop; parentNode=parentNode.parentNode; } } parentNode=offsetParent.parentNode; offsetParent=offsetParent.offsetParent; } } return res; }; Calendar.isRelated=function(el,evt){ var related=evt.relatedTarget; if(!related){ var type=evt.type; if(type=="mouseover"){ related=evt.fromElement; }else if(type=="mouseout"){ related=evt.toElement; } } while(related){ if(related==el){ return true; } related=related.parentNode; } return false; }; Calendar.removeClass=function(el,className){ if(!(el&&el.className)){ return; } var cls=el.className.split(" "); var ar=new Array(); for(var i=cls.length;i>0;){ if(cls[--i]!=className){ ar[ar.length]=cls[i]; } } el.className=ar.join(" "); }; Calendar.addClass=function(el,className){ Calendar.removeClass(el,className); el.className+=" "+className; }; Calendar.getElement=function(ev){ var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget; while(f.nodeType!=1||/^div$/i.test(f.tagName)) f=f.parentNode; return f; }; Calendar.getTargetElement=function(ev){ var f=Calendar.is_ie?window.event.srcElement:ev.target; while(f.nodeType!=1) f=f.parentNode; return f; }; Calendar.stopEvent=function(ev){ ev||(ev=window.event); if(Calendar.is_ie){ ev.cancelBubble=true; ev.returnValue=false; }else{ ev.preventDefault(); ev.stopPropagation(); } return false; }; Calendar.addEvent=function(el,evname,func){ if(el.attachEvent){ el.attachEvent("on"+evname,func); }else if(el.addEventListener){ el.addEventListener(evname,func,true); }else{ el["on"+evname]=func; } }; Calendar.removeEvent=function(el,evname,func){ if(el.detachEvent){ el.detachEvent("on"+evname,func); }else if(el.removeEventListener){ el.removeEventListener(evname,func,true); }else{ el["on"+evname]=null; } }; Calendar.createElement=function(type,parent){ var el=null; if(document.createElementNS){ el=document.createElementNS("http://www.w3.org/1999/xhtml",type); }else{ el=document.createElement(type); } if(typeof parent!="undefined"){ parent.appendChild(el); } return el; }; Calendar._add_evs=function(el){ with(Calendar){ addEvent(el,"mouseover",dayMouseOver); addEvent(el,"mousedown",dayMouseDown); addEvent(el,"mouseout",dayMouseOut); if(is_ie){ addEvent(el,"dblclick",dayMouseDblClick); el.setAttribute("unselectable",true); } } }; Calendar.findMonth=function(el){ if(typeof el.month!="undefined"){ return el; }else if(typeof el.parentNode.month!="undefined"){ return el.parentNode; } return null; }; Calendar.findYear=function(el){ if(typeof el.year!="undefined"){ return el; }else if(typeof el.parentNode.year!="undefined"){ return el.parentNode; } return null; }; Calendar.showMonthsCombo=function(){ var cal=Calendar._C; if(!cal){ return false; } var cal=cal; var cd=cal.activeDiv; var mc=cal.monthsCombo; if(cal.hilitedMonth){ Calendar.removeClass(cal.hilitedMonth,"hilite"); } if(cal.activeMonth){ Calendar.removeClass(cal.activeMonth,"active"); } var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()]; Calendar.addClass(mon,"active"); cal.activeMonth=mon; var s=mc.style; s.display="block"; if(cd.navtype<0) s.left=cd.offsetLeft+"px"; else{ var mcw=mc.offsetWidth; if(typeof mcw=="undefined") mcw=50; s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px"; } s.top=(cd.offsetTop+cd.offsetHeight)+"px"; }; Calendar.showYearsCombo=function(fwd){ var cal=Calendar._C; if(!cal){ return false; } var cal=cal; var cd=cal.activeDiv; var yc=cal.yearsCombo; if(cal.hilitedYear){ Calendar.removeClass(cal.hilitedYear,"hilite"); } if(cal.activeYear){ Calendar.removeClass(cal.activeYear,"active"); } cal.activeYear=null; var Y=cal.date.getFullYear()+(fwd?1:-1); var yr=yc.firstChild; var show=false; for(var i=12;i>0;--i){ if(Y>=cal.minYear&&Y<=cal.maxYear){ yr.innerHTML=Y; yr.year=Y; yr.style.display="block"; show=true; }else{ yr.style.display="none"; } yr=yr.nextSibling; Y+=fwd?cal.yearStep:-cal.yearStep; } if(show){ var s=yc.style; s.display="block"; if(cd.navtype<0) s.left=cd.offsetLeft+"px"; else{ var ycw=yc.offsetWidth; if(typeof ycw=="undefined") ycw=50; s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px"; } s.top=(cd.offsetTop+cd.offsetHeight)+"px"; } }; Calendar.tableMouseUp=function(ev){ var cal=Calendar._C; if(!cal){ return false; } if(cal.timeout){ clearTimeout(cal.timeout); } var el=cal.activeDiv; if(!el){ return false; } var target=Calendar.getTargetElement(ev); ev||(ev=window.event); Calendar.removeClass(el,"active"); if(target==el||target.parentNode==el){ Calendar.cellClick(el,ev); } var mon=Calendar.findMonth(target); var date=null; if(mon){ date=new CalendarDateObject(cal.date); if(mon.month!=date.getMonth()){ date.setMonth(mon.month); cal.setDate(date); cal.dateClicked=false; cal.callHandler(); } }else{ var year=Calendar.findYear(target); if(year){ date=new CalendarDateObject(cal.date); if(year.year!=date.getFullYear()){ date.setFullYear(year.year); cal.setDate(date); cal.dateClicked=false; cal.callHandler(); } } } with(Calendar){ removeEvent(document,"mouseup",tableMouseUp); removeEvent(document,"mouseover",tableMouseOver); removeEvent(document,"mousemove",tableMouseOver); cal._hideCombos(); _C=null; return stopEvent(ev); } }; Calendar.tableMouseOver=function(ev){ var cal=Calendar._C; if(!cal){ return; } var el=cal.activeDiv; var target=Calendar.getTargetElement(ev); if(target==el||target.parentNode==el){ Calendar.addClass(el,"hilite active"); Calendar.addClass(el.parentNode,"rowhilite"); }else{ if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2))) Calendar.removeClass(el,"active"); Calendar.removeClass(el,"hilite"); Calendar.removeClass(el.parentNode,"rowhilite"); } ev||(ev=window.event); if(el.navtype==50&&target!=el){ var pos=Calendar.getAbsolutePos(el); var w=el.offsetWidth; var x=ev.clientX; var dx; var decrease=true; if(x>pos.x+w){ dx=x-pos.x-w; decrease=false; }else dx=pos.x-x; if(dx<0)dx=0; var range=el._range; var current=el._current; var count=Math.floor(dx/10)%range.length; for(var i=range.length;--i>=0;) if(range[i]==current) break; while(count-->0) if(decrease){ if(--i<0) i=range.length-1; }else if(++i>=range.length) i=0; var newval=range[i]; el.innerHTML=newval; cal.onUpdateTime(); } var mon=Calendar.findMonth(target); if(mon){ if(mon.month!=cal.date.getMonth()){ if(cal.hilitedMonth){ Calendar.removeClass(cal.hilitedMonth,"hilite"); } Calendar.addClass(mon,"hilite"); cal.hilitedMonth=mon; }else if(cal.hilitedMonth){ Calendar.removeClass(cal.hilitedMonth,"hilite"); } }else{ if(cal.hilitedMonth){ Calendar.removeClass(cal.hilitedMonth,"hilite"); } var year=Calendar.findYear(target); if(year){ if(year.year!=cal.date.getFullYear()){ if(cal.hilitedYear){ Calendar.removeClass(cal.hilitedYear,"hilite"); } Calendar.addClass(year,"hilite"); cal.hilitedYear=year; }else if(cal.hilitedYear){ Calendar.removeClass(cal.hilitedYear,"hilite"); } }else if(cal.hilitedYear){ Calendar.removeClass(cal.hilitedYear,"hilite"); } } return Calendar.stopEvent(ev); }; Calendar.tableMouseDown=function(ev){ if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){ return Calendar.stopEvent(ev); } }; Calendar.calDragIt=function(ev){ var cal=Calendar._C; if(!(cal&&cal.dragging)){ return false; } var posX; var posY; if(Calendar.is_ie){ posY=window.event.clientY+document.body.scrollTop; posX=window.event.clientX+document.body.scrollLeft; }else{ posX=ev.pageX; posY=ev.pageY; } cal.hideShowCovered(); var st=cal.element.style; st.left=(posX-cal.xOffs)+"px"; st.top=(posY-cal.yOffs)+"px"; return Calendar.stopEvent(ev); }; Calendar.calDragEnd=function(ev){ var cal=Calendar._C; if(!cal){ return false; } cal.dragging=false; with(Calendar){ removeEvent(document,"mousemove",calDragIt); removeEvent(document,"mouseup",calDragEnd); tableMouseUp(ev); } cal.hideShowCovered(); }; Calendar.dayMouseDown=function(ev){ var el=Calendar.getElement(ev); if(el.disabled){ return false; } var cal=el.calendar; cal.activeDiv=el; Calendar._C=cal; if(el.navtype!=300)with(Calendar){ if(el.navtype==50){ el._current=el.innerHTML; addEvent(document,"mousemove",tableMouseOver); }else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver); addClass(el,"hilite active"); addEvent(document,"mouseup",tableMouseUp); }else if(cal.isPopup){ cal._dragStart(ev); } if(el.navtype==-1||el.navtype==1){ if(cal.timeout)clearTimeout(cal.timeout); cal.timeout=setTimeout("Calendar.showMonthsCombo()",250); }else if(el.navtype==-2||el.navtype==2){ if(cal.timeout)clearTimeout(cal.timeout); cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250); }else{ cal.timeout=null; } return Calendar.stopEvent(ev); }; Calendar.dayMouseDblClick=function(ev){ Calendar.cellClick(Calendar.getElement(ev),ev||window.event); if(Calendar.is_ie){ document.selection.empty(); } }; Calendar.dayMouseOver=function(ev){ var el=Calendar.getElement(ev); if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){ return false; } if(el.ttip){ if(el.ttip.substr(0,1)=="_"){ el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1); } el.calendar.tooltips.innerHTML=el.ttip; } if(el.navtype!=300){ Calendar.addClass(el,"hilite"); if(el.caldate){ Calendar.addClass(el.parentNode,"rowhilite"); } } return Calendar.stopEvent(ev); }; Calendar.dayMouseOut=function(ev){ with(Calendar){ var el=getElement(ev); if(isRelated(el,ev)||_C||el.disabled) return false; removeClass(el,"hilite"); if(el.caldate) removeClass(el.parentNode,"rowhilite"); if(el.calendar) el.calendar.tooltips.innerHTML=_TT["SEL_DATE"]; return stopEvent(ev); } }; Calendar.cellClick=function(el,ev){ var cal=el.calendar; var closing=false; var newdate=false; var date=null; if(typeof el.navtype=="undefined"){ if(cal.currentDateEl){ Calendar.removeClass(cal.currentDateEl,"selected"); Calendar.addClass(el,"selected"); closing=(cal.currentDateEl==el); if(!closing){ cal.currentDateEl=el; } } cal.date.setDateOnly(el.caldate); date=cal.date; var other_month=!(cal.dateClicked=!el.otherMonth); if(!other_month&&!cal.currentDateEl) cal._toggleMultipleDate(new CalendarDateObject(date)); else newdate=!el.disabled; if(other_month) cal._init(cal.firstDayOfWeek,date); }else{ if(el.navtype==200){ Calendar.removeClass(el,"hilite"); cal.callCloseHandler(); return; } date=new CalendarDateObject(cal.date); if(el.navtype==0) date.setDateOnly(new CalendarDateObject()); cal.dateClicked=false; var year=date.getFullYear(); var mon=date.getMonth(); function setMonth(m){ var day=date.getDate(); var max=date.getMonthDays(m); if(day>max){ date.setDate(max); } date.setMonth(m); }; switch(el.navtype){ case 400: Calendar.removeClass(el,"hilite"); var text=Calendar._TT["ABOUT"]; if(typeof text!="undefined"){ text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:""; }else{ text="Help and about box text is not translated into this language.\n"+ "If you know this language and you feel generous please update\n"+ "the corresponding file in \"lang\" subdir to match calendar-en.js\n"+ "and send it back to to get it into the distribution ;-)\n\n"+ "Thank you!\n"+ "http://dynarch.com/mishoo/calendar.epl\n"; } alert(text); return; case-2: if(year>cal.minYear){ date.setFullYear(year-1); } break; case-1: if(mon>0){ setMonth(mon-1); }else if(year-->cal.minYear){ date.setFullYear(year); setMonth(11); } break; case 1: if(mon<11){ setMonth(mon+1); }else if(year=0;) if(range[i]==current) break; if(ev&&ev.shiftKey){ if(--i<0) i=range.length-1; }else if(++i>=range.length) i=0; var newval=range[i]; el.innerHTML=newval; cal.onUpdateTime(); return; case 0: if((typeof cal.getDateStatus=="function")&& cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){ return false; } break; } if(!date.equalsTo(cal.date)){ cal.setDate(date); newdate=true; }else if(el.navtype==0) newdate=closing=true; } if(newdate){ ev&&cal.callHandler(); } if(closing){ Calendar.removeClass(el,"hilite"); ev&&cal.callCloseHandler(); } }; Calendar.prototype.create=function(_par){ var parent=null; if(!_par){ parent=document.getElementsByTagName("body")[0]; this.isPopup=true; }else{ parent=_par; this.isPopup=false; } this.date=this.dateStr?new CalendarDateObject(this.dateStr):new CalendarDateObject(); var table=Calendar.createElement("table"); this.table=table; table.cellSpacing=0; table.cellPadding=0; table.calendar=this; Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown); var div=Calendar.createElement("div"); this.element=div; div.className="calendar"; if(this.isPopup){ div.style.position="absolute"; div.style.display="none"; } div.appendChild(table); var thead=Calendar.createElement("thead",table); var cell=null; var row=null; var cal=this; var hh=function(text,cs,navtype){ cell=Calendar.createElement("td",row); cell.colSpan=cs; cell.className="button"; if(navtype!=0&&Math.abs(navtype)<=2) cell.className+=" nav"; Calendar._add_evs(cell); cell.calendar=cal; cell.navtype=navtype; cell.innerHTML="
"+text+"
"; return cell; }; row=Calendar.createElement("tr",thead); var title_length=6; (this.isPopup)&&--title_length; (this.weekNumbers)&&++title_length; hh("?",1,400).ttip=Calendar._TT["INFO"]; this.title=hh("",title_length,300); this.title.className="title"; if(this.isPopup){ this.title.ttip=Calendar._TT["DRAG_TO_MOVE"]; this.title.style.cursor="move"; hh("×",1,200).ttip=Calendar._TT["CLOSE"]; } row=Calendar.createElement("tr",thead); row.className="headrow"; this._nav_py=hh("«",1,-2); this._nav_py.ttip=Calendar._TT["PREV_YEAR"]; this._nav_pm=hh("‹",1,-1); this._nav_pm.ttip=Calendar._TT["PREV_MONTH"]; this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0); this._nav_now.ttip=Calendar._TT["GO_TODAY"]; this._nav_nm=hh("›",1,1); this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"]; this._nav_ny=hh("»",1,2); this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"]; row=Calendar.createElement("tr",thead); row.className="daynames"; if(this.weekNumbers){ cell=Calendar.createElement("td",row); cell.className="name wn"; cell.innerHTML=Calendar._TT["WK"]; } for(var i=7;i>0;--i){ cell=Calendar.createElement("td",row); if(!i){ cell.navtype=100; cell.calendar=this; Calendar._add_evs(cell); } } this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild; this._displayWeekdays(); var tbody=Calendar.createElement("tbody",table); this.tbody=tbody; for(i=6;i>0;--i){ row=Calendar.createElement("tr",tbody); if(this.weekNumbers){ cell=Calendar.createElement("td",row); } for(var j=7;j>0;--j){ cell=Calendar.createElement("td",row); cell.calendar=this; Calendar._add_evs(cell); } } if(this.showsTime){ row=Calendar.createElement("tr",tbody); row.className="time"; cell=Calendar.createElement("td",row); cell.className="time"; cell.colSpan=2; cell.innerHTML=Calendar._TT["TIME"]||" "; cell=Calendar.createElement("td",row); cell.className="time"; cell.colSpan=this.weekNumbers?4:3; (function(){ function makeTimePart(className,init,range_start,range_end){ var part=Calendar.createElement("span",cell); part.className=className; part.innerHTML=init; part.calendar=cal; part.ttip=Calendar._TT["TIME_PART"]; part.navtype=50; part._range=[]; if(typeof range_start!="number") part._range=range_start; else{ for(var i=range_start;i<=range_end;++i){ var txt; if(i<10&&range_end>=10)txt='0'+i; else txt=''+i; part._range[part._range.length]=txt; } } Calendar._add_evs(part); return part; }; var hrs=cal.date.getHours(); var mins=cal.date.getMinutes(); var t12=!cal.time24; var pm=(hrs>12); if(t12&&pm)hrs-=12; var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23); var span=Calendar.createElement("span",cell); span.innerHTML=":"; span.className="colon"; var M=makeTimePart("minute",mins,0,59); var AP=null; cell=Calendar.createElement("td",row); cell.className="time"; cell.colSpan=2; if(t12) AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]); else cell.innerHTML=" "; cal.onSetTime=function(){ var pm,hrs=this.date.getHours(), mins=this.date.getMinutes(); if(t12){ pm=(hrs>=12); if(pm)hrs-=12; if(hrs==0)hrs=12; AP.innerHTML=pm?"pm":"am"; } H.innerHTML=(hrs<10)?("0"+hrs):hrs; M.innerHTML=(mins<10)?("0"+mins):mins; }; cal.onUpdateTime=function(){ var date=this.date; var h=parseInt(H.innerHTML,10); if(t12){ if(/pm/i.test(AP.innerHTML)&&h<12) h+=12; else if(/am/i.test(AP.innerHTML)&&h==12) h=0; } var d=date.getDate(); var m=date.getMonth(); var y=date.getFullYear(); date.setHours(h); date.setMinutes(parseInt(M.innerHTML,10)); date.setFullYear(y); date.setMonth(m); date.setDate(d); this.dateClicked=false; this.callHandler(); }; })(); }else{ this.onSetTime=this.onUpdateTime=function(){}; } var tfoot=Calendar.createElement("tfoot",table); row=Calendar.createElement("tr",tfoot); row.className="footrow"; cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300); cell.className="ttip"; if(this.isPopup){ cell.ttip=Calendar._TT["DRAG_TO_MOVE"]; cell.style.cursor="move"; } this.tooltips=cell; div=Calendar.createElement("div",this.element); this.monthsCombo=div; div.className="combo"; for(i=0;i0;--i){ var yr=Calendar.createElement("div"); yr.className=Calendar.is_ie?"label-IEfix":"label"; div.appendChild(yr); } this._init(this.firstDayOfWeek,this.date); parent.appendChild(this.element); }; Calendar._keyEvent=function(ev){ var cal=window._dynarch_popupCalendar; if(!cal||cal.multiple) return false; (Calendar.is_ie)&&(ev=window.event); var act=(Calendar.is_ie||ev.type=="keypress"), K=ev.keyCode; if(ev.ctrlKey){ switch(K){ case 37: act&&Calendar.cellClick(cal._nav_pm); break; case 38: act&&Calendar.cellClick(cal._nav_py); break; case 39: act&&Calendar.cellClick(cal._nav_nm); break; case 40: act&&Calendar.cellClick(cal._nav_ny); break; default: return false; } }else switch(K){ case 32: Calendar.cellClick(cal._nav_now); break; case 27: act&&cal.callCloseHandler(); break; case 37: case 38: case 39: case 40: if(act){ var prev,x,y,ne,el,step; prev=K==37||K==38; step=(K==37||K==39)?1:7; function setVars(){ el=cal.currentDateEl; var p=el.pos; x=p&15; y=p>>4; ne=cal.ar_days[y][x]; };setVars(); function prevMonth(){ var date=new CalendarDateObject(cal.date); date.setDate(date.getDate()-step); cal.setDate(date); }; function nextMonth(){ var date=new CalendarDateObject(cal.date); date.setDate(date.getDate()+step); cal.setDate(date); }; while(1){ switch(K){ case 37: if(--x>=0) ne=cal.ar_days[y][x]; else{ x=6; K=38; continue; } break; case 38: if(--y>=0) ne=cal.ar_days[y][x]; else{ prevMonth(); setVars(); } break; case 39: if(++x<7) ne=cal.ar_days[y][x]; else{ x=0; K=40; continue; } break; case 40: if(++ythis.maxYear){ year=this.maxYear; date.setFullYear(year); } this.firstDayOfWeek=firstDayOfWeek; this.date=new CalendarDateObject(date); var month=date.getMonth(); var mday=date.getDate(); var no_days=date.getMonthDays(); date.setDate(1); var day1=(date.getDay()-this.firstDayOfWeek)%7; if(day1<0) day1+=7; date.setDate(-day1); date.setDate(date.getDate()+1); var row=this.tbody.firstChild; var MN=Calendar._SMN[month]; var ar_days=this.ar_days=new Array(); var weekend=Calendar._TT["WEEKEND"]; var dates=this.multiple?(this.datesCells={}):null; for(var i=0;i<6;++i,row=row.nextSibling){ var cell=row.firstChild; if(this.weekNumbers){ cell.className="day wn"; cell.innerHTML=date.getWeekNumber(); cell=cell.nextSibling; } row.className="daysrow"; var hasdays=false,iday,dpos=ar_days[i]=[]; for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){ iday=date.getDate(); var wday=date.getDay(); cell.className="day"; cell.pos=i<<4|j; dpos[j]=cell; var current_month=(date.getMonth()==month); if(!current_month){ if(this.showsOtherMonths){ cell.className+=" othermonth"; cell.otherMonth=true; }else{ cell.className="emptycell"; cell.innerHTML=" "; cell.disabled=true; continue; } }else{ cell.otherMonth=false; hasdays=true; } cell.disabled=false; cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday; if(dates) dates[date.print("%Y%m%d")]=cell; if(this.getDateStatus){ var status=this.getDateStatus(date,year,month,iday); if(this.getDateToolTip){ var toolTip=this.getDateToolTip(date,year,month,iday); if(toolTip) cell.title=toolTip; } if(status===true){ cell.className+=" disabled"; cell.disabled=true; }else{ if(/disabled/i.test(status)) cell.disabled=true; cell.className+=" "+status; } } if(!cell.disabled){ cell.caldate=new CalendarDateObject(date); cell.ttip="_"; if(!this.multiple&¤t_month &&iday==mday&&this.hiliteToday){ cell.className+=" selected"; this.currentDateEl=cell; } if(date.getFullYear()==TY&& date.getMonth()==TM&& iday==TD){ cell.className+=" today"; cell.ttip+=Calendar._TT["PART_TODAY"]; } if(weekend.indexOf(wday.toString())!=-1) cell.className+=cell.otherMonth?" oweekend":" weekend"; } } if(!(hasdays||this.showsOtherMonths)) row.className="emptyrow"; } this.title.innerHTML=Calendar._MN[month]+", "+year; this.onSetTime(); this.table.style.visibility="visible"; this._initMultipleDates(); }; Calendar.prototype._initMultipleDates=function(){ if(this.multiple){ for(var i in this.multiple){ var cell=this.datesCells[i]; var d=this.multiple[i]; if(!d) continue; if(cell) cell.className+=" selected"; } } }; Calendar.prototype._toggleMultipleDate=function(date){ if(this.multiple){ var ds=date.print("%Y%m%d"); var cell=this.datesCells[ds]; if(cell){ var d=this.multiple[ds]; if(!d){ Calendar.addClass(cell,"selected"); this.multiple[ds]=date; }else{ Calendar.removeClass(cell,"selected"); delete this.multiple[ds]; } } } }; Calendar.prototype.setDateToolTipHandler=function(unaryFunction){ this.getDateToolTip=unaryFunction; }; Calendar.prototype.setDate=function(date){ if(!date.equalsTo(this.date)){ this._init(this.firstDayOfWeek,date); } }; Calendar.prototype.refresh=function(){ this._init(this.firstDayOfWeek,this.date); }; Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){ this._init(firstDayOfWeek,this.date); this._displayWeekdays(); }; Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){ this.getDateStatus=unaryFunction; }; Calendar.prototype.setRange=function(a,z){ this.minYear=a; this.maxYear=z; }; Calendar.prototype.callHandler=function(){ if(this.onSelected){ this.onSelected(this,this.date.print(this.dateFormat)); } }; Calendar.prototype.callCloseHandler=function(){ if(this.onClose){ this.onClose(this); } this.hideShowCovered(); }; Calendar.prototype.destroy=function(){ var el=this.element.parentNode; el.removeChild(this.element); Calendar._C=null; window._dynarch_popupCalendar=null; }; Calendar.prototype.reparent=function(new_parent){ var el=this.element; el.parentNode.removeChild(el); new_parent.appendChild(el); }; Calendar._checkCalendar=function(ev){ var calendar=window._dynarch_popupCalendar; if(!calendar){ return false; } var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev); for(;el!=null&&el!=calendar.element;el=el.parentNode); if(el==null){ window._dynarch_popupCalendar.callCloseHandler(); return Calendar.stopEvent(ev); } }; Calendar.prototype.show=function(){ var rows=this.table.getElementsByTagName("tr"); for(var i=rows.length;i>0;){ var row=rows[--i]; Calendar.removeClass(row,"rowhilite"); var cells=row.getElementsByTagName("td"); for(var j=cells.length;j>0;){ var cell=cells[--j]; Calendar.removeClass(cell,"hilite"); Calendar.removeClass(cell,"active"); } } this.element.style.display="block"; this.hidden=false; if(this.isPopup){ window._dynarch_popupCalendar=this; Calendar.addEvent(document,"keydown",Calendar._keyEvent); Calendar.addEvent(document,"keypress",Calendar._keyEvent); Calendar.addEvent(document,"mousedown",Calendar._checkCalendar); } this.hideShowCovered(); }; Calendar.prototype.hide=function(){ if(this.isPopup){ Calendar.removeEvent(document,"keydown",Calendar._keyEvent); Calendar.removeEvent(document,"keypress",Calendar._keyEvent); Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar); } this.element.style.display="none"; this.hidden=true; this.hideShowCovered(); }; Calendar.prototype.showAt=function(x,y){ var s=this.element.style; s.left=x+"px"; s.top=y+"px"; this.show(); }; Calendar.prototype.showAtElement=function(el,opts){ var self=this; var p=Calendar.getAbsolutePos(el); if(!opts||typeof opts!="string"){ this.showAt(p.x,p.y+el.offsetHeight); return true; } function fixPosition(box){ if(box.x<0) box.x=0; if(box.y<0) box.y=0; var cp=document.createElement("div"); var s=cp.style; s.position="absolute"; s.right=s.bottom=s.width=s.height="0px"; document.body.appendChild(cp); var br=Calendar.getAbsolutePos(cp); document.body.removeChild(cp); if(Calendar.is_ie){ br.y+=document.body.scrollTop; br.x+=document.body.scrollLeft; }else{ br.y+=window.scrollY; br.x+=window.scrollX; } var tmp=box.x+box.width-br.x; if(tmp>0)box.x-=tmp; tmp=box.y+box.height-br.y; if(tmp>0)box.y-=tmp; }; this.element.style.display="block"; Calendar.continuation_for_the_fucking_khtml_browser=function(){ var w=self.element.offsetWidth; var h=self.element.offsetHeight; self.element.style.display="none"; var valign=opts.substr(0,1); var halign="l"; if(opts.length>1){ halign=opts.substr(1,1); } switch(valign){ case"T":p.y-=h;break; case"B":p.y+=el.offsetHeight;break; case"C":p.y+=(el.offsetHeight-h)/2;break; case"t":p.y+=el.offsetHeight-h;break; case"b":break; } switch(halign){ case"L":p.x-=w;break; case"R":p.x+=el.offsetWidth;break; case"C":p.x+=(el.offsetWidth-w)/2;break; case"l":p.x+=el.offsetWidth-w;break; case"r":break; } p.width=w; p.height=h+40; self.monthsCombo.style.display="none"; fixPosition(p); self.showAt(p.x,p.y); }; if(Calendar.is_khtml) setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10); else Calendar.continuation_for_the_fucking_khtml_browser(); }; Calendar.prototype.setDateFormat=function(str){ this.dateFormat=str; }; Calendar.prototype.setTtDateFormat=function(str){ this.ttDateFormat=str; }; Calendar.prototype.parseDate=function(str,fmt){ if(!fmt) fmt=this.dateFormat; this.setDate(Date.parseDate(str,fmt)); }; Calendar.prototype.hideShowCovered=function(){ if(!Calendar.is_ie&&!Calendar.is_opera) return; function getVisib(obj){ var value=obj.style.visibility; if(!value){ if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){ if(!Calendar.is_khtml) value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility"); else value=''; }else if(obj.currentStyle){ value=obj.currentStyle.visibility; }else value=''; } return value; }; var tags=new Array("applet","iframe","select"); var el=this.element; var p=Calendar.getAbsolutePos(el); var EX1=p.x; var EX2=el.offsetWidth+EX1; var EY1=p.y; var EY2=el.offsetHeight+EY1; for(var k=tags.length;k>0;){ var ar=document.getElementsByTagName(tags[--k]); var cc=null; for(var i=ar.length;i>0;){ cc=ar[--i]; p=Calendar.getAbsolutePos(cc); var CX1=p.x; var CX2=cc.offsetWidth+CX1; var CY1=p.y; var CY2=cc.offsetHeight+CY1; if(this.hidden||(CX1>EX2)||(CX2EY2)||(CY229)?1900:2000); break; case"%b": for(j=0;j<12;++j){ if(enUS.m.abbr[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;} } break; case"%B": for(j=0;j<12;++j){ if(enUS.m.wide[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;} } break; case"%H": case"%I": case"%k": case"%l": hr=parseInt(a[i],10); break; case"%P": case"%p": if(/pm/i.test(a[i])&&hr<12) hr+=12; else if(/am/i.test(a[i])&&hr>=12) hr-=12; break; case"%M": min=parseInt(a[i],10); break; } } if(isNaN(y))y=today.getFullYear(); if(isNaN(m))m=today.getMonth(); if(isNaN(d))d=today.getDate(); if(isNaN(hr))hr=today.getHours(); if(isNaN(min))min=today.getMinutes(); if(y!=0&&m!=-1&&d!=0) return new CalendarDateObject(y,m,d,hr,min,0); y=0;m=-1;d=0; for(i=0;i31&&y==0){ y=parseInt(a[i],10); (y<100)&&(y+=(y>29)?1900:2000); }else if(d==0){ d=a[i]; } } if(y==0) y=today.getFullYear(); if(m!=-1&&d!=0) return new CalendarDateObject(y,m,d,hr,min,0); return today; }; Date.prototype.getMonthDays=function(month){ var year=this.getFullYear(); if(typeof month=="undefined"){ month=this.getMonth(); } if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){ return 29; }else{ return Date._MD[month]; } }; Date.prototype.getDayOfYear=function(){ var now=new CalendarDateObject(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0); var then=new CalendarDateObject(this.getFullYear(),0,0,0,0,0); var time=now-then; return Math.floor(time/Date.DAY); }; Date.prototype.getWeekNumber=function(){ var d=new CalendarDateObject(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0); var DoW=d.getDay(); d.setDate(d.getDate()-(DoW+6)%7+3); var ms=d.valueOf(); d.setMonth(0); d.setDate(4); return Math.round((ms-d.valueOf())/(7*864e5))+1; }; Date.prototype.equalsTo=function(date){ return((this.getFullYear()==date.getFullYear())&& (this.getMonth()==date.getMonth())&& (this.getDate()==date.getDate())&& (this.getHours()==date.getHours())&& (this.getMinutes()==date.getMinutes())); }; Date.prototype.setDateOnly=function(date){ var tmp=new CalendarDateObject(date); this.setDate(1); this.setFullYear(tmp.getFullYear()); this.setMonth(tmp.getMonth()); this.setDate(tmp.getDate()); }; Date.prototype.print=function(str){ var m=this.getMonth(); var d=this.getDate(); var y=this.getFullYear(); var wn=this.getWeekNumber(); var w=this.getDay(); var s={}; var hr=this.getHours(); var pm=(hr>=12); var ir=(pm)?(hr-12):hr; var dy=this.getDayOfYear(); if(ir==0) ir=12; var min=this.getMinutes(); var sec=this.getSeconds(); s["%a"]=Calendar._SDN[w]; s["%A"]=Calendar._DN[w]; s["%b"]=Calendar._SMN[m]; s["%B"]=Calendar._MN[m]; s["%C"]=1+Math.floor(y/100); s["%d"]=(d<10)?("0"+d):d; s["%e"]=d; s["%H"]=(hr<10)?("0"+hr):hr; s["%I"]=(ir<10)?("0"+ir):ir; s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy; s["%k"]=hr; s["%l"]=ir; s["%m"]=(m<9)?("0"+(1+m)):(1+m); s["%M"]=(min<10)?("0"+min):min; s["%n"]="\n"; s["%p"]=pm?Calendar._pm.toUpperCase():Calendar._am.toUpperCase(); s["%P"]=pm?Calendar._pm.toLowerCase():Calendar._am.toLowerCase(); s["%s"]=Math.floor(this.getTime()/1000); s["%S"]=(sec<10)?("0"+sec):sec; s["%t"]="\t"; s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn; s["%u"]=w+1; s["%w"]=w; s["%y"]=(''+y).substr(2,2); s["%Y"]=y; s["%%"]="%"; var re=/%./g; if(!Calendar.is_ie5&&!Calendar.is_khtml) return str.replace(re,function(par){return s[par]||par;}); var a=str.match(re); for(var i=0;i1){ dateObj=eval("new this.parent.constructor("+Array.prototype.slice.call(arguments).join(",")+");"); }else if(arguments.length>0){ dateObj=new this.parent.constructor(arguments[0]); }else{ dateObj=new this.parent.constructor(); if(typeof(CalendarDateObject._LOCAL_TIMZEONE_OFFSET_SECONDS)!="undefined"){ dateObj.setTime(dateObj.getTime()+(CalendarDateObject._LOCAL_TIMZEONE_OFFSET_SECONDS-dateObj.getTimezoneOffset())*1000); } } return dateObj; } window._dynarch_popupCalendar=null; /* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/ * --------------------------------------------------------------------------- * * The DHTML Calendar * * Details and latest version at: * http://dynarch.com/mishoo/calendar.epl * */ Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&¶ms.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;}; (function($){$.prettyPhoto={version:'3.1.3'};$.fn.prettyPhoto=function(pp_settings){pp_settings=jQuery.extend({animation_speed:'fast',slideshow:5000,autoplay_slideshow:false,opacity:0.80,show_title:true,allow_resize:true,default_width:500,default_height:344,counter_separator_label:'/',theme:'pp_default',horizontal_padding:20,hideflash:false,wmode:'opaque',autoplay:true,modal:false,deeplinking:true,overlay_gallery:true,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},ie6_fallback:true,markup:'
\
 
\
\
\
\
\
\
\
\
\
\
\
\ Expand \
\ next \ previous \
\
\
\
\ Previous \

0/0

\ Next \
\

\
{pp_social}
\ Close \
\
\
\
\
\
\
\
\
\
\
\
\
',gallery_markup:'',image_markup:'',flash_markup:'',quicktime_markup:'',iframe_markup:'',inline_markup:'
{content}
',custom_markup:'',social_tools:''},pp_settings);var matchedObjects=this,percentBased=false,pp_dimensions,pp_open,pp_contentHeight,pp_contentWidth,pp_containerHeight,pp_containerWidth,windowHeight=$(window).height(),windowWidth=$(window).width(),pp_slideshow;doresize=true,scroll_pos=_get_scroll();$(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){_center_overlay();_resize_overlay();});if(pp_settings.keyboard_shortcuts){$(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){if(typeof $pp_pic_holder!='undefined'){if($pp_pic_holder.is(':visible')){switch(e.keyCode){case 37:$.prettyPhoto.changePage('previous');e.preventDefault();break;case 39:$.prettyPhoto.changePage('next');e.preventDefault();break;case 27:if(!settings.modal) $.prettyPhoto.close();e.preventDefault();break;};};};});};$.prettyPhoto.initialize=function(){settings=pp_settings;if(settings.theme=='pp_default')settings.horizontal_padding=16;if(settings.ie6_fallback&&$.browser.msie&&parseInt($.browser.version)==6)settings.theme="light_square";theRel=$(this).attr('rel');galleryRegExp=/\[(?:.*)\]/;isSet=(galleryRegExp.exec(theRel))?true:false;pp_images=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return $(n).attr('href');}):$.makeArray($(this).attr('href'));pp_titles=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).find('img').attr('alt'))?$(n).find('img').attr('alt'):"";}):$.makeArray($(this).find('img').attr('alt'));pp_descriptions=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).attr('title'))?$(n).attr('title'):"";}):$.makeArray($(this).attr('title'));if(pp_images.length>30)settings.overlay_gallery=false;set_position=jQuery.inArray($(this).attr('href'),pp_images);rel_index=(isSet)?set_position:$("a[rel^='"+theRel+"']").index($(this));_build_overlay(this);if(settings.allow_resize) $(window).bind('scroll.prettyphoto',function(){_center_overlay();});$.prettyPhoto.open();return false;} $.prettyPhoto.open=function(event){if(typeof settings=="undefined"){settings=pp_settings;if($.browser.msie&&$.browser.version==6)settings.theme="light_square";pp_images=$.makeArray(arguments[0]);pp_titles=(arguments[1])?$.makeArray(arguments[1]):$.makeArray("");pp_descriptions=(arguments[2])?$.makeArray(arguments[2]):$.makeArray("");isSet=(pp_images.length>1)?true:false;set_position=0;_build_overlay(event.target);} if($.browser.msie&&$.browser.version==6)$('select').css('visibility','hidden');if(settings.hideflash)$('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden');_checkPosition($(pp_images).size());$('.pp_loaderIcon').show();if(settings.deeplinking) setHashtag();if(settings.social_tools){facebook_like_link=settings.social_tools.replace('{location_href}',encodeURIComponent(location.href));$pp_pic_holder.find('.pp_social').html(facebook_like_link);} if($ppt.is(':hidden'))$ppt.css('opacity',0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find('.currentTextHolder').text((set_position+1)+settings.counter_separator_label+$(pp_images).size());if(pp_descriptions[set_position]!=""){$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));}else{$pp_pic_holder.find('.pp_description').hide();} movie_width=(parseFloat(getParam('width',pp_images[set_position])))?getParam('width',pp_images[set_position]):settings.default_width.toString();movie_height=(parseFloat(getParam('height',pp_images[set_position])))?getParam('height',pp_images[set_position]):settings.default_height.toString();percentBased=false;if(movie_height.indexOf('%')!=-1){movie_height=parseFloat(($(window).height()*parseFloat(movie_height)/100)-150);percentBased=true;} if(movie_width.indexOf('%')!=-1){movie_width=parseFloat(($(window).width()*parseFloat(movie_width)/100)-150);percentBased=true;} $pp_pic_holder.fadeIn(function(){(settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined")?$ppt.html(unescape(pp_titles[set_position])):$ppt.html(' ');imgPreloader="";skipInjection=false;switch(_getFileType(pp_images[set_position])){case'image':imgPreloader=new Image();nextImage=new Image();if(isSet&&set_position<$(pp_images).size()-1)nextImage.src=pp_images[set_position+1];prevImage=new Image();if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find('#pp_full_res')[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){pp_dimensions=_fitToViewport(imgPreloader.width,imgPreloader.height);_showContent();};imgPreloader.onerror=function(){alert('Image cannot be loaded. Make sure the path is correct and image exist.');$.prettyPhoto.close();};imgPreloader.src=pp_images[set_position];break;case'youtube':pp_dimensions=_fitToViewport(movie_width,movie_height);movie_id=getParam('v',pp_images[set_position]);if(movie_id==""){movie_id=pp_images[set_position].split('youtu.be/');movie_id=movie_id[1];if(movie_id.indexOf('?')>0) movie_id=movie_id.substr(0,movie_id.indexOf('?'));if(movie_id.indexOf('&')>0) movie_id=movie_id.substr(0,movie_id.indexOf('&'));} movie='http://www.youtube.com/embed/'+movie_id;(getParam('rel',pp_images[set_position]))?movie+="?rel="+getParam('rel',pp_images[set_position]):movie+="?rel=1";if(settings.autoplay)movie+="&autoplay=1";toInject=settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case'vimeo':pp_dimensions=_fitToViewport(movie_width,movie_height);movie_id=pp_images[set_position];var regExp=/http:\/\/(www\.)?vimeo.com\/(\d+)/;var match=movie_id.match(regExp);movie='http://player.vimeo.com/video/'+match[2]+'?title=0&byline=0&portrait=0';if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=pp_dimensions['width']+'/embed/?moog_width='+pp_dimensions['width'];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);break;case'quicktime':pp_dimensions=_fitToViewport(movie_width,movie_height);pp_dimensions['height']+=15;pp_dimensions['contentHeight']+=15;pp_dimensions['containerHeight']+=15;toInject=settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case'flash':pp_dimensions=_fitToViewport(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf('flashvars')+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf('?'));toInject=settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);break;case'iframe':pp_dimensions=_fitToViewport(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf('iframe')-1);toInject=settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);break;case'ajax':doresize=false;pp_dimensions=_fitToViewport(movie_width,movie_height);doresize=true;skipInjection=true;$.get(pp_images[set_position],function(responseHTML){toInject=settings.inline_markup.replace(/{content}/g,responseHTML);$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();});break;case'custom':pp_dimensions=_fitToViewport(movie_width,movie_height);toInject=settings.custom_markup;break;case'inline':myClone=$(pp_images[set_position]).clone().append('
').css({'width':settings.default_width}).wrapInner('
').appendTo($('body')).show();doresize=false;pp_dimensions=_fitToViewport($(myClone).width(),$(myClone).height());doresize=true;$(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());break;};if(!imgPreloader&&!skipInjection){$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();};});return false;};$.prettyPhoto.changePage=function(direction){currentGalleryPage=0;if(direction=='previous'){set_position--;if(set_position<0)set_position=$(pp_images).size()-1;}else if(direction=='next'){set_position++;if(set_position>$(pp_images).size()-1)set_position=0;}else{set_position=direction;};rel_index=set_position;if(!doresize)doresize=true;$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');_hideContent(function(){$.prettyPhoto.open();});};$.prettyPhoto.changeGalleryPage=function(direction){if(direction=='next'){currentGalleryPage++;if(currentGalleryPage>totalPage)currentGalleryPage=0;}else if(direction=='previous'){currentGalleryPage--;if(currentGalleryPage<0)currentGalleryPage=totalPage;}else{currentGalleryPage=direction;};slide_speed=(direction=='next'||direction=='previous')?settings.animation_speed:0;slide_to=currentGalleryPage*(itemsPerPage*itemWidth);$pp_gallery.find('ul').animate({left:-slide_to},slide_speed);};$.prettyPhoto.startSlideshow=function(){if(typeof pp_slideshow=='undefined'){$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){$.prettyPhoto.stopSlideshow();return false;});pp_slideshow=setInterval($.prettyPhoto.startSlideshow,settings.slideshow);}else{$.prettyPhoto.changePage('next');};} $.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});clearInterval(pp_slideshow);pp_slideshow=undefined;} $.prettyPhoto.close=function(){if($pp_overlay.is(":animated"))return;$.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){$(this).remove();});$pp_overlay.fadeOut(settings.animation_speed,function(){if($.browser.msie&&$.browser.version==6)$('select').css('visibility','visible');if(settings.hideflash)$('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible');$(this).remove();$(window).unbind('scroll.prettyphoto');clearHashtag();settings.callback();doresize=true;pp_open=false;delete settings;});};function _showContent(){$('.pp_loaderIcon').hide();projectedTop=scroll_pos['scrollTop']+((windowHeight/2)-(pp_dimensions['containerHeight']/2));if(projectedTop<0)projectedTop=0;$ppt.fadeTo(settings.animation_speed,1);$pp_pic_holder.find('.pp_content').animate({height:pp_dimensions['contentHeight'],width:pp_dimensions['contentWidth']},settings.animation_speed);$pp_pic_holder.animate({'top':projectedTop,'left':(windowWidth/2)-(pp_dimensions['containerWidth']/2),width:pp_dimensions['containerWidth']},settings.animation_speed,function(){$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed);if(isSet&&_getFileType(pp_images[set_position])=="image"){$pp_pic_holder.find('.pp_hoverContainer').show();}else{$pp_pic_holder.find('.pp_hoverContainer').hide();} if(pp_dimensions['resized']){$('a.pp_expand,a.pp_contract').show();}else{$('a.pp_expand').hide();} if(settings.autoplay_slideshow&&!pp_slideshow&&!pp_open)$.prettyPhoto.startSlideshow();settings.changepicturecallback();pp_open=true;});_insert_gallery();};function _hideContent(callback){$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){$('.pp_loaderIcon').show();callback();});};function _checkPosition(setCount){(setCount>1)?$('.pp_nav').show():$('.pp_nav').hide();};function _fitToViewport(width,height){resized=false;_getDimensions(width,height);imageWidth=width,imageHeight=height;if(((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight))&&doresize&&settings.allow_resize&&!percentBased){resized=true,fitting=false;while(!fitting){if((pp_containerWidth>windowWidth)){imageWidth=(windowWidth-200);imageHeight=(height/width)*imageWidth;}else if((pp_containerHeight>windowHeight)){imageHeight=(windowHeight-200);imageWidth=(width/height)*imageHeight;}else{fitting=true;};pp_containerHeight=imageHeight,pp_containerWidth=imageWidth;};_getDimensions(imageWidth,imageHeight);if((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight)){_fitToViewport(pp_containerWidth,pp_containerHeight)};};return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(pp_containerHeight),containerWidth:Math.floor(pp_containerWidth)+(settings.horizontal_padding*2),contentHeight:Math.floor(pp_contentHeight),contentWidth:Math.floor(pp_contentWidth),resized:resized};};function _getDimensions(width,height){width=parseFloat(width);height=parseFloat(height);$pp_details=$pp_pic_holder.find('.pp_details');$pp_details.width(width);detailsHeight=parseFloat($pp_details.css('marginTop'))+parseFloat($pp_details.css('marginBottom'));$pp_details=$pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({'position':'absolute','top':-10000});detailsHeight+=$pp_details.height();detailsHeight=(detailsHeight<=34)?36:detailsHeight;if($.browser.msie&&$.browser.version==7)detailsHeight+=8;$pp_details.remove();$pp_title=$pp_pic_holder.find('.ppt');$pp_title.width(width);titleHeight=parseFloat($pp_title.css('marginTop'))+parseFloat($pp_title.css('marginBottom'));$pp_title=$pp_title.clone().appendTo($('body')).css({'position':'absolute','top':-10000});titleHeight+=$pp_title.height();$pp_title.remove();pp_contentHeight=height+detailsHeight;pp_contentWidth=width;pp_containerHeight=pp_contentHeight+titleHeight+$pp_pic_holder.find('.pp_top').height()+$pp_pic_holder.find('.pp_bottom').height();pp_containerWidth=width;} function _getFileType(itemSrc){if(itemSrc.match(/youtube\.com\/watch/i)||itemSrc.match(/youtu\.be/i)){return'youtube';}else if(itemSrc.match(/vimeo\.com/i)){return'vimeo';}else if(itemSrc.match(/\b.mov\b/i)){return'quicktime';}else if(itemSrc.match(/\b.swf\b/i)){return'flash';}else if(itemSrc.match(/\biframe=true\b/i)){return'iframe';}else if(itemSrc.match(/\bajax=true\b/i)){return'ajax';}else if(itemSrc.match(/\bcustom=true\b/i)){return'custom';}else if(itemSrc.substr(0,1)=='#'){return'inline';}else{return'image';};};function _center_overlay(){if(doresize&&typeof $pp_pic_holder!='undefined'){scroll_pos=_get_scroll();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=(windowHeight/2)+scroll_pos['scrollTop']-(contentHeight/2);if(projectedTop<0)projectedTop=0;if(contentHeight>windowHeight) return;$pp_pic_holder.css({'top':projectedTop,'left':(windowWidth/2)+scroll_pos['scrollLeft']-(contentwidth/2)});};};function _get_scroll(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};};};function _resize_overlay(){windowHeight=$(window).height(),windowWidth=$(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height($(document).height()).width(windowWidth);};function _insert_gallery(){if(isSet&&settings.overlay_gallery&&_getFileType(pp_images[set_position])=="image"&&(settings.ie6_fallback&&!($.browser.msie&&parseInt($.browser.version)==6))){itemWidth=52+5;navWidth=(settings.theme=="facebook"||settings.theme=="pp_default")?50:30;itemsPerPage=Math.floor((pp_dimensions['containerWidth']-100-navWidth)/itemWidth);itemsPerPage=(itemsPerPage";};toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find('#pp_full_res').after(toInject);$pp_gallery=$('.pp_pic_holder .pp_gallery'),$pp_gallery_li=$pp_gallery.find('li');$pp_gallery.find('.pp_arrow_next').click(function(){$.prettyPhoto.changeGalleryPage('next');$.prettyPhoto.stopSlideshow();return false;});$pp_gallery.find('.pp_arrow_previous').click(function(){$.prettyPhoto.changeGalleryPage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_content').hover(function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();},function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();});itemWidth=52+5;$pp_gallery_li.each(function(i){$(this).find('a').click(function(){$.prettyPhoto.changePage(i);$.prettyPhoto.stopSlideshow();return false;});});};if(settings.slideshow){$pp_pic_holder.find('.pp_nav').prepend('Play') $pp_pic_holder.find('.pp_nav .pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});} $pp_pic_holder.attr('class','pp_pic_holder '+settings.theme);$pp_overlay.css({'opacity':0,'height':$(document).height(),'width':$(window).width()}).bind('click',function(){if(!settings.modal)$.prettyPhoto.close();});$('a.pp_close').bind('click',function(){$.prettyPhoto.close();return false;});$('a.pp_expand').bind('click',function(e){if($(this).hasClass('pp_expand')){$(this).removeClass('pp_expand').addClass('pp_contract');doresize=false;}else{$(this).removeClass('pp_contract').addClass('pp_expand');doresize=true;};_hideContent(function(){$.prettyPhoto.open();});return false;});$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){$.prettyPhoto.changePage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){$.prettyPhoto.changePage('next');$.prettyPhoto.stopSlideshow();return false;});_center_overlay();};if(!pp_alreadyInitialized&&getHashtag()){pp_alreadyInitialized=true;hashIndex=getHashtag();hashRel=hashIndex;hashIndex=hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);hashRel=hashRel.substring(0,hashRel.indexOf('/'));setTimeout(function(){$("a[rel^='"+hashRel+"']:eq("+hashIndex+")").trigger('click');},50);} return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize);};function getHashtag(){url=location.href;hashtag=(url.indexOf('#!')!=-1)?decodeURI(url.substring(url.indexOf('#!')+2,url.length)):false;return hashtag;};function setHashtag(){if(typeof theRel=='undefined')return;location.hash='!'+theRel+'/'+rel_index+'/';};function clearHashtag(){url=location.href;hashtag=(url.indexOf('#!prettyPhoto'))?true:false;if(hashtag)location.hash="!prettyPhoto";} function getParam(name,url){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(url);return(results==null)?"":results[1];}})(jQuery);var pp_alreadyInitialized=false;