var calendar_id					=	"";	//div id where calender should be print;
var cal_body_style				=	"calmain";
var cal_header_style			=	"month";
var cal_week_style				=	"daysofweek";
var cal_available_day_style		=	"available_days";
var cal_unavailable_day_style	=	"unavailable_days";
var cal_pre_day_style			=	"pre_days";
var cal_booked_style			=	"cal_booked_style";
var cal_pause_style				=	"cal_pause_style";
var show_date_id				=	"";
var cal_border_style			=	1;
var previous_day_active			=	false;

function buildCal(m, y)
{

	var YEARS=['January','February','March','April','May','June','July','August','September','October','November','December'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	
	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st	
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st	
	
	//var todaydate=new Date() //DD added
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
	
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	
	/*cal_html='<div align="center" class="'+cal_body_style+'"><table class="'+cal_body_style+'" cols="7" cellpadding="0" border="'+cal_border_style+'" cellspacing="0"><tr align="center">';
	cal_html+='<td colspan="7" align="center" class="'+cal_header_style+'"><a onclick="pre_month('+m+', '+y+')"> &lt; </a>'+YEARS[m-1]+' <a onclick="nex_month('+m+', '+y+')"> &gt; </a> - <a onclick="pre_year('+m+', '+y+')"> &lt; </a>'+y+' <a onclick="nex_year('+m+', '+y+')"> &gt; </a></td></tr><tr align="center">';*/
	cal_html='<div align="center" class="'+cal_body_style+'"><table class="'+cal_body_style+'" cols="7" cellpadding="0" border="'+cal_border_style+'" cellspacing="0"><tr align="center">';
	
	cal_html += '<td colspan="7" align="center" class="'+cal_header_style+'">';
	cal_html += 	'<table class="'+cal_header_style+'" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
	cal_html += 		'<td width="15" align="center"><a onclick="pre_month('+m+', '+y+')" style="cursor:pointer;"> <img src="images/calendar/leftarrow.gif" border="0" > </a></td><td width="80" align="center">'+YEARS[m-1]+'</td><td width="15" align="center"> <a onclick="nex_month('+m+', '+y+')" style="cursor:pointer;"> <img src="images/calendar/rightarrow.gif" border="0" > </a></td><td>  </td><td align="center" width="15"><a onclick="pre_year('+m+', '+y+')" style="cursor:pointer;"> <img src="images/calendar/leftarrow.gif" border="0" > </a></td><td  align="center" width="45">'+y+' </td><td  align="center" width="15"><a onclick="nex_year('+m+', '+y+')" style="cursor:pointer;"> <img src="images/calendar/rightarrow.gif" border="0" > </a></td>';
	cal_html += 	'</tr></table></td></tr><tr align="center">';
	
	for(s=0;s<7;s++)cal_html+='<td class="'+cal_week_style+'">'+"SMTWTFS".substr(s,1)+'</td>';
	cal_html+='</tr><tr align="center">'; 	
	for(i=1;i<=42;i++)
	{		
		var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';		
		cal_day_style	=	""; 
		if(x>0 && x<32)
		{
			cdt	=	new Date(y,m-1,x);
			day_enable	=	available_week[getTheDay(y,m,x)];
			if(day_enable == false)	cal_day_style	=	cal_unavailable_day_style;
			else
			{
				cal_day_style	=	cal_available_day_style;
				len		= pause_date.length;									
				for(b=0; b<len; b++)
				{					
					pause_s		=	pause_date[b]['s'];
					pause_e		=	pause_date[b]['e'];				
					if(pause_s<=cdt && pause_e>=cdt) cal_day_style	=	cal_pause_style;								
				}
			}
			
			pdt	=	new Date(y,m-1,x+1);
			if(pdt<todaydate)	cal_day_style				=	cal_pre_day_style;	
			if(previous_day_active == true) cal_day_style	=	cal_available_day_style;	
			/*
			len		= booked_date.length;					
			//cdt	=	new Date(y,m-1,x);
			for(b=0; b<len; b++)
			{					
				book_s		=	booked_date[b]['s'];
				book_e		=	booked_date[b]['e'];				
				if(book_s<=cdt && book_e>=cdt) cal_day_style	=	cal_booked_style;								
			}*/
			
		}
		//else cal_day_style	=	cal_unavailable_day_style;
		my_day	=	x;
		my_click	=	'';
		
		if (x==scanfortoday) x='<span id="today">'+x+'</span>'; //DD added		
		if(cal_day_style == "available_days") my_click = ' style="cursor:pointer" onclick="get_date('+m+','+my_day+','+y+');date_changed();" ';
		cal_html+='<td '+my_click+' class="'+cal_day_style+'" >'+x+'</td>';		
		if(((i)%7==0)&&(i<36))cal_html+='</tr><tr align="center">';		
	}	
	return cal_html+='</tr></table><button class="b_small" onclick="hide_cal();">Close</button></div>';
}

function hide_cal()
{	
	document.getElementById(calendar_id).innerHTML	=	"";
	$("#"+calendar_id).hide();
}
function get_date(m, d, y)
{	
	document.getElementById(show_date_id).value	=	m+ '-' +d+ '-' +y;
	if(show_date_id2 != null) document.getElementById(show_date_id2).value	=	y+ '-' +m+ '-' +d;
	document.getElementById(calendar_id).innerHTML	=	'';
}

function getTheDay(year,month,day) {
	
	myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday"];
	var curdate = new Date(year,month-1,day);
	var wday = curdate.getDay();
	return myDays[wday] ;
}



function nex_month(month, year)
{
	month		=	month + 1;
	if(month==13)
	{
		month		=	1;
		year		=	year + 1;
	}
	
	cal_html	=	buildCal(month , year );
	document.getElementById(calendar_id).innerHTML	=	cal_html;
}
function pre_month(month, year)
{
	month		=	month - 1;
	if(month==0)
	{
		month		=	12;
		year		=	year - 1;
	}

	cal_html	=	buildCal(month , year );
	document.getElementById(calendar_id).innerHTML	=	cal_html;
}


function nex_year(month, year)
{
	cal_html	=	buildCal(month , year+1 );
	document.getElementById(calendar_id).innerHTML	=	cal_html;
}
function pre_year(month, year)
{
	cal_html	=	buildCal(month , year-1 );
	document.getElementById(calendar_id).innerHTML	=	cal_html;
}
















