/**
* @package IDX Listings Template
* @author John Paul Pineda
* @email john.pineda@thedesignpeople.com
* @copyright 2015 John Paul Pineda
* @version 1.0 August 7, 2015
**/
jQuery.noConflict();
// Global variables should be avoided in order to lower the possibility of variable naming collisions. One way to minimize the number of globals is by namespacing our variables and functions.
( function( $ ) {
var idx_provider_id = 0; // ID of the current selected IDX Provider. Available IDX Providers are as follows: IDX Broker Original = 1, IDX Broker Platinum = 2 and IDX iHomeFinder = 3.
var idx_lt_site_url = 'http://www.comfortlivingohiollc.com';
if ( idx_provider_id == 1 ) {
var idx_broker_original = {
available_fields: {
address: 'idx_listing_address',
description: 'idx_listing_description',
price: 'idx_listing_price',
number_of_bedrooms: 'idx_listing_number_of_bedrooms',
number_of_full_bathrooms: 'idx_listing_number_of_full_bathrooms',
number_of_partial_bathrooms: 'idx_listing_number_of_partial_bathrooms',
number_of_bathrooms: 'idx_listing_number_of_bathrooms',
size_in_square_feet: 'idx_listing_size_in_square_feet',
size_in_acres: 'idx_listing_size_in_acres',
url: 'idx_listing_url',
photo_url: 'idx_listing_photo_url',
photo_gallery_url: 'idx_listing_photo_gallery_url',
mls_number: 'idx_listing_mls_number',
details_mls_courtesy_text: 'idx_listing_details_mls_courtesy_text'
},
initializeListingsTemplate: function( v_listings_template ) {
var this_object = this;
var listings_template = v_listings_template; // Assign by reference only
if ( $( "#IDX-main .IDX-resultsCell" ).length > 0 ) {
var listings = [];
var listing = {};
var listings_template_content = '', listings_template_inline_css = '';
var listing_address = {};
var listing_complete_address;
var listing_description;
var listing_price;
var listing_number_of_bedrooms;
var listing_number_of_full_bathrooms;
var listing_number_of_partial_bathrooms;
var listing_number_of_bathrooms;
var listing_size_in_square_feet;
var listing_size_in_acres;
var listing_url;
var listing_photo_url;
var listing_photo_gallery_url;
var listing_mls_number;
var listing_details_mls_courtesy_text;
$( "#IDX-main .IDX-resultsCell" ).each( function( v_key, v_html ) {
listing_address.number = castToString( $( ".IDX-resultsAddressNumber", v_html ).html() );
listing_address.direction = castToString( $( ".IDX-resultsAddressDirection", v_html ).html() );
listing_address.name = castToString( $( ".IDX-resultsAddressName", v_html ).html() );
listing_address.city = castToString( $( ".IDX-resultsAddressCity", v_html ).html() );
listing_address.state = castToString( $( ".IDX-resultsAddressState", v_html ).html() );
listing_address.state_abbreviation = castToString( $( ".IDX-resultsAddressStateAbrv", v_html ).html() );
listing_address.zip = castToString( $( ".IDX-resultsAddressZip", v_html ).html() );
listing_complete_address = formatIDXBrokerListingAddress( listing_address );
listing_description = castToString( $( ".IDX-resultsDescription", v_html ).html() );
listing_price = castToString( $( "#IDX-priceNumber", v_html ).html() );
listing_number_of_bedrooms = castToInt( $( ".IDX-resultsSideBedrooms .IDX-resultsSideValue", v_html ).html() );
listing_number_of_full_bathrooms = castToInt( $( ".IDX-resultsSideBathrooms .IDX-resultsSideValue", v_html ).text() );
listing_number_of_partial_bathrooms = castToInt( $( ".IDX-resultsSideHalfBaths .IDX-resultsSideValue", v_html ).text() );
listing_number_of_bathrooms = ( listing_number_of_full_bathrooms + ( ( listing_number_of_partial_bathrooms > 0 ) ? ( '.' + listing_number_of_partial_bathrooms ) : '' ) );
listing_size_in_square_feet = castToString( $( ".IDX-resultsSideSqFt .IDX-resultsSideValue", v_html ).text(), 'N/A' );
listing_size_in_acres = castToString( $( ".IDX-resultsSideAcres .IDX-resultsSideValue", v_html ).text(), 'N/A' );
listing_url = castToString( $( ".IDX-resultsPhoto a", v_html ).attr( 'href' ) );
listing_photo_url = castToString( $( ".IDX-resultsPhoto a img", v_html ).attr( 'src' ) );
listing_photo_gallery_url = castToString( $( ".IDX-resultsLinks .IDX-resultsGalleryLink.IDX-linkItem a" ).attr( 'href' ) );
listing_mls_number = castToString( $( ".IDX-resultsSideListingID .IDX-resultsSideValue", v_html ).html(), 'Unknown' );
listing_details_mls_courtesy_text = castToString( $( ".IDX-detailsMLSCourtesy", v_html ).text() );
listing = { listing_number: ( v_key + 1 ), title: '', address: listing_complete_address, description: listing_description, price: listing_price, number_of_bedrooms: listing_number_of_bedrooms, number_of_full_bathrooms: listing_number_of_full_bathrooms, number_of_partial_bathrooms: listing_number_of_partial_bathrooms, number_of_bathrooms: listing_number_of_bathrooms, size_in_square_feet: listing_size_in_square_feet, size_in_acres: listing_size_in_acres, url: listing_url, photo_url: listing_photo_url, photo_gallery_url: listing_photo_gallery_url, mls_number: listing_mls_number, details_mls_courtesy_text: listing_details_mls_courtesy_text };
listings_template_content += strReplaceByObject( this_object.available_fields, listing, listings_template.html );
listings.push( listing );
} );
listings_template_inline_css = ( "\n\n" );
$( "hr.IDX-resultsSeperator" ).after( ( listings_template_inline_css + listings_template_content + '
' ) );
}
}
};
} else if ( idx_provider_id == 2 ) {
var idx_broker_platinum = {
available_fields: {
type: 'idx_listing_type',
status: 'idx_listing_status',
address: 'idx_listing_address',
description: 'idx_listing_description',
price: 'idx_listing_price',
number_of_bedrooms: 'idx_listing_number_of_bedrooms',
number_of_full_bathrooms: 'idx_listing_number_of_full_bathrooms',
number_of_partial_bathrooms: 'idx_listing_number_of_partial_bathrooms',
number_of_bathrooms: 'idx_listing_number_of_bathrooms',
size_in_square_feet: 'idx_listing_size_in_square_feet',
size_in_acres: 'idx_listing_size_in_acres',
url: 'idx_listing_url',
photo_url: 'idx_listing_photo_url',
photo_gallery_url: 'idx_listing_photo_gallery_url',
mls_number: 'idx_listing_mls_number',
details_mls_courtesy_text: 'idx_listing_details_mls_courtesy_text'
},
listing_types: {
1: 'Residential',
2: '2-4 Family',
3: 'Condo/Coop/Townhome',
4: 'Rentals',
5: 'Commercial Sale/Lease',
6: 'Business',
7: 'Land',
8: '5+ Mixed Use'
},
initializeListingsTemplate: function( v_listings_template ) {
var this_object = this;
var listings_template = v_listings_template; // Assign by reference only
if ( $( "#IDX-main .IDX-resultsCell" ).length > 0 ) {
var listings = [];
var listing = {};
var listings_template_content = '', listings_template_inline_css = '';
var listing_type;
var listing_status;
var listing_address = {};
var listing_complete_address;
var listing_description;
var listing_price;
var listing_number_of_bedrooms;
var listing_number_of_full_bathrooms;
var listing_number_of_partial_bathrooms;
var listing_number_of_bathrooms;
var listing_size_in_square_feet;
var listing_size_in_acres;
var listing_url;
var listing_photo_url;
var listing_photo_gallery_url;
var listing_mls_number;
var listing_details_mls_courtesy_text;
$( "#IDX-main .IDX-resultsCell" ).each( function( v_key, v_html ) {
listing_type = this_object.listing_types[ castToInt( $( this ).data( 'mlsptid' ), 'N/A' ) ];
listing_status = castToString( $( ".IDX-resultsField-propStatus .IDX-resultsText", v_html ).html(), 'N/A' );
listing_address.number = castToString( $( ".IDX-resultsAddressNumber", v_html ).html() );
listing_address.direction = castToString( $( ".IDX-resultsAddressDirection", v_html ).html() );
listing_address.name = castToString( $( ".IDX-resultsAddressName", v_html ).html() );
listing_address.city = castToString( $( ".IDX-resultsAddressCity", v_html ).html() );
listing_address.state = castToString( $( ".IDX-resultsAddressState", v_html ).html() );
listing_address.state_abbreviation = castToString( $( ".IDX-resultsAddressStateAbrv", v_html ).html() );
listing_address.zip = castToString( $( ".IDX-resultsAddressZip", v_html ).html() );
listing_complete_address = formatIDXBrokerListingAddress( listing_address );
listing_description = castToString( $( ".IDX-resultsDescription", v_html ).html() );
listing_price = castToString( $( "#IDX-priceNumber", v_html ).html() );
listing_number_of_bedrooms = castToInt( $( ".IDX-resultsField-bedrooms .IDX-resultsText", v_html ).html() );
listing_number_of_full_bathrooms = castToInt( $( ".IDX-resultsField-fullBaths .IDX-resultsText", v_html ).text() );
listing_number_of_partial_bathrooms = castToInt( $( ".IDX-resultsField-partialBaths .IDX-resultsText", v_html ).text() );
listing_number_of_bathrooms = ( listing_number_of_full_bathrooms + ( ( listing_number_of_partial_bathrooms > 0 ) ? ( '.' + listing_number_of_partial_bathrooms ) : '' ) );
listing_size_in_square_feet = castToString( $( ".IDX-resultsField-sqFt .IDX-resultsText", v_html ).text(), 'N/A' );
listing_size_in_acres = castToString( $( ".IDX-resultsField-acres .IDX-resultsText", v_html ).text(), 'N/A' );
listing_url = castToString( $( ".IDX-resultsPhoto a", v_html ).attr( 'href' ) );
listing_photo_url = castToString( $( ".IDX-resultsPhoto noscript ", v_html ).attr( 'data-src' ) );
listing_photo_gallery_url = castToString( $( ".IDX-resultsPhotogallery .IDX-resultsPhotoGalleryLink" ).attr( 'href' ) );
listing_mls_number = castToString( $( ".IDX-resultsField-listingID .IDX-resultsText", v_html ).html(), 'Unknown' );
listing_details_mls_courtesy_text = castToString( $( ".IDX-mlsContainer .IDX-detailsMLSCourtesy", v_html ).html() );
listing = { listing_number: ( v_key + 1 ), title: '', type: listing_type, status: listing_status, address: listing_complete_address, description: listing_description, price: listing_price, number_of_bedrooms: listing_number_of_bedrooms, number_of_full_bathrooms: listing_number_of_full_bathrooms, number_of_partial_bathrooms: listing_number_of_partial_bathrooms, number_of_bathrooms: listing_number_of_bathrooms, size_in_square_feet: listing_size_in_square_feet, size_in_acres: listing_size_in_acres, url: listing_url, photo_url: listing_photo_url, photo_gallery_url: listing_photo_gallery_url, mls_number: listing_mls_number, details_mls_courtesy_text: listing_details_mls_courtesy_text };
listings_template_content += strReplaceByObject( this_object.available_fields, listing, listings_template.html );
listings.push( listing );
} );
listings_template_inline_css = ( "\n\n" );
$( ".IDX-resultCellContainer" ).after( ( listings_template_inline_css + listings_template_content + '
' ) );
}
}
};
} else if ( idx_provider_id == 3 ) {
var idx_ihomefinder = {
available_fields: {
address: 'idx_listing_address',
price: 'idx_listing_price',
number_of_bedrooms: 'idx_listing_number_of_bedrooms',
number_of_full_bathrooms: 'idx_listing_number_of_full_bathrooms',
number_of_partial_bathrooms: 'idx_listing_number_of_partial_bathrooms',
number_of_bathrooms: 'idx_listing_number_of_bathrooms',
lot_size_and_unit_of_area: 'idx_listing_lot_size',
url: 'idx_listing_url',
photo_url: 'idx_listing_photo_url',
mls_number: 'idx_listing_mls_number'
},
getNewElementTextByTag: function( v_html, v_tag ) {
var new_element;
new_element = $( ( '