/*--- Tabs ---*/

$(function () {
	var tabContainers = $('div.tabs > div');
	tabContainers.hide().filter(':first').show();

	$('div.tabs ul.tabNavigation a').click(function () {
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('div.tabs ul.tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
		
		// map.checkResize();
		// loadMap();
		
		return false;
	}).filter(':first').click();
});


/*--- Infinite Carousel ---*/

(function () {
    $.fn.infiniteCarousel = function () {
        function repeat(str, n) {
            return new Array( n + 1 ).join(str);
        }

        return this.each(function () {
            // magic!
            var $wrapper = $('> div', this).css('overflow', 'hidden'),
                $slider = $wrapper.find('> ul'),
                $items = $slider.find('> li'),
                $single = $items.filter(':first')

                singleWidth = $single.outerWidth(),
                visible = Math.ceil($wrapper.innerWidth() / singleWidth),
                currentPage = 1,
                pages = Math.ceil($items.length / visible);

            /* TASKS */

            // 1. pad the pages with empty element if required
            if ($items.length % visible != 0) {
                // pad
                $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
                $items = $slider.find('> li');
            }

            // 2. create the carousel padding on left and right (cloned)
            $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
            $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
            $items = $slider.find('> li');

            // 3. reset scroll
            $wrapper.scrollLeft(singleWidth * visible);

            // 4. paging function
            function gotoPage(page) {
                var dir = page < currentPage ? -1 : 1,
                    n = Math.abs(currentPage - page),
                    left = singleWidth * dir * visible * n;

                $wrapper.filter(':not(:animated)').animate({
                    scrollLeft : '+=' + left
                }, 500, function () {
                    // if page == last page - then reset position
                    if (page > pages) {
                        $wrapper.scrollLeft(singleWidth * visible);
                        page = 1;
                    } else if (page == 0) {
                        page = pages;
                        $wrapper.scrollLeft(singleWidth * visible * pages);
                    }

                    currentPage = page;
                });
            }

            // 5. insert the back and forward link
            $wrapper.after('<a href="#" class="arrow back">&lt;</a><a href="#" class="arrow forward">&gt;</a>');

            // 6. bind the back and forward links
            $('a.back', this).click(function () {
                gotoPage(currentPage - 1);
                return false;
            });

            $('a.forward', this).click(function () {
                gotoPage(currentPage + 1);
                return false;
            });

            $(this).bind('goto', function (event, page) {
                gotoPage(page);
            });

            // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL
            /*$(this).bind('next', function () {
                gotoPage(currentPage + 1);
            });*/
        });
    };
})(jQuery);

$(document).ready(function () {
    // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL
    var autoscrolling = true;

    $('.infiniteCarousel').infiniteCarousel().mouseover(function () {
        autoscrolling = false;
    }).mouseout(function () {
        autoscrolling = true;
    });

    setInterval(function () {
        if (autoscrolling) {
            $('.infiniteCarousel').trigger('next');
        }
    }, 2000);
});





/*--- Swap Image ---*/

$(document).ready(function(){

//Larger thumbnail preview 

/*$("ul.thumb li").hover(function() {
	$(this).css({'z-index' : '10'});
	$(this).find('img').addClass("hover").stop()
		.animate({
			marginTop: '-110px', 
			marginLeft: '-110px', 
			top: '50%', 
			left: '50%', 
			width: '174px', 
			height: '174px',
			padding: '20px' 
		}, 200);

	} , function() {
	$(this).css({'z-index' : '0'});
	$(this).find('img').removeClass("hover").stop()
		.animate({
			marginTop: '0', 
			marginLeft: '0',
			top: '0', 
			left: '0', 
			width: '100px', 
			height: '100px', 
			padding: '5px'
		}, 400);
});*/

//Swap Image on Click
	$("ul.thumbs li a").click(function() {

		var mainImage = $(this).attr("href"); //Find Image Name
		$("#photos img").attr({ src: mainImage });
		return false;		
	});

});




/*--- Modal Boxes ---*/

$().ready(function() {
  	$('#recalculatemonthlypayment_popup').jqm({trigger: 'a.recalculatemonthlypayment_trigger'});
	$('#seethishome_popup').jqm({trigger: 'a.seethishome_trigger'});
	$('#sendthishouse_popup').jqm({trigger: 'a.sendthishouse_trigger'});
	$('#emailagent_popup').jqm({trigger: 'a.emailagent_trigger'});
	$('#photogallery_popup').jqm({trigger: 'a.photogallery_trigger'});
});



/*--- Slider ---*/
/*
function calculate_payment(term) {
	
	var months = $("#loan_term").val() * 12;
	
	$("#dppct").val($("#dppct").val() + '%');
	
	// update down payment $
 	$("#dpamount").val(parseFloat(parseInt($("#loan_total").val()) * ($("#dppct").val() * .01)).toFixed(2));

	// update monthly payment
	loan_amt = parseInt($("#loan_total").val()) - (parseInt($("#loan_total").val()) * $("#dppct").val() * .01);
	
	I = ($("#loan_rate").val() *.01 ) / 12;
	v = Math.pow((1 + I),months);
	t = (I * v) / (v - 1);
	result = loan_amt * t;
	$("#monthly_pmt").val('$' + parseFloat(parseFloat(result).toFixed(2)));
	
	pmt = '$' + parseFloat(parseFloat(result).toFixed(2));
	
	// alert('Rate: '+$("#loan_rate").val()+' | N: '+months+' | I: '+I+' | v: '+v+' | t: '+t+' | '+pmt);
	
	return pmt;
}*/


function update_loan_type (ui) {
	
	var type = $("#loan_yrs").val();
	
	if (type == 'conventional30') {
		$("#loan_rate").val(conventional30);
		$("#loan_term").val(30);
		updateRate(30);
	}
	else if (type == 'conventional15') {
		$("#loan_rate").val(conventional15);
		$("#loan_term").val(15);
		updateRate(15);	
	}
	else if (type == 'fha30') {
		$("#loan_rate").val(fha30);
		$("#loan_term").val(30);
		updateRate(30);
	}
		
}

function updateRate(term) {
	$("#dppct").val();
	var termint = parseInt(term) * 12;
	
	// update down payment $
	var dpamt = parseFloat(parseInt($("#loan_total").val()) * $("#dppct").val() * .01).toFixed(2);
	$("#dpamount").val(dpamt);
	
	// update monthly payment
	loan_amt = parseFloat($("#loan_total").val()) - (parseFloat($("#loan_total").val()) * parseFloat($("#dppct").val()) * .01);
	
	var fees = 2000 + ( 0.01 * loan_amt );
	var tot_loan = fees + loan_amt;
	
	I = (parseFloat($("#loan_rate").val()) / 100) / 12;
	v = Math.pow((1 + I),termint);
	t = (I * v) / (v - 1);
	result = tot_loan * t;
	$("#monthly_pmt").html('$' + addCommas(parseFloat(result).toFixed(0)));
	
	// console.log('Loan Amount: $'+loan_amt);
	
	$.post("/apr.php", { payments: termint, pmt: result, amount: loan_amt},
	   function(data) {
	     // alert("Data Loaded: " + data);
		$("#estimate_apr").html(data);
		// console.log(data);
	   });
	
}


function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

/*
$(function() {
	
	// when slider is used...
	$("#slider-range-min").slider({
			value: 3,
			min: 3,
			max: 20,
			slide: function(event, ui) {
				// //alert($("select.loan_yrs option:selected").val());
				// // update down payment %
				// $("#dppct").val(ui.value + '%');
				// 
				// // update down payment $
				// $("#dpamount").val(parseInt($("#loan_total").val()) * ui.value * .01);
				// 
				// // update monthly payment
				// loan_amt = parseInt($("#loan_total").val()) - (parseInt($("#loan_total").val()) * ui.value * .01);
				// I = ($("#loan_rate").val() / 100) / 12;
				// v = Math.pow((1 + I),360);
				// t = (I * v) / (v - 1);
				// result = loan_amt * t;
				// $("#monthly_pmt").val('$' + parseFloat(parseFloat(result).toFixed(2)));
				
				calculate_payment($('#loan_term').val());
				
			}
		});
	
	
	// on page load...
	// update down payment %
		$("#dppct").val($("#slider-range-min").slider("value") + '%');
		// update down payment $
		$("#dpamount").val(parseInt($("#loan_total").val()) * 3 * .01);
		// update monthly payment
		loan_amt = parseInt($("#loan_total").val()) - (parseInt($("#loan_total").val()) * 3 * .01);
		I = ($("#loan_rate").val() / 100) / 12;
		v = Math.pow((1 + I),360);
		t = (I * v) / (v - 1);
		result = loan_amt * t;
		$("#monthly_pmt").val('$' + parseFloat(parseFloat(result).toFixed(2)));
	
	calculate_payment($('#loan_term').val());
});

function calculateMortgage($balance,$rate,$term,$period=12){
				
   $N = $term * $period; 
   $I = ($rate/100)/$period;
   $v = pow((1+$I),$N);
   $t = ($I*$v)/($v-1);
   $result = $balance*$t;

   return round($result, 2);
}
*/


/*--- Blind Down ---*/

function blind(divid) {
   jQuery('#'+divid).slideToggle("medium");
   return false;
}
