var _tag4 = new WebTrends('dcs86av54100008qp7mnbpsjz_3x4h', 'statse.webtrendslive.com');
_tag4.SetFormDCSID(CONFIG.WT.wt_dcsid_form); /*This is defined in config.js*/	

var URL_SURVEY_INLINE_VALIDATION = '/service/forms/validators';
var URL_SURVEY_SUBMIT_VALIDATION = '/service/forms/data.json';

var surveyFieldsInfo =  new Array();
var surveyFormInfo =  new Array();

var survey = {
	specialOffers: function(){
		if(($.cookie("surveySpecialOffersSession") != '1') || ($.cookie("surveySpecialOffersEnd") != '1')){		
			$.get('/service/offers/offer-group-id', function(specialOffersGroupId) {
				var surveySpecialOffersGroupStatus = $.cookie('surveySpecialOffers'+specialOffersGroupId); 
				if (surveySpecialOffersGroupStatus == null){//First visit
					$.cookie('surveySpecialOffers'+specialOffersGroupId, '1', {expires: 365, path: '/'});
					$.cookie('surveySpecialOffersSession', '1');
					
					var endDate = new Date();
					endDate.setTime(endDate.getTime() + (30 * 60 * 1000));
 					$.cookie("surveySpecialOffersEnd", "1", {expires: endDate});
 					$.cookie("surveySpecialOffersSession", "1");
				} else if (surveySpecialOffersGroupStatus == '1'){//Second visit
					$.cookie('surveySpecialOffers'+specialOffersGroupId, '2', {expires: 365, path: '/'}); 
					survey.showSurveyForm('/service/forms/specialOffersSurvey.html');
				}
			});
		}
	},
	showSurveyForm: function(sFormUrl){
		$.get(sFormUrl, function(sformHtml) {
			createOverlay({customClass: 'survey-form'});
			showOverlay(deleteOverlay, survey.surveyFormContent, {'sformHtml': sformHtml});
		});		
	},
	surveyFormContent: function(options){
		$('#overlay.survey-form .content').html(options['sformHtml']);
		survey.surveyFormActions();
		survey.mainValidation();
	},
	surveyFormActions: function(){
		/*$('#SpecialOffersSurvey-Q1').find('select').change(function(){
			var sSpecialOffersSurveyQ1 = $(this).val();
			switch(sSpecialOffersSurveyQ1){
				case 'Toyota Yaris':
					$('#SpecialOffersSurvey-Q2').children('div').hide();
					$('#SpecialOffersSurvey-Q2').children('div').find('select').removeClass('required');
					
					$('#SpecialOffersSurvey-Q2-YARIS').show();
					$('#SpecialOffersSurvey-Q2-YARIS').find('select').addClass('required');
					
					$('#SpecialOffersSurvey-Q2').show();
				break;
				case 'Toyota Corolla':
					$('#SpecialOffersSurvey-Q2').children('div').hide();
					$('#SpecialOffersSurvey-Q2').children('div').find('select').removeClass('required');
					
					$('#SpecialOffersSurvey-Q2-COROLLA').show();
					$('#SpecialOffersSurvey-Q2-COROLLA').find('select').addClass('required');
					
					$('#SpecialOffersSurvey-Q2').show();
				break;
				case 'Toyota Hybrid Camry':
					$('#SpecialOffersSurvey-Q2').children('div').hide();
					$('#SpecialOffersSurvey-Q2').children('div').find('select').removeClass('required');
					
					$('#SpecialOffersSurvey-Q2-HYBRID_CAMRY').show();
					$('#SpecialOffersSurvey-Q2-HYBRID_CAMRY').find('select').addClass('required');
					
					$('#SpecialOffersSurvey-Q2').show();
				break;
				default:
					$('#SpecialOffersSurvey-Q2').hide();
					$('#SpecialOffersSurvey-Q2').children('div').find('select').removeClass('required');
					
					$('#SpecialOffersSurvey-Q3').hide();
					$('#SpecialOffersSurvey-Q3').find('select').removeClass('required');
					
					$('#SpecialOffersSurvey-Q4').hide();
				break;
			}
		});
		
		$('#SpecialOffersSurvey-Q2').find('select').change(function(){
			var sSpecialOffersSurveyQ2 = $(this).val();
			if(sSpecialOffersSurveyQ2 == 'Yes'){
				$('#SpecialOffersSurvey-Q3').show();
				$('#SpecialOffersSurvey-Q3').find('select').addClass('required');
			}else{
				$('#SpecialOffersSurvey-Q3').hide();
				$('#SpecialOffersSurvey-Q3').find('select').removeClass('required');
			}
		});
		
		$('#SpecialOffersSurvey-Q3').find('select').change(function(){
			var sSpecialOffersSurveyQ3 = $(this).val();
			if(sSpecialOffersSurveyQ3 == 'Somewhat dissatisfied' || sSpecialOffersSurveyQ3 == 'Very dissatisfied'){
				$('#SpecialOffersSurvey-Q4').show();
			}else{
				$('#SpecialOffersSurvey-Q4').hide();
			}
		});*/
		
		$('#SpecialOffersSurvey-Q5').find('select').change(function(){
			var sSpecialOffersSurveyQ5 = $(this).val();
			if(sSpecialOffersSurveyQ5 == 'Somewhat dissatisfied' || sSpecialOffersSurveyQ5 == 'Very dissatisfied'){
				$('#SpecialOffersSurvey-Q6').show();
			}else{
				$('#SpecialOffersSurvey-Q6').hide();
			}
		});
		
		$('#SpecialOffersSurvey-Q7').find('select').change(function(){
			var sSpecialOffersSurveyQ7 = $(this).val();
			if(sSpecialOffersSurveyQ7 == 'Somewhat unlikely' || sSpecialOffersSurveyQ7 == 'Very unlikely'){
				$('#SpecialOffersSurvey-Q8').show();
			}else{
				$('#SpecialOffersSurvey-Q8').hide();
			}
		});
		
		/* Close button tracking */
		$('#overlay.survey-form .close').click(function() {
			tracking.event.activate('trackingevent', {EventClass:"SurveyForm", Action:"CloseButtonClick"});
		});
		
	},
	mainValidation: function(){
		var oForm = $('#ComponentsForm');
		if(oForm.length != 0){		
			surveyFormInfo['form-id'] = $('#FormID').val();
			if($('#FormTracking').val() == 'true'){
				surveyFormInfo['form-tracking'] = true;
			}else{
				surveyFormInfo['form-tracking'] = false;
			}	
			
			if($('#FormFieldTracking').val() == 'true'){
				surveyFormInfo['form-field-tracking'] = true;
			}else{
				surveyFormInfo['form-field-tracking'] = false;
			}
							
			survey.trackFormLoad();
	
			$('.tracking').focus(function() {
				survey.trackFormStart();
			});
					
			oForm.validate({
			    onsubmit: true,
			    onfocusout: false,
			    onkeyup: false,
			    onclick: false,
				focusInvalid: false,
				focusCleanup: false,		
				errorElement: "div",
				errorClass: "required-message",		
				
				highlight: function(element, errorClass){
					survey.validationHighlight(element, errorClass);
		     	},
				invalidHandler: function(form, validator) {
					survey.validationInvalidHandler(oForm);
			    },
				submitHandler: function(form) {
					survey.validationSubmitHandler(oForm);
				}
			});	
			
			/**	Inline validation and tracking*/
			$('.inline').blur(function(){
				survey.inlineValidator($(this));
			});
		}
	},
	/** Form load tracking*/
	trackFormLoad: function(){
		if (surveyFormInfo['form-view'] == null || surveyFormInfo['form-view'] == false) {
			surveyFormInfo['form-view'] = true;
			if (surveyFormInfo['form-tracking'] == true) {
				_tag4.TrackFormLoad(surveyFormInfo['form-id']);
				switch (surveyFormInfo['form-id']) {
					case 'specialOffersSurvey':
						_gaq.push(['_trackPageview', '/virtual/special-offers-survey/start']);
						tracking.event.activate('trackingevent', {EventClass:"SurveyForm", Action:"Start"});
					break;
				}
			}
		}
	},			
	/**	Form start tracking*/
	trackFormStart: function(){
		if(surveyFormInfo['form-start'] == null){
			surveyFormInfo['form-start'] = true;
			/** Webtrends Form Starts request */	
			if(surveyFormInfo['form-tracking'] == true){			
				_tag4.TrackFormStart(surveyFormInfo['form-id']);
			}
		}		
	},	
	/**	Form error tracking*/
	trackFormError: function(){
		if(surveyFormInfo['form-error'] == null){
			surveyFormInfo['form-error'] = true;
			/** Webtrends Form Error request */	
			if(surveyFormInfo['form-tracking'] == true){	
				_tag4.TrackFormError(surveyFormInfo['form-id']);	
			}		
		}
	},
	/**	Form submited and Form corrected tracking*/	
	trackFormSubmit: function(){
		if(surveyFormInfo['form-submitted'] == null){
			surveyFormInfo['form-submitted'] = true;
			/** Webtrends Form Submission request */	
			if(surveyFormInfo['form-tracking'] == true){	
				 _tag4.TrackFormSubmit(surveyFormInfo['form-id']);
				tracking.event.activate('trackingevent', {EventClass:"SurveyForm", Action:"Submit"});
				 
				 if (surveyFormInfo['form-corrected'] == null && surveyFormInfo['form-error'] == true) {
					surveyFormInfo['form-corrected'] = true;
					/** Webtrends Form Correction request */		
					 _tag4.TrackFormCorrection(surveyFormInfo['form-id']);	 	
				 } 
			}	
		}	
	},
	/**	Field error tracking*/
	trackFieldError: function(fieldName){	
		survey.createField(fieldName);
		if(surveyFieldsInfo[fieldName]['error'] == false){
			surveyFieldsInfo[fieldName]['error'] = true;
			if((surveyFormInfo['form-tracking'] == true) && (surveyFormInfo['form-field-tracking'] == true)){	
				_tag4.TrackFormField(surveyFormInfo['form-id'],fieldName,"Error");
			}					 				
		}
		survey.trackFormError();	
	},		
	/**	Field complete tracking*/		
	trackFieldComplete: function(fieldName){
		survey.createField(fieldName);
		if(surveyFieldsInfo[fieldName]['complete'] == false){
			surveyFieldsInfo[fieldName]['complete'] = true;
			if((surveyFormInfo['form-tracking'] == true) && (surveyFormInfo['form-field-tracking'] == true)){		
				_tag4.TrackFormField(surveyFormInfo['form-id'],fieldName,"Complete");
			}			
		}
	},	
	/**	Creates field element in a field array*/	
	createField: function(fieldName){
		if(surveyFieldsInfo[fieldName] == null){
			surveyFieldsInfo[fieldName] = [];
			surveyFieldsInfo[fieldName]['lastvalue'] = '';
			surveyFieldsInfo[fieldName]['error'] = false;
			surveyFieldsInfo[fieldName]['complete'] = false;					
		}		
	},		
	validationHighlight: function(element, errorClass){
		$(element).parents('.forms-main').children('div.server-message').hide();
		if($(element).hasClass('tracking')){
			if(($(element).attr('rel') != '') && ($(element).attr('rel') != null)){
				survey.trackFieldError($(element).attr('rel'));
			}	
		}
	},		
	validationInvalidHandler: function(oForm){
		oForm.children('.form-message').show();
		$.scrollTo(oForm.children('.form-message'));
	},				
	validationSubmitHandler: function(oForm){
		if($('div.server-message').filter(':visible').length){
			oForm.children('.form-message').show();
			$('div.server-message').filter(':visible:first').focus();
			
            $('.tracking').removeAttr("disabled");
            $('#submit').removeAttr("disabled");
			
			return false;
		}
		else{
			oForm.children('.form-message').hide();
			$('div.server-message').hide();
			survey.submitForm(oForm);			
		}
	},	
	submitForm: function(oForm){
		oForm.ajaxSubmit({
			url: URL_SURVEY_SUBMIT_VALIDATION,
			type: 'POST',
			dataType: 'json',
			beforeSubmit: function() { 
				$('.tracking').attr("disabled","disabled");
				$('#submit').attr("disabled","disabled");
			},
	        error: function (XMLHttpRequest, textStatus, errorThrown) {
				oForm.children('.form-server-message').show();
				$('.tracking').removeAttr("disabled");
				$('#submit').removeAttr("disabled");
	        },
	        success: function (data, textStatus) {
	          if(data.submitvalidation.valid == false) {
				oForm.children('.form-message').show();
				var i = 0;
				while(data.submitvalidation.fieldErrors[i] != null) {
					oField = $('[name="'+data.submitvalidation.fieldErrors[i].name+'"]');							
					oField.parents('.forms-main').children('div.server-message').html(data.submitvalidation.fieldErrors[i].errormessage).show();
					if((oField.attr('rel') != '') && (oField.attr('rel') != null)){
						survey.trackFieldError(oField.attr('rel'));
					}					
					i++;		
				};

				$('.tracking').removeAttr("disabled");
				$('#submit').removeAttr("disabled");
	          }
	          else {
			  	survey.trackFormSubmit();
				removeOverlay();			
	          }
	        }
		});	
	},			
	inlineValidator: function(oField){
		var oFieldMain = oField.parents('.forms-main');
		var fieldName = oField.attr('name');
		var fieldRel = oField.attr('rel');
		var fieldValue = oField.val();
		survey.createField(fieldRel);
		
		if(fieldValue != null && fieldValue != '0' && fieldValue != '' && fieldValue != surveyFieldsInfo[fieldRel]['lastvalue']){
			oFieldMain.children('div.required-message').hide();
			
			if(oField.hasClass('validation')){
				$.ajax({
					type: "GET",
					dataType: 'json',
					url: URL_SURVEY_INLINE_VALIDATION+'/'+fieldName+'/'+escape(fieldValue)+'.json',
					success: function(data){		
						surveyFieldsInfo[fieldRel]['lastvalue'] = fieldValue;
						if(data.inputvalidation != null){
							if(data.inputvalidation.valid == false){
								if((fieldRel != '') && (fieldRel != null)){
									survey.trackFieldError(fieldRel);
								}						
								oFieldMain.children('div.server-message').html(data.inputvalidation.errormessage);
								oFieldMain.children('div.server-message').show();
							}
							else{
								if((fieldRel != '') && (fieldRel != null)){
									survey.trackFieldComplete(fieldRel);
								}								
								oFieldMain.children('div.server-message').hide();
							}
						}
					}
				});					
			}
			else{
				if((fieldRel != '') && (fieldRel != null)){
					survey.trackFieldComplete(fieldRel);
				}	
				surveyFieldsInfo[fieldRel]['lastvalue'] = fieldValue;
			}		
		}	
	}
}
