var _selected = new Array();
var cell_width = 26;
var cell_height = 25;
var availability_image = '/images/availability_image.png';

bgcolor_UNA_x_SEL = [0,0];    
bgcolor_SEL_x_UNA = [1,0]; 
bgcolor_AVA_x_SEL = [2,0];
bgcolor_SEL_x_AVA = [3,0];

bgcolor_UNA = [0,1];
bgcolor_UNA_x_TMP = [1,1];
bgcolor_UNA_x_AVA = [2,1];
bgcolor_AVA_x_UNA = [3,1]; 

bgcolor_BEFORE = [0,2];
bgcolor_TODAY = [1,2];
bgcolor_SEL = [2,2];  
bgcolor_AVA = [3,2];

bgcolor_EVT_x_UNA = [0,3];
bgcolor_UNA_x_EVT = [1,3];
bgcolor_EVT_x_SEL = [2,3];
bgcolor_SEL_x_EVT = [3,3];

bgcolor_EVT = [0,4];
bgcolor_EVT_x_OFF = [1,4];
bgcolor_OFF = [2,4];
bgcolor_OFF_x_EDGE = [3,4];

bgcolor_UNA_x_AVA_x_OFF = [0,5];
bgcolor_AVA_x_UNA_x_OFF = [1,5];
bgcolor_EVT_x_UNA_x_OFF = [2,5];
bgcolor_UNA_x_EVT_x_OFF = [3,5];

bgcolor_UNA_x_SEL_x_OFF = [0,6];    
bgcolor_SEL_x_UNA_x_OFF = [1,6]; 
bgcolor_EVT_x_SEL_x_OFF = [2,6];
bgcolor_SEL_x_EVT_x_OFF = [3,6];

bgcolor_EVT_x_OFF_x_EDGE = [0,7];
bgcolor_OVR = [1,7];
bgcolor_SEL_x_AVA_x_OFF = [2,7];
bgcolor_AVA_x_SEL_x_OFF = [3,7];

var weekday=new Array(7);
weekday[0] = 'Monday';
weekday[1] = 'Tuesday';
weekday[2] = 'Wednesday';
weekday[3] = 'Thursday';
weekday[4] = 'Friday';
weekday[5] = 'Saturday';
weekday[6] = 'Sunday';

var monthnames=new Array(12);
monthnames[0] = 'Jan';
monthnames[1] = 'Feb';
monthnames[2] = 'Mar';
monthnames[3] = 'Apr';
monthnames[4] = 'May';
monthnames[5] = 'Jun';
monthnames[6] = 'Jul';
monthnames[7] = 'Aug';
monthnames[8] = 'Sep';
monthnames[9] = 'Oct';
monthnames[10] = 'Nov';
monthnames[11] = 'Dec';

function _FadeIn($WhichDiv) {
   _setOpac($WhichDiv,0);
   for( var i = 0 ; i <= 100 ; i++ ) {
         tims[tims.length] = setTimeout( '_setOpac(\''+$WhichDiv+'\',' + i + ')' , 8 * i );
   }
}

// Function used to fade "out" a div
function _FadeOut($WhichDiv) {
   for( var i = 0 ; i <= 100 ; i++ ) {
         tims[tims.length] = setTimeout( '_setOpac(\''+$WhichDiv+'\',' + (100 - i) + ')' , 8 * i );
   }
}

// Function used to set the opacity of a div (from 0 to 10)
function _setOpac( $WhichDiv, value ) {
      if(document.getElementById($WhichDiv))
      {
         document.getElementById($WhichDiv).style.opacity = value / 100;
         document.getElementById($WhichDiv).style.filter = 'alpha(opacity=' + value + ')';
      }
}

function showPriceMessage(msg)
{
   var obj = document.getElementById('dynamic_price_div');
   if(obj)
   {
      _setOpac('dynamic_price_div',0);
      obj.innerHTML = msg;
      _FadeIn('dynamic_price_div');
      tims[tims.length] = setTimeout('_FadeOut(\'dynamic_price_div\')', (8 * 100) + 3000);
      i_msg_idx++;
      tims[tims.length] = setTimeout('showPriceMessages()', (8 * 100) + 3000 + 2000);
   }
}

var i_msg_idx = 0;
var msgs = new Array();
var tims = new Array();
function showPriceMessages()
{
   clearAllTimeouts();
   if(i_msg_idx < msgs.length)
   {
      showPriceMessage(msgs[i_msg_idx]);       
   }
}

function clearAllTimeouts()
{
   for(var i = 0; i < tims.length; i++)
   {
      clearTimeout(tims[i]);
   }    
}

var c_ovr_str = '';
function ovr(obj_name)
{
   var obj = document.getElementById(obj_name);
   c_ovr_str = obj.style.backgroundPosition;
   setBackgroundPositionCSS(bgcolor_OVR,obj);
}

function out(obj_name)
{
   if(c_ovr_str != '')
      document.getElementById(obj_name).style.backgroundPosition = c_ovr_str;  
}

function setBackgroundPositionCSS(point,obj)
{
   obj.style.backgroundPosition = (-cell_width*point[0])+'px '+(-cell_height*point[1])+'px';
}

function dayHasEvent(d,m,y)
{
   for(var i in c_events)
   {
      if(i == d+'_'+m+'_'+y)
         return true;
	}
	return false;
}


function highlightDate(d,m,y,highlight,type)
{
   var objName = 'date_'+d+'_'+m+'_'+y;
   var obj = MM_findObj(objName);
   if(obj)
   {
	   if(highlight==true)
	   {
		  var obj = MM_findObj(objName);
		  var current_bgcolor = bgcolor_SEL; 
		  
		  if(type == 300)
		  {
			  current_bgcolor = bgcolor_SEL_x_UNA;
		  }
		  else if(type == 400)
		  {
			  current_bgcolor = bgcolor_UNA_x_SEL;
		  }
		  else if(type == 701)
		  {
			  current_bgcolor = (dayHasEvent(d,m,y)) ? bgcolor_SEL_x_EVT_x_OFF : bgcolor_SEL_x_AVA_x_OFF;
		  }
		  else if(type == 702)
		  {
			  current_bgcolor = (dayHasEvent(d,m,y)) ? bgcolor_EVT_x_SEL_x_OFF : bgcolor_AVA_x_SEL_x_OFF;
		  }
		  
		  setBackgroundPositionCSS(current_bgcolor,obj);
		  
		  var in_array_already = false;
		  for(var i = 0; i < _selected.length; i++)
		  {
			 if(_selected[i][0] == d && _selected[i][1] == m && _selected[i][2] == y)
			 {
				in_array_already = true;
			 }
		  }
		  if(in_array_already == false)
		  {
			 _selected.splice(_selected.length,0,Array(d,m,y,type));
		  }
	   }
	   else
	   {
		  var obj = MM_findObj(objName);
		  var current_bgcolor = bgcolor_AVA;
		  
		  // UNDERLYING EVENT 
		  if(dayHasEvent(d,m,y))
		  {
		     if(type == 100)
		     {
		        current_bgcolor = bgcolor_EVT;
			  }
		     else if(type == 300)
			  {
			     current_bgcolor = bgcolor_EVT_x_UNA;
			  }
			  else if(type == 400)
			  {
			     current_bgcolor = bgcolor_UNA_x_EVT;
			  }
			  else if(type == 701)
			  {
			     current_bgcolor = bgcolor_EVT_x_OFF_x_EDGE;
			  }
			  else if(type == 702)
			  {
			     current_bgcolor = bgcolor_EVT_x_OFF_x_EDGE;
			  }
		  }
		  else
		  {
			  if(type == 300)
			  {
				 current_bgcolor = bgcolor_AVA_x_UNA;
			  }
			  else if(type == 400)
			  {
				 current_bgcolor = bgcolor_UNA_x_AVA;
			  }
		     else if(type == 701)
			  {
			     current_bgcolor = bgcolor_OFF_x_EDGE;
			  }
			  else if(type == 702)
			  {
			     current_bgcolor = bgcolor_OFF_x_EDGE;
			  }
		  }
		  
		  setBackgroundPositionCSS(current_bgcolor,obj);
			 
		  for(var i = 0; i < _selected.length; i++)
		  {
			 if(_selected[i][0] == d && _selected[i][1] == m && _selected[i][2] == y)
			 {
				_selected.splice(i,1);
			 }
		  }
	   }
   }
}

function resetSelection()
{
   hideAJAXAvailabilityAndPrice();
   while(_selected.length!=0)
   {
      highlightDate(_selected[0][0],_selected[0][1],_selected[0][2],false,_selected[0][3]);
   }
   updateCheckInCheckOut();
}

function selectDate(d,m,y,type)
{
   c_ovr_str = ''; // Cancel rollover
   var objName = 'date_'+d+'_'+m+'_'+y;
   var in_array = false;
   var index = -1;
   for(var i = 0; i < _selected.length; i++)
   {
      if(_selected[i][0] == d && _selected[i][1] == m && _selected[i][2] == y)
      {
         in_array = true;
         index = i;
         break;
      }
   }
   if(in_array == false)
   {
      highlightDate(d,m,y,true,type);
      if(_selected.length > 1)
      {
         var minD = 0;
         var maxD = 0;
         for(var i = 0; i < _selected.length; i++)
         {
            var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
            if(i == 0 || _d < minD)
            {
               minD = _d;
            }
            if(i == 0 || _d > maxD)
            {
               maxD = _d;
            }
         }
         var sd = minD;
         var fd = maxD;
         var noObj = false;
         for(var i = sd+86400000; i < fd; i+=86400000)
         {
            var _d = new Date();
            _d.setTime(i);
            var objName = 'date_'+_d.getUTCDate()+'_'+(_d.getUTCMonth()+1)+'_'+_d.getUTCFullYear();
            var obj = MM_findObj(objName);
            if(!obj)
            {
               noObj = true;
               break;
            }
         }
         if(noObj==false)
         {
            for(var i = sd+86400000; i < fd; i+=86400000)
            {
               var _d = new Date();
               _d.setTime(i);
               highlightDate(_d.getUTCDate(),_d.getUTCMonth()+1,_d.getUTCFullYear(),true,100);
            }
         }
         else
         {
            highlightDate(d,m,y,false,type);
            alert("This date range cannot be selected as either some dates are\nunavailable or there is a special offer on a fixed date range");
            resetSelection();
         }
      }
      else
      {
         highlightDate(d,m,y,true,type); 
		}
   }
   else
   {
      if(_selected.length > 1)
      {
         highlightDate(d,m,y,false,type);
         var d = Date.UTC(y,m-1,d,0,0,0,0);
         var countL = 0;
         var countR = 0;
         var sd = 0;
         var fd = 0;
         var index = -1;
         for(var i = 0; i < _selected.length; i++)
         {
            var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
            if(_d <= d) { countL++; }
            else { countR++; }
         }
         if(countL > countR)
		 {
		    sd = d;
		    maxD = 0;
		    var maxDtype = 100;
            for(var i = 0; i < _selected.length; i++)
            {
               var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
               if(i == 0 || _d > maxD)
               {
                  maxD = _d;
                  maxDtype = _selected[i][3];
                  index = i;
               }
            }
            fd = maxD;
            for(var i = sd+86400000; i <= fd; i+=86400000)
            {
               var _type = (i==fd) ? maxDtype : 100;
               var d = new Date();
               d.setTime(i);
               highlightDate(d.getUTCDate(),d.getUTCMonth()+1,d.getUTCFullYear(),false,_type);
            }
         }
         else
         {
		    fd = d;
		    minD = 0;
		    var minDtype = 100;
            for(var i = 0; i < _selected.length; i++)
            {
               var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
               if(i == 0 || _d < minD)
               {
                  minD = _d;
                  minDtype = _selected[i][3];
                  index = i;
               }
            }
            sd = minD;
            for(var i = sd; i < fd; i+=86400000)
            {
               var _type = (i==sd) ? minDtype : 100;
               var d = new Date();
               d.setTime(i);
               highlightDate(d.getUTCDate(),d.getUTCMonth()+1,d.getUTCFullYear(),false,_type);
            }
         }
      }
      else
      {
         highlightDate(d,m,y,false,type);
      }
   }
   
   var minD = 0;
   var maxD = 0;
   for(var i = 0; i < _selected.length; i++)
   {
     var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
     if(i == 0 || _d < minD)
     {
	minD = _d;
     }
     if(i == 0 || _d > maxD)
     {
	maxD = _d;
     }
   }
   if(minD!=maxD)
   {
      getAJAXAvailabilityAndPrice(minD,maxD); 
   }
   else
   {
      hideAJAXAvailabilityAndPrice();
   }
   updateCheckInCheckOut();
}

function updateCheckInCheckOut()
{
   var minD = 0;
   var maxD = 0;
   var minDtype = 100;
   var maxDtype = 100;
   for(var i = 0; i < _selected.length; i++)
   {
      var _d = Date.UTC(_selected[i][2],_selected[i][1]-1,_selected[i][0],0,0,0,0);
	  if(i == 0 || _d < minD)
	  {
		minD = _d;
		minDtype = _selected[i][3];
	  }
      if(i == 0 || _d > maxD)
	  {
		maxD = _d;
		maxDtype = _selected[i][3];
      }
   }
   if(minD==maxD)
   {
      MM_changeProp('booking_from_day','','value',0,'INPUT');
      MM_changeProp('booking_from_month','','value',0,'INPUT');
      MM_changeProp('booking_from_year','','value',0,'INPUT');
      MM_changeProp('booking_to_day','','value',0,'INPUT');
      MM_changeProp('booking_to_month','','value',0,'INPUT');
      MM_changeProp('booking_to_year','','value',0,'INPUT');
      if(minDtype == 100)
      {
         var _minD = new Date();
         _minD.setTime(minD);
         var objName = 'date_'+_minD.getUTCDate()+'_'+(_minD.getUTCMonth()+1)+'_'+_minD.getUTCFullYear();
         var obj = MM_findObj(objName);
         if(obj)
         {
            // UNDERLYING EVENT
            if(dayHasEvent(_minD.getUTCDate(),(_minD.getUTCMonth()+1),_minD.getUTCFullYear()))    
               setBackgroundPositionCSS(bgcolor_EVT_x_SEL,obj);
            else
               setBackgroundPositionCSS(bgcolor_AVA_x_SEL,obj);
         }
      }
   }
   else
   {
      var _minD = new Date();
      _minD.setTime(minD);
      var _maxD = new Date();
      _maxD.setTime(maxD);
      MM_changeProp('booking_from_day','','value',_minD.getUTCDate(),'INPUT');
      MM_changeProp('booking_from_month','','value',_minD.getUTCMonth()+1,'INPUT');
      MM_changeProp('booking_from_year','','value',_minD.getUTCFullYear(),'INPUT');
      MM_changeProp('booking_to_day','','value',_maxD.getUTCDate(),'INPUT');
      MM_changeProp('booking_to_month','','value',_maxD.getUTCMonth()+1,'INPUT');
      MM_changeProp('booking_to_year','','value',_maxD.getUTCFullYear(),'INPUT');
      if(minDtype == 100)
      {
         var objName = 'date_'+_minD.getUTCDate()+'_'+(_minD.getUTCMonth()+1)+'_'+_minD.getUTCFullYear();
         var obj = MM_findObj(objName);
         if(obj)
         {
            // UNDERLYING EVENT
            if(dayHasEvent(_minD.getUTCDate(),(_minD.getUTCMonth()+1),_minD.getUTCFullYear()))    
               setBackgroundPositionCSS(bgcolor_EVT_x_SEL,obj);
            else
               setBackgroundPositionCSS(bgcolor_AVA_x_SEL,obj);
         }
      }
      if(maxDtype == 100)
      {
         var objName = 'date_'+_maxD.getUTCDate()+'_'+(_maxD.getUTCMonth()+1)+'_'+_maxD.getUTCFullYear();
         var obj = MM_findObj(objName);
         if(obj)
         {
            // UNDERLYING EVENT
            if(dayHasEvent(_maxD.getUTCDate(),(_maxD.getUTCMonth()+1),_maxD.getUTCFullYear()))    
               setBackgroundPositionCSS(bgcolor_SEL_x_EVT,obj);
            else
               setBackgroundPositionCSS(bgcolor_SEL_x_AVA,obj);
         }
      }
   }
}

function echoDate(d)
{
    if(d == 0) { return 'Not Selected'; }
    var _d = new Date();
    _d.setTime(d);
    var day_of_week = _d.getUTCDay();
    day_of_week--;
    if(day_of_week==-1) { day_of_week = 6; }
    var day = _d.getUTCDate();
    var month = _d.getUTCMonth();
    var year = _d.getUTCFullYear();
	var dstr = weekday[day_of_week]+", ";
	dstr += day;
	dstr += " "+monthnames[month];
	dstr += " ";
	dstr += year;
	return dstr;
}




function hideAJAXAvailabilityAndPrice()
{
   document.getElementById("_ajax_availability_div").innerHTML = '';  
}

function getAJAXAvailabilityAndPrice(sd,fd)
{
   var sm = document.getElementById("first_month_on_page").value;
   var url = '/ajax/_get_availability_and_price.ajax.php?id='+server_property_id+'&sd='+sd+'&fd='+fd+'&sm='+sm+'&server_ref='+server_ref;
   ajaxRequest(url, true, 'getAvailabilityAndPriceResponse');
}

function useAvailabilityOption(sd,sm,sy,sas,ed,em,ey,eas)
{
   resetSelection();
   selectDate(sd,sm,sy,sas);
   selectDate(ed,em,ey,eas);  
}

var gaapr_counter = 1;
function getAvailabilityAndPriceResponse()
{
   if (xmlHttp.readyState==4)
   {
      document.getElementById("_ajax_availability_div").innerHTML = xmlHttp.responseText;  
      smoothScroll('_ajax_availability_div',-200);
      if(document.getElementById('dynamic_price_div'))
      {   
         msgs = document.getElementById('dynamic_price_div').innerHTML.split('|');
         clearAllTimeouts();
         i_msg_idx = 0;
         setTimeout('showPriceMessages()',2000);       
      }
      pageTracker._trackPageview('/user_event/BookingPanel/Calendar/'+(gaapr_counter++)+'/'); 
   }
}


function currentYPosition() 
{
    if (self.pageYOffset)
         return self.pageYOffset;
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    if (document.body.scrollTop)
         return document.body.scrollTop;
    return 0;
}
function elmYPosition(eID) 
{
    var elm  = document.getElementById(eID);
    var y    = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y   += node.offsetTop;
    } return y;
}
function smoothScroll(eID, offset) 
{
    var startY   = currentYPosition();
    var stopY    = elmYPosition(eID)+offset;
    if(Math.abs(stopY - startY) < 300) { return; }
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) {
        scrollTo(0, stopY); return;
    }
    var speed = Math.round(distance / 100);
    if (speed >= 20) speed = 20;
    var step  = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    if (stopY > startY) {
        for ( var i=startY; i<stopY; i+=step ) {
            setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
            leapY += step; if (leapY > stopY) leapY = stopY; timer++;
        } return;
    }
    for ( var i=startY; i>stopY; i-=step ) {
        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
        leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
    }
}



function P7_Snap() { //v2.67 by PVII
 var g,x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,tw,q0,xx,yy,w1,pa='px',args=P7_Snap.arguments;a=parseInt(a);
 if(document.layers||window.opera){pa='';}for(k=0;k<(args.length);k+=4){
 if((g=MM_findObj(args[k]))!=null){if((el=MM_findObj(args[k+1]))!=null){
 a=parseInt(args[k+2]);b=parseInt(args[k+3]);x=0;y=0;ox=0;oy=0;p="";tx=1;
 da="document.all['"+args[k]+"']";if(document.getElementById){
 d="document.getElementsByName('"+args[k]+"')[0]";if(!eval(d)){
 d="document.getElementById('"+args[k]+"')";if(!eval(d)){d=da;}}
 }else if(document.all){d=da;}if(document.all||document.getElementById){while(tx==1){
 p+=".offsetParent";if(eval(d+p)){x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
 }else{tx=0;}}ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);tw=x+ox+y+oy;
 if(tw==0||(navigator.appVersion.indexOf("MSIE 4")>-1&&navigator.appVersion.indexOf("Mac")>-1)){
  ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);}else{
  w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
  x=document.body.scrollLeft+event.clientX+bx;y=document.body.scrollTop+event.clientY;}}
 }else if(document.layers){x=g.x;y=g.y;q0=document.layers,dd="";for(var s=0;s<q0.length;s++){
  dd='document.'+q0[s].name;if(eval(dd+'.document.'+args[k])){x+=eval(dd+'.left');y+=eval(dd+'.top');
  break;}}}e=(document.layers)?el:el.style;xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
 if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
  xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);}
 e.left=xx+pa;e.top=yy+pa;}}}
}   

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}





function reloadAvailabilityCalendar(property_id,number,_m,months_limit_per_row)
{
   clearAllTimeouts();
   resetSelection();
   var loading_div = document.getElementById('loading_div');
   document.getElementById('property_availability_div').style.display = 'none';
   var loading_html = '<table width="450"><tr><td align="center" valign="middle"><div style="padding-top:25px;padding-bottom:30px;"><img src="/images/loading.gif" border="0"></div></td></tr></table>';
   loading_div.innerHTML = loading_html;
   loading_div.style.display = '';
   var url = '/ajax/_get_availability_calendar_page_4.ajax.php?property_id='+property_id+'&number='+number+'&_m='+_m+'&LANGUAGE_CODE=1';
   ajaxRequest(url, true, 'reloadAvailabilityCalendarResponse');
   return false;
}


function reloadAvailabilityCalendarResponse()
{
   if (xmlHttp.readyState==4)
   {
      rc = xmlHttp.responseText;
      document.getElementById('loading_div').style.display = 'none'; 
      document.getElementById('property_availability_div').innerHTML = rc;
      document.getElementById('property_availability_div').style.display = '';
      if(document.getElementById("js_to_eval"))
      {
         eval(document.getElementById("js_to_eval").innerHTML.substring(4));
      }
   }
}




var active_dmy = '';
function availabilityMouseOver(d,m,y)
{
	if(d+'_'+m+'_'+y != active_dmy)
	{
		active_dmy = '';
	   var td_obj = document.getElementById('date_'+d+'_'+m+'_'+y);
	   var iHTML = td_obj.innerHTML;
	   var padded_m = ((m+"").length == 1) ? "0"+m : ""+m;
	   
	   // Extract select date call
	   var str_0 = 'selectDate(';
	   var str_1 = ')';
	   var idx_0 = iHTML.indexOf(str_0)+str_0.length;
	   var idx_1 = iHTML.indexOf(str_1,idx_0);
	   var extract = iHTML.substring(idx_0,idx_1).split(',');
	   var cDay=(new Date(y,m-1,d)).getDay(); 
	   
	   var color = (cDay == 0 || cDay == 6) ? '#CC0000' : '#000000';
	   var nHTML = '<table border="0" cellspacing="0" cellpadding="5"><tr><td width="30" height="30" valign="middle" align="center"><a onClick="setActiveDMY('+d+','+m+','+y+');availabilityMouseOut();" onMouseOut="availabilityMouseOut();" href="javascript:selectDate('+extract.toString()+');" style="font-family:Verdana;text-decoration:none;color:'+color+';font-size:14px;font-weight:bold;">'+extract[0]+'</a></td></tr></table>';
	   var availability_mouse_over_div = document.getElementById('availability_mouse_over_div');
	   availability_mouse_over_div.innerHTML = nHTML;
	   
	   var sDay=(new Date(y,m-1,1)).getDay(); 
	   if(sDay==0)sDay=7;
	   sDay--; 
	   var offset_h=(d%7)+sDay;
	   if(offset_h>7)offset_h=offset_h-7;
	   if(d%7==0&&sDay==0)offset_h=7; 
	   var offset_v=Math.ceil((d+sDay)/7); 
	   
	   offset_v *= 15;
	   offset_h *= 18;
	   
	   P7_Snap('date_'+padded_m+'_'+y,'availability_mouse_over_div',offset_h-115,offset_v-5); 
	   availability_mouse_over_div.style.display = '';
	}
}

function availabilityMouseOut()
{
   document.getElementById('availability_mouse_over_div').style.display = 'none';	
}

function setActiveDMY(d,m,y)
{
   active_dmy = d+'_'+m+'_'+y;	
}



function number_format( number, decimals, dec_point, thousands_sep ) 
{  
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;                                        
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
                                     
function updateFacebookPrices(obj)
{
    var total_cost = document.getElementById('total_price_js').value;
    var split_between = obj.value;
    var cost_per_person = number_format(total_cost/split_between,2,'.',',');
    var facebook_friends_count = (split_between-1);
    var friend_s = (facebook_friends_count == 1) ? ' friend' : ' friends';
    document.getElementById('facebook_price').innerHTML = '&euro;'+cost_per_person;
}


function showCalendarHelp()
{
	var ajax_availability_div = document.getElementById("ajax_availability_div");
	ajax_availability_div.style.display = 'none';
	var l_offset = -460;
	ajax_availability_div.innerHTML = '<div style="width:284px;height:208px;background:url(/images/ajax_avail_bk_img_right_blue.png) no-repeat;"><div style="position:relative;padding-top:10px;padding-left:15px;"><table border="0" cellspacing="0" cellpadding="2" width="250" class="main"><tr><td align="left" valign="middle" width="30" style="border-bottom:1px #BDBDBD dotted;"><span class="number_1" style="line-height:48px;">1</span></td><td width="10" class="green_pointer" align="center" style="border-bottom:1px #BDBDBD dotted;">&raquo;</td><td class="number_1_text" style="border-bottom:1px #BDBDBD dotted;"><a href="#">Click your check-in date</a></td></tr><tr><td align="left" valign="middle" width="30" style="border-bottom:1px #BDBDBD dotted;"><span class="number_2" style="line-height:48px;">2</span></td><td width="10" class="green_pointer" align="center" style="border-bottom:1px #BDBDBD dotted;">&raquo;</td><td class="number_2_text" style="border-bottom:1px #BDBDBD dotted;"><a href="#">Click your check-out date</a></td></tr><tr><td align="left" valign="middle" width="30"><span class="number_3" style="line-height:48px;">3</span></td><td width="10" class="green_pointer" align="center">&raquo;</td><td class="number_3_text"><a href="#">Price shown, book online!</a></td></tr><tr><td colspan="3"><a style="float:right;" class="rrg_button" href="javascript:resetSelection();" onclick="this.blur();"><span>Close</span></a></td></tr></table></div></div>';
	P7_Snap('date_'+server_first_calendar_month,'ajax_availability_div',l_offset,0);
	ajax_availability_div.style.display = '';	
}	



