$(document).ready(function() {

	var ajax_load = "<img src='http://www.vacationrentalhere.com/css/loader.gif' alt='loading...' />";
	var cal_url="/properties/getcalendar";

	$("#next-div").click(function(event){
		month++;
		if(month>12)
		{
			month=month-12;
			year++;
		}
		$.ajax({
			type: "post",
			url: "/properties/getcalendar/"+month+"/"+year+"/"+property_id,
			dataType: 'html',
            async:false,
			beforeSend: function(){
				$('#bigcal').html(ajax_load);
			},
			success: function(data){
				$('#bigcal').html(data);
			}
		});
	});

	
		
	$("#sendfrdbtn").click(function(event){
		
		
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,7}$/;  
		
		if($('#yorname').val()=="")
		{
			alert('Enter your name');
			return false;
		}
		if($('#yoremail').val()=="")
		{
			alert('Enter your email address');
			return false;
		}
		if(!emailPattern.test($('#yoremail').val()))
		{
			alert('Your email address is Invalid');
			return false;
		}
		if($('#yorfrdname').val()=="")
		{
			alert('Enter your friend\'s name');
			return false;
		}
		if($('#yorfrdemail').val()=="")
		{
			alert('Enter your friend\'s email address');
			return false;
		}
		if(!emailPattern.test($('#yorfrdemail').val()))
		{
			alert('Yours friend\'s email address is Invalid');
			return false;
		}
		$.ajax({
			type:"post",
			url:"/properties/sendtoafriend/"+property_id,
			dataType:'html',
			data:'yorname='+$('#yorname').val()+'&yoremail='+$('#yoremail').val()+'&yorfrdname='+$('#yorfrdname').val()+'&yorfrdemail='+$('#yorfrdemail').val()+'&yormsg='+$('#yormsg').val(),
			async:false,
			beforeSend: function(){
				$('#frdform').html(ajax_load);
			},
			success: function(data){
				
				$('#frdform').html(data);
				$('#sendtoafriend').fadeOut();
	
			}		

					
			});

	
		});

	$("#previous-div").click(function(event){
		month--;
		if(month<1)
		{
			month=12;
			year--;
		}
		$.ajax({
			type: "post",
			url: "/properties/getcalendar/"+month+"/"+year+"/"+property_id,
			dataType: 'html',
            async:false,
			beforeSend: function(){
				$('#bigcal').html(ajax_load	);
			},
			success: function(data){
				$('#bigcal').html(data);
			}
		});
	});
	
	String.repeat = function(chr,count){
        var str = "";
        for(var x=0;x < count;x++)
        {
            str += chr;
        }
        return str;

    }
    String.prototype.padL = function(width,pad){
        if (!width ||width<1)
            return this;
        if (!pad) pad=" ";
        var length = width - this.length
        if (length < 1
            ) return this.substr(0,width);
        return (String.repeat(pad,length) + this).substr(0,width);
    }
/*    Date.prototype.formatDate = function(format){
        var date = this;
        if (!format)
            format="MM/dd/yyyy";
        var month = date.getMonth() + 3;
        var year = date.getFullYear();
        format = format.replace("MM",month.toString().padL(2,"0"));
        if (format.indexOf("yyyy") > -1)
            format = format.replace("yyyy",year.toString());
        else if (format.indexOf("yy") > -1)
            format = format.replace("yy",year.toString().substr(2,2));
        format = format.replace("dd",date.getDate().toString().padL(2,"0"));
        var hours = date.getHours();
        if (format.indexOf("t") > -1)    {
            if (hours > 11)
                format = format.replace("t","pm")
            else
                format = format.replace("t","am")
        }
        if (format.indexOf("HH") > -1)
            format = format.replace("HH",hours.toString().padL(2,"0"));
        if (format.indexOf("hh") > -1) {
            if (hours > 12) hours - 12;
            if (hours == 0) hours = 12;
            format = format.replace("hh",hours.toString().padL(2,"0"));
        }
        if (format.indexOf("mm") > -1)
            format = format.replace("mm",date.getMinutes().toString().padL(2,"0"));
        if (format.indexOf("ss") > -1)
            format = format.replace("ss",date.getSeconds().toString().padL(2,"0"));
        return format;
    }
    var d= new Date();
    var str = d.formatDate('yyyy-MM-dd');
    d.setMonth(d.getMonth()+4);
    var str_row2=d.formatDate('yyyy-MM-dd');
    d.setMonth(d.getMonth()+4);
    var str_row3=d.formatDate('yyyy-MM-dd');


     $('#date3').DatePicker({
        flat: true,
        position: 'left',
        date: [],
        current: str,
        format: 'Y-m-d',
        calendars: no_cal,
        mode: 'multiple',        
        starts: 0
    });

    $('#date4').DatePicker({
        flat: true,
        position: 'left',
        date: [],
        current: str_row2,
        format: 'Y-m-d',
        calendars: no_cal,
        mode: 'multiple',
        starts: 0
    }); 

    setTimeout(loadThirdCal, 500);

    function loadThirdCal() {

    $('#date5').DatePicker({
        flat: true,
        position: 'left',
        date: [],
        current: str_row3,
        format: 'Y-m-d',
        calendars: no_cal,
        mode: 'multiple',
        starts: 0
    });
}*/

    if (GBrowserIsCompatible()) { // if the browser is compatible with Google Map's
        var map = document.getElementById("mymap"); // Get div element
        var m = new GMap2(map); // new instance of the GMap2 class and pass in our div location.
        var center=new GLatLng(lat, lng);
        m.setCenter(center, 13); // pass in latitude, longitude, and zoom level.
        //m.setUIToDefault();
        /*m.addControl(new GSmallMapControl());
    var c = new GMapTypeControl(); // switch map modes
    m.addControl(c);*/
        //m.setMapType(G_SATELLITE_MAP);

        var marker = new GMarker(center, {
            draggable: false
        });

        GEvent.addListener(marker, "dragstart", function() {
            m.closeInfoWindow();
        });

        GEvent.addListener(marker, "dragend", function() {
            //alert(marker.getLatLng());
            //marker.openInfoWindowHtml("Just bouncing along...");
            });

        /*GEvent.addListener(m, "dragend", function() {
        var bounds = m.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();
        marker.setLatLng(new GLatLng(southWest.lat()+(latSpan/2),southWest.lng()+(lngSpan/2)));
    });*/

        m.addOverlay(marker);
        m.addControl(new GSmallMapControl());
        var c = new GMapTypeControl(); // switch map modes
        m.addControl(c);
    }
    else {
        alert("Your browser is not worthy.");
    }

    $('#checkinDate').datepicker({
        dateFormat: 'mm/dd/y',
        minDate: 0,
        //maxDate: '+4M +10D',
        onSelect: function(dateText, inst) {
                if($('#checkoutDate').val()=="" ) {
                    var d = new Date(dateText);
                    d.setDate(d.getDate()+7);
                    $('#checkoutDate').val(formatDate(d,"MM/dd/yy"));
                }
            }
        /*onSelect: function(dateText, inst) {
            if($('#checkoutDate').val()=="") {
                $('#checkoutDate').datepicker('setDate',dateText +'-1d');
            }
        }*/
    });
    $('#checkoutDate').datepicker({
        dateFormat: 'mm/dd/y',
        minDate: 0
        //maxDate: '+4M +10D'
        /*onSelect: function(dateText, inst) {
            if($('#checkinDate').val()=="") {
                $('#checkinDate').datepicker('setDate',dateText);
            }
        }*/
    });

    $("#video_dialog").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        width:450,
        zIndex:4000,
        /*buttons: {
'Upload': function() {
$('#add_video').ajaxSubmit({
type: 'POST',
debug: true,
success: function(responseText, responseCode) {
$('#property_video').html(responseText);
//alert(responseText);
}
});

}
},*/
        close: function() {
        //$("#property_video").html('');
        //allFields.val('').removeClass('ui-state-error');
        }
    });
/*
    $('.wow').rating({
        focus: function(value, link){
            // 'this' is the hidden form element holding the current value
            // 'value' is the value selected
            // 'element' points to the link element that received the click.
            var tip = $('#hover-test');
            tip[0].data = tip[0].data || tip.html();
            tip.html(link.value || 'score: '+value);
        },
        blur: function(value, link){
            var tip = $('#hover-test');
            $('#hover-test').html(tip[0].data || '');
        }
    });

    $('.wowshow').rating({
        focus: function(value, link){
            // 'this' is the hidden form element holding the current value
            // 'value' is the value selected
            // 'element' points to the link element that received the click.
            var tip = $('#hover-test');
            tip[0].data = tip[0].data || tip.html();
            tip.html(link.value || 'score: '+value);
        },
        blur: function(value, link){
            var tip = $('#hover-test');
            $('#hover-test').html(tip[0].data || '');
        }
    });

    $('.avg').rating();																		*/
    /*$('.wow').rating('readOnly',false);
$('.wow').rating('disable');*/

    /*$(".input-value").each(function(){
$(this).hide();
})

$(".input-edit").each(function(){
$(this).show();
})*/

    jQuery.validator.addMethod("dateonly", function(value, element) {
        return this.optional(element) || /^(0[1-9]|1[012])[\/](0[1-9]|[12][0-9]|3[01])[\/]([0-9][0-9])$/i.test(value);

    }, "Date format mm/dd/y");

    jQuery.validator.addMethod("compareout", function(value, element) {
        var f=false;
        if($('#checkoutDate').val()!="") {
            if(compareDates(value,"MM/dd/yy",$('#checkoutDate').val(),"MM/dd/yy")==0) {
                f=true;
            }
        }
        else {
            f=true;
        }
        return this.optional(element) || f;

    }, "check date range");

    jQuery.validator.addMethod("comparein", function(value, element) {
        var f=false;
        if($('#checkinDate').val()!="") {
            if(compareDates(value,"MM/dd/yy",$('#checkinDate').val(),"MM/dd/yy")==1) {
                f=true;
            }
        }
        else {
            f=true;
        }
        return this.optional(element) || f;

    }, "check date range");

    jQuery.validator.addMethod("lettersonly", function(value, element) {
        return this.optional(element) || /^[a-z\s-]+$/i.test(value);

    }, "Letters only please");

    jQuery.validator.addMethod("numbersonly", function(value, element) {
        return this.optional(element) || /^[0-9\s-]+$/i.test(value);

    }, "Digits only please");

    jQuery.validator.addMethod("alphanumeric", function(value, element) {
        return this.optional(element) || /^[a-z0-9\!\%\.\-\t\n\r\f\s&\$:;#@\^\[\]\{\}\*"`~\'\(\),_=<>\?\/\+\|\\]+$/i.test(value);
    }, "Illegal characters.");

    /*jQuery.validator2.addMethod("alphanumeric", function(value, element) {
return this.optional(element) || /^[a-z0-9\!\%\.\-\t\n\r\f\s&,+]+$/i.test(value);
}, "Illegal characters.");*/

    var validator = $("#PropertyPreviewForm").validate({
        rules: {
            "data[Message][firstname]": {
                required: true,
                lettersonly: true             
            },
            "data[Message][lastname]": {
                required:true,
                alphanumeric: true
            },
            "data[Message][email]": {
                required: true,
                email: true
            },
            "data[Message][best_time_call]": {
                required: false,
                alphanumeric: true,
                minlength: 5
            },
            "data[Message][check_in_date]": {
                required: false,
                dateonly: true,
                compareout:true
            },
            "data[Message][check_out_date]": {
                required:false,
                dateonly: true,
                comparein:true
            },
            "data[Message][phone]": {
                required: false,
                numbersonly: true,
                minlength: 6
            },
            "data[Message][comments]": {
                required: false,
                alphanumeric: true,
                minlength:5
            }
        },
        messages: {
            "data[Message][firstname]": {
                required: " ",
                lettersonly: " "             
            },
            "data[Message][lastname]": {
                required: " ",
                lettersonly: " "               
            },
            "data[Message][email]": {
                required: " ",
                email: " "
            },
            "data[Message][best_time_call]": {
                required: " ",
                alphanumeric: " ",
                minlength: " "
            },
            "data[Message][check_in_date]": {
                required: " ",
                dateonly: " ",
                compareout:"in date "
            },
            "data[Message][check_out_date]": {
                required: " ",
                dateonly: " ",
                comparein: "out date "
            },
            "data[Message][phone]": {
                required: " ",
                minlength: " ",
                numbersonly: " "
            },
            "data[Message][comments]": {
                required: "",                
                minlength: "Enter atleast 5 chars"
            }
        },

        errorPlacement: function(error, element) {
            if ( element.is(":radio") )
                error.appendTo( element.parent().next());
            else if ( element.is(":checkbox") )
                error.appendTo ( element.next() );
            else
                error.appendTo( element.next());
        },
        // specifying a submitHandler prevents the default submit, good for the demo
        submitHandler: function(form) {
            $(form).ajaxSubmit({
                type: 'POST',
                debug: true,
                success: function(responseText, responseCode) {
                    if($.trim(responseText)=='success') {

                        $('#ajax-save-message').hide().html('<span style="color:#008040;text-align:left;font-size:16px;font-weight:bold">Your Enquiry Has Been Sent.</span>').fadeIn();
			$('#MessageFirstname').val('');
			$('#MessageLastname').val('');
			$('#MessageEmail').val('');
			$('#MessagePhone').val('');
			$('#MessageBestTimeCall').val('');
			$('#checkinDate').val('');
			$('#checkoutDate').val('');
			$('#MessageComments').val('');
			$('#recaptcha_response_field').val('');
                    /*setTimeout(function(){
$('#ajax-save-message').fadeOut();
}, 5000);*/
                    }
                    else {
                        $('#ajax-save-message').hide().html('<span style="color:#900;">'+responseText+'</span>').fadeIn();
                    }
                    Recaptcha.reload();
                    //$(form).clearForm();
                },
                error: function() {
                    $('#ajax-save-message').hide().html('Problem on server');
                }
            });
        },
        // set this class to error-labels to indicate valid fields
        success: function(label) {
            // set &nbsp; as text for IE
            label.html("&nbsp;").addClass("checked");
        }
    });

    $('#rental_currency').change(function() {
        convert_rates();
    });

    function convert_rates() {
        $.post("/properties/convert_rates",
        {
            property_id: property_id,
            to_currency: $('#rental_currency').val()
        },
        function(data) {
            //alert(data);
            $('#rental_nightly').html(data.rental_nightly);
            $('#rental_weekly').html(data.rental_weekly);
            $('#rental_monthly').html(data.rental_monthly);
            for(var i=1;i<=10;i++) {
                //$('#weekly'.$i).html(data.Rate.weekly+i);
                //var my_var='weekly'+i;
                $('#weekly'+i).html(data.Rate["weekly"+i]);
                $('#week_nights'+i).html(data.Rate["week_nights"+i]);
                $('#extra_nights'+i).html(data.Rate["extra_nights"+i]);
                $('#weekend_nights'+i).html(data.Rate["weekend_nights"+i]);
                $('#monthly'+i).html(data.Rate["monthly"+i]);
            }
        },"json");
    }
/*validator=$("#reviewform").validate({
rules: {
"data[Review][email]": {
required: true,
email: true
},
"data[Review][title]": {
required: true,
alphanumeric: true,
minlength:3
},
"data[Review][content]": {
required:true,
alphanumeric: true,
minlength:5
}
},
messages: {
"data[Review][email]": {
required: " ",
email: " "
},
"data[Review][title]": {
required: " ",
alphanumeric: " ",
minlength: " "
},
"data[Review][content]": {
required: " ",
alphanumeric: " ",
minlength: " "
}
},
errorPlacement: function(error, element) {
if ( element.is(":radio") )
error.appendTo( element.parent().next());
else if ( element.is(":checkbox") )
error.appendTo ( element.next() );
else
error.appendTo( element.next());
},
submitHandler: function(form) {
form.submit();
},
// set this class to error-labels to indicate valid fields
success: function(label) {
// set &nbsp; as text for IE
label.html("&nbsp;").addClass("checked");
}
});*/
/*$('#reviewform').submit(function() {
alert($('#reviewsubmit').parents('form').serialize());
//alert($('input[name=data//[Review//]//[ratings//]').val());
return false;
});*/
//$('#reviewform').submit(function() {
//alert("hello");
/*$('#reviewform').ajaxForm({
type: 'POST',
debug: true,
target: '#reviews',
success: function(responseText, responseCode) {
alert(responseText);
/*if(responseText=='success') {

$('#ajax-save-message').hide().html("Your contact details are submitted. You may be contacted by the owner.").fadeIn();

/*setTimeout(function(){
$('#ajax-save-message').fadeOut();
}, 5000);*
}
$(form).clearForm();*
}*
},
error: function() {
$('#ajax-save-message').hide().html('Problem on server');
}
});*/
// });
});
var RecaptchaOptions = {
        theme : "custom",
        lang: 'en',
        custom_theme_widget: 'recaptcha_widget'
    };
window.onunload = null;
