jQuery.noConflict();
jQuery(document).ready(fdc_init);

function fdc_init(){
	advanced_options_init();
	registration_form_init();
	toggle_zipcode_field();
}
function advanced_options_init(){
	jQuery('#fdc_more_options').click(toggle_advanced_options);
	jQuery('#fdc_state_selector').change(toggle_zipcode_field);
}

function registration_form_init(){
	jQuery('.fdc_details_link').click(fdc_get_details);
	jQuery('#fdc_reg_reset').click(fdc_registration_cancel);
	jQuery('#fdc_reg_submit').click(fdc_registration_submit);
}

function toggle_advanced_options(){
	jQuery('#fdc_advanced_options')
		.slideToggle(200, function(){
			jQuery('#fdc_more_options').toggleClass('expanded');
		});
}

function toggle_zipcode_field(){
	if(jQuery('#fdc_state_selector').val() == '-1'){
		jQuery('#state_required_options').slideUp(200, function(){
			jQuery('#fdc_zip_input').attr('disabled', true);
			jQuery('#fdc_city_input').attr('disabled', true);
			jQuery('#fdc_county_selector').attr('disabled', true);
		});
	} else {
		jQuery('#state_required_options').slideDown(200, function(){
			jQuery('#fdc_zip_input').attr('disabled', false);
			jQuery('#fdc_city_input').attr('disabled', false);
			jQuery('#fdc_county_selector').attr('disabled', false);
		});
	}
}

function resetCounties(elem){
	while((op = (elem.length - 1)) > 0){
		elem.remove(op);
	} 
}

function getCounties(baseurl){
	state = $F('fdc_state_selector');
	countyElem = $('fdc_county_selector');
	
	resetCounties(countyElem);
	
	if(state == '-1'){
		countyElem.options[0] = new Option('', '');
		return;
	} else {
		countyElem.options[0] = new Option('Getting Counties...', '');
		countyElem.setAttribute('disabled', true);
	}
	
	var url = baseurl + '/wp-content/plugins/foreclosure/ajax/get_counties.php';
	var parms = 'state=' + 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('Select a County', '000');
	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 countyStr = $F('fdc_county_selector');
	var stateStr = $F('fdc_state_selector');
	var cityStr = $F('fdc_city_input');
	var zipStr = $F('fdc_zip_input');
	
	var hasError = false;
	if(countyStr == '000'){
		if((zipStr.strip() == '') && ( cityStr.strip() == '') ){
			$('fdc_search_error').innerHTML = 'Please enter a county, city or zipcode.';
			Effect.Appear($('fdc_search_error'));
			hasError = true;
		}	
	}
	if(stateStr == '-1'){
		$('fdc_search_error').innerHTML = 'Please select a state.';
		Effect.Appear($('fdc_search_error'));
		hasError = true;	
	}
	return !hasError;
}

/* registration capturing functions */
function fdc_get_details(e){
	var element = jQuery(this);//e.element();
			
	if(Get_Cookie('fdc_reg') == null){
		fdc_show_registration_form(element);
		e.preventDefault();
	} else {
		// submit link href to details link tracker
		var url = siteurl + '/wp-content/plugins/foreclosure/ajax/track_details_link.php';
		var linkHref = element.attr('href');
		
		var parms = 'dest=' + escape(linkHref);
		var ajax = new Ajax.Request(url,{ method:'get', parameters: parms, asynchronous: false, onComplete: function(transport){
			;
		}});
	}
}

function fdc_registration_cancel(){
	tb_remove();
	$('fdc_registration_div').hide();
	$('fdc_registration_error').hide();
}

function fdc_show_registration_form(element){
	$('caller_link_destination').value = element.attr('href');
	tb_show("Register", "#TB_inline?height=200&width=300&inlineId=fdc_registration_div&modal=true", false);
	return false;
}

function fdc_registration_submit(e){
	var regForm =$('fdc_registration_form');
	if( !fdc_registration_validate(regForm)){
		e.preventDefault();
		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, '/');
			}
		}
	});
	var cobrandSubdomain = $('cobrand_subdomain').value;
	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;
}

function fdcPreviewToggle(previewId, mapSrc)
{
	if (document.getElementById("preview_"+previewId).style.display == 'none'){	
		//document.getElementById("preview_"+previewId).style.display = 'block';
		jQuery("#preview_" + previewId).slideDown(200);
		
		if(mapSrc == 'google'){
			var preview_map_img = jQuery("#map_"+previewId);
			// load the google map image if its there
			if(preview_map_img.attr('src') == ''){
				var newsrc = preview_map_img.attr('tmpsrc');
				preview_map_img.attr('src', newsrc);
			}
		} else {
			if(document.getElementById('fdc_ve_map_'+previewId)){
				var mapEl = jQuery('#fdc_ve_map_' +previewId);
				var lat = mapEl.attr('lat');
				var lng = mapEl.attr('lng');
				var LA = new VELatLong(lat, lng);
				var map = new VEMap('fdc_ve_map_' +previewId);
							
				map.LoadMap(LA, 13, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);
				map.HideDashboard();
				map.HideScalebar();
			}			
		}
		
		
		document.getElementById("arrow_"+previewId).className = 'details_arrow_down';		
	} else {
		//document.getElementById("preview_"+previewId).style.display = 'none';
		jQuery("#preview_" + previewId).slideUp(200);
		document.getElementById("arrow_"+previewId).className = 'details_arrow_right';
	}
}
