window.addEvent('domready', function() {
/* =============================================================================================
 * Adjust dynamic inputs
 * ------------------------------------------------------------------------------------------ */
	adjust_dyn_inputs();

/* =============================================================================================
 * Handle google maps for deal detail page
 * ------------------------------------------------------------------------------------------ */
 	if ($('map_canvas_deal_detail')) {
 		render_google_map($('map_canvas_deal_detail'), $('address').get('html') + " " + $('city').get('html') + " " + $('state').get('html') + " " + $('zip').get('html'));
	}
 
/* =============================================================================================
 * Handle the address for google maps on the edit page
 * ------------------------------------------------------------------------------------------ */
 	function reload_map() {
 		if (($('address').value && $('city').value && $('state').value) || ($('address').value && $('zip').value)) {
 			render_google_map($('map_canvas'), $('address').value + " " + $('city').value + " " + $('state').value + " " + $('zip').value);
 		}
 	}

	if ($('map_canvas')) {
		reload_map(); // so that we load on deal detail page
		$('address').addEvents({
			blur: function() {
				reload_map();
			}
		});
		$('city').addEvents({
			blur: function() {
				reload_map();
			}
		});
		$('state').addEvents({
			blur: function() {
				reload_map();
			}
		});
		$('zip').addEvents({
			blur: function() {
				reload_map();
			}
		});
	}
 
/* =============================================================================================
 * Handle the image upload status slide in
 * ------------------------------------------------------------------------------------------ */
	if ($('slide_in_file_type_00')) {
		$('slide_in_file_type_00').slide_me = new Fx.Slide('slide_in_file_type_00').hide();
	}

	if ($('slide_in_file_type_01')) {
		$('slide_in_file_type_01').slide_me = new Fx.Slide('slide_in_file_type_01').hide();
	}
	
/* =============================================================================================
 * Handle the promissory note upload form fields
 * ------------------------------------------------------------------------------------------ */
 	function calc_pmt_and_balloon() {
 		var p = +$('amt_curr').value;		// principal at inception
 		var r = +$('apr').value / 100 / 12;	// rate per period
 		var a = +$('amort').value;			// amortization periods
 		var m = +$('maturity').value;		// maturity periods
 		var pmt = (p * r) / (1 - Math.pow(1 + r, -a));
 		var bln = (p * Math.pow(1 + r, m)) - ((pmt * (Math.pow(1 + r, m) - 1)) / r);
 		
 		if ($('is_int_only').checked) {
 			pmt = p * r;
 			bln = p;
 		}
 		
		$('pmt').value = pmt.toFixed(2);
		$('balloon').value = bln.toFixed(2);
 	}
 
 	function calc_cum_ltv() {
		var a = +$('amt_curr').value;
		var v = +$('appraised_val').value;
		var ltv = a / v * 100;
		
		$('cum_ltv').value = ltv.toFixed(2);
 	}
 
	if ($('appraised_val')) {
		$('appraised_val').addEvents({
			change: function() {
				calc_cum_ltv();
			}
		});
	}

	if ($('amt_curr')) {
		$('amt_curr').addEvents({
			change: function() {
				calc_cum_ltv();
			}
		});
	}

	if ($('apr')) {
		$('apr').addEvents({
			change: function() {
				calc_pmt_and_balloon();
			}
		});
	}

	if ($('amort')) {
		$('amort').addEvents({
			change: function() {
				calc_pmt_and_balloon();
			}
		});
	}

	if ($('is_int_only')) {
		$('is_int_only').addEvents({
			change: function() {
				calc_pmt_and_balloon();
			}
		});
	}

	if ($('maturity')) {
		$('maturity').addEvents({
			change: function() {
				calc_pmt_and_balloon();
			}
		});
	}

/* =============================================================================================
 * Bubble tips
 * ------------------------------------------------------------------------------------------ */
	/*
	//store titles and text  
	//$$('a.tipz').each(function(element,index) {  
	$$('.bubble_tips_on').each(function(element,index) {  
		var content = element.get('title').split('::');  
		element.store('tip:title', content[0]);  
		element.store('tip:text', content[1]);  
	});  

	//create the tooltips  
	//var tipz = new Tips('.tipz',{  
	var tipz = new Tips('.bubble_tips_on',{  
		//className: 'tipz',  
		className: 'bubble_tips_on',  
		hideDelay: 50,  
		showDelay: 50,
		offsets: {'x': 20, 'y': 10}
	});
	
	tipz.addEvents({
		'show': function(tip) {  
			tip.fade('in');
		},  
		'hide': function(tip) {  
			tip.fade('out');  
		}  
	});
	*/

	new Tips_v1($$('.bubble_tips_on'), {
		maxTitleChars: 50,	//I like my captions a little long
		onShow: function(toolTip) {
			toolTip.fade(0.95); //Fades "myElement" to 95% opacity.
		},
		onHide: function(toolTip) {
			toolTip.fade('out'); //Fades "myElement" out.
		}
	});
	
	/*
	new Tips($$('.bubble_tips_on'), {
		initialize:function(){
			this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
		},
		onShow: function(toolTip) {
			this.fx.start(1);
		},
		onHide: function(toolTip) {
			this.fx.start(0);
		}
	});
	/*

/* =============================================================================================
 * Handle the accordion
 * ------------------------------------------------------------------------------------------ */
	if ($('accordion')) {
		// new Accordion($('accordion'), 'h3.toggler', 'div.element', {
		new Accordion($('accordion'), 'img.toggler', 'div.element', {
			opacity: false,
			onActive: function(toggler, element){
				toggler.setStyle('color', '#41464D');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#528CE0');
			}
		});
	}

/* =============================================================================================
 * Handle the accordion_faq
 * ------------------------------------------------------------------------------------------ */
	if ($('accordion_faq')) {
		new Accordion($('accordion_faq'), 'h3.toggler', 'div.element', {
			opacity: false,
			onActive: function(toggler, element){
				toggler.setStyle('color', '#41464D');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#528CE0');
			}
		});
	}

/* =============================================================================================
 * Search deals form
 * ------------------------------------------------------------------------------------------ */
	if ($('form_search_dealsX')) {
		$('form_search_deals').addEvent('submit', function(e) {
			e.stop();
			var div_hits_deals = $('div_hits_deals').empty().addClass('ajax-loading');
			// var log = $('log_res').empty().addClass('ajax-loading');
			this.set(
				'send', {
					onComplete:
						function(response) { 
							div_hits_deals.removeClass('ajax-loading');
							div_hits_deals.set('html', response);
						}
				});
			this.send();
		});
	}
	
/* =============================================================================================
 * Slide in for deal creation
 * ------------------------------------------------------------------------------------------ */
 	if ($('panel_deal_type_01')) {
		$('panel_deal_type_01').slide_me = new Fx.Slide('panel_deal_type_01').hide();

		$('lkjsdlfkj').addEvent('change', function(e) {
			e = new Event(e);
			switch (this.value) {
				case "1":
					$('panel_deal_type_01').slide_me.slideOut();
					break;
				case "2":
					$('panel_deal_type_01').slide_me.slideIn();
					break;
				default:
					break;
			}
			e.stop();
		});
 	}
 
/* =============================================================================================
 * End
 * ------------------------------------------------------------------------------------------ */
});
