gti07 à fond... | Bonjour
je viens de mettre en place un formulaire de réservation sur mon site, mais le calendrier js qui y est associer devient complètement fou dès que l'on veut changer de date. Etant vraiment nul en javascript je viens vers vous pour essayer de résoudre ce pb.
Merci d'avance
Code :
- function UA(){var t=this,nv=navigator,n=nv.userAgent.toLowerCase();t.win=n.indexOf('win')>=0;t.mac=n.indexOf('mac')>=0;t.DOM=document.getElementById?true:false;t.dynDOM=document.createElement&&document.addEventListener;t.khtml=nv.vendor=='KDE';var idx=n.indexOf('opera');t.opera=idx!=-1;if(t.opera){t.vers=parseFloat(n.substr(idx+6));t.major=Math.floor(t.vers);t.opera5=t.major==5;t.opera6=t.major==6;t.opera7=t.major==7;t.opera7up=t.vers>=7;}t.oldOpera=t.opera5||t.opera6;idx=n.indexOf('msie');if(idx>=0&&!t.opera&&!t.khtml){t.vers=parseFloat(n.substr(idx+5));t.ie3down=t.vers<4;t.ie=t.ie4up=document.all&&document.all.item&&!t.ie3down;t.ie5up=t.ie&&t.DOM;t.ie55up=t.ie&&t.vers>=5.5;t.ie6up=t.ie&&t.vers>=6}t.cm=document.compatMode;t.css1cm=t.cm=='CSS1Compat';t.nn4=nv.appName=="Netscape"&&!t.DOM&&!t.opera;if(t.nn4)t.vers=parseFloat(nv.appVersion);t.moz=t.nn6up=t.gecko=n.indexOf('gecko')!=-1;if(t.gecko)t.vers=parseFloat(n.substr(n.indexOf('rv:')+3));t.nn7up=t.gecko&&t.vers>1;t.hj=n.indexOf('hotjava')!=-1;t.aol=n.indexOf('aol')!=-1;t.aol4up=t.aol&&t.ie4up;t.major=Math.floor(t.vers);t.supp=t.supported=t.oldOpera||t.opera7up||t.ie||t.moz||t.nn4||t.DOM};function Undef(o){
- return typeof(o)=='undefined'||o===''||o==null};function Def(o){
- return!Undef(o)};var ua=new UA();function ResevHotelSetMY(m,y,f){switch(f){case 0:{++m;if(m==12){m=0;y++;}break;}case 1:{--m;if(m==-1){m=11;y--;}break;}case 2:{++y;break;}case 3:{--y;break;}case 4:{break;}}if(!window.opener)window.opener=window.parent;var c;if(ua.moz){c=this.parent.codethatcalendar;window.opener=this.parent;}else if(window.opener)c=window.opener.codethatcalendar;if(c){c.date.setFullYear(y);c.date.setMonth(m);}location.reload();};function ResevHotelFind(d,f){if(d.getElementById&&Def(d.getElementById(f))){
- return d.getElementById(f);}else if(ua.ie4up){
- return d.all[f];}else{if(d.forms.item)for(var i=0;d.forms.item(i)!=null;++i){if(d.forms.item(i).namedItem&&d.forms.item(i).namedItem(f))
- return d.forms.item(i).namedItem(f);if(d.forms.item(i).elements&&d.forms.item(i).elements[f])
- return d.forms.item(i).elements[f];}for(var form in d.forms)if(d.forms[form].elements&&d.forms[form].elements[f])
- return d.forms[form].elements[f];}
- return null;};function ResevHotelAlign(n){
- return n<10?("0"+n):(""+n);;};function ResevHotelDateFormat(f,d,m,y){var s=f;d=d<10?("0"+d):d;s=s.replace("dd",d);m++;m=m<10?("0"+m):m;s=s.replace("MM",m);s=s.replace("yyyy",y);if(ResevHotelFind(document,'time')){var t=ResevHotelFind(document,'time').value;var hours=parseInt(t.substring(0,2)-0);if(hours<0||hours>23){hours=hours%24;hours+=(hours<0?24:0);}s=s.replace("HH",ResevHotelAlign(hours));var minutes=parseInt(t.substring(3,5)-0);if(minutes<0||minutes>59){minutes=minutes%60;minutes+=(minutes<0?60:0);}s=s.replace("mm",ResevHotelAlign(minutes));var seconds=parseInt(t.substring(6,8)-0);if(seconds<0||seconds>59){seconds=seconds%60;seconds+=(seconds<0?60:0);}s=s.replace("ss",ResevHotelAlign(seconds));}
- return s;};function ResevHotelSetDay(c,f,d,m,y,i,ifr){var doc;var w=window.opener||this.parent;if(w&&!i)doc=w.document;else doc=document;var e=ResevHotelFind(doc,c);if(Def(e)){e.value=ResevHotelDateFormat(f,d,m,y);if(e.onchange)e.onchange();}if(w&&!i){if(Def(w)&&Def(ifr)){var iframe=ResevHotelFind(doc,ifr);if(Def(iframe))iframe.style.visibility='hidden';if(ua.opera6){var d=ResevHotelFind(doc,"calendar_div" );if(Def(d))d.style.visibility='hidden';}}else{window.close();}}};function ResevHotelCalendar(def){this.def=def;this.links={};this.styles={};this.hideifr=true;this.controls=true;};{var CTc=ResevHotelCalendar.prototype;CTc.getCss=function(key,d){if(this.getStyle())
- return "class='"+this.getStyle()+"'";if(!d)d=this.def;if(d[key]){
- return "class='"+d[key]+"'";}
- return "";};CTc.hide=function(){if(window.parent&&this.hideifr&&this.ifr){var iframe=ResevHotelFind(window.parent.document,this.ifr);if(iframe)iframe.style.visibility='hidden';}};CTc.create=function(d,ctl){var i=false;if(ctl){this.ctl=ctl;window.codethatcalendar=this;i=true;}this.i=i;if(!this.date)this.date=window.date||new Date();var def=this.def;var acts='';if(this.ifr&&def.headerstyle.type!="comboboxes" ){acts='onMouseOver="window.opener.codethatcalendar.hideifr=false;"';acts+=" onMouseOut=\"window.opener.codethatcalendar.hideifr=true;setTimeout('window.opener.codethatcalendar.hide();',1000);\""}d.write("<table "+(Def(this.ifr)?"align=\"center\"":"" )+" cellspacing=0 cellpadding=0 "+acts+" width="+def.width+" border="+(def.border_width||0)+" bordercolor='"+(def.border_color||'#000000')+" '>" );d.write("<tr>" );if(i)this.createButtons(d,i);else{if(def.headerstyle.type=="buttons" )this.createButtons(d,i);else if(def.headerstyle.type=="comboboxes" ){if(this.controls)this.createCombos(d);else this.createButtons(d,i);}}d.write("</tr>" );var day=0;d.write("<tr>" );this.createWeekdays(d);d.write("</tr>" );var w=this.createMonth(d);if(def.showtime){this.createTime(d);}if(ua.opera&&w==4){d.write("<tr><td colspan=7> <td></tr>" );}d.write("</table>" );};CTc.createTime=function(d){d.write("<tr><td colspan=7 align=center>"+(ua.nn4?"<form>":"" )+"<input "+(ua.nn4?"name":"id" )+"='time' type=textarea value='"+ResevHotelAlign(this.date.getHours())+":"+ResevHotelAlign(this.date.getMinutes())+":"+ResevHotelAlign(this.date.getSeconds())+"'>"+(ua.nn4?"</form>":"" )+"</td></tr>" );};CTc.createMonth=function(d){var cd=this.date.getDate();var cm=this.date.getMonth();var cy=this.date.getYear();var cday=this.date.getDay();var def=this.def;var cur_day=1;this.date.setDate(cur_day);var thisweek=false;var start=(this.date.getDay()-def.firstday);start+=(start<0?7:0);cur_day-=start;var css,thismonth=false,weekend,thisday;var w;for(w=0;w<6;++w){d.write("<tr>" );for(var day=0;day<7;++day){weekend=day+def.firstday;weekend-=(weekend<7?0:7);weekend=weekend==0||weekend==6;this.date.setDate(cur_day);if(this.date.getDate()==1)thismonth=!thismonth;if(day==0){if(w!=0){thisweek=cd-this.date.getDate();if(thisweek<7&&thisweek>=0)thisweek=true;else thisweek=false;}else thisweek=(start+cd)<8;}if(day==7&&thisweek)thisweek=false;thisday=this.date.getDate()==cd&&thismonth;css=thisday?"cd_css":(thisweek?"tw_css":(thismonth?(weekend?"we_css":"wd_css" ):(weekend?"weom_css":"wdom_css" )));d.write("<td align=center width=14% "+this.getCss(css)+"><A "+this.getCss(css)+this.getRef()+">" );d.write(this.date.getDate());d.write("</A></td>" );cur_day=this.date.getDate()+1;}d.write("</tr>" );this.date.setDate(cur_day);if(this.date.getDate()<8&&w>3)break;}this.date.setDate(cd);this.date.setMonth(cm);this.date.setYear(cy);
- return w;};CTc.setLink=function(s,l){this.links[s]=l;};CTc.setStyle=function(s,l){this.styles[s]=l;};CTc.getStyle=function(){var c;if(this.i){var fd=ResevHotelDateFormat(this.def.dtype,this.date.getDate(),this.date.getMonth(),this.date.getFullYear());if(this.styles[fd])c=this.styles[fd];}
- return c;};CTc.getRef=function(){var ref;if(this.i){var fd=ResevHotelDateFormat(this.def.dtype,this.date.getDate(),this.date.getMonth(),this.date.getFullYear());if(this.links[fd])ref=" href='"+this.links[fd]+"'";}ref=ref||(" href='javascript:ResevHotelSetDay(\""+this.ctl+"\",\""+this.def.dtype+"\","+this.date.getDate()+","+this.date.getMonth()+","+this.date.getFullYear()+","+this.i+",\""+(Def(this.ifr)?this.ifr:"" )+"\" )'" );
- return ref;};CTc.createWeekdays=function(d){var def=this.def;var weekend;for(var day=0;day<7;++day){weekend=day+def.firstday;weekend-=(weekend<7?0:7);d.write("<td align=center "+this.getCss("dn_css" )+">"+def.daynames[weekend]+"</td>" );}};CTc.createButtons=function(d,i){var col=9,dh=this.def.headerstyle;for(var p in dh)--col;if(this.controls){if(dh.imgprevy&&!i)d.write("<td width=14% align=left><a href='javascript:ResevHotelSetMY("+this.date.getMonth()+","+this.date.getFullYear()+",3)'><IMG border=0 src='"+dh.imgprevy+"'</IMG></A>" );if(dh.imgprevm&&!i)d.write("<td width=14% align=left><a href='javascript:ResevHotelSetMY("+this.date.getMonth()+","+this.date.getFullYear()+",1)'><IMG border=0 src='"+dh.imgprevm+"'</IMG></A>" );}d.write("<td colspan="+col+" align=center "+this.getCss("css",dh)+">"+this.def.monthnames[this.date.getMonth()]+" "+this.date.getFullYear()+"</td>" );if(this.controls){if(dh.imgnextm&&!i)d.write("<td width=14% align=right><a href='javascript:ResevHotelSetMY("+this.date.getMonth()+","+this.date.getFullYear()+",0)'><IMG border=0 src='"+dh.imgnextm+"'</IMG></A></td>" );if(dh.imgnexty&&!i)d.write("<td width=14% align=right><a href='javascript:ResevHotelSetMY("+this.date.getMonth()+","+this.date.getFullYear()+",2)'><IMG border=0 src='"+dh.imgnexty+"'</IMG></A></td>" );}};CTc.createCombos=function(d,l){var dh=this.def.headerstyle;if(this.controls){d.write("<td colspan=7 "+this.getCss("css",dh)+">" );if(ua.nn4)d.write("<form>" );d.write("<select align=left "+this.getCss("css",dh)+" "+(ua.nn4?"name":"id" )+"='month' onchange='ResevHotelSetMY(ResevHotelFind(document,\"month\" ).selectedIndex,"+dh.yearrange[0]+"+ResevHotelFind(document,\"year\" ).selectedIndex,4);'>" );var i=0;for(;i<12;++i)d.write("<option "+(i==this.date.getMonth()?"selected='selected'":"" )+" value='"+i+"'>"+this.def.monthnames[i]+"</option>" );d.write("</select>" );d.write("<select align=right "+this.getCss("css",dh)+" "+(ua.nn4?"name":"id" )+"='year' onchange='ResevHotelSetMY(ResevHotelFind(document,\"month\" ).selectedIndex,"+dh.yearrange[0]+"+ResevHotelFind(document,\"year\" ).selectedIndex,4);'>" );for(i=dh.yearrange[0];i<=dh.yearrange[1];++i)d.write("<option "+(i==this.date.getFullYear()?"selected='selected'":"" )+" value='"+i+"'>"+i+"</option>" );d.write("</select>" );if(ua.nn4)d.write("</form>" );d.write("</td>" );}};CTc.parseValue=function(s,d){var f=this.def.dtype;d=d||this.date;var t;if(f.indexOf("yyyy" )!=-1){t=parseInt(s.substr(f.indexOf("yyyy" ),4)-0);if(!isNaN(t)&&typeof(t)!="undefined" )d.setFullYear(t);}if(f.indexOf("MM" )!=-1){t=parseInt(s.substr(f.indexOf("MM" ),2)-1);if(!isNaN(t)&&typeof(t)!='undefined')d.setMonth(t);}if(f.indexOf("dd" )!=-1){t=parseInt(s.substr(f.indexOf("dd" ),2)-0);if(!isNaN(t)&&typeof(t)!='undefined')d.setDate(t);}if(f.indexOf("HH" )!=-1){t=parseInt(s.substr(f.indexOf("HH" ),2)-0);if(!isNaN(t)&&typeof(t)!='undefined')d.setHours(t);}if(f.indexOf("mm" )!=-1){t=parseInt(s.substr(f.indexOf("mm" ),2)-0);if(!isNaN(t)&&typeof(t)!='undefined')d.setMinutes(t);}if(f.indexOf("ss" )!=-1){t=parseInt(s.substr(f.indexOf("ss" ),2)-0);if(!isNaN(t)&&typeof(t)!='undefined')d.setSeconds(t);}};CTc.popup=function(ctl){window.codethatcalendar=this;this.ctl=ctl;var e=ResevHotelFind(document,ctl);this.date=new Date();if(e.value!="" )this.parseValue(e.value);var w=window.open("reservhotelcalendrier.html","",'width='+this.def.windoww+',height='+this.def.windowh+',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes');w.opener=window;w.focus();};CTc.innerpopup=function(ctl,ifr){window.codethatcalendar=this;this.ctl=ctl;this.ifr=ifr;this.hideifr=false;this.controls=true;var e=ResevHotelFind(document,ctl);this.date=new Date();if(e.value!="" )this.parseValue(e.value);var w=ResevHotelFind(document,ifr);if(ua.oldOpera){w=document.frames[ifr];w.location.reload();var d=ResevHotelFind(document,"calendar_div" );d.style.visibility='visible';}else{w.src="codethatcalendar_ifr.html";w.style.visibility='visible';}w.opener=window;w.height=this.def.windowh;w.width=this.def.windoww;if(ua.moz){}else{w.focus();}};CTc.inline_create=function(d,ctl){if(ua.oldOpera){document.write("<div id=\"c_div\">" );document.write(" src=\"reservhotelcalendrier.html\">" );}var pos="relative";var offx=0;var offy=0;if((typeof this.def.position)!="undefined" ){if(this.def.position.absolute==true)pos="absolute";else pos="relative";if((typeof this.def.position.y)!="undefined" )offy=this.def.position.y;if((typeof this.def.position.x)!="undefined" )offx=this.def.position.x;}var opacity=100;if((typeof this.def.opacity)!="undefined" )opacity=this.def.opacity;this.ctl=ctl;if(ua.moz&&ua.vers<1.4){this.create(d,ctl);}else{d.write('<iframe id="c_frame" frameborder="0" name="c_frame" scrolling="no" STYLE="filter:Alpha(Opacity='+opacity+'); position:'+pos+'; top:'+offy+'; left:'+offx+'; " >');d.write('</iframe>');if(ua.oldOpera)document.write("</div>" );window.codethatcalendar=this;this.controls=false;}var e=ResevHotelFind(document,ctl);this.date=new Date();if(e.value!="" )this.parseValue(e.value);var w=ResevHotelFind(d,"c_frame" );if(ua.oldOpera){w=document.frames["c_frame"];w.location.reload();var d=ResevHotelFind(document,"c_div" );d.style.visibility='visible';}else{w.src="codethatcalendar_ifr.html";w.style.visibility='visible';}w.opener=window;w.height=this.def.windowh;w.width=this.def.windoww;if(ua.moz){}else{w.focus();}};}
|
Message édité par gti07 le 16-02-2011 à 14:47:44
|