(function(u,n){if(!n)n={};var o=document,b=Msn.DOM,c=Msn.LatUtil.Util,p=Msn.Latino.BookingText,r=null,a=null,m=null,s=null,t=null,h=null,i=null,q=null,j=null,k=null,l=null,g=null,e=null,N=null,f=null,d=null;this.dispose=function(){u=n=o=b=c=p=r=a=m=s=t=h=i=q=j=k=l=g=e=N=f=d=null};function O(){H();r=c.ById("mthTxt");m=c.ById("calBdy");s=c.ById("next");t=c.ById("prev");h=c.ById(u.id);q=c.ById("closeLnk");if(r==null||m==null||s==null||t==null||h==null||q==null){alert("Msn.LatUtil.Calendar - Mandatory elements missing.");return}if(c.ArgExists(n.txt2Id))i=c.ById(n.txt2Id);I();F();G();v()}function H(){a=c.ById("calendar");if(a!=null){a.parentNode.removeChild(a);a=null}a=o.createElement("div");a.id="calendar";a.className="calendarHdn";a.innerHTML="<div><div class='calTpLeft'><input id='prev' type='button' value='<<' /></div><div id='mthTxt' class='mthTxt'>Month</div><div class='calTpRight'><input id='next' type='button' value='>>' /></div></div><div id='calBdy'></div><div id='close'><a id='closeLnk' href='#'>Cerrar</a></div>";document.body.appendChild(a);d=c.ById("calendarFrame");if(d==null){d=o.createElement("iframe");d.className="calendarHdn";d.id="calendarFrame";d.scrolling="no";d.src="javascript:'';";document.body.appendChild(d)}}function I(){a.className="calendar";d.className="calendarFrame";d.style.left=a.style.left=c.FindX(u)-35+"px";d.style.top=a.style.top=c.FindY(u)-78+"px"}function F(){var a=null;if(i!=null&&i.value!=p.L_defDate&&i.value!=""){a=new Date(i.value);a.setDate(a.getDate()+7);x(a);h.value=a.getMonth()+1+"/"+a.getDate()+"/"+a.getFullYear()}else if(h.value==p.L_defDate||h.value=="")a=new Date;else{a=new Date(h.value);x(a)}e=a.getMonth();f=a.getFullYear()}function x(a){k=a.getDate();j=a.getMonth();l=a.getFullYear()}function G(){if(m.innerHTML==""){for(var a=0;a<7;a++){var d=o.createElement("div");d.id="r"+a;for(var b=0;b<7;b++){var c=o.createElement("div");c.id="r"+a+"c"+b;if(a==0)c.innerText=p.L_shortWeek[b];d.appendChild(c)}m.appendChild(d)}L.hook(s,"click");M.hook(t,"click");J.hook(q,"click")}}function v(){r.innerHTML=p.L_months[e]+"&nbsp;"+f;var i=D(),a=1,g=new Date(f,e,a);for(var h=1;h<7;h++)for(var b=0;b<7;b++){var d=c.ById("r"+h+"c"+b),j=g.getDay();if(j==b&&a<=i){d.innerHTML=a;K(g,d);a++;g=new Date(f,e,a)}else{d.innerHTML="&nbsp;";d.className=null}}}function K(b,a){var d=E(),c=C();if(b<d)a.className="gTxt";else{if(w(b,d))if(w(b,c)){a.className="nbsTxt";g=a}else a.className="nbTxt";else if(w(b,c)){a.className="nsTxt";g=a}else a.className="nTxt";A.hook(a,"mouseover");B.hook(a,"mouseout");z.hook(a,"click")}}function w(b,a){if(b!=null&&a!=null&&b.getFullYear()==a.getFullYear()&&b.getMonth()==a.getMonth()&&b.getDate()==a.getDate())return true;return false}function E(){var a=new Date;return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function C(){if(l==null||j==null||k==null)return null;return new Date(l,j,k)}function D(){var a=new Date(f,e+1,0);return a.getDate()}function y(){for(var d=1;d<7;d++)for(var b=0;b<7;b++){var a=c.ById("r"+d+"c"+b);if(a.className!="gTxt"){A.unhook(a,"mouseover");B.unhook(a,"mouseout");z.unhook(a,"click")}}}function L(a){a=b.Event(a);if(e==11){e=0;f++}else e++;y();v();return b.CancelEvent(a)}function M(c){c=b.Event(c);var a=new Date;a=new Date(a.getFullYear(),a.getMonth(),1);var d=new Date(f,e,1);if(a<d){if(e==0){e=11;f--}else e--;y();v()}return b.CancelEvent(c)}function A(c){c=b.Event(c);var a=b.Target(c);if(a.className!="nsTxt"&&a.className!="nbsTxt"&&a.className!="gTxt")if(a.className=="nbTxt"||a.className=="rbTxt")a.className="rbTxt";else a.className="rTxt";return b.CancelEvent(c)}function B(c){c=b.Event(c);var a=b.Target(c);if(a.className!="nsTxt"&&a.className!="nbsTxt"&&a.className!="gTxt")if(a.className=="rbTxt"||a.className=="nbTxt")a.className="nbTxt";else a.className="nTxt";return b.CancelEvent(c)}function z(i){i=b.Event(i);var c=b.Target(i);j=e;k=c.innerHTML;l=f;h.value=j+1+"/"+k+"/"+l;if(c.className=="rbTxt"||c.className=="nbsTxt")c.className="nbsTxt";else c.className="nsTxt";if(g!=null&&c.id!=g.id)if(g.className=="nbsTxt"||g.className=="nbTxt")g.className="nbTxt";else g.className="nTxt";g=c;d.className=a.className="calendarHdn";return b.CancelEvent(i)}function J(c){c=b.Event(c);d.className=a.className="calendarHdn";return b.CancelEvent(c)}O()}).as("Msn.Latino.Calendar")