
function onBaseReady() {
	loadSearchSliders();
	
    $('.datepicker').datepicker({
		showOn: 'button',
		buttonImage: '/site_media/imagens/calendar.png',
		buttonImageOnly: true,
        buttonText: 'Choose a date to reserve',
        dateFormat: 'dd-mm-yy',
        maxDate: '+2y',
        minDate: 'd',
		beforeShow: function(input) {
			$('.container_content').stopTime();
		},
		onSelect: function(dateText) {
			$('#openForm'+$('#activeProperty').val()+' input').val(dateText);
			$('#openForm'+$('#activeProperty').val()).submit();
		},
        beforeShowDay: function(date) {
            var isReserved = false;
            var propertyID = $('#activeProperty').val();
            var reservedDays = $('#reservedDays' +propertyID).val();
            reservedDays = reservedDays.split(';');
            for (i=0;i<reservedDays.length;i++) {
                temp = reservedDays[i].split(',');
                reservedDays[i] = temp;
            }
            for (i=0; i < reservedDays.length; i++) {
                if (date.getMonth() == reservedDays[i][1] - 1 && date.getDate() == reservedDays[i][0] && date.getFullYear() == reservedDays[i][2]) {
                    isReserved = true;
                }
            }
            if (isReserved)
                return [false, ''];
            else
                return [true, ''];
        }
	});
    
	$('#submit').click(function() { // ?????
		search();
	});
	
    $('#showImage').attr('src', prop_image);
    $('#infoBox').html(prop_obs);
	
	$('.liFeatured').hover(function() {
		$('.featuredHover').removeClass('featuredHover').addClass('liFeatured');
		$(this).removeClass('liFeatured');
		$(this).addClass('featuredHover');
	}, function() {
		$(this).removeClass('featuredHover');
		$(this).addClass('liFeatured');
	});
}


function loadSearchSliders() {
	$("#search_bedrooms").slider({
		range: true,
		values: [0, 10],
		min: 0,
		max: 10,
		slide: function(event, ui) {
			$("#bedrooms_min").val(ui.values[0]);
			$("#bedrooms_max").val(ui.values[1]);
		},
		change: function(event, ui) { search(); }
	});
	$("#bedrooms_min").val($("#search_bedrooms").slider("values", 0));
	$("#bedrooms_max").val($("#search_bedrooms").slider("values", 1));
	
	$("#search_wc").slider({
		range: true,
		values: [1, 8],
		min: 1,
		max: 8,
		slide: function(event, ui) {
			$("#wc_min").val(ui.values[0]);
			$("#wc_max").val(ui.values[1]);
		},
		change: function(event, ui) { search(); }
	});
	$("#wc_min").val($("#search_wc").slider("values", 0));
	$("#wc_max").val($("#search_wc").slider("values", 1));
	
	$("#search_rent").slider({
		range: true,
		values: [0, 1000],
		min: 0,
		max: 1000,
		step: 50,
		slide: function(event, ui) {
			$("#rent_min").val(ui.values[0]);
			$("#rent_max").val(ui.values[1]);
		},
		change: function(event, ui) { search(); }
	});
	$("#rent_min").val($("#search_rent").slider("values", 0));
	$("#rent_max").val($("#search_rent").slider("values", 1));
	
}


function showLogin() {
	document.getElementById('messages').innerHTML = '';
	if (document.getElementById('login').style.display == 'block')
		document.getElementById('login').style.display = 'none';
	else {
		document.getElementById('login').style.display = 'block';
		document.getElementById('username').focus();
	}
}

function loadImage(image) {
	$('#showImage').attr('src', '/site_media/imoveis/' + image);
}

function search(page) {
    data = {};
    data.rent_min = $('#search #rent_min').val();
    data.rent_max = $('#search #rent_max').val();
    data.wc_min = $('#search #wc_min').val();
    data.wc_max = $('#search #wc_max').val();
    data.bedrooms_min = $('#search #bedrooms_min').val();
    data.bedrooms_max =  $('#search #bedrooms_max').val();
    data.city = $('#search #city').val();
    data.ref = $('#search .ref').val();
	data.sortOrder = $('#sortOrder').val();
    data.sortField = $('#sortField').val();
	data.nItemsPage = $('#nItemsPage option:selected').val();
    data.page = page;
	
	if (document.location.href == 'http://dev.madeirarentals.net/search/' || document.location.href == 'http://www.madeirarentals.net/search/')
		$('#main').load('/search_ajax/', data, function() {
            loadDatePicker();
            $('#search .ref').val('');
        });
	else {
		$('#searchForm input').val($.toJSON(data));
		$('#searchForm').submit();
	}
}

function toggleOrder() {
	if ($('#sortOrder').val() == '1')
		$('#sortOrder').val('0');
	else
		$('#sortOrder').val('1');
}

function initialize(latitude, longitude) {
	latitude = parseFloat(latitude);
	longitude = parseFloat(longitude);
	if (GBrowserIsCompatible()) {
		var map = new google.maps.Map2(document.getElementById('map_canvas'));
		//map.setCenter(new google.maps.LatLng(32.742237, -16.965637), 10);   -  Ilha da Madeira
		map.setCenter(new google.maps.LatLng(latitude, longitude), 12);
		map.setUIToDefault();
	}
}

function loadDatePicker()
{
    $('.reserve_picker').datepicker({
        dateFormat: 'dd-mm-yy',
        maxDate: '+2y',minDate: 'd',
        beforeShowDay: function(date){
            var isReserved = false;
            var propertyID = $('#activeProperty').val();
            var reservedDays = $('#reservedDays' +propertyID).val();
            if (reservedDays) {
                reservedDays = reservedDays.split(';');
                for (i = 0; i < reservedDays.length; i++) {
                    temp = reservedDays[i].split(',');
                    reservedDays[i] = temp;
                }
                for (i = 0; i < reservedDays.length; i++) {
                    if (date.getMonth() == reservedDays[i][1] - 1 && date.getDate() == reservedDays[i][0] && date.getFullYear() == reservedDays[i][2]) {
                        isReserved = true;
                    }
                }
                if (isReserved) 
                    return [false, ''];
                else 
                    return [true, ''];
            }
            else return [true, ''];    // Nao existem reservas
        }
    });
}

function addProperty()
{
    $('#main').load('/properties/add/', function(){

    
        // Os metodos abaixo devem ser xamados apos o load ter acabado
        
        $("#add_form").validate({
    		rules: {
    			bedrooms: {
    				required: true,
    				digits: true
    			},
    			wc: {
    				required: true,
    				digits: true
    			},
    			rent: {
    				required: true,
    				digits: true
    			},
    			area: {
    				required: true,
    				digits: true
    			}
    		}
    	});
    	
    	$("#slider_bedrooms").slider({
    		value: 3,
    		min: 0,
    		max: 10,
    		slide: function(event, ui) {
    			$("#id_bedrooms").val(ui.value);
    		}
    	});
    	$("#id_bedrooms").val($("#slider_bedrooms").slider("value"));
    	
    	$("#slider_wc").slider({
    		value:2,
    		min: 0,
    		max: 8,
    		slide: function(event, ui) {
    			$("#id_wc").val(ui.value);
    		}
    	});
    	$("#id_wc").val($("#slider_wc").slider("value"));
    	
    	$("#slider_rent").slider({
    		value:400,
    		min: 0,
    		max: 1000,
    		step: 50,
    		slide: function(event, ui) {
    			$("#id_rent").val(ui.value);
    		}
    	});
    	$("#id_rent").val($("#slider_rent").slider("value"));
    	
    	$("#slider_area").slider({
    		value:160,
    		min: 0,
    		max: 1000,
    		step: 20,
    		slide: function(event, ui) {
    			$("#id_area").val(ui.value);
    		}
    	});
    	$("#id_area").val($("#slider_area").slider("value"));
        
    	uploadImages('uploads', '0');
    });

}


function uploadImages(folder, objectID) {
	
	if (objectID != '0') getImages(folder, objectID);
	
	$('#select_images').uploadify({
		'uploader': '/site_media/js/uploadify/uploadify.swf',
		'script': '/properties/upload/' +folder+ '/' +objectID+ '/',
		'folder': '/site_media/uploads/',
		'cancelImg': '/site_media/uploadify/cancel.png',
        'checkScript': '/properties/upload/check/' +folder+ '/' +objectID+ '/',
		'multi': true,
		'auto': true,
        'simUploadLimit': 2,
        'scriptAccess': 'always',
        'fileDesc': 'JPG; JPEG; GIF; PNG',
		'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
		'sizeLimit': 3500000,
		'buttonText': 'Upload',
		'queueSizeLimit': 20,
		'queueID': 'images',
        'onComplete': function(event, queueID, fileObj, response, data){
            $('#images').append('<div class="image ui-widget-content ui-corner-top" align="center"><a href="/site_media/' +folder+ '/' +objectID+ '/' + fileObj.name + '" class="lightbox"><img src="/site_media/' +folder+ '/' +objectID+ '/th_' + fileObj.name + '"/></a><div class="mainImage"><input type="checkbox" class="mainImageCheck"> Main Image</div><div class="deleteImage"><b>x</b> Delete</div></div>');
        },
        'onAllComplete': function(){
            $('.mainImageCheck').change(function(){
                if($(this).is(':checked')){
                    var fileName = $(this).parent().parent().find('a').attr('href');
                    fileName = fileName.replace('/site_media/' +folder+ '/' +objectID+ '/', '');
                    $('#id_main_image').val(fileName);
                    $('.mainImageCheck:not(:checked)').parent().hide();
                }
                else{
                    $('#id_main_image').val('');
                    $('.mainImage').show();
                }
            });
			$('.deleteImage').click(function(){
				$(this).parent().hide();
				var fileName = $(this).parent().find('a').attr('href');
				fileName = fileName.replace('/site_media/', '');
				$.post('/properties/delimage/', {
					file: fileName
		        });
			});
        },
		'onError': function(event, queueID, fileObj, errorObj) {
			$('.cancel a').click(function() {
				$(this).parent().parent().remove();
			});
			alert('Erro: ' +errorObj.type+ ' - ' +errorObj.info+ ' - ' +errorObj.status+ ' - ' +errorObj.text);
		}
	});
}




function updateReservation(ID, active, firstPayment, secPayment, dateAlertPayment, observations) {
	$.post('/properties/setreservation/',{
        id: ID,
        active: active,
		firstPayment: firstPayment,
		secPayment: secPayment,
		dateAlertPayment: dateAlertPayment,
		observations: observations,
    }, function(){
        $('#' +ID+ ' .save_bt input').val('Changes Saved!');
        $('#' +ID+ ' .save_bt input').attr('disabled', true);
    });
}



	function getImages(folder, objectID) {		$.post('/properties/getimages/', {			folder: folder,			objectID: objectID     }, function(response) {			for(i=0;i<response.length;i++) {				$('#images').append('<div class="image ui-widget-content ui-corner-top" align="center"><a href="/site_media/' +folder+ '/' +objectID+ '/' +response[i]+ '" class="lightbox"><img src="/site_media/' +folder+ '/' +objectID+ '/th_' +response[i]+ '"/></a><div class="mainImage"><input type="checkbox" class="mainImageCheck"> Main Image</div><div class="deleteImage"><b>x</b> Delete</div></div>');			}			$('.mainImageCheck').change(function(){	            if($(this).is(':checked')){	                var fileName = $(this).parent().parent().find('a').attr('href');	                fileName = fileName.replace('/site_media/' +folder+ '/' +objectID+ '/', '');	                $('#id_main_image').val(fileName);	                $('.mainImageCheck:not(:checked)').parent().hide();	            }	            else{	                $('#id_main_image').val('');	                $('.mainImage').show();	            }	        });			$('.deleteImage').click(function(){				$(this).parent().hide();				var fileName = $(this).parent().find('a').attr('href');				fileName = fileName.replace('/site_media/', '');				$.post('/properties/delimage/', {					file: fileName		        }, function(response) {					$(this).parent().hide();				});			});		}, 'json');	}		function sendReservation(propertyID, userID) {	var info = {};	info.client_name = $('#' + propertyID + ' .client_name').val();	info.client_email = $('#' + propertyID + ' .client_email').val();	info.client_phone = $('#' + propertyID + ' .client_phone').val();	info.obs = $('#' + propertyID + ' .client_observations').html();	info.date_from = $('#' + propertyID + ' .reserve_from').val();	info.date_until = $('#' + propertyID + ' .reserve_until').val();	info.property = propertyID;	$('#' + propertyID + ' .send_reservation').html('<img src="/site_media/js/sending.gif" style="margin-left:35px;margin-top:10px;"><br/>');	if(userID == 'None' || userID == 'undefined')		userID = 0;		$.post('/sendemail/' +userID+ '/', info, function(responseData) {		$('#' + propertyID + ' .send_reservation').html(responseData);		$('#' + propertyID + ' .bt_reserve').val('Reserve');		$('#' + propertyID + ' .send_reservation').animate({opacity: 1.0}, 8000).hide('slow');	});}


function featuredOver(propertyID, mainImage, latitude, longitude, obs) {	$('#dest .ajaxLoader').show();	$('#showImage').attr('src', '/site_media/imoveis/' +propertyID+ '/' +mainImage);	$('#showImage:hidden, #infoBox:hidden').show();	$('#map_canvas:visible').hide();	$('#cityLatitude').val(latitude);	$('#cityLongitude').val(longitude);	$('#infoBox').html(obs);	$('#activeProperty').val(propertyID);	$('#dest .ajaxLoader').hide();
}



	