
/* ===========================================================================
// CLASS/COMPONENT:
// DS2.Includes.scripts.carscout.js
//
// DESCRIPTION:
// Scripts for the CarScout_V2 form element
//
// AUTHOR:
// Stephen G 'Cutter' Blades (SGB), sbladesATdealerskinsCOMcom
//
// COPYRIGHT:
// Copyright (c) 2007 Dealerskins, Inc. All Rights Reserved.
//
// REVISION HISTORY:
//
// ******************************************************************************
// User: SGB  Date: [05.01.2007]
// Initial Creation
// ******************************************************************************
=========================================================================== */

var myData;

$.AjaxCFCHelper.setSerialization('json'); // json, wddx

$(document).ready( function() {
	
	var formPath = '';
	
	$('#CarScoutLnk').click( function() {
		formPath = '.pp_inline ';
	});
	
	// Create string dataset of current options in the Make select
	var makeOptions = $('select#Make','form#CSForm').copyOptionsToJSON();
	// Creates a 'var' called 'myOptions' that is the JSON dataset to pass later
	eval(makeOptions);
				
	// on change event handler for the 'make' select
	$('select#Make','form#CSForm').bind('change', function(){
		var makeVal;
		$.each($('.formTable select#Make'), function(){
			if ($(this).val() !== undefined){
				makeVal = $(this).val();
			}
		});
		
		if(makeVal.length){
			makeArr= makeVal.split('|');
			//do ajax call
			$.AjaxCFC({url: "/AjaxService/CarScoutV2/CDModelsRemoteProxy.cfc", method: "GetModelsForMake", data: makeArr[0], success: showModelResults});
		} else {
			alert('You must select a make');
			var myOptions = {'':'- model -'};
			$('#Model').removeOption(/./);
			$('#Model').addOption(myOptions,false);
			$("#Model").attr({ disabled:true });
		}
	});
	$('select#Make','form#CSForm').live('change', function(){
		var makeVal;
		$.each($('.formTable select#Make'), function(){
			if ($(this).val() !== undefined){
				makeVal = $(this).val();
			}
		});
		
		if(makeVal.length){
			makeArr= makeVal.split('|');
			//do ajax call
			$.AjaxCFC({url: "/AjaxService/CarScoutV2/CDModelsRemoteProxy.cfc", method: "GetModelsForMake", data: makeArr[0], success: showModelResults});
		} else {
			alert('You must select a make');
			var myOptions = {'':'- model -'};
			$('#Model').removeOption(/./);
			$('#Model').addOption(myOptions,false);
			$("#Model").attr({ disabled:true });
		}

	});
	
	$('select#Model','form#CSForm').change(function() {
		var modelVal = $('select#Model','form#CSForm').val();
		
		if(modelVal.length){
			$('select#YearFrom', 'form#CSForm').focus();
		} else {
			alert('You must select a model');
		}
	});
	
	$('select#YearFrom').change(function() {
		removeOptions();
	});
	
	$('select#To_Year').change(function() {
		removeOptions();
	});
	
	$('#Day_Phone').mask("(999) 999-9999",{placeholder:" "});
			
	$(formPath + '#CSForm').live('submit', function(){
	
		var errContainer = $(formPath + '#CSForm div.error');
		var selField = $(formPath + 'select#Make', '#CSForm');
	
		var v = $(formPath + '#CSForm').validate({
			//debug: true,
			errorContainer: errContainer,
			errorLabelContainer: $("ol",errContainer),
			rules: {
				First_Name: "required",
				Last_Name: "required",
				EMail: {
					required: true,
					email: true
				},
				Make: "required",
				Model: "required"
			},
			messages: {
				First_Name: "Please enter your First Name",
				Last_Name: "Please enter your Last Name",
				EMail: {
					required: "You must enter an email address.",
					email: "Please enter a valid email address"
				},
				Make: "Please select a make",
				Model: "Please select a model"
			},
			wrapper: 'li',
			invalidHandler:function(frm,valdtr){
				// if validation fails then recreate the select with the original dataset
				recreateMakeOption(selField,myOptions);
			}
		});
				
		rewriteMakeOption(selField);
		if(v.form()){
			if (formPath !== ''){
				$('.pp_inline').css('display', 'none');
				$('#pp_full_res').append('<div class="message saving"><span>Saving...</span></div>');
				$.ajax({
					url: $(this).attr('action'),
					type: 'POST',
					data: {
						FormsID: $(formPath + '#CSForm input[name=FormsID]').val(),
						server_name: $(formPath + '#CSForm input[name=server_name]').val(),
						fkSites: $(formPath + '#CSForm input[name=fkSites]').val(),
						ReqList: $(formPath + '#CSForm input[name=ReqList]').val(),
						First_Name: $(formPath + '#CSForm input[name=First_Name]').val(),
						Last_Name: $(formPath + '#CSForm input[name=Last_Name]').val(),
						EMail: $(formPath + '#CSForm input[name=EMail]').val(),
						Day_Phone: $(formPath + '#CSForm input[name=Day_Phone]').val(),
						Make: $(formPath + '#CSForm select[name=Make]').val().split('|')[1],
						Model: $(formPath + '#CSForm select[name=Model]').val(),
						YearFrom: $(formPath + '#CSForm select[name=YearFrom]').val(),
						To_Year: $(formPath + '#CSForm select[name=To_Year]').val(),
						price_from: $(formPath + '#CSForm select[name=price_from]').val(),
						price_to: $(formPath + '#CSForm select[name=price_to]').val(),
						Additional_Comments: $(formPath + '#CSForm textarea[name=Additional_Comments]').val(),
						similar: $(formPath + '#CSForm input[name=similar]').val()
					},
					success: function(data){
						if (data.indexOf('dforms/dforms_ThankYou.cfm') !== -1){
							$('#pp_full_res').html('<div class="success message">Thank you! Your Car Scout form has been submitted!</div>');
						}
						else {
							$('.saving').remove();
							$('.pp_inline').css('display', 'block');
							$('#pp_full_res #CSForm').prepend('<div class="err">' + data + '</div>');
						}
					},
					failure: function(data){
						$('.saving').remove();
						$('.pp_inline').css('display', 'block');
						$('#pp_full_res #CSForm').prepend('<div class="err">' + data + '</div>');
					}
				});
				return false;
			}
			else {
				return true;
			}			
		}
		
		$(formPath + '#Additional_Comments').css('height', '100px');
		return false;	
		
	});
});

function rewriteMakeOption(selFld){
	var fldVal = $('option:selected',selFld).val();
	if(fldVal){
		var fldValArr = fldVal.split('|');
		myVal = fldValArr[1];
		eval("var newOptions = {'" + myVal + "' : '" + myVal + "'}");
		selFld.removeOption(/./);
		selFld.addOption(newOptions,true);
	}
}

function recreateMakeOption(selFld,opt){
	selFld.removeOption(/./);
	selFld.addOption(opt,false);
	
	$('#Model').removeOption(/./);
	$('#Model').addOption("","-model-");
	$("#Model").attr({ disabled:true });
}

function showModelResults(data){
	if (data.length){
		eval("var myOptions = " + data);
		myData = myOptions;
		$('.formTable #Model').each(function(){
			$(this).attr({ disabled:false });
			$(this).removeOption(/./);
			$(this).addOption(myOptions, false);
			$('select#Model','form#CSForm').focus();
		});
	}
	removeOptions();
}

function removeOptions(){
	if($('#YearFrom').val() > 2006 || $('#To_Year').val() > 2006 && $('#Make').val() == '47|HONDA'){
		//remove Insight from Model dropdown
		$("#Model").removeOption("Insight");
	}
}
