var dayArrayShort = new Array('S', 'M', 'T', 'W', 'T', 'F', 'S');
var dayArrayMed = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var monthArrayMed = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
var monthArrayLong = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

var defaultDateSeparator = "/";
var defaultDateFormat = "mdy";
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;

var crlf = "\r\n";
var TR = "<tr class='dpTR'>";
var TR_todaybutton = "<tr>";
var xTR = "</tr>" + crlf;
var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
var xTD = "</td>" + crlf;


var divTR = "<div class='calender_heading_main'>";
var divTR_todaybutton = "<div style='float:left'>";
var divxTR = "</div>" + crlf;
var divTD = "<div class='week_of_day1'><div class='number_txt1' style='cursor:pointer;'  ";    // leave this tag open, because we'll be adding an onClick event
var divTD_selected = "<div class='week_of_day1'><div class='today_box'  style='cursor:pointer;' onMouseOut='this.className=\"today_box\";' onMouseOver='this.className=\"number_txt1\";' ";    // leave this tag open, because we'll be adding an onClick event
var divxTD = "</div></div>" + crlf;



var html = '';
var today = new Date();
function in_array(needle, haystack, strict) {
    var found = false, key, strict = !!strict;
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
    return found;
}
function str_replace(search, replace, subject) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = (s[i]+'').split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
        }
    };
 
    return sa ? s : s[0];
}
function substr( f_string, f_start, f_length ) {
    // http://kevin.vanzonneveld.net
    // +     original by: Martijn Wieringa
    // +     bugfixed by: T.Wild
    // +      tweaked by: Onno Marsman
    // *       example 1: substr('abcdef', 0, -1);
    // *       returns 1: 'abcde'
    // *       example 2: substr(2, 0, -6);
    // *       returns 2: ''
 
    f_string += '';
 
    if(f_start < 0) {
        f_start += f_string.length;
    }
 
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
 
    if(f_length < f_start) {
        f_length = f_start;
    }
 
    return f_string.substring(f_start, f_length);
}
function refreshDatePicker(dateFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
 
  html="<table border=0 width=238><tr><td align='right'>"+getButtonCode(dateFieldName, thisDay, -1,"left")+" </td><td class='dpTitleTD'> "+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+" </td><td align='left'> "+getButtonCode(dateFieldName, thisDay, 1, "right")+"</td></tr></table>";
  html +="<table border=0 width=238><tr>";
  for(i = 0; i < dayArrayShort.length; i++) html += "<td class='dpTitleTDD'>" + dayArrayShort[i] + "</td>";
  html +="</tr></table>";

  // now we'll start populating the table with days of the month
  html += "<table border=0 class='dpTable' cellspacing=1 cellpadding=0 width=238>" + crlf + TR;
 
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++) html += TD + "&nbsp;" + xTD;

  // now, the days of the month
  do {
  dayNum = thisDay.getDate();

  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
   
  if(document.getElementById("gal_"+curyearnumval+"-"+curmonthnumval)){
	var firstfuncval=document.getElementById("gal_"+curyearnumval+"-"+curmonthnumval).value;
	TD_onclick = " onclick=\"return showGalMon('"+firstfuncval+"');\">";
  }else{
	   TD_onclick = ">";
  }
  
    var galDateArray=document.getElementById('galDateArray').value;
    var tblGalArray=galDateArray.split(",");
	
    var fulldate=thisDay.getFullYear()+"-"+eval(thisDay.getMonth()+1)+"-"+dayNum;
    html +=(in_array(fulldate,tblGalArray)? TD_selected + TD_onclick + dayNum +  xTD : TD + TD_onclick + dayNum + xTD);
    
    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--) html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  html += "</table>" + crlf;
  html +="<table border=0 width=238><tr><td class='dpCrntTD' align='center'><a onClick='refreshDatePicker(\"" + dateFieldName + "\");'>Current Month</a></td></tr></table>";
 
  document.getElementById("datePickerDivID").innerHTML = html;
}

function getButtonCode(dateFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  label="<img src='images/sma-arrow-"+(label=='left'?'right':'left')+".gif' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");' style='cursor:pointer;' alt='"+(label=='left'?'Previous':'Next')+"'/>";
  return label;
}

function eventrefreshDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
 
  html="<table border=0 width=238><tr><td align='right'>"+getButtonCodeEve(dateFieldName, calFieldName, thisDay, -1,"left")+" </td><td class='dpTitleTD'> "+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+" </td><td align='left'> "+getButtonCodeEve(dateFieldName, calFieldName, thisDay, 1, "right")+"</td></tr></table>";
  html +="<table border=0 width=238><tr>";
  for(i = 0; i < dayArrayShort.length; i++) html += "<td class='dpTitleTDD'>" + dayArrayShort[i] + "</td>";
  html +="</tr></table>";

  // now we'll start populating the table with days of the month
  html += "<table border=0 class='dpTable' cellspacing=1 cellpadding=0 width=238>" + crlf + TR;
 
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++) html += TD + "&nbsp;" + xTD;

  // now, the days of the month
  do {
  dayNum = thisDay.getDate();

  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();

  if(document.getElementById("eve_"+curyearnumval+"-"+curmonthnumval)){
  	var shTab=document.getElementById("eve_"+curyearnumval+"-"+curmonthnumval).value;
	TD_onclick = " onclick=\"return showEveMon('"+shTab+"');\">";
  }else{
	   TD_onclick = ">";
  }
    var eventArray=document.getElementById('eventArray').value;
    var tableEveArray=eventArray.split(",");
    var fulldate=thisDay.getFullYear()+"-"+eval(thisDay.getMonth()+1)+"-"+dayNum;
    //html +=TD + TD_onclick + dayNum + xTD;
    html +=(in_array(fulldate,tableEveArray)? TD_selected + TD_onclick + dayNum +  xTD : TD + TD_onclick + dayNum + xTD);
    
    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--) html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  html += "</table>" + crlf;
  html +="<table border=0 width=238><tr><td class='dpCrntTD' align='center'><a onClick='eventrefreshDatePicker(\"" + dateFieldName + "\",\"" + calFieldName + "\");'>Current Month</a></td></tr></table>";
 
  document.getElementById(calFieldName).innerHTML = html;
}

function getButtonCodeEve(dateFieldName, calFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  label="<img src='images/sma-arrow-"+(label=='left'?'right':'left')+".gif' onClick='eventrefreshDatePicker(\"" + dateFieldName + "\", \"" + calFieldName + "\", " + newYear + ", " + newMonth + ");' style='cursor:pointer;' alt='"+(label=='left'?'Previous':'Next')+"'/>";
  return label;
}

function rsBkrefreshDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }

  TDb = "<td class='dpTDb' >";
  TDn = "<td class='dpTDn' >";
  TD = "<td class='dpTD' ";
  html="<table border=0 width=238><tr><td align='right'>"+getButtonCodersBk("rsBkrefreshDatePicker",dateFieldName, calFieldName, thisDay, -1,"left")+" </td><td class='dpTitleTD'> "+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+" </td><td align='left'> "+getButtonCodersBk("rsBkrefreshDatePicker",dateFieldName, calFieldName, thisDay, 1, "right")+"</td></tr></table>";
  html +="<table border=0 width=238><tr>";
  for(i = 0; i < dayArrayShort.length; i++) html += "<td class='dpTitleTDD'>" + dayArrayShort[i] + "</td>";
  html +="</tr></table>";

  // now we'll start populating the table with days of the month
  html += "<table border=0 class='dpTable' cellspacing=1 cellpadding=0 width=238>" + crlf + TR;
 
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++) html += TD + "&nbsp;" + xTD;

  // now, the days of the month
  do {
  dayNum = thisDay.getDate();

  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
  var shTab=curyearnumval+"-"+curmonthnumval+"-"+dayNum;
	
  if(document.getElementById("bookDArray")){
	TD_onclick = " onclick=\"setrsVal('"+shTab+"','"+dayNum+"');\" id='dtcalid_"+dayNum+"'>";
  }else{
	   TD_onclick = " id='dtcalid_"+dayNum+"'>";
  }

    var disableDates=document.getElementById("disableDates").value;
    var disDtAry=disableDates.split(",");

    var bookedDates=document.getElementById("bookedDates").value;
    var bokDtAry=bookedDates.split(",");

    var eventArray=document.getElementById('bookDArray').value;
    var tableEveArray=eventArray.split(",");
    
    if(in_array(shTab,disDtAry))
    {
    	html +=TDn + dayNum + xTD;
    }else if(in_array(shTab,bokDtAry)){
    	html +=TDb + dayNum + xTD;
    }else{	
	    html +=(in_array(shTab,tableEveArray)? TD_selected + TD_onclick + dayNum +  xTD : TD  + TD_onclick + dayNum + xTD);
    }

    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--) html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  html += "</table>" + crlf;
  html +="<table border=0 width=238><tr><td class='dpCrntTD' align='center'><a onClick='rsBkrefreshDatePicker(\"" + dateFieldName + "\",\"" + calFieldName + "\");'>Current Month</a></td></tr></table>";
 
  document.getElementById(calFieldName).innerHTML = html;
}

function getButtonCodersBk(funcname,dateFieldName, calFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  label="<img src='images/sma-arrow-"+(label=='left'?'right':'left')+".gif' onClick='"+funcname+"(\"" + dateFieldName + "\", \"" + calFieldName + "\", " + newYear + ", " + newMonth + ");' style='cursor:pointer;'/>";
  return label;
}

function htBkrefreshDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }

  TDb = "<td class='dpTDb' >";
  TDn = "<td class='dpTDn' >";	
  TD = "<td class='dpTD' ";
  TD_selected = "<td class='dpDayHighlightTD'  ";
  html="<table border=0 width=238><tr><td align='right'>"+getButtonCodersBk("htBkrefreshDatePicker",dateFieldName, calFieldName, thisDay, -1,"left")+" </td><td class='dpTitleTD'> "+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+" </td><td align='left'> "+getButtonCodersBk("htBkrefreshDatePicker",dateFieldName, calFieldName, thisDay, 1, "right")+"</td></tr></table>";
  html +="<table border=0 width=238><tr>";
  for(i = 0; i < dayArrayShort.length; i++) html += "<td class='dpTitleTDD'>" + dayArrayShort[i] + "</td>";
  html +="</tr></table>";

  // now we'll start populating the table with days of the month
  html += "<table border=0 class='dpTable' cellspacing=1 cellpadding=0 width=238>" + crlf + TR;
 
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++) html += TD + "&nbsp;" + xTD;

  // now, the days of the month
  do {
  dayNum = thisDay.getDate();

  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
  var shTab=curyearnumval+"-"+curmonthnumval+"-"+dayNum;
  
  if(document.getElementById("bookDArray")){
	TD_onclick = " onclick=\"sethtVal('"+shTab+"');\" id='dtcalid_"+shTab+"'>";
  }else{
	   TD_onclick = " id='dtcalid_"+shTab+"'>";
  }

    var disableDates=document.getElementById("disableDates").value;
    var disDtAry=disableDates.split(",");
 
    var bookedDates=document.getElementById("bookedDates").value;
    var bokDtAry=bookedDates.split(",");

    var eventArray=document.getElementById('bookDArray').value;
    var tableEveArray=eventArray.split(",");
    
    if(in_array(shTab,disDtAry)){
    	html +=TDn + dayNum + xTD;
    }else if(in_array(shTab,bokDtAry)){
     	html +=TDb + dayNum + xTD;
    }else{
//    html +=TD + TD_onclick + dayNum + xTD;
    html +=(in_array(shTab,tableEveArray)? TD_selected + TD_onclick + dayNum +  xTD : TD  + TD_onclick + dayNum + xTD);
    }

    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--) html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  html += "</table>" + crlf;
  html +="<table border=0 width=238><tr><td class='dpCrntTD' align='center'><a onClick='htBkrefreshDatePicker(\"" + dateFieldName + "\",\"" + calFieldName + "\");'>Current Month</a></td></tr></table>";
 
  document.getElementById(calFieldName).innerHTML = html;
}

function bedRoomrefreshDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
  
  TDb 	= "<div class='week_of_day1'><div class='red_box'>";
  TDn 	= "<div class='week_of_day1'><div class='red_box'>";	
  TD 	= "<div class='week_of_day1'><div class='number_txt1'";
  TD_selected = "<div class='week_of_day1'><div class='today_box'";
  var clasname;
  
  html="<div class='calender'><div class='calender_heading_main'><div class='previous_arrow'>"+getButtonCodersbedRoom("bedRoomrefreshDatePicker",dateFieldName, calFieldName, thisDay, -1,"left")+"</div><div class='month_txt'>"+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+"</div><div class='previous_arrow1'>"+getButtonCodersbedRoom("bedRoomrefreshDatePicker",dateFieldName, calFieldName, thisDay, 1, "right")+"</div></div>";
  html +=" <div class='calender_heading_main'>";
  for(i = 0; i < dayArrayShort.length; i++) html += "<div class='week_of_day1'><div class='week_of_day'>" + dayArrayShort[i] + "</div></div>";

  html +="</div>";

  // now we'll start populating the table with days of the month
  html += " <div class='calender_heading_main'>" + crlf + divTR;
 
  // first, the leading blanks
   for (i = 0; i < thisDay.getDay(); i++) html += divTD + ">&nbsp;" + divxTD;

  // now, the days of the month
  do {
  dayNum = thisDay.getDate();
 // alert(dayNum);	
  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
  var shTab=curyearnumval+"-"+curmonthnumval+"-"+dayNum;
  
  //alert(shTab);
  if(document.getElementById("bookDArray")){
	TD_onclick = " onclick=\"sethtVal('"+shTab+"');\" id='dtcalid_"+shTab+"'>";
  }else{
	   TD_onclick = " id='dtcalid_"+shTab+"'>";
  }

    var disableDates=document.getElementById("disableDates").value;
    var disDtAry=disableDates.split(",");
 
    var bookedDates=document.getElementById("bookedDates").value;
    var bokDtAry=bookedDates.split(",");

    var eventArray=document.getElementById('bookDArray').value;
    var tableEveArray=eventArray.split(",");
    
    if(in_array(shTab,disDtAry)){
    	html +=TDn + dayNum + divxTD;
    }else if(in_array(shTab,bokDtAry)){
     	html +=TDb + dayNum + divxTD;
    }else{
//    html +=TD + TD_onclick + dayNum + xTD;
    html +=(in_array(shTab,tableEveArray)? TD_selected + TD_onclick + dayNum +  divxTD : divTD  + TD_onclick + dayNum + divxTD);
    }

    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += divxTR + divTR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
  //alert(html);
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i >= thisDay.getDay(); i--) html += divTD + ">&nbsp;" + divxTD;
  }
  html += divxTR;
 
  html += "</div>" + crlf;
  html +="</div>";
  
  document.getElementById(calFieldName).innerHTML = html;
}

function getButtonCodersbedRoom(funcname,dateFieldName, calFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  label="<img src='images/sma-arrow-"+(label=='left'?'right':'left')+".png' onClick='"+funcname+"(\"" + dateFieldName + "\", \"" + calFieldName + "\", " + newYear + ", " + newMonth + ");' style='cursor:pointer;'/>";
  return label;
}

function restDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }

  TDb 	= "<div class='week_of_day1'><div class='red_box'>";
  TDn 	= "<div class='week_of_day1'><div class='red_box'>";	
  TD 	= "<div class='week_of_day1'><div class='number_txt1'";
  TD_selected = "<div class='week_of_day1'><div class='today_box'";
 
  html="<div class='calender'><div class='calender_heading_main'><div class='previous_arrow'>"+getButtonCodersbedRoom("restDatePicker",dateFieldName, calFieldName, thisDay, -1,"left")+"</div><div class='month_txt'>"+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+"</div><div class='previous_arrow1'>"+getButtonCodersbedRoom("restDatePicker",dateFieldName, calFieldName, thisDay, 1, "right")+"</div></div>";
  
   html +=" <div class='calender_heading_main'>";
   
  for(i = 0; i < dayArrayShort.length; i++) html += "<div class='week_of_day1'><div class='week_of_day'>" + dayArrayShort[i] + "</div></div>";
  html +="</div>";


   // now we'll start populating the table with days of the month
  html += " <div class='calender_heading_main'>" + crlf + divTR;
 
  // first, the leading blanks
   for (i = 0; i < thisDay.getDay(); i++) html += divTD + ">&nbsp;" + divxTD;

 do {
  dayNum = thisDay.getDate();
 // alert(dayNum);	
  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
  var shTab=curyearnumval+"-"+curmonthnumval+"-"+dayNum;
  
  //alert(shTab);
  if(document.getElementById("bookDArray")){
	TD_onclick = " onclick=\"setrestVal('"+shTab+"','"+dayNum+"');\" id='dtcalid_"+dayNum+"'>";
  }else{
	   TD_onclick = " id='dtcalid_"+dayNum+"'>";
  }

   	var disableDates=document.getElementById("disableDates").value;
    var disDtAry=disableDates.split(",");
 
    var bookedDates=document.getElementById("bookedDates").value;
    var bokDtAry=bookedDates.split(",");

    var eventArray=document.getElementById('bookDArray').value;
    var tableEveArray=eventArray.split(",");
    
    if(in_array(shTab,disDtAry)){
    	html +=TDn + dayNum + divxTD;
    }else if(in_array(shTab,bokDtAry)){
     	html +=TDb + dayNum + divxTD;
    }else{
//    html +=TD + TD_onclick + dayNum + xTD;
    html +=(in_array(shTab,tableEveArray)? TD_selected + TD_onclick + dayNum +  divxTD : divTD  + TD_onclick + dayNum + divxTD);
    }

  // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += divxTR + divTR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
  //alert(html);
  
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i >= thisDay.getDay(); i--) html += divTD + ">&nbsp;" + divxTD;
  }
  html += divxTR;
 
  html += "</div>" + crlf;
  html +="</div>";
  
  document.getElementById(calFieldName).innerHTML = html;
}

function eventsDatePicker(dateFieldName, calFieldName, year, month, day)
{
  var thisDay = new Date();
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
  
  TDb 	= "<div class='week_of_day1'><div class='red_box'>";
  TDn 	= "<div class='week_of_day1'><div class='red_box'>";	
  TD 	= "<div class='week_of_day1'><div class='number_txt1'";
  TD_selected = "<div class='week_of_day1' style='cursor:pointer;'><div class='today_box'";
  
  html="<div class='calender'><div class='calender_heading_main'><div class='previous_arrow'>"+getButtonCodersbedRoom("eventsDatePicker",dateFieldName, calFieldName, thisDay, -1,"left")+"</div><div class='month_txt'>"+monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear()+"</div><div class='previous_arrow1'>"+getButtonCodersbedRoom("eventsDatePicker",dateFieldName, calFieldName, thisDay, 1, "right")+"</div></div>";
  
  html +=" <div class='calender_heading_main'>";
  
  for(i = 0; i < dayArrayShort.length; i++) html += "<div class='week_of_day1'><div class='week_of_day'>" + dayArrayShort[i] + "</div></div>";
  html +="</div>";


   // now we'll start populating the table with days of the month
  html += " <div class='calender_heading_main'>" + crlf + divTR;
 
  // first, the leading blanks
   for (i = 0; i < thisDay.getDay(); i++) html += divTD + ">&nbsp;" + divxTD;

  // now, the days of the month
   do {
  dayNum = thisDay.getDate();
  // alert(dayNum);	
  var curmonthnumval=eval(thisDay.getMonth()+1);
  var curyearnumval=thisDay.getFullYear();
  
  if(document.getElementById("eve_"+curyearnumval+"-"+curmonthnumval)){
  	var shTab=document.getElementById("eve_"+curyearnumval+"-"+curmonthnumval).value;
	TD_onclick = " onclick=\"return showEveMon('"+shTab+"','"+curyearnumval+"-"+curmonthnumval+"-"+dayNum+"');\">";
  }else{
	TD_onclick = " onclick=\"return showEveMon('"+shTab+"','"+curyearnumval+"-"+curmonthnumval+"-"+dayNum+"');\">";
  }
    var eventArray=document.getElementById('eventArray').value;
    var tableEveArray=eventArray.split(",");
    var fulldate=thisDay.getFullYear()+"-"+eval(thisDay.getMonth()+1)+"-"+dayNum;
	
    //html +=TD + TD_onclick + dayNum + xTD;
    html +=(in_array(fulldate,tableEveArray)? TD_selected + TD_onclick + dayNum +  divxTD : divTD + TD_onclick + dayNum + divxTD);
    
	// if this is a Saturday, start a new row
    if (thisDay.getDay() == 6) html += divxTR + divTR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
	  } while (thisDay.getDate() > 1)
	  //alert(html);
	  
	  // fill in any trailing blanks
	  if (thisDay.getDay() > 0) {
		for (i = 6; i >= thisDay.getDay(); i--) html += divTD + ">&nbsp;" + divxTD;
	  }
	  html += divxTR;
  
  	html += "</div>" + crlf;
  	html +="</div>";
 
  document.getElementById(calFieldName).innerHTML = html;
}

function getDateString(dateVal)
{
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);
  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
 
  switch (dateFormat) {
    case "dmy" :
      return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
    case "ymd" :
      return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
    case "mdy" :
    default :
      return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
  }
}

function getFieldDate(dateString)
{
  var dateVal;
  var dArray;
  var d, m, y;
 
  try {
    dArray = splitDateString(dateString);
    if (dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
        case "ymd" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          break;
        case "mdy" :
        default :
          d = parseInt(dArray[1], 10);
          m = parseInt(dArray[0], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
      }
      dateVal = new Date(y, m, d);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
 
  return dateVal;
}
function splitDateString(dateString)
{
  var dArray;
  if (dateString.indexOf("/") >= 0)
    dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0)
    dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0)
    dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0)
    dArray = dateString.split("\\");
  else
    dArray = false;
 
  return dArray;
}
