$(function() {
	
	initForm('#search');
	initForm('#emailsignup');
	initForm('#whatdoyoudoform');
	initForm('#dynamicform');

});

function initForm(parentContainer) {
	if (typeof(parentContainer) == "undefined") parentContainer = '';
	if ($(parentContainer + ' form').length <= 0) return false;
	
	var form = $(parentContainer + ' form');
	var formName = form.attr('name').replace('dynamicForm_', '');
	var formFields = form.serializeArray();
	var defaultValues = new Object();
	var defaultFieldTypes = new Object();
	
	if (typeof(_gaq) != 'undefined' && formName != 'searchsite' && formName != 'emailsignup') {
		_gaq.push(['_trackPageview', '/dynamic_form/' + formName + '/open']);
	}
	
	for (var i in formFields) {
		var name = formFields[i]['name'];
		var formField = form.find("[name='"+name+"']");
		defaultValues[formFields[i]['name']] = formField.attr('title');
		defaultFieldTypes[formFields[i]['name']] = formField.attr('type');
		
		var formFieldWidth = formField.width() - parseInt(formField.css('padding-left')) - parseInt(formField.css('border-left-width')) - parseInt(formField.css('padding-right')) - parseInt(formField.css('border-right-width'));
		
		if (formField.val() == '') {
			formField.addClass('form_title').val(defaultValues[formFields[i]['name']]);
			if (defaultFieldTypes[formFields[i]['name']] == 'password') {
				formField.clone().attr('type', 'text').insertBefore(formField);
				formField.remove();
				formField = form.find("[name='"+name+"']");
			}
		}
		
		formField.focus(function() {
		
			var defaultValue = defaultValues[$(this).attr('name')];
			var defaultFieldType = defaultFieldTypes[$(this).attr('name')];
			
			if ($(this).val()==defaultValue) {
			
				$(this).removeClass('form_title').addClass('form_titlefocus');
				
				$(this).keydown(function() {
					$(this).val('').removeClass('form_titlefocus').unbind('keydown');
					
					if (defaultFieldType == 'password') {
						$(this).clone(true).attr('type', 'password').insertBefore($(this)).focus();
						$(this).remove();
					}
				});
				
			}
			
		});
		
		formField.blur(function() {
		
			var defaultValue = defaultValues[$(this).attr('name')];
			var defaultFieldType = defaultFieldTypes[$(this).attr('name')];
			
			$(this).removeClass('form_titlefocus');
			
			if ($(this).val() == '' || $(this).val() == defaultValue) {
				$(this).addClass('form_title').val(defaultValue);
					
					if (defaultFieldType == 'password') {
						$(this).clone(true).attr('type', 'text').insertBefore($(this));
						$(this).remove();
					}
			}
			
		});
	}
		
	form.submit(function() {
	
		var formFields = form.serializeArray();
		var formField;
		
		for (var i in formFields) {
			name = formFields[i]['name'];
			value = formFields[i]['value'];
			defaultValue = defaultValues[formFields[i]['name']];
			formField = form.find("[name='"+name+"']");
			
			if (value == defaultValue && formField.attr('type') != 'hidden') {
				formField.val('');
			}
		}
		
		if ($(this).hasClass('dynamicform')) {
			submitDynamicForm($(this));
		}
		
	});
}

function submitDynamicForm(form) {
	var formName = form.attr('name').replace('dynamicForm_', '');
	var action = form.find('input[name=action]').val();
	
	form.find('#field_submit input').attr('disabled', 'disabled');
	form.find('label .error').html('').remove();
	
	var formData = form.serialize();
	
	$.ajax({
		type: "POST",
		url: "controller.php",
		data: formData,
		success: function(response) {
			if (response) {
				response = eval("(" + response + ")");
				if (response['success']) {
					form.siblings('#formthankyou').trigger('click');
					form.parent().hide();
					if (typeof(_gaq) != 'undefined') _gaq.push(['_trackPageview', '/dynamic_form/' + formName + '/thankyou']);
				} else {
					for (var key in response['error']) {
						form.siblings('#dynamicform_error').show();
						form.find('#field_' + key).prepend('<span class="error"></span>');
						form.find('#field_' + key + ' .error').html(response['error'][key]).show();
						tabThroughForm(form);
					}
					if (typeof(_gaq) != 'undefined') _gaq.push(['_trackPageview', '/dynamic_form/' + formName + '/error']);
				}
				
				form.find('#field_submit input').removeAttr('disabled');
			}
		}
	});
}

function submitForm(parentContainer) {
	if (typeof(parentContainer) == "undefined") parentContainer = '';
	
	var form = $(parentContainer + ' form');
	var formThankYou = $(parentContainer + ' #form_thankyou');
	var action = form.find('input[name=action]').val();
	
	form.find('#field_submit input').attr('disabled', 'disabled');
	form.find('label .error').html('').remove();
	
	var formData = form.serialize();
	
	$.ajax({
		type: "POST",
		url: "controller.php",
		data: formData,
		success: function(response) {
			if (response) {
				response = eval("(" + response + ")");
				if (response['success']) {
					form.hide();
					formThankYou.show();
				} else {
					for (var key in response['error']) {
						form.find('#field_' + key).remove('.error');
						form.find('#field_' + key).prepend('<span class="error"></span>');
						form.find('#field_' + key + ' .error').html(response['error'][key]).show();
						tabThroughForm(form);
					}
				}
				
				form.find('#field_submit input').removeAttr('disabled');
			}
		}
	});
}

function loginDealerUser() {
	$('#popover_dealerlogin form #field_submit input').attr('disabled', 'disabled');
	$('#popover_dealerlogin form label .error').html('').remove();
	
	var formData = $('#popover_dealerlogin form').serialize();
	
	$.ajax({
		type: "POST",
		url: "controller.php",
		data: formData,
		success: function(response) {
			if (response) {
				response = eval("(" + response + ")");
				if (typeof(response['error']) == 'undefined') {
					window.location.href = basehref + 'dealers/dealer_resources';
				} else {
					for (var key in response['error']) {
						$('#popover_dealerlogin form #field_' + key).prepend('<span class="error"></span>');
						$('#popover_dealerlogin form #field_' + key + ' .error').html(response['error'][key]).show();
					}
					
					$('#popover_dealerlogin form #field_submit input').removeAttr('disabled');
				}
			}
		}
	});
}

function submitYourStory() {
	$('#whatdoyoudoform form #field_submit input').attr('disabled', 'disabled');
	$('#whatdoyoudoform form label .error').html('').remove();
	
	var formData = $('#whatdoyoudoform form').serialize();
	
	$.ajax({
		type: "POST",
		url: "controller.php",
		data: formData,
		success: function(response) {
			if (response) {
				response = eval("(" + response + ")");
				
				$('#whatdoyoudoform form #field_submit input').removeAttr('disabled');
				initForm();
				
				if (typeof(response['error']) == 'undefined') {
					// window.location.href = basehref + 'dealers/dealer_resources';
				} else {
					for (var key in response['error']) {
						$('#whatdoyoudoform form #field_' + key).prepend('<span class="error"></span>');
						$('#whatdoyoudoform form #field_' + key + ' .error').html(response['error'][key]).show();
					}
				}
				
			}
		}
	});
}

function tabThroughForm(form) {
	var formFields = form.serializeArray();
	
	for (var i in formFields) {
		var name;
		
		name = formFields[i]['name'];
		form.find('[name="'+name+'"]').blur();
	}
}
