// *********************************************************************************************
// Hi Season designation... Format = "start date (YYMMDD)", "number of days"

var highSeason=[
				"120301","14",	// March break
				"120615","106",	// Summer
				"121222","15"
				];	// Xmas

// *********************************************************************************************

var unL   =[50,49,50,50,49,50];
var rstart=0,rdays=1,rname=2,rtot=3,rdep=4,rbal=5,rdd=6,rag=7,radd=8,remail=9,rnotes=10;
var mnthe =["","January","February","March","April","May","June","July","August","September","October","November","December"];
var mnthf =["","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];
var mdays =[0,31,0,31,30,31,30,31,31,30,31,30,31];	// note, Feb. entry get's adjusted for leap year in routine
var daytit=["S","M","T","W","T","F","S"];
var hSPoint=0,dCt=0,hsFlag=false,d=document,uF=0,uP=0;

// *********************************************************************************************

function day_title(day_name){d.write('<td class="days">'+ day_name + '</td>');}

function addDay(id) {
	if(id.length==5) id="0"+id;
	if(id.length!=6) alert("2. Problem with date code:"+id);
	var idate=Number(id.substr(4,2));var imnth=Number(id.substr(2,2));var iyear=Number(id.substr(0,2));
	month_length=Number(numDays(imnth,iyear));
	//alert(idate+"."+imnth+"."+iyear);
	idate++;if(idate>month_length) {idate=1;imnth++;if(imnth>12) {imnth=1;iyear++;}}
	var dD=(idate<=9)?"0"+idate:idate;
	var dM=(imnth<=9)?"0"+imnth:imnth;
	var dY=(iyear<=9)?"0"+iyear:iyear;
	return(dY+""+dM+""+dD);
}

function addDays(id,num) {
	if(id.length==5) id="0"+id;
	if(id.length!=6) alert("1. Problem with date code:"+id);
	var idate=Number(id.substr(4,2));var imnth=Number(id.substr(2,2));var iyear=Number(id.substr(0,2));
	month_length=numDays(imnth,iyear);
	idate=idate+Number(num-1);if(idate>month_length) {idate=idate-month_length;imnth++;if(imnth>12) {imnth=1;iyear++;}}
	var dD=(idate<=9)?"0"+idate:idate;
	var dM=(imnth<=9)?"0"+imnth:imnth;
	var dY=(iyear<=9)?"0"+iyear:iyear;
	return(dY+""+dM+""+dD);
}

function numDays(m,y) {
	year=Number(y)+2000;
	mdays[2]=(((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0))?29:28; 
	return (Number(mdays[Number(m)]));
}

function mID (x,y,r) {								// x is date [1-31], y is month [1-12], r is year [xxxx]
	var dN=(Number(x)<=9)?"0"+x:x;					// convert to "0x" if necessary
	var dM=(Number(y)<=9)?"0"+y:y;					// convert to "0x" if necessary
	var yr=r-2000;yr=(Number(yr)<=9)?"0"+yr:yr;	// take last two digits "09"
	return("c"+yr+""+dM+""+dN+"");					// cell id is cyymmdd (e.g. c091203)
}

function fill_table(mNum,yr) {
	var dt=""+mnthe[mNum]+" 1, "+yr;
	now= new Date(dt);start_day=now.getDay()+1;		// get day of week [1-7] to start table
	month_length=numDays(mNum,yr);					// get number of days [28,29,30,31] in month
	var day=1,msg="";								// day of month counter
	msg+='<td>';										// for outer table only
	msg+='<table class="monthTable" cellspacing="0" align="center">';	// start month table
	msg+='<tr><td colspan="7" class="month">'+mnthe[mNum]+' '+yr+' '+mnthf[mNum]+'</tr>';
	msg+='<tr>';for(x=0;x<7;x++) {msg+='<td class="days">'+daytit[x]+'</td>';}msg+='</tr>';		
	if(start_day>1) msg+='<tr><td colspan="'+(start_day-1)+'" class="none">&nbsp;</td>';// pad out
	var end=start_day;								// set column counter 
	while (day <= month_length) {
		if(end==1) msg+='<tr>';					// if need to start new row
		msg+='<td class="lo" id="'+mID(day,mNum,yr)+'">'+day+'</td>';
		day++;end=(end+1>7)?1:end+1;if(end==1) msg+='</tr>';
	}
	if(end!=1) msg+='<td colspan="'+(8-end)+'" class="none">&nbsp;</td></tr>'; // finish off last row
	msg+='</table>';							// close month table
	msg+='</td>';								// for outer table only
	return (msg);
}

function doHighSeason() {
	for(x=0;x<(highSeason.length)/2;x++) {			// cycle through high-season list
		start_date=highSeason[((x*2))];				// get start date...
		num_Days=highSeason[((x*2)+1)];				// ...and number of days
		var cur_date=start_date;					// set current date
		for(y=0;y<num_Days;y++) {
			cID="c"+cur_date+"";					// create cell id
			// alert(cID);
			if(getObject(cID)) getObject(cID).className="hi";		// change class name
			cur_date=addDay(cur_date);				// and increment date
			// alert(cur_date);
		}
	}
}

function doRentals() {
	for(x=0;x<(rentals.length);x++) {				// cycle through high-season list
		start_date=rentals[x][rstart];				// get start date...
		num_Days=rentals[x][rdays];					// ...and number of days
		var cur_date=start_date;					// set current date
		for(y=0;y<num_Days;y++) {
			cID="c"+cur_date+"";					// create cell id
			if(getObject(cID)) {
				cl=getObject(cID);
				if(y==0 || y==num_Days-1) {			// mark first and last day of rental period
					cl.className=(cl.className=="lo")?"rhl":"rhh";
					//cl.title = persons[x][rstart];
				} else {							/// otherwise just book off
					cl.className=(cl.className=="lo")?"rl":"rh";
					//cl.title = persons[x][rstart];
				}
				var cont=getObject(cID).innerHTML;
				getObject(cID).innerHTML='<span onClick="doInfo(\''+x+'\');">'+cont+'</span>';
			}
			cur_date=addDay(cur_date);				// and increment date
		}
	}
}

function doToday() {var r=new Date(),y=r.getFullYear(),m=r.getMonth()+1,d=r.getDate();getObject(mID(d,m,y)).className+=" today";}

function doDateText(id) {var idate=Number(id.substr(4,2));var imnth=Number(id.substr(2,2));var iyear=Number(id.substr(0,2));return(""+idate+" "+mnthe[imnth]+" "+(2000+iyear)+"");}

function doInfo(rid) {
	if(!uF) return;
	var Rname=0,Rnotes=1,Rtotal=0,Rdeposit=1,Rdd=0,Rra=1,Rphone=0,Remail=1;
	var msg = '<div class="c"><a href="javascript:unshow()"><img src="images/fileclose.png" alt="close" class="cImg"></a></div>';
	msg += '<table>';
	msg += '<tr><td colspan="2">';
	msg += '<h2><strong>' + persons[rid][Rname] + '</strong></h2></td><tr>';
	msg += '<tr><td>CONTACT:</td><td>email: <a href="mailto:' + contact[rid][Remail] + '"><strong>' +contact[rid][Remail] + '</strong></a><br>phone: <strong>' + contact[rid][Rphone] + '</strong></td></tr>';
	msg += '<tr><td>RENTAL</td><td>from <strong>' + doDateText(rentals[rid][rstart]) + '</strong> to <strong>'+doDateText(addDays(rentals[rid][rstart],rentals[rid][rdays]))+'</strong></td></tr>';
	msg += "<tr><td>CHARGES:</td><td>total: <strong>$"+dollars[rid][Rtotal]+'</strong><br>paid: <strong>$' + dollars[rid][Rdeposit] + '</strong><br>balance: <strong>$' + (dollars[rid][Rtotal]-dollars[rid][Rdeposit]) + '</strong></td></tr>';
	msg += '<tr><td>OTHER:</td><td>security deposit: <strong>' + agrees[rid][Rdd] + '</strong><br>rental agreement: <strong>' + agrees[rid][Rra] + '</strong></td></tr>';
	msg += '<tr><td>NOTES: </td><td>'+persons[rid][Rnotes]+'</td></tr>';
	msg += '</table>';

	var t=getObject("bif");
	y=document.body.scrollTop;					// get top of window if scrolled
	t.style.top=200+y+"px";						// position down from this window's top
	t.innerHTML=msg;							// place contact info.
	t.style.display = "block";					// and display it
	old=0;
}

function unshow() {getObject("bif").style.display = "none";}

