//<!--   calmgr.js  --  Interactive Calendar showing Availability by Unit Size  -- Developed 9/23/2004 by Stu
//                  --  Also used in Reservation Form (reservation.html and rates page (rates.html))
//=======================================================================================================
//====== functions that are used with RESERVATION FORM & RATES page (browser dependent style syntax) ====
//=======================================================================================================
function getRefToDiv(divID) {
    if( document.layers ) { //Netscape layers
        return document.layers[divID]; }
    if( document.getElementById ) { //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID); }
    if( document.all ) { //Proprietary DOM; IE4
        return document.all[divID]; }
    if( document[divID] ) { //Netscape alternative
        return document[divID]; }
    return false;
}
//===================================
function showDiv(divID_as_a_string) {
    //get a reference as above ...
    myReference = getRefToDiv(divID_as_a_string);
    if( !myReference ) {
        window.alert('Feature does not work in this browser');
        return false; //don't go any further..return using false to show failure
    }
    if( myReference.style ) { //DOM & proprietary DOM
        myReference.style.visibility = 'visible';
    } else {
        if( myReference.visibility ) { //Netscape
            myReference.visibility = 'show';
        } else {
            window.alert('Feature does not work in this browser');
            return false; //don't go any further
        }
    }
    return true;
}
//===================================
function hideDiv(divID_as_a_string) {
    //get a reference as above ...
    myReference = getRefToDiv(divID_as_a_string);
    if( !myReference ) {
        window.alert('Feature does not work in this browser');
        return false; //don't go any further...return anything would work, using false to show failure
    }
    if( myReference.style ) { //DOM & proprietary DOM
        myReference.style.visibility = 'hidden';
    } else {
        if( myReference.visibility ) { //Netscape
            myReference.visibility = 'hidden';
        } else {
            window.alert('Feature does not work in this browser');
            return false; //don't go any further
        }
    }
    return true;
}
//===================================
function changeState(idRef,state) {
   if(state=='hidden') hideDiv(idRef);
   else                showDiv(idRef);
   return;
}
//================================== RESERVATION FORM asp mailer ======================
function mailit() {
var ok=0;
var browsername=navigator.appName;
var browseragent=navigator.userAgent;
if (browsername.indexOf("Netscape")!=-1) { if (browseragent.indexOf("Firefox")!=-1) browsername="FF";
										   else                                     browsername="NS";}

else if (browsername.indexOf("Microsoft")!=-1) {
        browsername="MSIE";
        var browserversion="0"
        if (navigator.appVersion.indexOf("2.")!=-1) {browserversion="2"};
        if (navigator.appVersion.indexOf("3.")!=-1) {browserversion="3"};
        if (navigator.appVersion.indexOf("4.")!=-1) {browserversion="4"};
        if (navigator.appVersion.indexOf("5.")!=-1) {browserversion="5"};
        if (navigator.appVersion.indexOf("6.")!=-1) {browserversion="6"};
        if (navigator.appVersion.indexOf("7.")!=-1) {browserversion="7"};
        if (navigator.appVersion.indexOf("8.")!=-1) {browserversion="8"}; 
}
else   browsername="other"; 

if (browsername=="MSIE" && browserversion >= 4) ok=1; 
else if (browsername=="FF")                     ok=1;

//alert(ok);
if (!ok) {alert(" Sorry-your Browser is not supported-Please Call 866-488-4237"); 
          window.status="Browser not supported";return false;}
else {	
window.status='';
changeState('first','hidden');
//changeState('second','hidden');
//changeState('third','hidden');
var output = '';
var today  = new Date();
    mo = today.getMonth()+1;    // this month 1-12
    yr = today.getYear();  if (browsername=="FF") yr=yr+1900; 
	day= today.getDate();      // today 1-31
    startmonth=document.myform.startmonth.value;
    startday  =document.myform.startday.value;
    startyear =document.myform.startyear.value;
    endmonth  =document.myform.endmonth.value;
    endday    =document.myform.endday.value; 
    endyear   =document.myform.endyear.value;

	name=document.myform.name.value;
    address1=document.myform.address1.value;
    address2=document.myform.address2.value;
    city=document.myform.city.value;
    state=document.myform.state.value;
    zip=document.myform.zip.value;
    country=document.myform.country.value;
    homephone=document.myform.homephone.value;
    workphone=document.myform.workphone.value;
    email=document.myform.email.value;
    fax=document.myform.fax.value;
    adults=document.myform.adults.value;
	unittype=document.myform.unittype.value;
    qualifier=document.myform.qualifier.value;
    comments=document.myform.comments.value;
    how_heard_of=document.myform.how_heard_of.value;
err=0;
if (name=='' || address1=='' || city=='' || state=='' || zip=='' || homephone=='' )
     { window.status="Please Enter Required Data.";
	   changeState('first','visible');
       err=1; }
//alert('calmgr.js:'+startmonth+',e:'+endmonth+',s:'+startyear+',e:'+endyear+',day '+day+',s:'+startday+',e:'+endday+',yr'+yr+',mo'+mo);	
//if ((startmonth==endmonth && startday>=endday)) alert ('1.true');  else alert ('1.false');
//if ((startmonth==endmonth)) alert ('2.true'); else alert ('2.false');
//if ((startday >= endday)) alert ('3.true');  else alert ('3.false');
/*	
	if (startmonth != 'Not Selected' && endmonth != 'Not Selected' &&
        (startyear>endyear || ((startyear<=endyear) && (startmonth > endmonth))   
		                   || ((startyear==endyear) && (startmonth==endmonth) && (startday >= endday)) ) )
	    { window.status='Arrival Date inconsistent with Departure Date.';
	      changeState('second','visible');
	      err=1; }
if (startmonth!='Not Selected' && ( yr>startyear || (mo>startmonth && startyear==yr)  
	                                || (startday<day && startmonth==mo && startyear==yr) ) )
     { window.status='Arrival Date has past.';
       changeState('third','visible');
	   err=1; }
*/
if (err) return false;
else { 
str=window.location.pathname;
if (str.search("/reservation.html")==0)output+='./personMail.asp?to=thebeachcomber.venice@verizon.net&from='+email+'&subject=Reservation Request&body=';
else output+='./personMail.asp?to=webmaster@beachcomberinvenice.com&from='+email+'&subject=Reservation Request&body='; // TEST
output+='Name '+name+'<br>Address '+address1+'<br>'+address2+'<br>City/State/Zip '+city+'/'+state+'/'+zip;
output+='<br>Country '+country+'<br>email '+email+'<br>Fax '+fax;
output+='<br><br>Number in Party: Adults: '+adults;
if (startmonth!='Not Selected') output+='<br><br>Arrival Date '+startmonth+' '+startday+' '+startyear;
else                            output+='<br><br>Arrival Date '+startmonth;
if (endmonth!='Not Selected')   output+='<br>Departure Date '+endmonth+' '  +endday  +' '+endyear;
else                            output+='<br>Departure Date '+endmonth;
output+='<br><br>Unit Type: '+ unittype + ' -- ' + qualifier;
output+='<br><br>Comments: ' + comments;
output+='<br><br>How Heard Of Us: ' + how_heard_of;

//var winAttrib ="width=250,height=25,left=200,top=200,location=no,scrollbars=no,menubars=no,toolbars=no,";
//    winAttrib+="resizable=yes,status=no";  // winAttrib then used as optl.third param to window.open();
window.open(output,'_new'); 
window.defaultstatus='BeachcomberinVenice Reservation Request/Inquiry has been Sent';
return true; }
} // end if ok 
}
//================================== AVAILABILITY CALENDAR functions =============================																Best Viewed 1024 x 768 True Color (32 bit)
if (document.images) {
   var button0_out  = new Image();  button0_out.src   = "./img/btnROM_0.png";  
   var button1_out  = new Image();  button1_out.src   = "./img/btnF_0.png";  
   var button2_out  = new Image();  button2_out.src   = "./img/btnP_0.png";  
   var button3_out  = new Image();  button3_out.src   = "./img/btnA_0.png";  
   var button4_out  = new Image();  button4_out.src   = "./img/btnR_0.png";  
   var button5_out  = new Image();  button5_out.src   = "./img/btnRes1.jpg"; // iff personc link 
   var button6_out  = new Image();  button6_out.src   = "./img/btnB_0.png"; 
   
   var button0_over = new Image();  button0_over.src  = "./img/btnROM_1.png"; 
   var button1_over = new Image();  button1_over.src  = "./img/btnF_1.png";
   var button2_over = new Image();  button2_over.src  = "./img/btnP_1.png";
   var button3_over = new Image();  button3_over.src  = "./img/btnA_1.png";
   var button4_over = new Image();  button4_over.src   = "./img/btnR_1.png";  
   var button5_over = new Image();  button5_over.src   = "./img/btnRes0.jpg";  // iff personc link
   var button6_over = new Image();  button6_over.src   = "./img/btnB_1.png"; // Request A Reservation
}
function btn_out(x) {
if (document.images) { if      (x==0) document.image0.src = button0_out.src; 
                       else if (x==1) document.image1.src = button1_out.src;
                       else if (x==2) document.image2.src = button2_out.src; 
                       else if (x==3) document.image3.src = button3_out.src; 
                       else if (x==4) document.image4.src = button4_out.src; 
                       else if (x==5) document.image5.src = button5_out.src; 
                       else if (x==6) document.image6.src = button6_out.src; }
return true;
}
function btn_over(x) { 
//alert(x);
if (document.images) { if      (x==0) document.image0.src = button0_over.src; 
                       else if (x==1) document.image1.src = button1_over.src;
                       else if (x==2) document.image2.src = button2_over.src; 
                       else if (x==3) document.image3.src = button3_over.src;
                       else if (x==4) document.image4.src = button4_over.src; 
                       else if (x==5) document.image5.src = button5_over.src; 
                       else if (x==6) document.image6.src = button6_over.src; }
return true;
}
//================================
function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++)
        this[i] = makeArray0.arguments[i];
    return;
}
//===================================================
var mname = new makeArray0('','January','February','March','April','May','June','July',
                            'August','September','October','November','December' );
var utname = new makeArray0('Select Unit Size & Month' ,'Three Bedroom  (sleep 6+)',
							'One Bedroom    (sleep 2+)','Studio         (sleep 2+)',
							'Efficiency 	(sleep 2)' ,'Studio or 1-BR (sleep 2+)',
							'Lower Floor (Units 1-10)' ,'Upper Floor (Units 11-20)',
							'All except 3br (sleep 2+)','All units incl.3br');
							/* unit 18 not avail (never rented) */
var uname = new makeArray0('','&nbsp;1 3br','&nbsp;2 1br','&nbsp;3 1br',
							'&nbsp;4 1br','5 Lndry','&nbsp;6 1br','7Studio','8 Lobby',
							'&nbsp;9 1br','10 1br','11 3br','12 1br','13 1br','14 1br','15 Efcy',
							'16 1br','17Studio','18 2br','19Studio','20 1br' );
var unum = new makeArray0('','&nbsp;1&nbsp;','&nbsp;2&nbsp;','&nbsp;3&nbsp;','&nbsp;4&nbsp;',' 5 ','&nbsp;6&nbsp;','&nbsp;7&nbsp;',
                          ' 8 ','&nbsp;9&nbsp;',' 10 ','&nbsp;11&nbsp;','&nbsp;12&nbsp;','&nbsp;13&nbsp;','&nbsp;14&nbsp;',
						  '&nbsp;15&nbsp;','&nbsp;16&nbsp;','&nbsp;17&nbsp;','&nbsp;18&nbsp;','&nbsp;19&nbsp;','&nbsp;20&nbsp;' );
var nUN   = new makeArray0(17,2,11,3,1,14,8,9,15,17);
var days  = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dow   = new makeArray0('Unit#','S','M','T','W','T','F','S');
//-------------------------------------------- TITLE for GREED blocks --------------------------------------------
function setDay(X,UNIT) {
  if (UNIT==2 ) X.title='OWNER has JUST OFFERED UNIT 2 FOR RENT, but to ADULTS ONLY';
  if (UNIT==20) X.title='OWNER has JUST REDECORATED. UNIT 20 is now being offered for rent to ADULTS ONLY';
  return;
}
//-------------------------------- check ALL -------------------------
function checkAll(DaysInMonth,Row) {   // Row starts at zero
   kStart=DaysInMonth*Row;
   kEnd  = kStart + DaysInMonth;
     tempOb2=eval("document.myform.updUG" + Row); // check the Update Checkbox
	 tempOb2.checked = true; 
	 for (k=kStart; k<kEnd ;k++ ) {
       tempObj=eval("document.myform.cka[" + k +"]"); 
	   if (eval("tempObj.checked") == false) tempObj.checked = true;
       else
	   if (eval("tempObj.checked") == true)  tempObj.checked = false;
   } 
}
//============================================ UNIT LOOP CONTROL ==================
function UN(code) {
    un = new Array;
	un[0]	= 17; //1,2,3,4,6,7,9,10,11,12,13,14,15,16,17,19,20
	un[1]	= 2;  //1,11
	un[2]	= 11; //2,3,4,6,9,10,12,13,14,16,20
	un[3]	= 3;  //7,17,19
	un[4]	= 1;  //15
	un[5]	= 14; //2,3,4,6,7,9,10,12,13,14,16,17,19,20
	un[6]	= 8;  //1,2,3,4,6,7,9,10
	un[7]	= 9;  //11,12,13,14,15,16,17,19,20
	un[8]	= 15; //2,3,4,6,7,9,10,12,13,14,15,16,17,19,20
	un[9]	= 17; //1,2,3,4,6,7,9,10,11,12,13,14,15,16,17,19,20
	return un[code];  }
//========================================== UPDATE CONTROL =======================
function verify(mgr) { //alert('verify '+mgr);
   uid = document.myform.userId.value;
   upw = document.myform.pw.value;
   if (uid !="" && upw !="") changeUnit(mgr,1,uid,upw);
   else alert('Please Enter UserId and Password before pressing SAVE');
   return true;   

}
//========================================= RADIO BUTTON CONTROL ==================
function toggl(buttonNb) {
   tempObj=eval("document.myform.ck"+buttonNb);  
   //alert(buttonNb+','+tempObj+','+eval("tempObj.value")); // diagnostic
   if (eval("tempObj.checked") == true) tempObj.checked = false; 	
   return;
}
//============== trim leading spaces ================================
function trimLS (originalstring) {
var len=originalstring.length;
var pos=0;
returnstring=originalstring;
if (len > 0) {
    while (originalstring.substring(pos,1) == ' ') { returnstring=originalstring.substring(pos+1,len); pos++; } 
    }
return returnstring;
}
//======================================= EACH PAGE CHANGE OR SUBMIT =============
function changeUnit(mgr,v,uid,upw) { 
        //alert('changeunit v-'+v+' uid-'+uid+' pw-'+upw);   
		window.defaultStatus="";
		ut  = document.myform.unitGrup.value;
		y   = document.myform.Year.value;
		m   = document.myform.Month.value;
		tst = document.myform.tst.value;
		// ----- code to create pck not needed unless updating (v=1) ----------			
		pck='';
		SQUOTE="'";
		upd='';
	    dTXT='';	
		if (v == 1) {
				 var today  = new Date(); 
                 var mo1    = today.getMonth() + 1; if (mo1<10) mo1='0'+mo1; // this month			 
                 var yr1    = today.getYear();  
                 var day1   = today.getDate(); if (day1<10) day1='0'+day1;
				 var R0 =/^[aA]{1}/;
				 //regular expression to ck if reservationDate already appended
				 var R1 =/^[aA]{1}.*\([0-9]{6,8}\)$/; 
				 var reserveDate=' ('+mo1+day1+yr1+')'; // APPENDS (mmddyy) TO DAY TEXT
		   // UPDATE CONTROL - default to updating no rows unless one or more row boxes is checked
           for (kk=0;kk<UN(ut); kk++) { tempObj=eval("document.myform.updUG"+kk);
				                        if (eval("tempObj.checked") == true) {upd +='U';} 
										else                                 {upd +='X';}}
		   cks='';
		        // k=#units in the unit-group selected by user in drop-down box (filters #units displayed) 
		   for (k=0; k<UN(ut); k++) {
		 	  for ( i=1; i<=31; i++ )   {
		  	      if (i > days[m-1] )	 {						       dTXT +='~';  cks += 'N'; }
				  else { j=i+((days[m-1])*k)-1;
						 tempObj=eval("document.myform.ck"+j);  		
						 if (eval("document.myform.cka[" + j + "].checked")==true)  cks += 'Y';
						 else { if (eval("tempObj.checked") == true)			    cks += 'T';	
						        else							                    cks += 'N'; } 
						 // when dayText is not blank, eliminate '(s) and concatenate all units into dTXT for php dbUpdate
                         if(mgr==2) {tempObj=eval('document.myform.tx'+j );			
				                     tempTxt = trimLS(tempObj.value);     // leading spaces (if any) trimmed of
						             R=/\'/g;
						             tempTxt2=tempTxt.replace(R,''); 
						             R=/\+/g;
						             tempTxt=tempTxt2.replace(R,'');
						             R=/\\/g;
						             tempTxt2=tempTxt.replace(R,'');
						             R=/\"/g;
						             tempTxt=tempTxt2.replace(R,'');
						             R=/;/g;
						             tempTxt2=tempTxt.replace(R,'');
						             R=/&/g;
						             tempTxt=tempTxt2.replace(R,'');
						             R=/~/g;
						             tempTxt2=tempTxt.replace(R,'');    // tilde	
						             if (tempTxt==' '||tempTxt=='  ') tempTxt='';				 			 
						             //if 1st char of text is a or A & no ( exists already, append reservationDate'(mmddyyyy)'to text
						             if (tempTxt2.search(R0)>=0) { if (tempTxt2.search(R1)==-1) tempTxt2 += reserveDate;}
						 }
						 else tempTxt2='';				 
						 if (tempTxt2.length ==0 || tempTxt2=='') dTXT += '~'; //--- tilde => uncompress into ' |' before Explode
						 else                                     dTXT += tempTxt2+'|';						 
				  } // else j 
			  } // for i  
		   } // for k 
		   //dTXT = escape(dTXT);  // replaces all non alphanumeric char in string to numeric equivalents so can appear in url.
		   dTXT=SQUOTE + dTXT + SQUOTE;
           upd =SQUOTE + upd  + SQUOTE;
		   pck =SQUOTE + cks  + SQUOTE;
		   // --- end loop -- must substring pck into units during php update process 
 		   var r3 =/(\n)/g;		  //  regular expression for new line
		   var r4 =/(\r)/g;		 //   regular expression for carriage return
		   t = document.myform.note.value;
		   t = t.replace(r3,'LF');
		   t = t.replace(r4,'CR');  
		   t = escape(t);
		   t = SQUOTE + t + SQUOTE;
		}  // end if v==1
		else {upd=SQUOTE + upd + SQUOTE; pck= SQUOTE + pck + SQUOTE; t="''"; dTXT="''";}
		var r2 =/\\/g;       // regular expression to strip escape of single quote 
		t=t.replace(r2,'');
		T='';if(tst==2) T='&tst=2';
		HR='&c='+pck+'&dTXT='+dTXT+'&userId='+uid+'&pw='+upw+'&t='+t;
		window.location.href='./calmgr.php?mgr='+mgr+T+'&v='+v+'&Month='+m+'&Year='+y+'&unitGrup='+ut+'&upd='+upd+HR
		return true; 
}
//======================================= EACH PAGE CHANGE OR SUBMIT ==============  
function quickSelect(mgr,v,M,Y){
 //alert('qs'+mgr+','+v+','+','+M+','+Y);
 document.myform.Month.value=M; 
 document.myform.Year.value =Y; 
 changeUnit(mgr,v,0,0);
 return;
}
//====================================== ONCE PER PAGE REFRESH ====================
function aMatrix(YEAR,YEARMAX,MONTH,UTYPE,mgr,v,msg) {
  //alert('amatrix MAX'+YEARMAX+' YEAR-'+YEAR+' MONTH-'+MONTH+' mgr-'+mgr+' v-'+v); 
  var output = ''; 
 if (MONTH == 2) { 
    if (((YEAR % 4 == 0) && (YEAR % 100 != 0)) || (YEAR % 400 == 0)) days[MONTH-1] = 29; }
// Select optional Unit Size (Type)
 output +='<SELECT NAME="unitGrup" onChange="changeUnit(' + mgr +','+v+',0,0)";>';
 for (utype=0; utype<10; utype++) {
     if (utype==UTYPE) s=' SELECTED'; 
     else s=' '; 
	 output +='<OPTION VALUE=' + utype + s +'>' + utname[utype] + '</OPTION>'; }
 output += '</SELECT>';

// Select Year 
 output += '&nbsp;&nbsp;<SELECT NAME="Year" onChange="changeUnit(' + mgr + ',' + v + ',0,0)";>';
 for (lyear=2004; lyear<=YEARMAX; lyear++) {
     if (lyear == YEAR) output += '<OPTION VALUE="' + lyear + '" SELECTED>' + lyear + '</OPTION>';
     else               output += '<OPTION VALUE="' + lyear + '">'          + lyear + '</OPTION>'; }
 output += '</SELECT>';

// Select Month 
 output +='&nbsp;&nbsp;<SELECT NAME="Month" onChange="changeUnit(' + mgr +',' + v + ',0,0)";>';
 //if (YEAR==2004 && MONTH<11) MONTH=11; // first month of complete data on db
 for (mo=1; mo<=12; mo++) {
     if (mo == MONTH) output += '<OPTION VALUE="' + mo + '" SELECTED>' + mname[mo] + '</OPTION>';
     else             output += '<OPTION VALUE="' + mo + '">'          + mname[mo] + '</OPTION>'; }
 output += '</SELECT>';
if(!msg){
   PRIOR=MONTH-1;
   bYR=YEAR
   if (PRIOR==0) {PRIOR=12;bYR=YEAR-1;}
   output +='<td>&nbsp;&lt;<a href="#unitGrup" title="Quick select '+mname[PRIOR] +' or use date selection box(es)" ';
   output +='onclick="quickSelect('+mgr+','+ v + ','+PRIOR+','+bYR+');">Prior Month</a>&nbsp;';

   NEXT=MONTH+1;
   fYR=YEAR;
   if (NEXT==13) {NEXT=1;  fYR=YEAR+1;}  
   output +='&nbsp;<a href="#unitGrup" title="Quick select '+mname[NEXT] +' or use date selection box(es)" ';
   output +='onclick="quickSelect('+mgr+','+v+','+NEXT+','+fYR+');">Next Month</a>&gt;</td>';
}
// display selected (or default) unit type, month and year as title to the calendar
deflt=9;
output += '<br><br>';
if (UTYPE==0) output +='<CENTER>'+ utname[deflt] +' displayed for '+ mname[MONTH] +'  '+ YEAR +'</CENTER>';
else	  	  output +='<CENTER>'+'                 '+ mname[MONTH] +'  '+ YEAR +'</CENTER>';

//
if (YEAR==2010 && MONTH==9) output+='<tr><td><font color=RED size=+2>WARNING - Pool Repairs beginning Aug.21st may not be finished before Labor Day this year</font></td></tr>'; 
//

//if (YEAR==2006 && MONTH==9) output+='<font color=PURPLE><b>&nbsp;&nbsp;9/4 thru 9/15 blocked out for Pool Deck work - call if you do not want to use pool</b></font>';
cs=1;if(mgr==2)cs=0;
output += '<TABLE CELLSPACING='+cs+' CELLPADDING=0 BORDER=0><TR>';

// display dow in calendar heading
output += '<TR><TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER VALIGN=BOTTOM><font color=WHITE></font></TD>';
sDay=new Date(YEAR,MONTH-1,1,0,0,0);
k=sDay.getDay() + 1;
for (i=1; i<=days[MONTH-1]; i++, k++) {
   if (k==8) k=1;  
   output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER><font color=WHITE>' + dow[k] + '</font></TD>'; }
if (mgr) output += '<TD BGCOLOR=#000000 HEIGHT=15><font color=WHITE>Upd</font></TD>'; 
output += '</TR>';

// display day in calendar heading
output += '<TR><TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER VALIGN=BOTTOM><font color=WHITE>Unit</font></TD>';
for (i=1; i<=days[MONTH-1]; i++) {
	if (i==0) output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER></TD>'; 
    else      output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER><font color=WHITE>' + i + '</font></TD>'; }
if (mgr) output += '<TD BGCOLOR=#000000 HEIGHT=15><font color=WHITE>Sel</font></TD>'; 
output += '</TR>';
return output;
}
//========================================= FOR EACH  UNIT =====================================
function UPD(N,K) {
tempObj=eval("document.myform.updUG"+K);
ncK=0; 
//alert('UPD:'+N+','+nUN[N]+','+K); 
for (cK=1; cK<=nUN[N]; cK++) {x=cK-1;tempObj2=eval("document.myform.updUG"+x);
							  if (tempObj2.checked == true ) ncK++;
							  //alert(cK+','+tempObj2.checked+','+ncK);
							  }
if (ncK>=6) { alert('Please Limit each update to a maximum of 6 Units.\n This units update will be ignored.'); 
              tempObj.checked = false; }
else        { tempObj.checked = true;  }
return;
}
//=====================================
function disp(J) {
tst=document.myform.tst.value;
userId=document.myform.userId.value;
pw=document.myform.pw.value;
tempObj=eval('document.myform.tx'+J);
txt=tempObj.value; 
z=0; rec=0;res=0;
T='';if(tst==2) T='&tst=2';
if(txt !='' && txt !='x') z=1;
lp=0;dash=0;rp=0;
if(z)					   {lp=txt.indexOf('(');dash=txt.indexOf('-');rp=txt.indexOf(')');}
if (z && dash>0) {rec=txt.substring(lp+1,dash); res=txt.substring(dash+1,rp);}
if(rec>0 && res>0) {RM='./personc.php?userId='+userId+'&pw='+pw+'&action=30&qrecNb='+rec+'&qrentalNb='+res+T; 
							   N='_new'+J; // J is unique for each box on the page so will open new tab for each reservation clicked
                               if(confirm('Press OK to view the Res Mgr for:'+ tempObj.value)) {if(userId!='' && pw!='') {window.open(RM,N);}
																																	  else alert('Enter UserId & Password before pressing OK'); }}
else if(txt !='') alert(txt);
}
//=====================================
function special(YEAR,MONTH,DAY) {
var today  = new Date();
mo = today.getMonth()+1;
yr = today.getYear();
day= today.getDate();
nyr=yr;  
nmo=mo+1;
if (nmo==13) { nmo=1; nyr=yr+1;}
nday=15-days[mo]+day;

if (YEAR==yr && MONTH==mo)   {if (day+15>days[mo]) maxday=days[mo]; // eligible days into displayed month
							  else                 maxday=day+15;  }
else
if (YEAR==nyr && MONTH==nmo) {if (DAY<nday)        maxday=nday; }  

specl=0; // ====== DISABLE special color feature under development for production version =======
//if (MONTH >7 && MONTH<12)               specl=1;  // AUG-SEPT-OCT            *TEMP CRIPPLE*
//else
//if ((MONTH==12 || MONTH== 1) && DAY<16) specl=1;  // DEC1-15 and JAN1-15
if (specl==1 && (YEAR==yr  && MONTH==mo  && DAY<=maxday && DAY>=day)) return true;
else
if (specl==1 && (YEAR==nyr && MONTH==nmo && DAY<=maxday))             return true;
else                                                                  return false;
}
//============== NB: dTxt is for one unit, dTXT in function changeunit is for all units in display Group ==========
function bMatrix(YEAR,YEARMAX,MONTH,UTYPE,k,mgr,u,pcks,dTxt) {
//alert('bmatrix YEAR-'+YEAR+' MONTH-'+MONTH+' mgr-'+mgr+' dTxt-'+dTxt); // display calendar days with selection checkboxes
var output = '';
output += '<TR>';
//=======================	public display view
if (!mgr) {			
	output +='<td ALIGN=CENTER BGCOLOR=#e8a000 height=20 width=60>'+uname[u]+'</td>'; 	
	for (i=1; i<=days[MONTH-1]; i++) {
		x="";
		c = pcks.substr(i-1,1);
		if (c=='Y')		                {color = 'BGCOLOR=RED'    ; }
		else { if (c=='T')              {color = 'BGCOLOR=#E8c873'; }
		       else
			   if (special(YEAR,MONTH,i)) {color = 'BGCOLOR=#00FF00'; }
		       else		                  {color = 'BGCOLOR=GREEN'; 
			         if(u==2 || u==20) x='<a href=# title="" onmouseover="setDay(this,'+u+')"><font color=WHITE size=-1>'+i+'</font></a>';
					 else              x='<font color=WHITE size=-1>'+i+'</font>'; }}  
		output += '<TD ' + color + ' align=center height=20 width=30 >&nbsp;'+x+'&nbsp;</TD>'; } 
}
else {				// manager Update view 
	Z=days[MONTH-1]; 
	output +='<td ALIGN=CENTER BGCOLOR=#e8a000 height=30 width=30>'+uname[u];
	output +='<a title="double-click on * to toggle all checkboxes in row" ondblclick="javascript:checkAll('+Z+','+k+');">*</a></td>';
	//zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
	R=/\'/g;
	dTxt=dTxt.replace(R,''); // strip quotes from passed value
	if (dTxt == '') dTxt=' | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |';
	var tempTXT = new Array();
    tempTXT = dTxt.split('|'); //array indexed 0-30 
	for (i=1; i<=Z; i++) {
		c = pcks.substr(i-1,1);  
		ck=''; ck2='';
		j=i+((days[MONTH-1])*k)-1;
		if (c=='Y')		                {color = 'BGCOLOR=RED'      ; ck   = 'CHECKED'; }
		else { if (c=='T')              {color = 'BGCOLOR="#E8c873"'; ck2  = 'CHECKED'; }
		       else
			   if (special(YEAR,MONTH,i)) {color = 'BGCOLOR="#00FF00"'; }
		       else		                  {color = 'BGCOLOR=GREEN'    ;  } }
		output += '<TD '+ color +' height=15 width=27 cellpadding=0><center>';  //w was 30
		output += '<a title="Check checkbox to indicate unit is rented/unavailable (click again to uncheck)" >';
		output += '<input type=checkbox class=chk" name="cka" '+ ck +' onClick="UPD('+UTYPE+','+k+');"></a>\n'; 
		output += '<a title="Click button to indicate tenative/temporary hold (doubleclick to turn button off)" ><input type=radio';
		output += ' class="chk" name="ck'+j+'" '+ ck2 +' onClick="UPD('+UTYPE+','+k+');" ondblclick="toggl('+j+');"></a></center>';
        // NOTE split() does not work in Netscape 2 and Explorer 3 (only Maureen & Stu use mgr update screen w/current browsers)
        // split() is a specialized method that allows split of a string at the places of a certain character.
        // Must put the result in an array, not in a simple variable. Let's split b on the spaces.
        // var b = 'I am a JavaScript hacker.';  var temp = new Array();   temp = b.split(' ');
        // Now the string has been split into 5 strings that are placed in the array temp. The spaces themselves are gone.
        // temp[0] = 'I'; temp[1] = 'am'; temp[2] = 'a'; temp[3] = 'JavaScript'; temp[4] = 'hacker.';			
		if (mgr==2) { 
			output +='\n';
		    output +='<a title="a=>arrival x=>depart,vacant or start of on-hold.  dblclick to view reservation number (or date/older recs)">';
		    output += '<input type="text" name="tx'+j+'" height=15 size=1 maxlength=50 cellpadding=0 value="'+ unescape(tempTXT[i-1]) +'" ';
		    output += 'onClick="UPD('+UTYPE+','+k+');" ondblclick="disp('+j+');"></a>'; } // end if mgr==2
	    output +='</TD>';
	}  // end for i
    output +='<td ALIGN=CENTER BGCOLOR="#e8a000">'+unum[u]+'<br><a title="only checked row(s) will be updated [limit 6 rows per SAVE]">';
	output +='<input type=checkbox name="updUG'+k+'" ></a></td>'; 	
}     //  end else manager view	
output += '</TR>'; 
return output;
}
//================================================ ONCE PER PAGE REFRESH ================
function cMatrix(YEAR,YEARMAX,MONTH,mgr,v) {
var output = ''; 
if (MONTH == 2) { 
    if (((YEAR % 4 == 0) && (YEAR % 100 != 0)) || (YEAR % 400 == 0)) days[MONTH-1] = 29; }
// display dow in calendar heading
output += '<TR><TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER VALIGN=BOTTOM><font color=WHITE></font></TD>';
sDay=new Date(YEAR,MONTH-1,1,0,0,0);
k=sDay.getDay() + 1;
for (i=1; i<=days[MONTH-1]; i++, k++) {
   if (k==8) k=1;  
   output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER><font color=WHITE>' + dow[k] + '</font></TD>'; }
if (mgr) output += '<TD BGCOLOR=#000000 HEIGHT=15></TD>'; 
output += '</TR>';
// display day in calendar heading
output += '<TR><TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER VALIGN=BOTTOM><font color=WHITE>Unit</font></TD>';
for (i=1; i<=days[MONTH-1]; i++) {
	if (i==0) output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER></TD>'; 
    else      output += '<TD BGCOLOR=#000000 HEIGHT=15 ALIGN=CENTER><font color=WHITE>' + i + '</font></TD>'; }
if (mgr) {output += '<TD BGCOLOR=#000000 HEIGHT=15></TD>'; }	
output += '</TR>';
return output; 
}
//====================
function textbox(txt) {
  var r2a = /(CR)(LF)/g;
  var r2b = /(LF)/g;
  txt2 = txt.replace(r2a,'\r\n');  
  txt3 = txt2.replace(r2b,'\r\n');  
  output = '<textarea rows="3" cols="84" wrap="soft" name="note">'+ unescape(txt3) +'</textarea>';
  return output;
}
//====================
function legend(YEAR,MONTH,mgr) {
var today  = new Date();
mo = today.getMonth()+1;
yr = today.getYear();
day= today.getDate();
nyr=yr;  
nmo=mo+1;
if (nmo==13) { nmo=1; nyr=yr+1;}
nday=15-days[mo]+day;
if (YEAR==nyr && MONTH==nmo) day=nday;

var output='';
if (! mgr) {
   output +='<font face="Arial, Verdana, Helvetica" size="-1">';
   output +='<table><tr>';
   output +='<td>Legend:</td><td bgcolor=RED><font color=WHITE>unit is rented/unavailable*,';
   output +='</font></td>';
   output +='<td bgcolor=#E8c873>&nbsp;tenative/temporary hold*,</td>';	
   output +='<td bgcolor=GREEN><font color=WHITE>&nbsp;unit is available for rent*</font></td>';
   if (special(YEAR,MONTH,day)) output +='<td bgcolor=#00FF00>&nbsp;available-call for special rates*</td>';
   output +='</tr></table>';
   output +='Reservations cannot be made over the internet. 25% Deposit Reserves. Call to arrange.<br>';
   output +='* Subject to Change - we maintain wait lists - check back or call for more information.<br><br>';
  }
else
  {
   output += '<table><tr><td>Legend:</td><td bgcolor=RED><font color=WHITE>';
   output += 'check checkbox to indicate unit is rented/unavailable,<br>';
   output += ' (click again to uncheck checkbox)</td>';
   output += '<td bgcolor=#E8c873>use button to indicate tenative/temporary hold,<br>';
   output += '(doubleclick to turn button off)</td><td bgcolor=GREEN><font color=WHITE>';
   output += 'leave both unchecked to indicate unit is free</font></td></tr>';
   if (special(YEAR,MONTH,day)) {output += '<tr><td> </td><td colspan=3 align="center" bgcolor=#00FF00>';
					             output += 'call for special rates</font></td></tr>';}
   output += '</table>';
  }
return output;
}
//============ END OF JAVASCRIPT script --->
/* CHANGE  LOG
07June2010  7.7.9  Last version using MySQL4.2
*/
