function EKFadeAnim(A,B)
{
this.opacity=0;
this.interval=10;
this.increment=25;
this.elementStyle=A.style;
if(B)
{
this.relatedStyle=B.style
}
this.timer=null
}
EKFadeAnim.prototype.setOpacity=function(A,B)
{
if(B==0)
{
A.visibility="hidden"
}
else
{
A.visibility="visible"
}
A.opacity=(B/100);
A.MozOpacity=(B/100);
A.KhtmlOpacity=(B/100);
A.filter="alpha(opacity="+B+")"};
EKFadeAnim.prototype.stop=function()
{
if(this.opacity>0)
{
this.setOpacity(this.elementStyle,100);
if(this.relatedStyle)
{
this.setOpacity(this.relatedStyle,100)
}
}
};
EKFadeAnim.prototype.fadeIn=function()
{
if(this.timer==null)
{
this.opacity=0;
var A=this;
this.timer=window.setInterval(function(){A.fadeInTimer()},this.interval)}};
EKFadeAnim.prototype.fadeInTimer=function()
{
if(this.opacity<100)
{
this.opacity=this.opacity+this.increment;
this.setOpacity(this.elementStyle,this.opacity);
if(this.relatedStyle)
{
this.setOpacity(this.relatedStyle,this.opacity)
}
}
else
{
window.clearInterval(this.timer);
this.timer=null
}
};
EKFadeAnim.prototype.fadeOut=function()
{
if(this.timer==null)
{
this.opacity=100;
var A=this;this.timer=window.setInterval(function(){A.fadeOutTimer()},this.interval)}};
EKFadeAnim.prototype.fadeOutTimer=function()
{
if(this.opacity>0)
{
this.opacity=this.opacity-this.increment;
this.setOpacity(this.elementStyle,this.opacity);
if(this.relatedStyle)
{
this.setOpacity(this.relatedStyle,this.opacity)
}
}
else
{
window.clearInterval(this.timer);
this.timer=null
}
};

function EKCalendar()
{

this.Config=function()
{
};
this.Config.imagePath="Images/calendar/"; 
this.Config.calendarImages=["left.gif","right.gif","close.gif","left_off.gif","right_off.gif"];
this.Config.maxScreen=960;
this.Config.txtClose="Close";
this.Config.txtPrevMonth="Previous month";
this.Config.txtNextMonth="Next month";
this.Config.monthLong=["January","February","March","April","May","June","July","August","September","October","November","December"];
this.Config.monthShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
this.Config.dayShort=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
this.Config.firstDay=0;this.Config.monthDays=[31,28,31,30,31,30,31,31,30,31,30,31];
this.Config.dateFormat="dd-MMM-yy";
this.Config.dateFormatTitle="MMMM, yyyy";
this.Config.templateHTML="<div id='calendarLeft' class='calendarContent'><table cellspacing='0' cellpadding='0' border='0' ID='Table1'><thead><tr class='topBar'><td onclick='EKCalendar.switchMonth();' id='prevMonth' class='arrowLeft'></td><td id='monthLeft' class='borderRight' colspan='6'></td></tr><tr id='daysLeft' class='daysBar'><th class='borderLeft'></th><th></th><th></th><th></th><th></th><th></th><th class='borderRight'></th></tr></thead><tbody id='dataLeft'><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table></div><div id='calendarRight' class='calendarContent calendarContentRight'><table cellspacing='0' cellpadding='0' border='0' ID='Table2'><thead><tr class='topBar'><td id='monthRight' class='borderLeft' colspan='6'></td><td onclick='EKCalendar.switchMonth();' id='nextMonth' class='arrowRight' /></tr><tr id='daysRight' class='daysBar'><th class='borderLeft'></th><th></th><th></th><th></th><th></th><th></th><th class='borderRight'></th></tr></thead><tbody id='dataRight'><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table></div><div class='footercal'><div class='footerRight'><a onclick='EKCalendar.closeCalendar();' id='closeBtn' style='cursor:pointer'></a></div></div>"
}
EKCalendar.prototype.stringFill=function(C,B)
{
var A="";
for(;;)
{
if(B&1)
{
A+=C
}
B>>=1;

if(B)
{
C+=C
}
else
{
break
}
}
return A
};
EKCalendar.prototype.padLeft=function(D,B,A)
{
var C=D+"";
while(C.length<A)
{
C=B+C
}
return C
};

EKCalendar.prototype.isNumeric=function(C)
{
var A,B,E,D,F;
A="0123456789";
B=true;

for(D=0,F=C.length;D<F && B==true;D++)
{
E=C.charAt(D);
if(A.indexOf(E)==-1)
{
B=false
}
}
return B
};

EKCalendar.prototype.findPos=function(A){var B=function(){};
B.x=0;
B.y=0;

while(A.offsetParent)
{
B.x+=A.offsetLeft;
B.y+=A.offsetTop;
A=A.offsetParent
}
return B
};
EKCalendar.prototype.getWindowSize=function()
{
var A=function(){};
A.width=0;A.height=0;
if(typeof (window.innerWidth)=="number")
{
A.width=window.innerWidth;
A.height=window.innerHeight
}
else
{
if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
{
A.width=document.documentElement.clientWidth;
A.height=document.documentElement.clientHeight
}
else
{
if(document.body&&(document.body.clientWidth||document.body.clientHeight))
{
A.width=document.body.clientWidth;
A.height=document.body.clientHeight
}
}
}
return A
};
EKCalendar.prototype.getScrollPosition=function()
{
var A=function(){};
A.x=0;
A.y=0;
if(typeof (window.pageYOffset)=="number")
{
A.x=window.pageXOffset;
A.y=window.pageYOffset
}
else
{
if(document.body&&(document.body.scrollLeft||document.body.scrollTop))
{A.x=document.body.scrollLeft;A.y=document.body.scrollTop
}
else
{
if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop))
{
A.x=document.documentElement.scrollLeft;
A.y=document.documentElement.scrollTop
}
}
}
return A
};

EKCalendar.prototype.leapYear=function(A)
{
return((A%400)===0||((A%4)===0&&(A%100)!==0))};
EKCalendar.prototype.resolveMonth=function(C,B)
{
for(var A=0;A<C.length;A++)
{
if(B.indexOf(C[A])!=-1)
{
return A
}
}
return -1
};

EKCalendar.prototype.cleanMonth=function(C,B)
{
for(var A=0;A<C.length;A++)
{
if(B.indexOf(C[A])!=-1)
{
return B.replace(C[A],this.stringFill("M",C[A].length))
}
}
return B};
EKCalendar.prototype.addMonth=function(B,C)
{
var A=new Date(B.getTime());
A.setDate(1);
if(!C)
{
if(A.getMonth()===0)
{
A.setYear(A.getFullYear()-1);
A.setMonth(11)
}
else
{
A.setMonth(A.getMonth()-1)
}
}
else
{
if(A.getMonth()==11)
{
A.setYear(A.getFullYear()+1);
A.setMonth(0)
}
else
{
A.setMonth(A.getMonth()+1)
}
}
return A
};


EKCalendar.prototype.formatDate=function(D,C)
{
var B=false;
var H=-1;
var G="";
var E=C+" ";
var I=E.split("");
for(var F=0;F<I.length;F++)
{
if(F>0&&(I[F-1]!=I[F])&&!B)
{
H++;
switch(I[F-1])
{
case"d":switch(H)
{
    case 1:G=G+D.getDate();
    break;

    case 2:G=G+this.padLeft(D.getDate(),"0",2);
    break;
}
break;

case"M":switch(H)
{
    case 1:G=G+(D.getMonth()+1);
    break;

    case 2:G=G+this.padLeft(D.getMonth()+1,"0",2);
    break;

    case 3:G=G+this.Config.monthShort[D.getMonth()];
    break;

    case 4:G=G+this.Config.monthLong[D.getMonth()];
    break;
}
break;

case"y":
var A=D.getFullYear()+"";
switch(H)
{
    case 1:if(A.substr(3,1)!="0")
    {
    G=G+A.substr(3,1)
    }
    else
    {
    G=G+A.substr(2,2)
    }
    break;

    case 2:G=G+A.substr(2,2);
    break;

    default:G=G+A;
    break;
}
    break;
    case"\\":G=G+I[F];B=true;
    break;

default:for(j=0;j<H;j++)
{
G=G+I[F-1]
}
break
}
H=0
}
else
{
H++;B=false
}
}
return G
};

EKCalendar.prototype.parseDate=function(D,B)
{
var A=false;
var K=-1;
var I=0;
var J="";
var F=B+" ";
var N=F.split("");
var G=this.startDate.getDate();
var M=this.startDate.getMonth();
var O=this.startDate.getFullYear();
var E=D;
if(B.indexOf("MMMM")!=-1)
{
E=this.cleanMonth(this.Config.monthLong,D)
}
if(B.indexOf("MMM")!=-1){E=this.cleanMonth(this.Config.monthShort,D)
}
for(var H=0,C=N.length;H<C;H++)
{
if(H>0&&(N[H-1]!=N[H])&&!A)
{
K++;switch(N[H-1])
{
case"d":switch(K)
{
case 1:if(this.isNumeric(E.substr(H+I-1,2)))
{
G=parseFloat(E.substr(H+I-1,2));
I++
}
else
{
G=parseFloat(E.substr(H+I-1,1))
}
break;
default:G=parseFloat(E.substr(H+I-K,K))
}
break;
case"M":switch(K)
{
case 1:if(this.isNumeric(E.substr(H+I-1,2)))
{
M=parseFloat(E.substr(H+I-1,2));I++
}
else
{
M=parseFloat(E.substr(H+I-1,1))
}
M--;
break;
case 2:M=parseFloat(E.substr(H-2,2));
M--;
break;
case 3:M=this.resolveMonth(this.Config.monthShort,D);
if(M!=-1)
{
I=I+this.Config.monthShort[M].length-3
}
break;
case 4:M=this.resolveMonth(this.Config.monthLong,D);
if(M!=-1)
{I=I+this.Config.monthShort[M].length-3}
break
}
break;
case"y":O=parseFloat(E.substr(H+I-K,K));
if(O<100){O=O+2000}
break;
case"\\":A=true;
break
}
K=0
}
else
{
K++;A=false
}
}
try
{
var P=new Date(O,M,G);

if(P.getFullYear()==O&&P.getMonth()==M&&P.getDate()==G)
{
if(P<this.startDate)
{
P.setTime(this.startDate.getTime())
}
if(P>this.endDate)
{P.setTime(this.endDate.getTime());
P.setDate(1)}
return P;
}
}
catch(L)
{return this.startDate}
return this.startDate};

EKCalendar.prototype.preloadImages=function()
{
if(document.images)
{
for(var B=0;B<this.Config.calendarImages.length;B++)
{
//this.Config.imagePath = "/System/Images/calendar/";
var A=new Image(1,1);
A.src=this.Config.imagePath + this.Config.calendarImages[B]
}
}
};
EKCalendar.prototype.initialize=function()
{
var IE6=false/*@cc_on || @_jscript_version < 5.7 @*/;
this.iframe=null;
if(IE6)
{
this.iframe=document.createElement("IFRAME");
this.iframe.className="calendar";
document.body.appendChild(this.iframe)
}
this.calendarDiv=document.createElement("DIV");
this.calendarDiv.id="calendarDiv";
this.calendarDiv.onselectstart=function()
{
return false
};
this.calendarDiv.onmousedown=function()
{
return false
};
var oThis=this;
this.oldKeyDown=document.onkeydown;document.onkeydown=function(oEvent)
{oEvent=oEvent||window.event;
return oThis.handleKeyDown(oEvent)};
this.oldMouseDown=document.onmousedown;
document.onmousedown=function(oEvent)
{oEvent=oEvent||window.event;return oThis.handleMouseDown(oEvent)
};
this.calendarDiv.style.zIndex=-1000;
document.body.appendChild(this.calendarDiv);
this.calendarDiv.innerHTML=this.Config.templateHTML;
if(this.iframe)
{
this.fade=new EKFadeAnim(this.calendarDiv,this.iframe)
}
else
{
this.fade=new EKFadeAnim(this.calendarDiv,null)
}
this.parseTemplate(); 
this.refreshData()};
EKCalendar.prototype.handleKeyDown=function(A)
{
if(A.keyCode==27)
{
this.closeCalendar()
}
if(this.oldKeyDown)
{
return this.oldKeyDown(A)
}
};
EKCalendar.prototype.handleMouseDown=function(B)
{
var A=B.target||B.srcElement;
bInCalendar=false;
while(A){if(A==this.calendarDiv||A==this.returnDateTo)
{
bInCalendar=true}A=A.parentNode
}
if(!bInCalendar){this.closeCalendar()}
if(this.oldMouseDown)
{
return this.oldMouseDown(B)
}
return true
};
EKCalendar.prototype.parseTemplate=function()
{

this.calendarLeft=document.getElementById("calendarLeft");
this.calendarRight=document.getElementById("calendarRight");
this.monthLeft=document.getElementById("monthLeft");
this.monthRight=document.getElementById("monthRight");
this.prevMonth=document.getElementById("prevMonth");
this.nextMonth=document.getElementById("nextMonth");
this.dataLeft=document.getElementById("dataLeft");
this.dataRight=document.getElementById("dataRight");
var C=document.getElementById("daysLeft");

for(var B=0;B<this.Config.dayShort.length;B++)
{
C.cells[B].innerHTML=this.Config.dayShort[B]
}
var A=document.getElementById("daysRight");

for(var B=0;B<this.Config.dayShort.length;B++)
{
A.cells[B].innerHTML=this.Config.dayShort[B]
}
var D=document.getElementById("closeBtn");
D.innerHTML=this.Config.txtClose;
D.title=this.Config.txtClose;
this.prevMonth.title=this.Config.txtPrevMonth;
this.nextMonth.title=this.Config.txtNextMonth
};
EKCalendar.prototype.switchMonth=function(B)
{
var A=B.target||B.srcElement;
var C=this.outputDate.getFullYear();
this.outputDate=this.addMonth(this.outputDate,A.id.indexOf("next")>=0);
this.refreshData();
return false
};
EKCalendar.prototype.updateButtons=function()
{
var B=this;
var C=this.prevMonth;
var A=this.nextMonth;
if((this.outputDate.getFullYear()<=this.startDate.getFullYear())&& this.outputDate.getMonth() <= this.startDate.getMonth())
{
C.className="arrowLeftDisabled";
C.onclick=null;
C.title=""
}
else
{
C.className="arrowLeft";
C.onclick=function(D)
{
D=D||window.event;
return B.switchMonth(D)
};
C.title=this.Config.txtPrevMonth
}
if(this.outputDate.getFullYear()>=this.endDate.getFullYear()&&this.outputDate.getMonth()>=(this.endDate.getMonth()-1))
{
A.className="arrowRightDisabled";
A.onclick=null;
A.title=""
}
else
{
A.className="arrowRight";
A.onclick=function(D)
{D=D||window.event;return B.switchMonth(D)
};
A.title=this.Config.txtNextMonth
}
};
EKCalendar.prototype.highlightDay=function()
{
switch(this.className)
{
case"activeDay":this.className="activeDayOver";
break;
case"activeDayOver":this.className="activeDay";
break;
case"Day":this.className="DayOver";
break;
case"DayOver":this.className="Day";
break
}};
EKCalendar.prototype.refreshData=function()
{
if(this.outputDate.getFullYear()==this.endDate.getFullYear()&&this.outputDate.getMonth()==this.endDate.getMonth())
{
this.writeCalendarContent(this.addMonth(this.outputDate,false),this.monthLeft,this.dataLeft);
this.writeCalendarContent(this.outputDate,this.monthRight,this.dataRight)
}
else
{
this.writeCalendarContent(this.outputDate,this.monthLeft,this.dataLeft);
this.writeCalendarContent(this.addMonth(this.outputDate,true),this.monthRight,this.dataRight)
}
this.resizeContent();
this.updateButtons()
};

EKCalendar.prototype.writeCalendarContent=function(B,L,D)
{
var G=this;
if(this.calendarLeft.style.removeProperty)
{
this.calendarLeft.style.removeProperty("height");
this.calendarRight.style.removeProperty("height")
}
else
{
this.calendarLeft.style.removeAttribute("height");
this.calendarRight.style.removeAttribute("height")
}
L.innerHTML=this.formatDate(B,this.Config.dateFormatTitle);
var M=new Array();
var K=new Date();
K.setTime(B.getTime());
K.setDate(1);
var E=K.getDay();
E=(7-(this.Config.firstDay-E))%7;
var A=this.Config.monthDays[B.getMonth()];
if(A==28)
{
if(this.leapYear(B.getFullYear()))
{
A=29
}
}
var J=0;
var I=1;
var C=A;
if(B.getFullYear()<=this.startDate.getFullYear()&&B.getMonth()<=this.startDate.getMonth())
{I=this.startDate.getDate()}
if(B.getFullYear()>=this.endDate.getFullYear()&&B.getMonth()>=this.endDate.getMonth())
{
C=this.endDate.getDate()
}
if(B.getFullYear()==this.inputDate.getFullYear()&&B.getMonth()==this.inputDate.getMonth())
{
J=this.inputDate.getDate()
}
for(i=0;i<D.rows.length*7;i++)
{
var H=D.rows[parseInt(i/7)].cells[i%7];
var F=i-E+1;if(i<E||F>A)
{
H.id="";
H.className="inActiveDay";
H.innerHTML="";
H.onmouseover=null;
H.onmouseout=null;
H.onclick=null
}
else
{
H.id="day-"+F+"-"+B.getMonth()+"-"+B.getFullYear();
H.innerHTML=F;
H.className="inActiveDay";
if(F>=I&&F<=C)
{
H.onmouseover=this.highlightDay;
H.onmouseout=this.highlightDay;
H.onclick=function(N)
{
N=N||window.event;
return G.pickDate(N)
};
if(F==J)
{
H.className="activeDay"
}
else
{
H.className="Day"
}
}
//START CUGO ENHANCEMENT  
   if(this.returnDateTo!=null && this.returnDateTo.id =='ctl00_c_CtrlCUGOWgt_txtDepartDate')
    {   
        var arrCugoDate = MM_findObj("ctl00_c_hdnCugoDate").value;
        var arrRange = arrCugoDate.split('~');                
        var dateStart = null;        
        var dateEnd  = null; 
         
        if (arrCugoDate != '')
        {
            H.className="inActiveDay";                                    
            for(var zi=0;zi<arrRange.length-1;zi++)
            {
                 var arrDates = arrRange[zi].split('|');  
                 dateStart = GetMeDateFromFormat(arrDates[0],true);
                 dateEnd = GetMeDateFromFormat(arrDates[1],true);  
                 var Hdate = H.id.replace('day-','');                          
                 Hdate = GetMeDateFromFormat(Hdate,false);             
                 if(Hdate >= dateStart && Hdate <= dateEnd)
                 {
                    if(F==J) 
                    {
                        H.className="activeDay"                
                    }
                    else
                    {
                        H.className="Day"                
                    }     
                 }            
            }
            
            //
            if (H.className=="inActiveDay")
            {
                H.onmouseover=null;
                H.onmouseout=null;
                H.onclick=null;
            }
            //
            
        }
    }
    //END CUGO ENHANCEMENT
}
}
if(A+E>5*7)
{
D.rows[D.rows.length-1].style.display=""
}
else
{
D.rows[D.rows.length-1].style.display="none"}
};


EKCalendar.prototype.resizeContent=function()
{
if(this.calendarRight.offsetHeight>this.calendarLeft.offsetHeight)
{
this.calendarLeft.style.height=(this.calendarRight.offsetHeight+4)+"px"
}
else
{
this.calendarLeft.style.height=(this.calendarLeft.offsetHeight+4)+"px"
}
if(this.iframe)
{
var B=parseFloat(this.calendarDiv.currentStyle.borderWidth);
if(!isNaN(B))
{
this.iframe.style.width= (this.calendarDiv.clientWidth-(2*B))+"px";
this.iframe.style.height=(this.calendarDiv.clientHeight+(2*B))+"px"
}
else
{
this.iframe.style.width=this.calendarDiv.clientWidth+"px";
this.iframe.style.height=this.calendarDiv.clientHeight+"px"

}
}
if(this.returnDateTo)
{
var G=this.findPos(this.returnDateTo);
var A=this.getScrollPosition();
var D=this.getWindowSize();
var F=G.x;
var C=G.y+this.returnDateTo.offsetHeight+2;
var E=this.calendarDiv;
if((E.offsetHeight+C)>(A.y+D.height))
{
window.scrollTo(A.x,A.y+(E.offsetHeight+C)-(A.y+D.height)+25)
}
}
};
EKCalendar.prototype.positionCalendar=function(D)
{
var G=this.findPos(this.returnDateTo);
var A=this.getScrollPosition();
var C=this.getWindowSize();
var F=G.x;
var B=G.y+this.returnDateTo.offsetHeight+2;
var E=this.calendarDiv;
if((E.offsetHeight+B)>(A.y+C.height+4))
{
window.scrollTo(A.x,A.y+(E.offsetHeight+B)-(A.y+C.height)+25)
}
if(this.Config.maxScreen!==0&&C.width>this.Config.maxScreen)
{
C.width=this.Config.maxScreen+(document.body.clientWidth-this.Config.maxScreen)/2
}
if((E.offsetWidth+F+20)>(A.x+C.width))
{
F=G.x+this.returnDateTo.offsetWidth-E.offsetWidth
}
this.calendarDiv.style.left=F+D+"px";
this.calendarDiv.style.top=B+"px";
if(this.iframe)
{
this.iframe.style.left=this.calendarDiv.style.left;
this.iframe.style.top=this.calendarDiv.style.top
}
};
EKCalendar.prototype.pickDate=function(B)
{
//Added by rajeev Since its not recognising the control passed from the code behind file START
this.dependentField = document.getElementById('ctl00_c_CtWNW_txtarrivaldate');
this.dependentDaysDiff = '7';
//Added by rajeev Since its not recognising the control passed from the code behind file END

var A=B.target||B.srcElement;
var C=A.id.split("-");
this.outputDate.setDate(1);
this.outputDate.setYear(C[3]);
this.outputDate.setMonth(C[2]);
this.outputDate.setDate(C[1]);
//Sandesh. Tradition date format implementation starts here 
this.returnDateTo.value=this.formatDate(this.outputDate,this.Config.dateFormat); 
var txtDateObj = document.getElementById('ctl00_c_CtWNW_hdnTxtField');
var txtCUGODateObj = document.getElementById('ctl00$c$CtrlCUGOWgt$hdnTxtField');
var txtSrchFltDateObj = document.getElementById('ctl00$c$CtrlSrchFlWgt$hdnTxtField');
//
if(txtDateObj != null)
 {
      this.returnDateTo.value = this.formatDate(this.outputDate,txtDateObj.value);
 }
 else if(txtCUGODateObj != null)
 {
    this.returnDateTo.value = this.formatDate(this.outputDate,txtCUGODateObj.value);
 }
 else if(txtSrchFltDateObj != null)
 {
    this.returnDateTo.value = this.formatDate(this.outputDate,txtSrchFltDateObj.value);
 }
//Sandesh. Tradition date format implementation ends here

if(this.dependentDateTo && this.dependentDaysDiff)
{
//this.outputDate.setDate(this.outputDate.getDate()+ this.dependentDaysDiff); Commented by rajeev

this.outputDate.setDate(this.outputDate.getDate()+ 7); // Added by rajeev Repalced this line of code instead of above line of code since this.dependentDaysDiff is not recognised.

if(this.outputDate > this.endDate)
{
this.outputDate.setDate(this.endDate.getDate())
}
if(this.outputDate < this.startDate)
{
this.outputDate.setDate(this.startDate.getDate())
}
this.dependentDateTo.value=this.formatDate(this.outputDate,this.Config.dateFormat) 
//Sandesh. Tradition date format implementation starts here
if(txtDateObj != null)
 {
    this.dependentDateTo.value = this.formatDate(this.outputDate,txtDateObj.value)
 }
else if(txtCUGODateObj != null)
 {
    this.dependentDateTo.value = this.formatDate(this.outputDate,txtCUGODateObj.value)
 }
 else if(txtSrchFltDateObj != null)
 {
    this.dependentDateTo.value = this.formatDate(this.outputDate,txtSrchFltDateObj.value)
 }
//Sandesh. Tradition date format implementation ends here
}
this.closeCalendar()
};
EKCalendar.prototype.display=function(B,A,E,D,G,F)
{
if(!this.Config)
{
 return 
}

if(typeof D=="undefined"){D=null}
if(typeof G=="undefined"){G=null}
if(typeof F=="undefined"){F=0}
this.startDate=new Date(A.getTime());
this.endDate=new Date(E.getTime());
if(D&&!G&&D.value)
{
this.startDate=this.parseDate(D.value,this.Config.dateFormat)
}
if(B&&B.tagName=="INPUT")
{
this.inputDate=this.parseDate(B.value,this.Config.dateFormat);
this.outputDate=new Date(this.inputDate.getTime())
}
else
{
return 
}
if(B.style.display=="none"||B.disabled=="true"){return }
if(!this.calendarDiv)
{
this.initialize()
}
this.returnDateTo=B;
this.dependentDateTo=D;
this.dependentDaysDiff=G;
var C=this.calendarDiv.style.visibility=="visible";
this.calendarDiv.style.zIndex=-1000;
this.calendarDiv.style.visibility="visible";
this.refreshData();
this.positionCalendar(F);
if(!C){this.calendarDiv.style.visibility="hidden"}
this.calendarDiv.style.zIndex=1000;
if(!C){this.fade.fadeIn()}};
EKCalendar.prototype.closeCalendar=function()
{
//alert('empty');

if(this.calendarDiv)
{
if(this.calendarDiv.style.visibility=="visible")
{
this.fade.fadeOut()
}
}
return false;
};
var EKCalendar=new EKCalendar();

//---------------------------------------------------------------------------------------======================

function GetReqDate(dDate,sInterval, iNum)
{
    var dTemp = new Date(dDate);
     
    if (!sInterval || iNum == 0) return dTemp;
    switch(sInterval.toLowerCase())
    {
        case "ms":
            dTemp.setMilliseconds(dTemp.getMilliseconds() + iNum);
            break;
        case "s":
            dTemp.setSeconds(dTemp.getSeconds() + iNum);
            break;
        case "mi":
            dTemp.setMinutes(dTemp.getMinutes() + iNum);
            break;
        case "h":
            dTemp.setHours(dTemp.getHours() + iNum);
            break;
        case "d":
            dTemp.setDate(dTemp.getDate() + iNum);
            break;
        case "mo":
            dTemp.setMonth(dTemp.getMonth() + iNum);
            break;
        case "y":
            dTemp.setFullYear(dTemp.getFullYear() + iNum);
            break;
    }
    return dTemp;
}
function uDateAddGlobal(dt,lCode,sInterval,iNum)
{
    var intIndx = -1;
    var dtArr;
    intIndx = dt.indexOf('-');
    if(intIndx != -1)
    {
        dtArr = dt.split("-");
    }
    else
    {
        dtArr = dt.split(" ");
    }
   
	currentMonth = dtArr[1];//getting month from parameter dt.
	for(var i=0;i<12;i++)
	{
	   if(currentMonth.toLowerCase() == monthArrayShort[i].toLowerCase())
	    {
	        currentMonth=i;
	        break;
	    }
	}
	if(dtArr[2].length == 2)
	 {
	    currentYear = '20' + dtArr[2];//getting the year
	 }
	 else
	 {
	     currentYear = dtArr[2];
	 }
	
    tmpDay = dtArr[0];//getting days of the month
    dt1=new Date(currentYear,currentMonth,tmpDay);
    dt1=GetReqDate(dt1,sInterval,iNum);
    languageCode=lCode;
    // split into day, month, year
    iDay = dt1.getDate();
    if (iDay<10) iDay='0'+iDay;
    iMonth = dt1.getMonth();
    iYear = dt1.getFullYear();
    a=iYear+"";
    return (iDay+" "+monthArrayShort[iMonth]+" "+a.substring(2,4));
}
function uDateAdd(dt,format,lCode,sInterval,iNum)
{
    if (dt.length<format.length) 
        ndt="0"+dt;
    else
        ndt=dt;    
    var monthPos = format.indexOf('mmm');
	currentMonth = ndt.substr(monthPos,3).toLowerCase();
	for(var i=0;i<12;i++)
	{
	    if(currentMonth == monthArrayShort[i].toLowerCase())
	    {
	        currentMonth=i;
	        break;
	    }
	}
	var yearPos = format.indexOf('yy');
	currentYear = '20' + ndt.substr(yearPos,2);	
	var dayPos = format.indexOf('dd');
	tmpDay = ndt.substr(dayPos,2);	
    dt1=new Date(currentYear,currentMonth,tmpDay);
    dt1=GetReqDate(dt1,sInterval,iNum);
    languageCode=lCode;
    // split into day, month, year
    iDay = dt1.getDate();
    if (iDay<10) iDay='0'+iDay;
    iMonth = dt1.getMonth();
    iYear = dt1.getFullYear();
    a=iYear+"";
    return (iDay+"-"+monthArrayShort[iMonth]+"-"+a.substring(2,4));
}

var pathToImages = '../Images/calendar/';	// Relative to your HTML file
var calendarDiv = false;

var returnFormat;
var activeSelectBoxMonth;
var activeSelectBoxYear;
var iframeObj = false;

function closeCalendar()
{   if(calendarDiv)
    {
	    MM_findObj('yearDropDown').style.display='none';
	    MM_findObj('monthDropDown').style.display='none';
	    calendarDiv.style.display='none';
	}
	if(iframeObj)iframeObj.style.display='none';
	if(activeSelectBoxMonth)activeSelectBoxMonth.className='';
	if(activeSelectBoxYear)activeSelectBoxYear.className='';
}

//----------------------------------------------
//START CUGO ENHANCEMENT
function GetMeDateFromFormat(dateString, isDecrementMonth)
{   
    var count = 0;
    var st = '';
    var day = '';
    var mon = '';
    var year = '';
    
    for(var i=0;i<10/*dateString.length*/;i++)
    {
        if(dateString.charAt(i) == '-')
        {
            count = count + 1;
            if(count == 1)
                day = st;
            if(count == 2)
                mon = st;
            st = '';    
        }
        else
        {
            st = st + dateString.charAt(i);        
        }    
    }
    year = st;
    if(isDecrementMonth)
    {
        mon = mon - 1;    
    }
    
    return new Date(year, mon, day);//(mon + '-' + day + '-' + year);
}
//END CUGO ENHANCEMENT

