var closeCatalogFlag=true;
var catalogCountriesLoaded=false;
var updatingCatalogStates=false;
var updateCatalogStatesRequest=null;
var catalogFormValidation=null;
var stopAutoCatalogSliderClose=false;
var loadedStatesCountry=null;
var catalogOpenedBy=null;
function openCatalogSlider(openedBy,alignToScreen){
	$('#catalog_slider, #catalog_slider_form_container').show();
	$('#catalog_slider_message').html('');
	$('#catalog_slider_message').hide();
	var offset=$('.catalog_slider_marker').offset();
	if(alignToScreen){
		offset.top=$(window).scrollTop();
	}
	$('#catalog_slider').css({
		top:offset.top,
		left:offset.left
	});
	setTimeout(function(){$(document.body).click(tryCloseCatalogSlider);},50);
	$('#catalog_slider select').css({width:132});
	loadCatalogCountries();
	if(!loadedStatesCountry)
		updateCatalogStates('United States');
	updateCatalogSliderRules();
	stopAutoCatalogSliderClose_set();
	
	catalogOpenedBy=openedBy || 'catalog_header';
	_gaq.push(['_trackEvent','CatalogSignUp','start',catalogOpenedBy]);
}
function stopAutoCatalogSliderClose_set(){
	$('#catalog_slider select').focus(stopAutoCatalogSliderClose_start);
	$('#catalog_slider select').blur(stopAutoCatalogSliderClose_stop);
}
function stopAutoCatalogSliderClose_stop(){
	stopAutoCatalogSliderClose=false;
}
function stopAutoCatalogSliderClose_start(){
	stopAutoCatalogSliderClose=true;
}
function loadCatalogCountries(){
	if(catalogCountriesLoaded)
		return;
	catalogCountriesLoaded=true;
	$.ajax({
		url:'/source/template/MasterTemplates/customerPages/getCountries.cfm',
		success:function(data){
			$('#Country_catalogreq').html('');
			$('#Country_catalogreq').append(data);
		}
	})
}
function updateCatalogStates(country){
	if(country==loadedStatesCountry)
		return;
	if(updatingCatalogStates)
		cancelUpdatingCatalogStates();
	updatingCatalogStates=true;
	loadedStatesCountry=country;
	$('#State_catalogreq_div').html('<input disabled="disabled" value="loading..."/>');
	updateCatalogStatesRequest=$.ajax({
		url:'/source/template/MasterTemplates/customerPages/getStates.cfm',
		data:{country:country},
		success:function(data){
			$('#State_catalogreq_div').html(data);
			updatingCatalogStates=false;
			updateCatalogStatesRequest=null;
			stopAutoCatalogSliderClose_set();
			$('#catalog_slider select').css({width:132});
		}
	});
}
function cancelUpdatingCatalogStates(){
	if(updateCatalogStatesRequest)
		updateCatalogStatesRequest.abort();
	updatingCatalogStates=false;
}
function closeCatalogSlider(){
	$('#catalog_slider').hide();
	$(document.body).unbind('click',tryCloseCatalogSlider);
	if($('.catalog_complete_success').length){
		catalogFormValidation.resetForm();
		$('#catalogform_slider_form')[0].reset();
	}
}
function catalogSliderHandler(form){
	form=$(form);
	$.ajax({
		method:'post',
		url:form.attr('action'),
		data:form.serialize(),
		success:function(data){
			$('#catalog_slider_message').html(data);
			$('#catalog_slider_message').show();
			$('#catalog_slider_form_container').hide();
			if($('.catalog_complete_success').length)
				_gaq.push(['_trackEvent','CatalogSignUp','complete',catalogOpenedBy]);
		}
	});
}
function tryCloseCatalogSlider(e){
	var slider=$('#catalog_slider_container');
	var offset=slider.offset();
	if(	!stopAutoCatalogSliderClose &&
		!(e.pageX>=offset.left && e.pageX<=offset.left+slider[0].offsetWidth &&
		e.pageY>=offset.top && e.pageY<=offset.top+slider[0].offsetHeight))
		closeCatalogSlider();
	
}
function updateCatalogSliderRules(){
	if($('#optIn_catalogreq')[0].checked){
		$('#Email_Addr_catalogreq').rules('add',{required:true});
		$('.email_req').show();
	}else{
		$('#Email_Addr_catalogreq').rules('remove','required');
		$('.email_req').hide();
		
	}
}
$(window).ready(function(){
	catalogFormValidation=$("#catalogform_slider_form").validate({
		rules:{	
			FirstName_catalogreq: "required",
			LastName_catalogreq: "required",
			Address_catalogreq: "required",
			City_catalogreq: "required",
			State_catalogreq: "required",
			Zip_catalogreq: "required",
			Country_catalogreq: "required",
			catalogs_catalogreq: "required",
			Email_Confirm_catalogreq: {
			equalTo: "#Email_Addr_catalogreq"
			} 
		},
		messages:{
			catalogs_catalogreq:'Please select which catalogs you would like to receive',
			FirstName_catalogreq: "First Name",
			LastName_catalogreq: "Last Name",
			Address_catalogreq: "Address",
			City_catalogreq: "City",
			State_catalogreq: "State",
			Zip_catalogreq: "Zip",
			Country_catalogreq: "Country",
			Email_Addr_catalogreq:'Email Address',
			Email_Confirm_catalogreq:{
				equalTo:'Confirmation Email Address does not match'
			}
			
		},
		errorLabelContainer:'#catalogErrorContainer',
		errorContainer:'#catalogErrorMessage',
		wrapper:'li',
		submitHandler:catalogSliderHandler
	});
	catalogFormValidation.resetForm();
	$('#catalogform_slider_form')[0].reset();
});
