/**
 * RPM Qualifier JQuery Plugin
 *	overview: 
 *
 *	dependencies: thickbox.js
 */
(function($){
		 
		
		
		/** 
		* rpm calculator button inside the rpm widget click event, to show rpm qualifier with calculator pre selected
		*/		
		$.rpmCalculatorBtnClick = function (){
			tb_show("Mortgage Center", "listings?pathway=341&selectedTabId=1&height=600&width=700", false);	
			$.bindThickboxClose(function(){return tb_remove();});
			return false;//to maintain to keep the original page position
		}
		
		/**
		* rpm prequalifier button inside the rpm widget click event, to show rpm qualifier with prequalifier pre selected
		*/
		$.rpmPrequalifierBtnClick =	function(){
			tb_show("Mortgage Center", "listings?pathway=341&selectedTabId=2&height=600&width=700", false);	
			$.bindThickboxClose(function(){return tb_remove();});
			return false;//to maintain to keep the original page position
		}
		
		/**
		*close button and cancel  href click event handler for qualifier widget thick box
		*/
		$.cancelRPMQualifier = function() {
			return tb_remove();
		}
		
		/**
		*init rpm qualifier (rpm qualifier has two tabs: mortgage calculator, mortgage pre-qualifier)
		*selectedTab: pre selected rpm qualifier tab, 0: none,1: calculator,2: prequalifier  
		* outputContainerId: container for displaying rpm qualifer
		*containerTabId: ul id for tabs (hold rpm qualifier tabs)
		*param1: extra info for mortgage calculator url data
		*param2: extra info form mortgage prequalifier url data
		*/
		$.initializeRPMQualifier = function(outputContainerId,containerTabId,param1,param2,selectedTab) {
			//init divs for holding output
			// initialize tabs
			if(param1 == ""){//from the rpm qualifier widget not from listing
					// bind event to the close link
				$("#closeRPMQualifier").click(function(){return $.cancelRPMQualifier();});
			
				if(selectedTab == 1)
					selectCalculator(outputContainerId,containerTabId,param1);
				 else
					selectPrequalifier(outputContainerId,containerTabId,param2);
			}
						
			/** mortgage calculator tab click event
			*/
			$("#qualifierMortgageCalculator").click(function(){
				selectCalculator(outputContainerId,containerTabId,param1);
				//$("#"+outputContainerId).css("display","block");
				//$("#cal_container").focus();
				return false;
			});
			
			/**  mortgage pre-qualifier tab click event
			*/
			$("#qualiferMortgagePrequalifier").click(function(){
				selectPrequalifier(outputContainerId,containerTabId,param2);
				//$("#"+outputContainerId).css("display","block");
				//alert(this);--important
				//self.focus();
				return false;
			});
			
			
			/**switch to pre-qualifier tab
			*/
			$.gotoPreQualifier = function(){
			 //alert("switch to pre-qualifier");
			 selectPrequalifier(outputContainerId,containerTabId,param2);
			 //$("#"+outputContainerId).css("display","block");
			
			}
			
		return false;
			
		}
		
		
		/*
		* outputContainerId: container for displaying rpm qualifer
		*containerTabId: ul id for tabs (hold rpm qualifier tabs)
		*param: extra info for mortgage calculator url data
		*set mortgage calculator tab selected and show the mortgage calculator
		*/
		var selectCalculator = function(outputContainerId,containerTabId,param){
			$("#" + containerTabId).children('li').removeClass("select");
			$("#qualifierMortgageCalculator").addClass("select");
			
			if($("#"+outputContainerId).children('div').length<2){
				$("#"+outputContainerId).append('<div id="cal_container" style="display:none;"/> <div id="preQ_container" style="display:none;"/>');
			}
			loadMortgageCalculator(outputContainerId,param);
			return false;
			
		}
		
		/*
		* outputContainerId: container for displaying rpm qualifer
		*containerTabId: ul id for tabs (hold rpm qualifier tabs)
		*param:extra info fro mortgage prequalifier url data
		*set mortgage prequalifier selected and show the mortgage pre-qualifier
		*/
		var selectPrequalifier = function(outputContainerId,containerTabId,param){
			$("#" + containerTabId).children('li').removeClass("select");
			$("#qualiferMortgagePrequalifier").addClass("select");
			
			if($("#"+outputContainerId).children('div').length<2){
				$("#"+outputContainerId).append('<div id="cal_container" style="display:none;"/> <div id="preQ_container" style="display:none;"/>');
			}
			loadMortgagePrequalifier(outputContainerId,param);	
			return false;
		}
		
		/**
		* make ajax call to load the mortgage calculator
		* param: extra info fro mortgage prequalifier
		*/
		var loadMortgageCalculator = function(outputContainerId,param){
			
			//todo try to get data from the listing to init the calculator --???
			if($("#cal_container").children('div').length >0){
				 if(param != ""){
					$('#botSec_cnt_summ').css("display", "none");
					$('#botSec_cnt_det').css("display", "none");
					$('#botSec_cnt_other').html("");
					$('#botSec_cnt_qualifier').css("display","block");
				}
				$("#preQ_container").css("display","none");
				$("#cal_container").css("display","block");
			}
			else{
				$.ajax({
					type:"GET",
					url:"listings",
					data:"pathway=341&loadMortgageCalculator=true" +param,
					dataType:"html",
					error: function(data,error){
						alert("load mortgage calculator failed: " + data + " "+ error);
						},
					success: function(data){
					    if(param != ""){
							$('#botSec_cnt_summ').css("display", "none");
							$('#botSec_cnt_det').css("display", "none");
							$('#botSec_cnt_other').html("");
							$('#botSec_cnt_qualifier').css("display","block");
						}
						$("#preQ_container").css("display", "none");
						$("#cal_container").css("display","block");
						$("#cal_container").html(data);
						
						},
					beforeSend: function(){
							//$('#qualifierOverlay').block({ message: 'Loading Calculator, Please wait...'+' <img src="/t/resources/rpm3.0/images/activity/indicator_medium.gif" />' });
						},	
					complete: function (XMLHttpRequest, textStatus) {
						//$('#qualifierOverlay').unblock();
						}
				}); 
			}
			
		}
		
		/**
		* make ajax call to load the mortgage pre-qualifier
		*if param == "" , we are loading pre qualifier from the widget , so we don't have any extra info for the pre qualifier
		*/
		var loadMortgagePrequalifier = function(outputContainerId,param){
			if($("#preQ_container").children('div').length>0){
				if(param != ""){
					$('#botSec_cnt_summ').css("display", "none");
					$('#botSec_cnt_det').css("display", "none");
					$('#botSec_cnt_other').html("");
					$('#botSec_cnt_qualifier').css("display","block");
				}
				$("#cal_container").css("display", "none");
				$("#preQ_container").css("display","block");
			}
			else{
				$.ajax({
					type:"GET",
					url:"listings",
					data:"pathway=341&loadMortgagePrequalifier=true"+param,
					dataType:"html",
					error: function(data,error){
						alert("load mortgage pre-qualifier failed: " + data +" " + error);
						},
					success: function(data){
						 if(param != ""){
							$('#botSec_cnt_summ').css("display", "none");
							$('#botSec_cnt_det').css("display", "none");
							$('#botSec_cnt_other').html("");
							$('#botSec_cnt_qualifier').css("display","block");
						}
						$("#cal_container").css("display", "none");
						$("#preQ_container").css("display","block");
						$("#preQ_container").html(data);
						
						},
					beforeSend: function(){
							//$('#qualifierOverlay').block({ message: 'Loading Qualifier, Please wait...'+' <img src="/t/resources/rpm3.0/images/activity/indicator_medium.gif" />' });
						},	
					complete: function (XMLHttpRequest, textStatus) {
						//$('#qualifierOverlay').unblock();
						}
				}); 
			
			}			
			
		}
		  
})(jQuery);