﻿var validationHelper = {
	/*
	* all xVal jQuery validate requests call this function, specific errorPlacement 
	* can be overridden within this function on a per form basis
	*/
	globalCustomErrorPlacement: function(error, element) {

		switch (element.parents("form").attr("id")) {
			case 'global-login-form':
				error.appendTo(element.parent().parent());
				break;
			case 'fEditProfileBuilder':
				error.appendTo(element.parent().parent());
				break;
			case 'fEditProfilePersonalInfo':
				error.appendTo(element.parent().parent());
				break;
			case 'fEditProfileUserName':
				error.appendTo(element.parent().parent());
				break;
			case 'fEditProfilePassword':
				error.appendTo(element.parent().parent());
				break;
			case 'fPrintDesign':
				error.appendTo(element.parent().parent());
				break;
			case 'fPrintScrapbook':
				error.appendTo(element.parent().parent());
				break;
			case 'fRegister':
				error.appendTo(element.parent().parent());
				break;
			case 'registerloginform':
				error.appendTo(element.parent().parent());
				break;
			case 'fShareMyDesign':
				error.appendTo(element.parent().parent());
				break;
			case 'fRenameProject':
				error.appendTo(element.parent().parent());
				break;
			case 'fCopyProject':
				error.appendTo(element.parent().parent());
				break;
			case 'fAddProject':
				error.appendTo(element.parent().parent());
				break;
			case 'fRenameDesign':
				error.appendTo(element.parent().parent());
				break;
			case 'fCopyDesign':
				error.appendTo(element.parent().parent());
				break;
			case 'fWhoWillUseYourKitchenMore':
				if (element.hasClass('multi-input-row')) {
					error.appendTo(element.parent().parent().find('.error-container'));
				} else {
					element.parent().after(error);
				}
				break;
			case 'fRoomDimensions':
				if (element.hasClass('multi-input-row')) {
					error.appendTo(element.parent().parent().find('.error-container'));
				} else {
					element.parent().after(error);
				}
				break;
			case 'fContactUs':
				if (element.attr('id') === 'contactUs_PhoneAreaCode' || element.attr('id') === 'contactUs_PhonePrefix' || element.attr('id') === 'contactUs_PhoneSuffix'
				|| element.attr('id') === 'contactUs_FaxAreaCode' || element.attr('id') === 'contactUs_FaxPrefix' || element.attr('id') === 'contactUs_FaxSuffix') {
					element.parent().parent().parent().after(error);
				} else {
					element.parent().after(error);
				}
				break;
			case 'fLiteratureRequest':
				if (element.attr('id') === 'literatureRequest_PhoneAreaCode' || element.attr('id') === 'literatureRequest_PhonePrefix' || element.attr('id') === 'literatureRequest_PhoneSuffix'
				|| element.attr('id') === 'literatureRequest_FaxAreaCode' || element.attr('id') === 'literatureRequest_FaxPrefix' || element.attr('id') === 'literatureRequest_FaxSuffix') {
					element.parent().parent().parent().after(error);
				} else {
					element.parent().after(error);
				}
				break;
			case 'global-search-form':
				error.appendTo(element.parent().parent());
				break;
			//			case 'fRenameProject':                       
			//				break;                       
			//			case 'fCopyProject':                       
			//				break;                       
			//			case 'fNewDesign':                       
			//				break;                       
			//			case 'fSwitchProject':                       
			//				break;                       
			//			case 'fAddProject':                       
			//				break;                       
			//			case 'fRenameDesign':                       
			//				break;                       
			//			case 'fCopyDesign':                       
			//				break;
			case 'fPromo':
				if (element.attr('id') === 'promotion_PhoneAreaCode' || element.attr('id') === 'promotion_PhonePrefix' || element.attr('id') === 'promotion_PhoneSuffix' ||
				   element.attr('id') === 'promotion_City' || element.attr('id') === 'promotion_State' || element.attr('id') === 'promotion_Zip') {
					element.parent().parent().after(error);
				} else {
					element.parent().after(error);
				}
				break;                       
			default:
				/* default error placement */
				element.parent().after(error);
				break;
		}
	}
};
