First Commit
This commit is contained in:
commit
610aa1e202
4204 changed files with 636764 additions and 0 deletions
281
_static/assets/js/view/pack_realestate.js
Normal file
281
_static/assets/js/view/pack_realestate.js
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
/** ********************************************** **
|
||||
@REALESTATE PACK DEMO [usage example]
|
||||
pack-realestate-*.html
|
||||
*************************************************** **/
|
||||
var googleMapKey = "AIzaSyCqCn84CgZN6o1Xc3P4dM657HIxkX3jzPY";
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
|
||||
_init_();
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
/** _init_()
|
||||
******************************* **/
|
||||
function _init_() {
|
||||
|
||||
|
||||
|
||||
/* LIST MODE
|
||||
pack-realestate-property-list-1.html
|
||||
pack-realestate-property-list-2.html
|
||||
*********************************** */
|
||||
window._lastClass = null;
|
||||
jQuery('div.property-list-opt .property-list-btn>a').bind("click", function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var _t = jQuery(this),
|
||||
_class = _t.attr('data-class') || null;
|
||||
|
||||
|
||||
|
||||
|
||||
if(window._lastClass == null) {
|
||||
|
||||
if(_class != null && _class != 'property-item-box') {
|
||||
|
||||
window._lastClass = _class;
|
||||
|
||||
} else {
|
||||
|
||||
window._lastClass = 'col-xs-12 col-md-4'; // fail safe
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
jQuery('div.property-list-opt .property-list-btn>a').removeClass('active');
|
||||
_t.addClass('active');
|
||||
|
||||
if(_class != 'property-item-box') {
|
||||
|
||||
jQuery('div.property-item-list div.property-item').removeClass('property-item-box').parent().removeClass('col-md-6 col-md-5 col-md-4 col-md-3 col-md-2 col-lg-6 col-lg-5 col-lg-4 col-lg-3 col-lg-2');
|
||||
|
||||
// add to cookie (for php use if needed)
|
||||
_setCookie('property-list-mode','unboxed', 30); // in days
|
||||
|
||||
} else {
|
||||
|
||||
jQuery('div.property-item-list div.property-item').addClass('property-item-box');
|
||||
jQuery('div.property-item-list>div').addClass(window._lastClass);
|
||||
|
||||
// add to cookie (for php use if needed)
|
||||
_setCookie('property-list-mode','boxed', 30); // in days
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* SAVE BUTTON
|
||||
pack-realestate-property-item.html
|
||||
*********************************** */
|
||||
jQuery("#restate-save").bind('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var _this = jQuery(this),
|
||||
_href = _this.attr('href');
|
||||
|
||||
|
||||
jQuery.ajax({
|
||||
url : _href,
|
||||
dataType : 'html',
|
||||
type : 'POST',
|
||||
cache : true, // warning: this will cause a timestamp and will call the request twice
|
||||
async : true,
|
||||
|
||||
beforeSend : function() {
|
||||
|
||||
jQuery('i', _this).toggleClass('fa fa-heart-o , fa fa-cog fa-spin');
|
||||
|
||||
},
|
||||
|
||||
success : function(data) {
|
||||
|
||||
_toastr("Successfully Saved!",'top-right',"success",false);
|
||||
jQuery('i', _this).toggleClass('fa fa-heart-o , fa fa-cog fa-spin');
|
||||
|
||||
},
|
||||
|
||||
complete: function(){},
|
||||
|
||||
// 404 ERROR MESSAGE
|
||||
error : function(xhr, ajaxOptions, thrownError) {
|
||||
|
||||
_toastr("ERROR: Please try again later!",'top-right',"error",false);
|
||||
jQuery('i', _this).toggleClass('fa fa-heart-o , fa fa-cog fa-spin');
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* FULLSCREEN GOOGLE MAP
|
||||
pack-realestate-property-item.html
|
||||
*********************************** */
|
||||
jQuery("a.togglemap").bind('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
// get latitude and longitude
|
||||
var _lat = jQuery(this).attr('data-lat') || 0,
|
||||
_lng = jQuery(this).attr('data-lng') || 0;
|
||||
|
||||
// load scripts first
|
||||
loadScript('//maps.google.com/maps/api/js?key=' + googleMapKey, function() {
|
||||
loadScript(plugin_path + 'gmaps.js', function() {
|
||||
|
||||
// show map & init
|
||||
jQuery("#map-fullscreen").show(0, function() {
|
||||
|
||||
/**
|
||||
@BASIC GOOGLE MAP
|
||||
**/
|
||||
var map = new GMaps({
|
||||
div: '#gmap-init',
|
||||
lat: Number(_lat),
|
||||
lng: Number(_lng)
|
||||
});
|
||||
|
||||
var marker = map.addMarker({
|
||||
lat: Number(_lat),
|
||||
lng: Number(_lng),
|
||||
title: 'Company, Inc.'
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// close map
|
||||
jQuery("#map-fullscreen>button").bind('click', function(e) {
|
||||
e.preventDefault();
|
||||
jQuery("#map-fullscreen").hide();
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* GOOGLE MAP ON SLIDER
|
||||
pack-realestate-property-item-2.html
|
||||
*********************************** */
|
||||
var _gs_container = "#gmap-slider";
|
||||
|
||||
if(jQuery(_gs_container).length > 0) {
|
||||
jQuery(window).on("load", function() {
|
||||
|
||||
// get latitude and longitude
|
||||
var _gs_this = jQuery(_gs_container),
|
||||
_gs_lat = _gs_this.attr('data-lat') || 0,
|
||||
_gs_lng = _gs_this.attr('data-lng') || 0,
|
||||
_sliderH = jQuery("#slider").outerHeight(); // slider height
|
||||
|
||||
|
||||
// load scripts first
|
||||
loadScript('//maps.google.com/maps/api/js?key=' + googleMapKey, function() {
|
||||
loadScript(plugin_path + 'gmaps.js', function() {
|
||||
|
||||
// Slider and google map shouyld have the same height
|
||||
_gs_this.height(_sliderH);
|
||||
|
||||
/**
|
||||
@PANORAMA GOOGLE MAP
|
||||
**/
|
||||
var panorama = GMaps.createPanorama({
|
||||
el: _gs_container,
|
||||
lat: Number(_gs_lat),
|
||||
lng: Number(_gs_lng)
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* MORTGAGE CALCULATOR
|
||||
pack-realestate-property-item.html
|
||||
*********************************** */
|
||||
// Recalculate on change
|
||||
jQuery("#mcalc-price, #mcalc-dpayment, #mcalc-rate").keyup(function() {
|
||||
_mcalc();
|
||||
});
|
||||
|
||||
jQuery("#mcalc-term").change(function() {
|
||||
_mcalc();
|
||||
});
|
||||
|
||||
|
||||
// Morgage Calculator
|
||||
function _mcalc() {
|
||||
var _mcalc_price = jQuery("#mcalc-price").val() || 0, // price
|
||||
_mcalc_term = jQuery("#mcalc-term").val() || 10, // term
|
||||
_mcalc_dpayment = jQuery("#mcalc-dpayment").val() || 0, // % down payment
|
||||
_mcalc_rate = jQuery("#mcalc-rate").val() || 0, // rate
|
||||
_mcalc_charges = jQuery("#mcalc-charges").html() || 0, // monthyl charges
|
||||
_mcalc_charges = Number(_mcalc_charges.replace(',',''));
|
||||
|
||||
|
||||
// it's a rare case scenario when interest rate is 0
|
||||
// it's not accurate but we cover it - info only!
|
||||
if(_mcalc_rate == 0)
|
||||
_mcalc_rate = 0.000000000001;
|
||||
|
||||
|
||||
// DOWN PAYMENT AMOUNT
|
||||
_result_amount = _mcalc_price / 100 * _mcalc_dpayment;
|
||||
jQuery("#mcalc-result-downpayment").html(_result_amount.formatMoney(2, '.', ','));
|
||||
|
||||
|
||||
// MORTGAGE AMOUNT
|
||||
_result_mamount = _mcalc_price - _result_amount;
|
||||
jQuery("#mcalc-result-mamount").html(_result_mamount.formatMoney(2, '.', ','));
|
||||
|
||||
|
||||
// MONTHLY MORTGAGE PAYMENT
|
||||
// Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
|
||||
var P = _result_mamount; //principle / initial amount borrowed
|
||||
var I = _mcalc_rate / 100 / 12; //monthly interest rate
|
||||
var N = _mcalc_term * 12; //number of payments months
|
||||
|
||||
_result_mortgage = P * I * (Math.pow(1 + I, N)) / (Math.pow(1 + I, N) - 1);
|
||||
jQuery("#mcalc-mortgage").html(_result_mortgage.formatMoney(2, '.', ','));
|
||||
|
||||
|
||||
// TOTAL MONTHLY PAYMENT
|
||||
_result_pmonthly = _result_mortgage + _mcalc_charges;
|
||||
jQuery("#mcalc-pmonthly").html(_result_pmonthly.formatMoney(2, '.', ','));
|
||||
|
||||
}
|
||||
|
||||
if(jQuery("#mcalc-price").length > 0) {
|
||||
_mcalc(); // init on load
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue