try{ var $j = jQuery.noConflict(); }catch(err){/* nothing to do */}

Event.observe(document, 'dom:loaded', fdc_init, false);
var listingsPerPage = 5;
var listingsTotal = 0;
var listingsMax = 25;
var currentPage = 0;
var numPages = 0;


function fdc_init(){
	search_form_init();
	pagination_init();
	registration_form_init();
}

function search_form_init(){
	jQuery('#fdc_city_input').focus(function(){
		var elem = jQuery(this);
		if(elem.val() == elem.attr('defaultvalue')){
			elem.val('');
		}
	});
	
	jQuery('#fdc_city_input').blur(function(){	
		var elem = jQuery(this);
		if(elem.val() == ''){
			elem.val(elem.attr('defaultvalue'));
		}
	});

	jQuery('#fdc_zip_input').focus(function(){
		var elem = jQuery(this);
		if(elem.val() == elem.attr('defaultvalue')){
			elem.val('');
		}
	});
	
	jQuery('#fdc_zip_input').blur(function(){	
		var elem = jQuery(this);
		if(elem.val() == ''){
			elem.val(elem.attr('defaultvalue'));
		}
	});
}

function pagination_init(){
	numPages = jQuery('#fdc_listings .listing_page').length;
	if(jQuery('#fdc_listingTotal').html()){
		listingsTotal = Math.min(listingsMax, parseInt(jQuery('#fdc_listingTotal').html().replace(',','')));
	}
}

function nextPage(){
	var inObj;
	var outObj;
	if(currentPage == numPages -1){ return; }
		
	outObj = jQuery('#listing_page_'+currentPage);	
	currentPage += 1;
	inObj = jQuery('#listing_page_'+currentPage);	
	exitStageLeft(outObj, inObj, loadNextImages);	
	fixPaginationLinks();
	fixPaginationCounts();
}

function prevPage(){
	var inObj;
	var outObj;
	if(currentPage == 0){ return; }	
	outObj = jQuery('#listing_page_'+currentPage);		
	currentPage -= 1;
	inObj = jQuery('#listing_page_'+currentPage);
	exitStageRight(outObj, inObj);
	fixPaginationLinks();
	fixPaginationCounts();
}


function loadNextImages(){
	jQuery('#listing_page_'+ (currentPage+1) + ' img.unloaded').each(function(i){
		var curImage = jQuery(this);
		curImage.attr('src', curImage.attr('actualsrc')).removeClass('unloaded');
	});
}

function fixPaginationCounts(){
	var from = Math.min( 1 + (currentPage * listingsPerPage), listingsTotal);
	var to = Math.min( from - 1 + listingsPerPage, listingsTotal);
	jQuery('#fdc_listingFrom').html(from);
	jQuery('#fdc_listingTo').html(to);
}

function fixPaginationLinks(){
	if(currentPage == 0){
		jQuery('#fdc_prev_link').addClass('disabled');
	} else {
		jQuery('#fdc_prev_link').removeClass('disabled');
	}
	
	if(currentPage == numPages -1){
		jQuery('#fdc_next_link').addClass('disabled');
	} else {
		jQuery('#fdc_next_link').removeClass('disabled');
	}
}

function registration_form_init(){
	var detailsLinks = $$('.fdc_details_link');
	detailsLinks.each(function(el){
		el.observe('click', fdc_get_details, false);
	});
	
	// set up the registration form cancel and submit buttons
	if($('fdc_registration_div')){
		$('fdc_reg_reset').observe('click',fdc_registration_cancel);
		$('fdc_reg_submit').observe('click',fdc_registration_submit);
	}
	if($('reg_sell_form')){
		$('fdc_reg_submit2').observe('click',fdc_reg_sell_submit);
	}
}

function show_advanced_options(){
	Effect.BlindDown($('fdc_advanced_options'), {duration: 0.2, afterFinish: function(){$('fdc_more_options').className = 'optbox_expanded';}});
	Event.observe($('fdc_more_options'), 'click', hide_advanced_options, false);
	Event.stopObserving($('fdc_more_options'), 'click', show_advanced_options, false);
}

function hide_advanced_options(){
	$('fdc_more_options').blur();
	Effect.BlindUp($('fdc_advanced_options'), {duration: 0.2, afterFinish: function(){$('fdc_more_options').className = 'optbox_hidden';}});
	Event.observe($('fdc_more_options'), 'click', show_advanced_options, false);
	Event.stopObserving($('fdc_more_options'), 'click', hide_advanced_options, false);
}

function toggle_zipcode_field(){
	if($F('fdc_state_selector') == '-1'){
		Effect.BlindUp($('state_required_options'), {duration:0.2, afterFinish: function(){
			$('fdc_zip_input').disable();
			$('fdc_city_input').disable();
			$('fdc_county_selector').disable();
		}});
	} else {
		var stateReqOpts = $('state_required_options');
		if(stateReqOpts.style.display == 'none'){
			Effect.BlindDown(stateReqOpts, {duration:0.2});
		}
		$('fdc_zip_input').enable();
		$('fdc_city_input').enable();
		$('fdc_county_selector').enable();
	}
}

function resetCounties(elem){
	while((op = (elem.length - 1)) > 0){
		elem.remove(op);
	} 
}

function getCounties(){
	state = $F('fdc_state_selector');
	countyElem = $('fdc_county_selector');
	
	resetCounties(countyElem);
	
	if(state == '-1' || state == ''){
		countyElem.options[0] = new Option('Make Selection', '-1');
		jQuery(countyElem).attr('disabled', true);
		return;
	} else {
		countyElem.options[0] = new Option('Getting Counties...', '');
		countyElem.setAttribute('disabled', true);
	}
	
	var url = siteRoot + '/ajax/getCounties.xml';
	var parms = 'st=' + state;
	var ajax = new Ajax.Request(url,{ method:'get', parameters: parms, onComplete: handleCountyResponse});
}

function handleCountyResponse(req){
	countyXml = req.responseXML;
	countyList = countyXml.getElementsByTagName('county');
	var countyElem = $('fdc_county_selector');
	resetCounties(countyElem);
	countyElem.removeAttribute('disabled');
	
	countyElem.options[0] = new Option('Make Selection', '-1');
	for(var i=0; i < countyList.length; i++){
		fips = countyList[i].getAttribute('fips');
		county = countyList[i].firstChild.nodeValue;
		countyElem.options[i+1] = new Option(county, fips);
	}
}

function fdc_search_validate(formElem){
	var hasError = false;

	var countyStr = jQuery('#fdc_county_selector').val();
	var stateStr = jQuery('#fdc_state_selector').val();
	var cityStr = jQuery('#fdc_city_input').val();
	var zipStr = jQuery('#fdc_zip_input').val();
	
	var cityIn = jQuery('#fdc_city_input');
	var zipIn = jQuery('#fdc_zip_input')
	var defaultCity = cityIn.attr('defaultvalue');
	var defaultZip = zipIn.attr('defaultvalue');
	
	if(stateStr == '-1' || stateStr == ''){
		jQuery('#fdc_search_error').html('Please select a state.');
		jQuery('#fdc_search_error').slideDown("fast");
		hasError = true;	
	}
		
	if(cityStr == defaultCity){
		cityIn.val('');
	}
	if(zipStr == defaultZip){
		zipIn.val('');
	}
	
	if(countyStr == '000' || countyStr == '-1'){
		if((jQuery.trim(zipIn.val()) == '') && ( jQuery.trim(cityIn.val()) == '') ){
			jQuery('#fdc_search_error').html('Please enter a county, city or zipcode.');
			jQuery('#fdc_search_error').slideDown("fast");
			hasError = true;
		}	
	}
	
	if(hasError){
		if(jQuery.trim(cityIn.val()) == ''){
			cityIn.val(defaultCity);
		}
		if(jQuery.trim(zipIn.val()) == ''){
			zipIn.val(defaultZip);
		}
	}
	return !hasError;
}

/* registration capturing functions */
function fdc_get_details(e){
	if(Get_Cookie('leadTo') != ""){
		if(Get_Cookie('fdc_reg') == null){
			fdc_show_registration_form(e);
			e.stop();
		}
	} else {
		if(Get_Cookie('fdc_reg') == null){
			Set_Cookie('fdc_reg', "true", 30, '/');
			document.location.href = '/registration.html';
			e.stop();
		}
	}
}

function fdc_registration_cancel(){
	tb_remove();
	$('fdc_registration_div').hide();
	$('fdc_registration_error').hide();
}

function fdc_show_registration_form(e){
	var el = e.element();
	if(el.className != 'fdc_details_link'){ el = el.parentNode; }
	var link = el.href;
	$('caller_link_destination').value = link;
	tb_show("Register", "#TB_inline?height=220&width=320&inlineId=fdc_registration_div&modal=true", false);
	return false;
}

function fdc_reg_sell_submit(e){
	var regForm = $('reg_sell_form');
	if( !fdc_registration_validate(regForm)){
		e.stop();
		return false;
	}
	
	regForm.request({
		method: 'post',
		asynchronous: false,
		onSuccess: function(transport){
			var result = transport.responseText.evalJSON().result;
			if(result){
				Set_Cookie('fdc_reg', "true", 30, '/');
			}
		}
	});
	var cobrandSubdomain = $('cobrand_subdomain').value;
	var registrationPage = 'https://' + cobrandSubdomain + '.foreclosure.com/registration.html';
	regForm.action = registrationPage;
}

function fdc_registration_submit(e){
	var regForm = $('fdc_registration_form');
	if( !fdc_registration_validate(regForm)){
		e.stop();
		return false;
	}
	//$('fdc_registration_form').hide();
	regForm.request({
		method: 'post',
		asynchronous: false,
		onSuccess: function(transport){
			var result = transport.responseText.evalJSON().result;
			if(result){
				Set_Cookie('fdc_reg', "true", 30, '/');
			}
			fdc_registration_cancel();
		}
	});
	var cobrandSubdomain = $('cobrand_subdomain').value;
	if(window.afterLeadCapture && window.afterLeadCapture == 'details'){
		e.stop();
		window.location.href = $('caller_link_destination').value;
		return false;
	}
	
	var registrationPage = 'https://' + cobrandSubdomain + '.foreclosure.com/registration.html';
	regForm.action = registrationPage;
}

function fdc_registration_validate(formElem){
	var fname = formElem.firstName.value;
	var lname = formElem.lastName.value;
	var email = formElem.email.value;
	var phone = formElem.phone.value;
	
	var error = false;
	if(fname.strip() == ''){
		error = true;
		$(formElem.firstName).pulsate({pulses:5, duration:1.5});
	}
	if(lname.strip() == ''){
		error = true;
		$(formElem.lastName).pulsate({pulses:5, duration:1.5});
	}
	if(email.strip() == ''){
		error = true;
		$(formElem.email).pulsate({pulses:5, duration:1.5});
	}
	if(phone.strip() == ''){
		error = true;
		$(formElem.phone).pulsate({pulses:5, duration:1.5});
	}
	
	if(error){
		return false;
	}
	
	return true;
}

