//Ajax function



function XHConn()

{

  var xmlhttp, bComplete = false;

  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }

  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }

  catch (e) { try { xmlhttp = new XMLHttpRequest(); }

  catch (e) { xmlhttp = false; }}}

  if (!xmlhttp) return null;

  this.connect = function(sURL, sMethod, sVars, fnDone)

  {

    if (!xmlhttp) return false;

    bComplete = false;

    sMethod = sMethod.toUpperCase();



    try {

      if (sMethod == "GET")

      {

        xmlhttp.open(sMethod, sURL+"?"+sVars, true);

        sVars = "";

      }

      else

      {

        xmlhttp.open(sMethod, sURL, true);

        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");

        xmlhttp.setRequestHeader("Content-Type",

          "application/x-www-form-urlencoded");

      }

      xmlhttp.onreadystatechange = function(){

        if (xmlhttp.readyState == 4 && !bComplete)

        {

          bComplete = true;

          fnDone(xmlhttp);

        }};

      xmlhttp.send(sVars);

    }

    catch(z) { return false; }

    return true;

  };

  return this;

}



function showBooking(id)

{

	if(document.getElementById('booking'+id).className == 'hidden'){

	var myConn = new XHConn();

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

	var include_terminado = function (oXML){ document.getElementById('book'+id).innerHTML = oXML.responseText;};

	document.getElementById('btnBooking'+id).value = 'Hide Booking'; 

	document.getElementById('booking'+id).className = 'reveal'; 

	document.getElementById('book'+id).innerHTML = "<img src='images/loading.gif' />";

	myConn.connect("booking.php", "GET", "id="+id, include_terminado);

	

	}

	else

	{

		

		

		document.getElementById('booking'+id).className = 'hidden'; 

		document.getElementById('book'+id).innerHTML = "";

		document.getElementById('btnBooking'+id).value = 'Show Booking';

	}

}





function checkEmail(reg)

{
	
	var myConn = new XHConn();
	var email;

	email = document.getElementById('email').value;

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

	var include_terminado = function (oXML){ 

	if(oXML.responseText == '1'){

	document.getElementById('email').style.background='red';

	document.getElementById('email').style.color='white';

	document.getElementById('err').innerHTML = '<font color=red>Email already exist in database</font>';

	document.getElementById('err').className = 'reveal';

	document.getElementById('imgsubmit').disabled = true;

	//document.reg.email.focus();

	}

	else

	{

	document.getElementById('email').style.background='white';

	document.getElementById('email').style.color='black';

	document.getElementById('err').innerHTML = '';

	document.getElementById('err').className = 'hidden';

	document.getElementById('imgsubmit').disabled = false;

	}

	};

	myConn.connect("checkemail.php", "GET", "email="+email, include_terminado);
}

function checkEmailNew()
{
	var email;

	email = document.getElementById('emailNew').value;
	//alert(email);
	
	var myConn = new XHConn();

	

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

	var include_terminado = function (oXML){ 

	if(oXML.responseText == '1'){

	document.getElementById('emailNew').style.background='red';

	document.getElementById('emailNew').style.color='white';

	document.getElementById('err').innerHTML = '<font color=red>Email all ready exist in database</font>';

	document.getElementById('err').className = 'reveal';

	document.getElementById('imgsubmit').disabled = true;

	}

	else

	{

	document.getElementById('emailNew').style.background='white';

	document.getElementById('emailNew').style.color='black';

	document.getElementById('err').innerHTML = '';

	document.getElementById('err').className = 'hidden';

	document.getElementById('imgsubmit').disabled = false;

	}

	};

	myConn.connect("checkemail.php", "GET", "email="+email, include_terminado);
}


function checkAvail(id,minDays)
{
	
	start_day = document.getElementById("day_start1").value;
	start_month=document.getElementById("month_start1").selectedIndex;
	//start_month=start_month-1;
	start_year=document.getElementById("year_start1").value;

	
	end_day=document.getElementById("day_end1").value;
	end_month=document.getElementById("month_end1").selectedIndex;
	//end_month=end_month-1;
	end_year=document.getElementById("year_end1").value;


	showCal(start_year,start_month+1,id);
	var one_day=1000*60*60*24;
	var today = new Date();
	var ending= end_year+"/"+(end_month+1)+"/"+end_day;
	var starting=start_year+"/"+(start_month+1)+"/"+start_day;

	var ending1 =new Date(end_year,end_month,end_day);
	var starting1 =new Date(start_year,start_month,start_day);
	
	var days = parseInt((ending1.getTime()-starting1.getTime())/(one_day));
	var todayDays = parseInt((starting1.getTime()-today.getTime())/(one_day));

	source_date = new Date(start_year,start_month,start_day);
	source_end_date = new Date(end_year,end_month,end_day);

	if( (start_day != source_date.getDate()) || (end_day != source_end_date.getDate()) ){
		//document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date is prior to arrival date. Please select a new departure date.</font></strong>";
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Invalid date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;
	}
	else if(todayDays < 0 ){
		//document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date is prior to arrival date. Please select a new departure date.</font></strong>";
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Arrival date can not be less than today date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;
	  }
	  else if(days < parseInt(minDays) && days < 0){
	
	document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date can not be less than arrival date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;


	}
	else if(days < parseInt(minDays))
	{
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Reservation is available for mimimum "+ minDays+" Nights.</font></strong>";
		document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
		
		return false;
	}
	else
	{
	
	var myConn = new XHConn();

	

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	

	var include_terminado = function (oXML){ 

	if(oXML.responseText == '1'){

	
	document.getElementById('bookerr').innerHTML = '<font color=red><strong>Dates chosen for this reservation are not available . Please select different dates.</strong></font>';

	document.getElementById('bookerr').className = 'reveal';
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		

		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";
		document.getElementById("sdamount").innerHTML = "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;

	document.getElementById('imgsubmit').disabled = true;
	return false;
	}
	else
	{
	document.getElementById('bookerr').innerHTML = '<font color=red><strong>Reservation dates entered are available.</strong></font>';

	document.getElementById('bookerr').className = 'reveal';

	document.getElementById('imgsubmit').disabled = false;
	return true;

	}

	};
	
	document.getElementById('bookerr').innerHTML = "<p align=center><img src='images/loading.gif' /></p>";
	//alert("id="+id+"&start_date="+starting+"&end_date="+ending);
	myConn.connect("checkavail.php", "GET", "id="+id+"&start_date="+starting+"&end_date="+ending, include_terminado);
	}

}

function checkAvail_1(id,minDays)
{
	
	start_day = document.getElementById("day_start1").value;
	start_month=document.getElementById("month_start1").selectedIndex;
	//start_month=start_month-1;
	start_year=document.getElementById("year_start1").value;

	
	end_day=document.getElementById("day_end1").value;
	end_month=document.getElementById("month_end1").selectedIndex;
	//end_month=end_month-1;
	end_year=document.getElementById("year_end1").value;


	showCal(start_year,start_month+1,id);
	var one_day=1000*60*60*24;
	var today = new Date();
	var ending= end_year+"/"+(end_month+1)+"/"+end_day;
	var starting=start_year+"/"+(start_month+1)+"/"+start_day;

	var ending1 =new Date(end_year,end_month,end_day);
	var starting1 =new Date(start_year,start_month,start_day);
	
	var days = parseInt((ending1.getTime()-starting1.getTime())/(one_day));
	var todayDays = parseInt((starting1.getTime()-today.getTime())/(one_day));

	source_date = new Date(start_year,start_month,start_day);
	source_end_date = new Date(end_year,end_month,end_day);

	if( (start_day != source_date.getDate()) || (end_day != source_end_date.getDate()) ){
		//document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date is prior to arrival date. Please select a new departure date.</font></strong>";
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Invalid date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;
	}
	else if(todayDays < 0 ){
		//document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date is prior to arrival date. Please select a new departure date.</font></strong>";
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Arrival date can not be less than today date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
		document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;
	  }
	  else if(days < parseInt(minDays) && days < 0){
	
	document.getElementById("bookerr").innerHTML = "<strong><font color=red>Departure date can not be less than arrival date. Please select different dates.</font></strong>";
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";
		document.getElementById("sd_amount").value = "";


		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
	document.getElementById('imgsubmit').disabled = true;
	return false;


	}
	else if(days < parseInt(minDays))
	{
		document.getElementById("bookerr").innerHTML = "<strong><font color=red>Reservation is available for mimimum "+ minDays+" Nights.</font></strong>";
		document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		document.getElementById("sd_amount").value = "";

		
document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";

		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;
		
		return false;
	}
	else
	{
	
	var myConn = new XHConn();

	

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	

	var include_terminado = function (oXML){ 

	if(oXML.responseText == '1'){

	
	document.getElementById('bookerr').innerHTML = '<font color=red><strong>Dates chosen for this reservation are not available . Please select different dates.</strong></font>';

	document.getElementById('bookerr').className = 'reveal';
	document.getElementById("nights").innerHTML = "";
		document.getElementById("tamount").innerHTML = "";
		document.getElementById("total1_amount").value =  "";
		
document.getElementById("sdamount").innerHTML = "";
		document.getElementById("ttamount").innerHTML = "";
		document.getElementById("total_tax").value =  "";
		document.getElementById("sd_amount").value = "";


		document.getElementById("ttoamount").innerHTML = "";
		document.getElementById("total_amount").value =  "";

			document.getElementById("payamount").innerHTML = "";
			document.getElementById("pay_amount").value = "";

		document.getElementById('imgsubmit').disabled = true;

	document.getElementById('imgsubmit').disabled = true;
	return false;
	}
	else
	{
	document.getElementById('bookerr').innerHTML = '<font color=red><strong>Reservation dates entered are available.</strong></font>';

	document.getElementById('bookerr').className = 'reveal';

	document.getElementById('imgsubmit').disabled = false;
	if(CheckCardNumber())
	{
		//alert('test');
		document.booking.submit();
	}
	
	}

	};
	
	document.getElementById('bookerr').innerHTML = "<p align=center><img src='images/loading.gif' /></p>";
	//alert("id="+id+"&start_date="+starting+"&end_date="+ending);
	myConn.connect("checkavail.php", "GET", "id="+id+"&start_date="+starting+"&end_date="+ending, include_terminado);
	}

}

function chkBooking(week_price,extra_price,minDays,id)
{
	calDurationNew(week_price,extra_price,minDays);
	if(document.getElementById('bookerr').innerHTML = '<font color=red><strong>Reservation dates entered are available.</strong></font>')
	{
			if(CheckCardNumber())
			{
			//alert('test');
			document.booking.submit();
			}
	}
	else
	{
		checkAvail(id,minDays);

	}

}
function confirmSignup()

{

	

	

	document.getElementById('email').style.background='red';

	document.getElementById('email').style.color='white';

	document.getElementById('err').innerHTML = '<font color=red>Email all ready exist in database</font>';

	document.getElementById('err').className = 'reveal';

	document.getElementById('submit').disabled = true;

	document.getElementById('email').style.background='white';

	document.getElementById('email').style.color='black';

	document.getElementById('err').innerHTML = '';

	document.getElementById('err').className = 'hidden';

	document.getElementById('submit').disabled = false;

	

	

	

	

}





function chkEmail(email){

if ((email.value==null)||(email.value=="")){

		alert("Please Enter your Email ID")

		email.focus()

		return false

}

if (echeck(email.value)==false){

email.value=""

email.focus()

return false

}



}

function chkPassword(pass){



if ((pass.value==null)||(pass.value=="")){

		alert("Please Enter your Password")

		pass.focus()

		return false

}



}



function showTestimonial(id)

{

	if(document.getElementById('booking'+id).className == 'hidden'){



	document.getElementById('btnBooking'+id).value = 'Hide Testimonial'; 

	document.getElementById('booking'+id).className = 'reveal'; 

	

	}

	else

	{

		document.getElementById('btnBooking'+id).value = 'Show Testimonial';

		document.getElementById('booking'+id).className = 'hidden'; 

		

	}

}

function showeventdetails(id)

{

	if(document.getElementById('event'+id).className == 'hidden'){



	document.getElementById('imgevent'+id).value = 'Hide Testimonial'; 

	document.getElementById('event'+id).className = 'reveal'; 

	

	}

	else

	{

		document.getElementById('imgevent'+id).value = 'Show Testimonial';

		document.getElementById('event'+id).className = 'hidden'; 

		

	}

}

function PropertyDetails(id)

{

	if(document.getElementById('property'+id).className == 'hidden'){

	var myConn = new XHConn();

	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

	var include_terminado = function (oXML){ document.getElementById('prop'+id).innerHTML = oXML.responseText;};

	document.getElementById('imgPro'+id).src = 'images/delete.gif'; 

	document.getElementById('property'+id).className = 'reveal'; 

	document.getElementById('prop'+id).innerHTML = "<img src='images/loading.gif' />";

	myConn.connect("propertyDet.php", "GET", "id="+id, include_terminado);

	//alert("PROPERTY DETAILS");

	return false;

	}

	else

	{

		document.getElementById('property'+id).className = 'hidden'; 

		document.getElementById('prop'+id).innerHTML = "";

		document.getElementById('imgPro'+id).src = 'images/button_quick_find.gif';

	}

}



//email validation script

function echeck(str) {



		var at="@"

		var dot="."

		var lat=str.indexOf(at)

		var lstr=str.length

		var ldot=str.indexOf(dot)

		if (str.indexOf(at)==-1){

		   alert("Invalid E-mail ID")

		   return false

		}



		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){

		   alert("Invalid E-mail ID")

		   return false

		}



		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

		    alert("Invalid E-mail ID")

		    return false

		}



		 if (str.indexOf(at,(lat+1))!=-1){

		    alert("Invalid E-mail ID")

		    return false

		 }



		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

		    alert("Invalid E-mail ID")

		    return false

		 }



		 if (str.indexOf(dot,(lat+2))==-1){

		    alert("Invalid E-mail ID")

		    return false

		 }

		

		 if (str.indexOf(" ")!=-1){

		    alert("Invalid E-mail ID")

		    return false

		 }



 		 return true					

}







function deleteMultipl()

{

	

	if(confirm("Do you Really want to Delete?")==true)

	{



		//CheckIsSelected();

		

		document.location.href="property.php";

		return true;

	}

   else

   return false;

	

}

function deleteeventMultipl()

{

	

	if(confirm("Do you Really want to Delete?")==true)

	{



		//CheckIsSelected();

		

		document.location.href="event.php";

		return true;

	}

   else

   return false;

	

}

function CheckIsSelected()

{

        var chkobj=document.form1.chk;

		var blSelected = false;

        

		for(i=0;i<chkobj.length;i++)

			{

				if(chkobj[i].checked)

				{ 

						blSelected = true;

						break;

				}

				

			}

		

		if(!blSelected)

        {

          	alert('Please Select at least One Record!');

            return false

        }

		else

		{

			

			return true;

		}

}

var form='form1' //Give the form name here



function SetChecked(val,chkName) {

dml=document.forms[form];

len = dml.elements.length;

var i=0;

for( i=0 ; i<len ; i++) {

if (dml.elements[i].name==chkName) {

dml.elements[i].checked=val;

}

}

}



function checkBox(){

return confirm('Do you really want to delete?');

}





/**

 * This array is used to remember mark status of rows in browse mode

 */

var marked_row = new Array;





/**

 * Sets/unsets the pointer and marker in browse mode

 *

 * @param   object    the table row

 * @param   integer  the row number

 * @param   string    the action calling this script (over, out or click)

 * @param   string    the default background color

 * @param   string    the color to use for mouseover

 * @param   string    the color to use for marking a row

 *

 * @return  boolean  whether pointer is set or not

 */

function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)

{

    var theCells = null;



    // 1. Pointer and mark feature are disabled or the browser can't get the

    //    row -> exits

    if ((thePointerColor == '' && theMarkColor == '')

        || typeof(theRow.style) == 'undefined') {

        return false;

    }



    // 1.1 Sets the mouse pointer to pointer on mouseover and back to normal otherwise.

    if (theAction == "over" || theAction == "click") {

        theRow.style.cursor='pointer';

    } else {

        theRow.style.cursor='default';

    }



    // 2. Gets the current row and exits if the browser can't get it

    if (typeof(document.getElementsByTagName) != 'undefined') {

        theCells = theRow.getElementsByTagName('td');

    }

    else if (typeof(theRow.cells) != 'undefined') {

        theCells = theRow.cells;

    }

    else {

        return false;

    }



    // 3. Gets the current color...

    var rowCellsCnt  = theCells.length;

    var domDetect    = null;

    var currentColor = null;

    var newColor     = null;

    // 3.1 ... with DOM compatible browsers except Opera that does not return

    //         valid values with "getAttribute"

    if (typeof(window.opera) == 'undefined'

        && typeof(theCells[0].getAttribute) != 'undefined') {

        currentColor = theCells[0].getAttribute('bgcolor');

        domDetect    = true;

    }

    // 3.2 ... with other browsers

    else {

        currentColor = theCells[0].style.backgroundColor;

        domDetect    = false;

    } // end 3



    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it

    if (currentColor.indexOf("rgb") >= 0)

    {

        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,

                                     currentColor.indexOf(')'));

        var rgbValues = rgbStr.split(",");

        currentColor = "#";

        var hexChars = "0123456789ABCDEF";

        for (var i = 0; i < 3; i++)

        {

            var v = rgbValues[i].valueOf();

            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);

        }

    }



    // 4. Defines the new color

    // 4.1 Current color is the default one

    if (currentColor == ''

        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {

        if (theAction == 'over' && thePointerColor != '') {

            newColor              = thePointerColor;

        }

        else if (theAction == 'click' && theMarkColor != '') {

            newColor              = theMarkColor;

            marked_row[theRowNum] = true;

            // Garvin: deactivated onclick marking of the checkbox because it's also executed

            // when an action (like edit/delete) on a single item is performed. Then the checkbox

            // would get deactived, even though we need it activated. Maybe there is a way

            // to detect if the row was clicked, and not an item therein...

            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;

        }

    }

    // 4.1.2 Current color is the pointer one

    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()

             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {

        if (theAction == 'out') {

            newColor              = theDefaultColor;

        }

        else if (theAction == 'click' && theMarkColor != '') {

            newColor              = theMarkColor;

            marked_row[theRowNum] = true;

            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;

        }

    }

    // 4.1.3 Current color is the marker one

    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {

        if (theAction == 'click') {

            newColor              = (thePointerColor != '')

                                  ? thePointerColor

                                  : theDefaultColor;

            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])

                                  ? true

                                  : null;

            // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;

        }

    } // end 4



    // 5. Sets the new color...

    if (newColor) {

        var c = null;

        // 5.1 ... with DOM compatible browsers except Opera

        if (domDetect) {

            for (c = 0; c < rowCellsCnt; c++) {

                theCells[c].setAttribute('bgcolor', newColor, 0);

            } // end for

        }

        // 5.2 ... with other browsers

        else {

            for (c = 0; c < rowCellsCnt; c++) {

                theCells[c].style.backgroundColor = newColor;

            }

        }

    } // end 5



    return true;

} // end of the 'setPointer()' function



//Booking details showing using AJAX

function showBookingOld(id)

{

document.getElementById('booking'+id).className = 'reveal'; 

alert(id);

}



function open_win(id)

{

window.open("proImg.php?uid="+id,"_blank","scrollbars=yes,width=400,height=420")

}



function ChangeImage(param)

{

	var img_array = param.split('@');

	var img_id_array = img_array[1].split('#');

	var img = document.getElementById('bigImage'); 

	var a = document.getElementById('bimg'); 

	img.src = "propertyimages/"+img_array[0];

	a.href = "javascript:popupWindow('popup_image.php?imgID="+img_id_array[0]+"@"+img_id_array[1]+"')";

	

}



function xmlhttpPost(strURL,callerFunction) {

    var xmlHttpReq = false;

    var self = this;

    // Mozilla/Safari

    if (window.XMLHttpRequest) {

        self.xmlHttpReq = new XMLHttpRequest();

    }

    // IE

    else if (window.ActiveXObject) {

        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

    }

    self.xmlHttpReq.open('get', strURL, true);

    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    self.xmlHttpReq.onreadystatechange = function() {

        if (self.xmlHttpReq.readyState == 4) {

            switch(callerFunction)

			{

				case 1 : upd_cal(self.xmlHttpReq.responseText); break;

		

			}	

        }

    }

    self.xmlHttpReq.send(null);

}



function showCal(year,month,id)

{
	if(month==0)
	{
		month=12;
		year=year-1;
	}

	if(month==13)
	{
		month=1;
		year=eval(parseInt(year)+eval(1));

	}
	xmlhttpPost("getcalajax.php?year="+year+"&month="+month+"&id="+id, 1);

}



function JumpCal(id)

{



	var year;

	var month;

	//alert(id);

	month = document.getElementById('month_start1').value;

	year = document.getElementById('year_start1').value;

	xmlhttpPost("getcalajax.php?year="+year+"&month="+month+"&id="+id, 1);

}



function upd_cal(val)

{



	document.getElementById('calid').innerHTML=val;

}

function showPrevMonth()

{

	document.cform.mon.value="" + "";

	document.cform.yr.value="" + "";

	if(document.cform.mon.value == "")

	{

		getMonthYear();

	}

	m = eval(document.cform.mon.value + "-" + 1);

  y = document.cform.yr.value;

	if(m < 1)

	{

		m = 12;

		y = eval(y + "-" + 1);

	}

	window.location.href="calendar.php?month=" + m + "&year=" + y;

		

}



function showNextMonth()

{

	document.cform.mon.value="" + "";

	document.cform.yr.value="" + "";

	if(document.cform.mon.value == "")

	{

		getMonthYear();

	}

	m = eval(document.cform.mon.value + "+" + 1);

  y = document.cform.yr.value;

	if(m > 12)

	{

		m = 1;

		y = eval(y + "+" + 1);

	}

	window.location.href="calendar.php?month=" + m + "&year=" + y;



}

function getMonthYear()

{

		cdate = new Date();

		mvalue = cdate.getMonth();

		yvalue = cdate.getYear();

		document.cform.mon.value = mvalue;

		document.cform.yr.value = yvalue;

}





var Cards = new makeArray(5);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("VisaCard", "4", "13,16");
var VisaCard = Cards[1];
Cards[2] = new CardType("DiscoverCard", "6011", "16");
var DiscoverCard = Cards[2];
Cards[3] = new CardType("AmExCard", "34,37", "15");
var AmExCard = Cards[3];
var LuhnCheckSum = Cards[4] = new CardType();

/*************************************************************************\
CheckCardNumber(form)
function called when users click the "check" button.
\*************************************************************************/
function CheckCardNumber() {
var form;
form = document.forms["booking"];
var tmpyear;
if (form.cc_owner.value.length == 0)
{
	alert("Please enter Your name.");
	form.cc_owner.focus();
	return false;
}
if (form.CardNumber.value.length == 0)
{
	alert("Please enter a Card Number.");
	form.CardNumber.focus();
	return false;
}

if (form.ExpYear.value.length == 0)
{
	alert("Please enter the Expiration Year.");
	form.ExpYear.focus();
	return false;
}
if (form.ExpYear.value > 96)
	tmpyear = "19" + form.ExpYear.value;
else if (form.ExpYear.value < 21)
	tmpyear = "20" + form.ExpYear.value;
else
{
	alert("The Expiration Year is not valid.");
	form.ExpYear.focus();
	return false;
}
tmpmonth = form.ExpMon.options[form.ExpMon.selectedIndex].value;

if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth))
{
	alert("This card has already expired.");
	return false;
}
	card = form.CardType.options[form.CardType.selectedIndex].value;
	var retval = eval(card + ".checkCardNumber(\"" + form.CardNumber.value +
	"\", " + tmpyear + ", " + tmpmonth + ");");
	cardname = "";
if (retval)
	{
	}
else
{
// The cardnumber has the valid luhn checksum, but we want to know which
// cardtype it belongs to.
		for (var n = 0; n < Cards.size; n++)
		{
			if (Cards[n].checkCardNumber(form.CardNumber.value, tmpyear, tmpmonth))
			{
				cardname = Cards[n].getCardType();
				break;
		   }
		}
		if (cardname.length > 0) {
			var cardTypeNew = '';
			if(card == 'MasterCard'){
			  cardTypeNew = 'Master Card';
			}else if(card == 'VisaCard'){
			  cardTypeNew = 'Visa Card';
			}else if(card == 'DiscoverCard'){
			  cardTypeNew = 'Discover Card';
			}else if(card == 'AmExCard'){
			  cardTypeNew = 'American Express Card';
			}
			alert("Not a valid " + cardTypeNew + " number.");
			//alert("This looks like a " + cardname + " number, not a " + card + " number.");
			form.CardNumber.focus();
			return false
		}
		else {
			alert("This card number is not valid.");
			form.CardNumber.focus();
			return false;
	      }
  }

 if (form.CardCCV.value.length == 0)
{
	alert("Please enter CCV number.");
	form.CardCCV.focus();
	return false;
}


  return true;
}/*************************************************************************\
Object CardType([String cardtype, String rules, String len, int year, 
                                        int month])
cardtype    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new CardType("Visa", "4", "16");
var AmExCard = new CardType("AmEx", "34,37", "15");
\*************************************************************************/
function CardType() {
var n;
var argv = CardType.arguments;
var argc = CardType.arguments.length;

this.objname = "object CardType";

var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

this.setCardNumber = setCardNumber;  // set CardNumber method.
this.setCardType = setCardType;  // setCardType method.
this.setLen = setLen;  // setLen method.
this.setRules = setRules;  // setRules method.
this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

this.setCardType(tmpcardtype);
this.setLen(tmplen);
this.setRules(tmprules);
if (argc > 4)
this.setExpiryDate(argv[3], argv[4]);

this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
this.getCardType = getCardType;  // getCardType method.
this.isCardNumber = isCardNumber;  // isCardNumber method.
this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
this.luhnCheck = luhnCheck;// luhnCheck method.
return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() {
var argv = checkCardNumber.arguments;
var argc = checkCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
var year = (argc > 1) ? argv[1] : this.year;
var month = (argc > 2) ? argv[2] : this.month;

this.setCardNumber(cardnumber);
this.setExpiryDate(year, month);

if (!this.isCardNumber())
return false;
if (!this.isExpiryDate())
return false;

return true;
}
/*************************************************************************\
String getCardType()
return the cardtype.
\*************************************************************************/
function getCardType() {
return this.cardtype;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() {
return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() {
var argv = isCardNumber.arguments;
var argc = isCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
if (!this.luhnCheck())
return false;

for (var n = 0; n < this.len.size; n++)
if (cardnumber.toString().length == this.len[n]) {
for (var m = 0; m < this.rules.size; m++) {
var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
if (headdigit == this.rules[m])
return true;
}
return false;
}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate() {
var argv = isExpiryDate.arguments;
var argc = isExpiryDate.arguments.length;

year = argc > 0 ? argv[0] : this.year;
month = argc > 1 ? argv[1] : this.month;

if (!isNum(year+""))
return false;
if (!isNum(month+""))
return false;
today = new Date();
expiry = new Date(year, month);
if (today.getTime() > expiry.getTime())
return false;
else
return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) {
argvalue = argvalue.toString();

if (argvalue.length == 0)
return false;

for (var n = 0; n < argvalue.length; n++)
if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
return false;

return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() {
var argv = luhnCheck.arguments;
var argc = luhnCheck.arguments.length;

var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

if (! isNum(CardNumber)) {
return false;
  }

var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;

for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0)
return true;
else
return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
this.size = size;
return this;
}

/*************************************************************************\
CardType setCardNumber(cardnumber)
return the CardType object.
\*************************************************************************/
function setCardNumber(cardnumber) {
this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
CardType setCardType(cardtype)
return the CardType object.
\*************************************************************************/
function setCardType(cardtype) {
this.cardtype = cardtype;
return this;
}

/*************************************************************************\
CardType setExpiryDate(year, month)
return the CardType object.
\*************************************************************************/
function setExpiryDate(year, month) {
this.year = year;
this.month = month;
return this;
}

/*************************************************************************\
CardType setLen(len)
return the CardType object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
CardType setRules()
return the CardType object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}

// credit card vaildation starts 
function CheckCardNumberPending() {
var form;
form = eval("document.payment");

if (form.cc_owner.value.length == 0)
{
	alert("Please enter Your name.");
	form.cc_owner.focus();
	return false;
}
if (form.CardNumber.value.length == 0)
{
	alert("Please enter a Card Number.");
	form.CardNumber.focus();
	return false;
}

if (form.ExpYear.value.length == 0)
{
	alert("Please enter the Expiration Year.");
	form.ExpYear.focus();
	return false;
}
tmpyear = form.ExpYear.value;
tmpmonth = form.ExpMon.options[form.ExpMon.selectedIndex].value;

if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth))
{
	alert("This card has already expired.");
	return false;
}
 if (form.CardCCV.value.length == 0)
{
	alert("Please enter CCV number.");
	form.CardCCV.focus();
	return false;
}

if(!ValidateThis(form.CardNumber, form.CardType, form.ExpMon, form.ExpYear, form.CardCCV))
		{
			return false;
		}
return true;
}

//////////////////////////////////////////////////////////////////////////////////////////////////
