<!--This script and many more are available free online at--><!--The JavaScript Source!!http:<!--V1.1.3:Sandeep V.Tamhankar(stamhankar@hotmail.com)--><!--Original:Sandeep V.Tamhankar(stamhankar@hotmail.com)--><!--Changes:<!--Begin
function emailCheck(emailStr){var checkTLD=1;var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s"+specialChars+"\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var atom=validChars+'+';var word="("+atom+"|"+quotedUser+")";var userPat=new RegExp("^"+word+"(\\."+word+")*$");var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");var matchArray=emailStr.match(emailPat);if(matchArray==null){alert("Email address seems incorrect (check @ and .'s)");return false;}
var user=matchArray[1];var domain=matchArray[2];for(i=0;i<user.length;i++){if(user.charCodeAt(i)>127){alert("Ths username contains invalid characters.");return false;}}
for(i=0;i<domain.length;i++){if(domain.charCodeAt(i)>127){alert("Ths domain name contains invalid characters.");return false;}}
if(user.match(userPat)==null){alert("The username doesn't seem to be valid.");return false;}
var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255){alert("Destination IP address is invalid!");return false;}}
return true;}
var atomPat=new RegExp("^"+atom+"$");var domArr=domain.split(".");var len=domArr.length;for(i=0;i<len;i++){if(domArr[i].search(atomPat)==-1){alert("The domain name does not seem to be valid.");return false;}}
if(checkTLD&&domArr[domArr.length-1].length!=2&&domArr[domArr.length-1].search(knownDomsPat)==-1){alert("The address must end in a well-known domain or two letter "+"country.");return false;}
if(len<2){alert("This address is missing a hostname!");return false;}
return true;}
Calendar=function(mondayFirst,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.checkDisabled=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=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.mondayFirst=mondayFirst;this.dateStr=dateStr;this.table=null;this.element=null;this.tbody=null;this.daynames=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;if(!Calendar._DN3){var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,3);}
Calendar._DN3=ar;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,3);}
Calendar._MN3=ar;}};Calendar._C=null;Calendar.is_ie=((navigator.userAgent.toLowerCase().indexOf("msie")!=-1)&&(navigator.userAgent.toLowerCase().indexOf("opera")==-1));Calendar._DN3=null;Calendar._MN3=null;Calendar.getAbsolutePos=function(el){var r={x:el.offsetLeft,y:el.offsetTop};if(el.offsetParent){var tmp=Calendar.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}
return r;};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){el.className+=" "+className;};Calendar.getElement=function(ev){if(Calendar.is_ie){return window.event.srcElement;}else{return ev.currentTarget;}};Calendar.getTargetElement=function(ev){if(Calendar.is_ie){return window.event.srcElement;}else{return ev.target;}};Calendar.stopEvent=function(ev){if(Calendar.is_ie){window.event.cancelBubble=true;window.event.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}};Calendar.addEvent=function(el,evname,func){if(Calendar.is_ie){el.attachEvent("on"+evname,func);}else{el.addEventListener(evname,func,true);}};Calendar.removeEvent=function(el,evname,func){if(Calendar.is_ie){el.detachEvent("on"+evname,func);}else{el.removeEventListener(evname,func,true);}};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;mc.style.left=cd.offsetLeft;mc.style.top=cd.offsetTop+cd.offsetHeight;mc.style.display="block";};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.firstChild.data=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}
yr=yr.nextSibling;Y+=fwd?1:-1;}
if(show){yc.style.left=cd.offsetLeft;yc.style.top=cd.offsetTop+cd.offsetHeight;yc.style.display="block";}};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);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el);}
var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);}}}
with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();stopEvent(ev);_C=null;}};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");}else{Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");}
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{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");}}}
Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){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";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,"mouseover",stopEvent);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){addClass(el,"hilite active");addEvent(document,"mouseover",tableMouseOver);addEvent(document,"mousemove",tableMouseOver);addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}
Calendar.stopEvent(ev);if(el.navtype==-1||el.navtype==1){cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev));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)=="_"){var date=null;with(el.calendar.date){date=new Date(getFullYear(),getMonth(),el.caldate);}
el.ttip=date.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}
el.calendar.tooltips.firstChild.data=el.ttip;}
if(el.navtype!=300){Calendar.addClass(el,"hilite");}
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");el.calendar.tooltips.firstChild.data=_TT["SEL_DATE"];stopEvent(ev);}};Calendar.cellClick=function(el){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}
cal.date.setDate(el.caldate);date=cal.date;newdate=true;}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}
date=(el.navtype==0)?new Date():new Date(cal.date);var year=date.getFullYear();var mon=date.getMonth();var setMonth=function(mon){var day=date.getDate();var max=date.getMonthDays();if(day>max){date.setDate(max);}
date.setMonth(mon);};switch(el.navtype){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<cal.maxYear){date.setFullYear(year+1);setMonth(0);}
break;case-2:if(year>cal.minYear){date.setFullYear(year-1);}
break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}
break;case 100:cal.setMondayFirst(!cal.mondayFirst);return;}
if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=el.navtype==0;}}
if(newdate){cal.callHandler();}
if(closing){Calendar.removeClass(el,"hilite");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 Date(this.dateStr):new Date();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";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;if(text.substr(0,1)!="&"){cell.appendChild(document.createTextNode(text));}
else{cell.innerHTML=text;}
return cell;};row=Calendar.createElement("tr",thead);row.className="headrow";hh("-",1,100).ttip=Calendar._TT["TOGGLE"];this.title=hh("",this.isPopup?5:6,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("X",1,200).ttip=Calendar._TT["CLOSE"];}
row=Calendar.createElement("tr",thead);row.className="headrow";hh("&#x00ab;",1,-2).ttip=Calendar._TT["PREV_YEAR"];hh("&#x2039;",1,-1).ttip=Calendar._TT["PREV_MONTH"];hh(Calendar._TT["TODAY"],3,0).ttip=Calendar._TT["GO_TODAY"];hh("&#x203a;",1,1).ttip=Calendar._TT["NEXT_MONTH"];hh("&#x00bb;",1,2).ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";this.daynames=row;for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);cell.appendChild(document.createTextNode(""));if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}
this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.appendChild(document.createTextNode(""));cell.calendar=this;Calendar._add_evs(cell);}}
var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],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;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className="label";mn.month=i;mn.appendChild(document.createTextNode(Calendar._MN3[i]));div.appendChild(mn);}
div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className="label";yr.appendChild(document.createTextNode(""));div.appendChild(yr);}
this._init(this.mondayFirst,this.date);parent.appendChild(this.element);};Calendar.prototype._init=function(mondayFirst,date){var today=new Date();var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}
this.mondayFirst=mondayFirst;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var wday=date.getDay();var MON=mondayFirst?1:0;var SAT=mondayFirst?5:6;var SUN=mondayFirst?6:0;if(mondayFirst){wday=(wday>0)?(wday-1):6;}
var iday=1;var row=this.tbody.firstChild;var MN=Calendar._MN3[month];var hasToday=((today.getFullYear()==year)&&(today.getMonth()==month));var todayDate=today.getDate();for(var i=0;i<6;++i){if(iday>no_days){row.className="emptyrow";row=row.nextSibling;continue;}
var cell=row.firstChild;row.className="daysrow";for(var j=0;j<7;++j){if((!i&&j<wday)||iday>no_days){cell.className="emptycell";cell=cell.nextSibling;continue;}
cell.firstChild.data=iday;cell.className="day";cell.disabled=false;if(typeof this.checkDisabled=="function"){date.setDate(iday);if(this.checkDisabled(date)){cell.className+=" disabled";cell.disabled=true;}}
if(!cell.disabled){cell.caldate=iday;cell.ttip="_";if(iday==mday){cell.className+=" selected";this.currentDateEl=cell;}
if(hasToday&&(iday==todayDate)){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}
if(wday==SAT||wday==SUN){cell.className+=" weekend";}}
++iday;((++wday)^7)||(wday=0);cell=cell.nextSibling;}
row=row.nextSibling;}
this.title.firstChild.data=Calendar._MN[month]+", "+year;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.mondayFirst,date);}};Calendar.prototype.setMondayFirst=function(mondayFirst){this._init(mondayFirst,this.date);this._displayWeekdays();};Calendar.prototype.setDisabledHandler=function(unaryFunction){this.checkDisabled=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;delete el;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar.prototype.show=function(){this.element.style.display="block";this.hideShowCovered();};Calendar.prototype.hide=function(){var trs=this.table.getElementsByTagName("td");for(var i=trs.length;i>0;){Calendar.removeClass(trs[--i],"hilite");}
this.element.style.display="none";};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){var p=Calendar.getAbsolutePos(el);this.showAt(p.x-100,p.y+el.offsetHeight);};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){var y=0;var m=-1;var d=0;var a=str.split(/\W+/);if(!fmt){fmt=this.dateFormat;}
var b=fmt.split(/\W+/);var i=0,j=0;for(i=0;i<a.length;++i){if(b[i]=="D"||b[i]=="DD"){continue;}
if(b[i]=="d"||b[i]=="dd"){d=a[i];}
if(b[i]=="m"||b[i]=="mm"){m=a[i]-1;}
if(b[i]=="y"){y=a[i];}
if(b[i]=="yy"){y=parseInt(a[i])+1900;}
if(b[i]=="M"||b[i]=="MM"){for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}}}
if(y!=0&&m!=-1&&d!=0){this.setDate(new Date(y,m,d));return;}
y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}
if(t!=-1){if(m!=-1){d=m+1;}
m=t;}}else if(parseInt(a[i])<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i])>31&&y==0){y=a[i];}else if(d==0){d=a[i];}}
if(y==0){var today=new Date();y=today.getFullYear();}
if(m!=-1&&d!=0){this.setDate(new Date(y,m,d));}};Calendar.prototype.hideShowCovered=function(){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((CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){cc.style.visibility="visible";}else{cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var MON=this.mondayFirst?0:1;var SUN=this.mondayFirst?6:0;var SAT=this.mondayFirst?5:6;var cell=this.daynames.firstChild;for(var i=0;i<7;++i){cell.className="day name";if(!i){cell.ttip=this.mondayFirst?Calendar._TT["SUN_FIRST"]:Calendar._TT["MON_FIRST"];cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}
if(i==SUN||i==SAT){Calendar.addClass(cell,"weekend");}
cell.firstChild.data=Calendar._DN3[i+1-MON];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}
this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}
var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseover",stopEvent);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.prototype.getMonthDays=function(){var year=this.getFullYear();var month=this.getMonth();if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate()));};Date.prototype.print=function(frm){var str=new String(frm);var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var w=this.getDay();var s=new Array();s["d"]=d;s["dd"]=(d<10)?("0"+d):d;s["m"]=1+m;s["mm"]=(m<9)?("0"+(1+m)):(1+m);s["y"]=y;s["yy"]=new String(y).substr(2,2);with(Calendar){s["D"]=_DN3[w];s["DD"]=_DN[w];s["M"]=_MN3[m];s["MM"]=_MN[m];}
var re=/(.*)(\W|^)(d|dd|m|mm|y|yy|MM|M|DD|D)(\W|$)(.*)/;while(re.exec(str)!=null){str=RegExp.$1+RegExp.$2+s[RegExp.$3]+RegExp.$4+RegExp.$5;}
return str;};function closeHandler(cal){cal.hide();Calendar.removeEvent(document,"mousedown",checkCalendar);}
function checkCalendar(ev){var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null;el=el.parentNode)
if(el==calendar.element||el.tagName=="A")break;if(el==null){calendar.callCloseHandler();Calendar.stopEvent(ev);}}
function showCalendar(id,format){var el=document.getElementById(id);if(calendar!=null){calendar.hide();}else{var cal=new Calendar(true,null,selected,closeHandler);calendar=cal;cal.setRange(1900,2070);cal.create();}
calendar.setDateFormat(format);calendar.setMondayFirst(0);calendar.parseDate(el.value);calendar.sel=el;calendar.showAtElement(el);Calendar.addEvent(document,"mousedown",checkCalendar);}
Calendar._DN=new Array
("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");Calendar._MN=new Array
("January","February","March","April","May","June","July","August","September","October","November","December");Calendar._TT={};Calendar._TT["TOGGLE"]="Toggle first day of week";Calendar._TT["PREV_YEAR"]="Prev. year (hold for menu)";Calendar._TT["PREV_MONTH"]="Prev. month (hold for menu)";Calendar._TT["GO_TODAY"]="Go Today";Calendar._TT["NEXT_MONTH"]="Next month (hold for menu)";Calendar._TT["NEXT_YEAR"]="Next year (hold for menu)";Calendar._TT["SEL_DATE"]="Select date";Calendar._TT["DRAG_TO_MOVE"]="Drag to move";Calendar._TT["PART_TODAY"]=" (today)";Calendar._TT["MON_FIRST"]="Display Monday first";Calendar._TT["SUN_FIRST"]="Display Sunday first";Calendar._TT["CLOSE"]="Close";Calendar._TT["TODAY"]="Today";Calendar._TT["DEF_DATE_FORMAT"]="mm-dd-yy";Calendar._TT["TT_DATE_FORMAT"]="D, M d";var calendar=null;var oldLink=null;function selected(cal,date){cal.sel.value=date;cal.sel.focus();if(cal.sel.id=="date"){cal.callCloseHandler();}}
function setDefaultDates(form){var d=new Date();var yyyy=d.getFullYear();var mm=d.getMonth();var dd=d.getDate();var maxDate;mm++;if(mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12){maxDate=31;}
else if(mm==4||mm==6||mm==9||mm==11){maxDate=30;}
else if(yyyy%4==0){maxDate=29;}
else{maxDate=28;}
dd+=14;if(dd>maxDate){mm++;dd-=maxDate;}
var d1=mm+"/"+dd+"/"+yyyy;form.d1.value=d1;dd+=3;if(dd>maxDate){mm++;dd-=maxDate;}
var d2=mm+"/"+dd+"/"+yyyy;form.d2.value=d2;}
function setDefaultDates_combo(form_a,form_b,form_c){var d=new Date();var yyyy=d.getFullYear();var mm=d.getMonth();var dd=d.getDate();var maxDate;mm++;if(mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12){maxDate=31;}
else if(mm==4||mm==6||mm==9||mm==11){maxDate=30;}
else if(yyyy%4==0){maxDate=29;}
else{maxDate=28;}
dd+=14;if(dd>maxDate){mm++;dd-=maxDate;}
var d1=mm+"/"+dd+"/"+yyyy;form_a.d1_a.value=d1;form_b.d1_b.value=d1;form_c.d1_c.value=d1;dd+=3;if(dd>maxDate){mm++;dd-=maxDate;}
var d2=mm+"/"+dd+"/"+yyyy;form_a.d2_a.value=d2;form_b.d2_b.value=d2;form_c.d2_c.value=d2;}
function isLinkShare(){try{lsn_click;return true;}catch(err){return false;}}
function submitLink(){if(isLinkShare()){linkshareLink();}else{simpleLink();}}
function getObjStyle(divId){var obj;if(document.getElementById)
{if(null==document.getElementById(divId)){return null;}
obj=document.getElementById(divId).style;}
else if(document.layers)
{obj=document.divId;}
else
{if(null==document.all.divId){return null;}
obj=document.all.divId.style;}
return obj;}
function getObj(objId){var obj;if(document.getElementById)
{obj=document.getElementById(objId);}
else if(document.layers)
{obj=document.objId;}
else
{obj=document.all.objId;}
return obj;}
function selectLayer(buttonObj){var cmpn=buttonObj.id.split('_');var num=cmpn[1];for(var j=1;j<=3;j++){var buttonName="btn_"+j;var button=getObj(buttonName);if(null!=button){button.className="btnOff";}
var divName="pane_"+j;var divObj=getObjStyle(divName);if(null!=divObj){divObj.visibility='hidden';divObj.display='none';}}
var button=getObj("btn_"+num);buttonObj.className="btnOn";var divObj=getObjStyle("pane_"+num);divObj.visibility='visible';divObj.display='inline';}
function showLayer(buttonObj){var cmpn=buttonObj.id.split('_');var num=cmpn[1];for(var j=1;j<=3;j++){var divName="pane_"+j;var divObj=getObjStyle(divName);if(null!=divObj){divObj.visibility='hidden';divObj.display='none';}}
var divObj=getObjStyle("pane_"+num);divObj.visibility='visible';divObj.display='inline';}
function submitForm(formName){var ai=document.forms[formName].ai;if((null==ai)||(null==ai.value)||""==ai.value){alert("Missing affiliate id form variable ai");return false;}
var s=s_gi(s_account);s.linkTrackVars='prop10';s.prop10='sds';if(formName=='flight'){void(s.tl(true,'o','Exit: MTG - Kayak Right Rail Widget - Flight'));return submitFlight(ai.value);}
else if(formName=='hotel'){void(s.tl(true,'o','Exit: MTG - Kayak Right Rail Widget - Hotel'));return submitHotel(ai.value);}
else if(formName=='car'){void(s.tl(true,'o','Exit: MTG - Kayak Right Rail Widget - Car'));return submitCar(ai.value);}
else{alert("Unknown form "+formName);return false;}}
function submitFlight(ai){var l1=document.forms['flight'].l1.value;if((null==l1)||(l1.length<3)){alert("Missing or Invalid Departure Airport");return false;}
var l2=document.forms['flight'].l2.value;if((null==l2)||(l2.length<3)){alert("Missing or Invalid Destination Airport");return false;}
var kayakUrl='http://www.kayak.com/s/search/air';if(isLinkShare()){linkshareSubmit('flight',kayakUrl);}else{simpleSubmit('flight',kayakUrl);}
return true;}
function submitHotel(ai){var l1=document.forms['hotel'].crc.value;if((null==l1)||(l1.length<=3)){alert("Missing or Invalid City.  Expecting something of form City,State or City,State,Country");return false;}
var kayakUrl='http://www.kayak.com/s/search/hotel';if(isLinkShare()){linkshareSubmit('hotel',kayakUrl);}else{simpleSubmit('hotel',kayakUrl);}
return true;}
function submitCar(ai){var l1=document.forms['car'].crc.value;if((null==l1)||(l1.length<3)){alert("Missing or Invalid City.  Expecting something of form City,State or City,State,Country");return false;}
var kayakUrl='http://www.kayak.com/s/search/car';if(isLinkShare()){linkshareSubmit('car',kayakUrl);}else{simpleSubmit('car',kayakUrl);}
return true;}
function simpleSubmit(fname,kayakUrl){var qstring=kayakUrl+"?";var argList="";for(i=0;i<document.forms[fname].elements.length;i++){if((null!=document.forms[fname])&&(null!=document.forms[fname].elements[i])&&(""!=document.forms[fname].elements[i].name)&&(""!=document.forms[fname].elements[i].value)){argList=argList+'&'+document.forms[fname].elements[i].name+'='+
escape(document.forms[fname].elements[i].value);}}
if(argList.match(/\//g)){argList=argList.replace(/\//g,"%2F");}
qstring=qstring+argList;if(qstring.match(/\?\&/g)){qstring=qstring.replace(/\?\&/g,"?");}
openWindow(qstring);}
function simpleLink(){var kayakUrl="http://kayak.com";openWindow(kayakUrl);}
function linkshareLink(){var kayakUrl="http://kayak.com";var qstring=kayakUrl;var lsn_search_url=lsn_click+'&tmpid=2304&RD_PARM1=';if(qstring.match(/\?\&/g)){qstring=qstring.replace(/\?\&/g,"?");}
qstring=escape(escape(qstring));openWindow(lsn_search_url+qstring);}
function linkshareSubmit(fname,kayakUrl){var qstring=kayakUrl+"?";for(i=0;i<document.forms[fname].elements.length;i++){if((null!=document.forms[fname])&&(null!=document.forms[fname].elements[i])&&(""!=document.forms[fname].elements[i].name)&&(""!=document.forms[fname].elements[i].value)){qstring=qstring+'&'+document.forms[fname].elements[i].name+'='+
document.forms[fname].elements[i].value;}}
if(qstring.match(/\?\&/g)){qstring=qstring.replace(/\?\&/g,"?");}
qstring=escape(escape(qstring));var lsn_search_url=lsn_click+'&tmpid=2304&RD_PARM1=';var finalUrl=lsn_search_url+qstring;openWindow(finalUrl);}
function openWindow(url){window.open(url);}
function compareDates(date1,date2){if(date1==null||date2==null){return false;}
if(date1.getFullYear()<date2.getFullYear()||(date1.getFullYear()==date2.getFullYear()&&(date1.getMonth()<date2.getMonth()||(date1.getMonth()==date2.getMonth()&&(date1.getDate()<date2.getDate()))))){return false;}
else{return true;}}
function Action_Thread(action,iterations,waitTime,runStart)
{this._threadId=null;this._waitValue=10;this._thread=null;this._action='';this._iterations=1;this._incIterations=0;this.__construct(action,iterations,waitTime,runStart);}
Action_Thread._threads=new Array();Action_Thread._threadInc=0;Action_Thread.prototype.__construct=function(action,iterations,waitTime,runStart)
{this._threadId=++Action_Thread._threadInc;Action_Thread._threads[this._threadId]=this;this._action=action;if(typeof iterations!='undefined')
{this._iterations=iterations;}
if(typeof waitTime!='undefined')
{this._waitValue=waitTime;}
if(runStart==true)
{this.run();}}
Action_Thread.prototype.setWait=function(waitValue)
{this._waitValue=(waitValue>0?waitValue:this._waitValue);}
Action_Thread.prototype.setIterations=function(iterations)
{this._iterations=(iterations>0?iterations:this.iterations);}
Action_Thread.prototype.run=function()
{if(this._thread==null)
{this._incIterations=0;this._thread=setInterval(this._buildAction(),this._waitValue);return true;}
return false;}
Action_Thread.prototype._buildAction=function()
{var actionPrefix='';var actionSuffix='';if(this._iterations>0)
{actionPrefix='if(Action_Thread._threads['+this._threadId+']._incIteration()){ ';actionSuffix=' }';}
return actionPrefix+this._action+actionSuffix;}
Action_Thread.prototype._incIteration=function()
{if(this._iterations==0)
{return true;}
++this._incIterations;if(this._incIterations>this._iterations)
{this.kill();return false;}
return true;}
Action_Thread.prototype.kill=function()
{clearInterval(this._thread);this._thread=null;}