function formMailer(formName)
{
	if ($xo('#'+formName).attr('data-mode') == "test"){
		$xo.getJSON("http://jsonip.com?callback=?",function (data){
			var ip = data.ip;
			$xo('#'+ formName).data("ip_address",ip);
		});
	}
	else {
		$xo('#'+ formName).data("ip_address","");
	}
	
	if (!$xo('#'+ formName +' .inputContainer').hasClass('inputContainer_'+formName))
	{
		$xo('#'+ formName +' .inputContainer').addClass('inputContainer_'+formName);
		$xo('#'+ formName +' .buttonContainer').addClass('buttonContainer_'+formName);
		
		$xo('.inputContainer_'+ formName).wrap('<form name="" action="" method="post" enctype="multipart/form-data"></form>');
		$xo('#'+ formName +' form').prepend('<input type="hidden" name="emailerVal_to" value="">'+
			'<input type="hidden" name="emailerVal_subject" value="">'+
			'<input type="hidden" name="emailerVal_location" value="">'+
			'<input type="hidden" name="emailerVal_headers" value="">');
		
		
		$xo('#'+ formName +' .formBtn[data-button="submit"]').click(function(){
			submitForm(formName);
		});
		$xo('#'+ formName +' .formBtn[data-button="reset"]').click(function(){
			formMailer(formName);
		});
	}
	
	var displayVar = 1;
	var formWidth = $xo('#'+ formName).parent().width();
	var inputSpacing = $xo('.inputContainer_'+ formName).attr("data-spacing").replace("px","") - 0;
	var inputWidth = (formWidth / (displayVar - 0)) - ((inputSpacing * 2) + 5);
	var maxWidth = $xo('.inputContainer_'+ formName).attr("data-input-max").replace(/px/g,"") - 0;
	
	var slideNumVar = $xo('.inputContainer_'+ formName).children("div").length;
	for (e=0;e<=slideNumVar;e++)
	{
		var titleVar = 		$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-title");
		var fileType = 		$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-file-type");
		var inputType = 	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-type");
		var requiredVar = 	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-required");
		var limitVar = 		$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-limit");
		var iconVar = 		$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-icon");
		
		var placeholder =	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-placeholder");
		var predefined = 	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-predefined");
        var pattern =       $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-pattern");
		
		var iconInputFormat = "";
		if (iconVar != null && iconVar != ""){ var iconInputFormat = "iconInput"; }
		if (placeholder == null){ var placeholder = ""; }
		if (predefined == null){ var predefined = ""; }
        if (pattern == null || pattern == "undefined"){ var pattern = "" }
		
		if (inputType)
		{
			if (inputType == "text")
            {
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
                if (pattern != ""){ $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).find('input').attr('pattern',pattern); }
            }
			else if (inputType == "password"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="password" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "phone")
			{
				var maxChar = 14;
				var numberFormat = 	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-format");
				if (numberFormat == "xxx-xxx-xxxx"){
					var maxChar = 12;
				}
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="phoneVerify empty" maxlength="'+ maxChar +'" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "date"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="dateVerify empty" maxlength="10" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "number"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="numberVerify empty" type="number" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "sender"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "recepient"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "email"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "subject"){
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><input class="empty" type="text" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'">');
			}
			else if (inputType == "upload")
			{
				var predefined2 = predefined;
				if (predefined == ""){
					var predefined2 = placeholder;
				}
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><div class="fileTextShow" data-placeholder="'+ placeholder +'" data-value="'+ predefined +'"><span>'+ predefined2 +'</span><div class="fileInputHidden"><input class="empty" type="file" name="'+ titleVar +'"  placeholder="'+ placeholder +'" value="'+ predefined +'" accept="'+ fileType +'"></div></div>');
			}
            else if (inputType == "select")
			{
				var varData = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-options");
				var dataArray = varData.split(' || ');
				var varValue = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-values");
				
				if (varValue == "")
				{
					var valueArray = varData.split(' || ');
				}
				else
				{
					var valueArray = varValue.split(' || ');
				}
				var arrayCount = dataArray.length - 1;
				var varString = '<option value="'+ placeholder +'">'+ placeholder +'</option>';
				for (i=0;i<=arrayCount;i++)
				{
					if ( dataArray[i] == predefined){ var tempString = '<option value="'+ valueArray[i] +'" selected>'+ dataArray[i] +'</option>'; }
					else { var tempString = '<option value="'+ valueArray[i] +'">'+ dataArray[i] +'</option>'; }
					var varString = varString + tempString;
				}
				var predefined2 = predefined;
				if (predefined == ""){ var predefined2 = placeholder; }
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><div class="selectDefault"><select class="empty" name="'+ titleVar+'" value="'+ predefined2 +'">'+ varString +'</select></div>');
			}
			else if (inputType == "single-select")
			{
				var varData = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-options");
				var dataArray = varData.split(' || ');
				var varValue = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-values");
				
				if (varValue == "")
				{
					var valueArray = varData.split(' || ');
				}
				else
				{
					var valueArray = varValue.split(' || ');
				}
				var arrayCount = dataArray.length - 1;
				var varString = "";
				for (i=0;i<=arrayCount;i++)
				{
					if ( dataArray[i] == predefined)
					{
						var tempString = '<label for="'+ valueArray[i] + e +'"><div class="selectBtn"><input id="'+ valueArray[i] + e +'" type="radio" data-val="'+ dataArray[i] +'" value="'+ valueArray[i] +'" name="'+ titleVar +'" checked>'+ dataArray[i] +'</div></label>';
					}
					else
					{
						var tempString = '<label for="'+ valueArray[i] + e +'"><div class="selectBtn"><input id="'+ valueArray[i] + e +'" type="radio" data-val="'+ dataArray[i] +'" value="'+ valueArray[i] +'" name="'+ titleVar +'">'+ dataArray[i] +'</div></label>';
					}
					var varString = varString + tempString;
				}
				var predefined2 = predefined;
				if (predefined == ""){
					var predefined2 = placeholder;
				}
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><div class="selectBtnBox empty" data-placeholder="'+ placeholder +'" data-value="'+ predefined +'"><div class="selectBtn">'+ predefined2 +'</div></div><div class="selectBtnMenu">'+ varString +'</div>');
			}
			else if (inputType == "multi-select")
			{
				var varData = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-options");
				var dataArray = varData.split(' || ');
				var varValue = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-values");
				if (varValue == "")
				{
					var valueArray = varData.split(' || ');
				}
				else
				{
					var valueArray = varValue.split(' || ');
				}
				var arrayCount = dataArray.length - 1;
				var varString = "";
				for (i=0;i<=arrayCount;i++)
				{
					if (predefined.indexOf(dataArray[i]) >= 0)
					{
						var tempString = '<label for="'+ valueArray[i] + e +'"><div class="selectBtn"><input id="'+ valueArray[i] + e +'" type="checkbox" data-val="'+ valueArray[i] +'" value="'+ dataArray[i] +'" checked>'+ dataArray[i] +'</div></label>';
					}
					else
					{
						var tempString = '<label for="'+ valueArray[i] + e +'"><div class="selectBtn"><input id="'+ valueArray[i] + e +'" type="checkbox" data-val="'+ valueArray[i] +'" value="'+ dataArray[i] +'">'+ dataArray[i] +'</div></label>';
					}
					var varString = varString + tempString;
				}
				var predefined2 = predefined;
				if (predefined == ""){
					var predefined2 = placeholder;
				}
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><div class="selectBtnBox empty" placeholder="'+ placeholder +'" data-value="'+ predefined +'"><input class="selectInput" style="display:none;" type="text" value="'+ predefined +'" name="'+ titleVar +'"><div class="selectBtn">'+ predefined2 +'</div></div><div class="selectBtnMenu">'+ varString +'</div>');
			}
			else
			{
				var inputHeight = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-height");
				$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).addClass(iconInputFormat).html('<div class="requiredStar" title="required"></div><div class="formIcon fa fa-'+ iconVar +'"></div><textarea class="empty" name="'+ titleVar +'" placeholder="'+ placeholder +'" value="'+ predefined +'" style="height:'+ inputHeight +'; min-height:'+ inputHeight +';">'+ predefined +'</textarea>');
			}
		}
		
		if (requiredVar == "true")
		{
			$xo('.inputContainer_'+ formName +' .formInput').children(".requiredStar").eq(e).css({
				"visibility":"visible"
			});
		}
		
		if (predefined != "")
		{
			var focusColor = $xo('.inputContainer_'+ formName).attr("data-focus-color");
			var focusBg = $xo('.inputContainer_'+ formName).attr("data-focus-bg");
			var focusBorder = $xo('.inputContainer_'+ formName).attr("data-focus-border");
			$xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").css({ 'background':focusBg, 'border-color':focusBorder }).children(".formIcon, .fileTextShow").css({ 'color':focusColor });
			$xo('.inputContainer_'+ formName +' .formInput').eq(e).find("input, textarea, div.selectBtnBox, select").css({ 'color':focusColor }).removeClass("empty");
		}
		else
		{
			var blurColor = $xo('.inputContainer_'+ formName).attr("data-blur-color");
			var blurBg = $xo('.inputContainer_'+ formName).attr("data-blur-bg");
			var blurBorder = $xo('.inputContainer_'+ formName).attr("data-blur-border");
			$xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").css({ 'background':blurBg, 'border-color':blurBorder }).children(".formIcon, .fileTextShow").css({ 'color':blurColor });
			$xo('.inputContainer_'+ formName +' .formInput').eq(e).find("input, textarea, div.selectBtnBox, select").css({ 'color':blurColor });
		}
	}
	
	while (inputWidth > maxWidth)
	{
		if (inputWidth > maxWidth)
		{
			var displayVar = displayVar + 1;
			var inputWidth = (formWidth / (displayVar - 0)) - ((inputSpacing * 2) + 6);
		}
	}
	$xo('#'+ formName +' .formBox').addClass(formName +'_field');
	$xo('.'+ formName +'_field[data-group="true"]').css({
		'width':inputWidth + 'px',
		'margin':inputSpacing + 'px'
	});
	$xo('.'+ formName +'_field[data-group="false"]').css({
		'width':formWidth + 'px',
		'margin':inputSpacing + 'px'
	});
	
	$xo('.'+ formName +'_field[data-group="true"] .selectBtnMenu').css({
		'width':inputWidth - 28 + 'px'
	});
	$xo('.'+ formName +'_field[data-group="false"] .selectBtnMenu').css({
		'width':formWidth - 28 + 'px'
	});
	
	$xo('.'+ formName +' textarea').css({
		'min-height': inputHeight + 'px',
		'height':inputHeight + 'px'
	});
	$xo('#'+ formName).data( "displayed",displayVar);
	
	$xo('.inputContainer_'+ formName +', .buttonContainer_'+ formName).fadeIn();
	
	autoInputWidth(formName);
	$xo( window ).resize(function(){ autoInputWidth(formName); });
	
	$xo('#'+ formName +' .formBox').click(function(){ $xo(this).find('input').focus(); });
	$xo('#'+ formName +' .formInput[data-type="single-select"], #'+ formName +' .formInput[data-type="multi-select"]').click(function()
	{
        var thisVar = $xo(this).find('.selectBtnBox');
		focusSelect(thisVar,formName);
	});
	$xo('#'+ formName +' select').focus(function(){ focusScript(this,formName); });
	$xo('#'+ formName +' select').change(function(){ blurScript(this,formName); });
	$xo('#'+ formName +' .formInput .selectBtnMenu').parent(".formInput").mouseleave(function(){ blurSelect(this,formName); });
	$xo('#'+ formName +' .selectBtn input[type="checkbox"]').change(function(){ updateCheckBox(this); });
	$xo('#'+ formName +' .selectBtn input[type="radio"]').change(function(){ updateRadioBox(this); });
	$xo('#'+ formName +' input, #'+ formName +' textarea').focus(function(){ focusScript(this,formName); });
	$xo('#'+ formName +' input, #'+ formName +' textarea').blur(function(){ blurScript(this,formName); });
	$xo('#'+ formName +' .phoneVerify').keydown(function(e)
	{
		// Allows only numbers to be entered
		if(e.which != 48 && e.which != 49 && e.which != 50 && e.which != 51 && e.which != 52 && e.which != 53 && e.which != 54 && e.which != 55 && e.which != 56 && e.which != 57 && e.which != 8 && e.which != 46 && e.which != 9 && e.which != 37 && e.which != 38 && e.which != 39 && e.which != 40 && e.which != 96 && e.which != 97 && e.which != 98 && e.which != 99 && e.which != 100 && e.which != 101 && e.which != 102 && e.which != 103 && e.which != 104 && e.which != 105){
			return false;
		}
		
		// Places formatting as you type
		var numberFormat = $xo(this).parents('.formInput').attr('data-format');
		if (e.which != 8 && e.which != 46)
		{
			if (numberFormat == "xxx-xxx-xxxx")
			{
				var currentVar = $xo(this).val();
				if ($xo(this).val().length == 3){
					$xo(this).val(currentVar + "-");
				}
				else if ($xo(this).val().length == 7){
					$xo(this).val(currentVar + "-");
				}
			}
			else
			{
				var currentVar = $xo(this).val();
				if ($xo(this).val().length == 0){
					$xo(this).val(currentVar + "(");
				}
				else if ($xo(this).val().length == 4){
					$xo(this).val(currentVar + ") ");
				}
				else if ($xo(this).val().length == 9){
					$xo(this).val(currentVar + "-");
				}
			}
		}
	});
	$xo('#'+ formName +' .phoneVerify').keyup(function(e)
	{
		// Places formatting as you type
		var numberFormat = $xo(this).parents('.formInput').attr('data-format');
		if (e.which != 8 && e.which != 46)
		{
			if (numberFormat == "xxx-xxx-xxxx")
			{
				var currentVar = $xo(this).val();
				if ($xo(this).val().length == 3){
					$xo(this).val(currentVar + "-");
				}
				else if ($xo(this).val().length == 7){
					$xo(this).val(currentVar + "-");
				}
			}
			else
			{
				var currentVar = $xo(this).val();
				if ($xo(this).val().length == 4){
					$xo(this).val(currentVar + ") ");
				}
				else if ($xo(this).val().length == 9){
					$xo(this).val(currentVar + "-");
				}
			}
		}
	});
	$xo('#'+ formName +' .dateVerify').keydown(function(e)
	{
		// Allows only numbers to be entered
		if(e.which != 48 && e.which != 49 && e.which != 50 && e.which != 51 && e.which != 52 && e.which != 53 && e.which != 54 && e.which != 55 && e.which != 56 && e.which != 57 && e.which != 8 && e.which != 46 && e.which != 9 && e.which != 37 && e.which != 38 && e.which != 39 && e.which != 40 && e.which != 96 && e.which != 97 && e.which != 98 && e.which != 99 && e.which != 100 && e.which != 101 && e.which != 102 && e.which != 103 && e.which != 104 && e.which != 105){
			return false;
		}
		
		// Places formatting as you type
		if (e.which != 8 && e.which != 46)
		{
			var currentVar = $xo(this).val();
			if ($xo(this).val().length == 2){
				$xo(this).val(currentVar + "/");
			}
			else if ($xo(this).val().length == 5){
				$xo(this).val(currentVar + "/");
			}
		}
	});
	$xo('#'+ formName +' .dateVerify').keyup(function(e)
	{
		if (e.which != 8 && e.which != 46)
		{
			var currentVar = $xo(this).val();
			if ($xo(this).val().length == 2){
				$xo(this).val(currentVar + "/");
			}
			else if ($xo(this).val().length == 5){
				$xo(this).val(currentVar + "/");
			}
		}
	});
	$xo('#'+ formName +' .numberVerify').keydown(function(e)
	{
		// Allows only numbers to be entered
		if (e.which != 8 && e.which != 46)
		{
			var totalLength = $xo(this).val().length;
			var limitVar =	$xo(this).parent('.formInput').attr('data-limit');
			if(e.which != 48 && e.which != 49 && e.which != 50 && e.which != 51 && e.which != 52 && e.which != 53 && e.which != 54 && e.which != 55 && e.which != 56 && e.which != 57 && e.which != 9  && e.which != 37 && e.which != 38 && e.which != 39 && e.which != 40 && e.which != 96 && e.which != 97 && e.which != 98 && e.which != 99 && e.which != 100 && e.which != 101 && e.which != 102 && e.which != 103 && e.which != 104 && e.which != 105 || totalLength >= limitVar){
				return false;
			}
		}
	});
	
	// If enter button is pressed, it will autmatically try to submit form
	$xo('#'+ formName +' input').keypress(function(e)
    {
		if(e.which == 13)
        {
            var redirect = $xo('#'+ formName).attr('data-redirect');
            var account = $xo('#'+ formName).attr('data-account');
            if (redirect != "undefined" && redirect != "" && redirect != null)
            {
                if (account != "undefined" && account != null && account != ""){ submitForm(formName); }
            }
            else
            {
                if (account != "undefined" && account != null && account != ""){ submitForm(formName,'verify only'); }
            }
        }
	});
	
// Makes file upload work
$xo('#'+ formName +' .formInput[data-type="upload"]').click(function(event)
{
	if (!$xo(event.target).is('input[type="file"]'))
	{
		$xo(this).find('input[type="file"]').trigger('click');
	}
});
$xo('#'+ formName +' input[type="file"]').change(function()
{
	var file = this.value;
	var fileName = file.split("\\");
	var fileText = '../'+ fileName[fileName.length-1];
	var thisVar = $xo(this).parents('.formInput').children();
	focusScript(thisVar,formName);
	$xo(this).parent('.fileInputHidden').siblings('span').text(fileText).parent('.fileTextShow').attr('data-value',fileText);
});
}
function autoInputWidth(formName)
{
	var displayVar = $xo('#'+ formName).data("displayed");
	var formWidth = $xo('#'+ formName).parent().width();
	var inputSpacing = $xo('.inputContainer_'+ formName).attr("data-spacing").replace("px","") - 0;
	var inputWidth = (formWidth / displayVar) - ((inputSpacing * 2) + 5);
	var maxWidth = $xo('.inputContainer_'+ formName).attr("data-input-max").replace("px","") - 0;
	var minWidth = $xo('.inputContainer_'+ formName).attr("data-input-min").replace("px","") - 0;
	var nonGroup = (formWidth - 8) - (inputSpacing * 2);
	
	if (inputWidth)
	{
		if (inputWidth < minWidth)
		{
			var displayVar = $xo('#'+ formName).data("displayed") - 1;
			$xo('#'+ formName).data( "displayed",displayVar);
			var inputWidth = (formWidth / (displayVar - 0)) - ((inputSpacing * 2) + 5);
		}
		if (inputWidth > maxWidth)
		{
			var displayVar = $xo('#'+ formName).data("displayed") + 1;
			$xo('#'+ formName).data( "displayed",displayVar);
			var inputWidth = (formWidth / (displayVar - 0)) - ((inputSpacing * 2) + 5);
		}
		$xo('#'+ formName).data( "bWidth",inputWidth);
	}
	$xo('.'+ formName +'_field[data-group="true"]').width(inputWidth +'px');
	$xo('.'+ formName +'_field[data-group="false"]').width(nonGroup +'px');
	
	$xo('.'+ formName +'_field[data-group="true"] .selectBtnMenu').css({
		'width':inputWidth - 28 + 'px'
	});
	$xo('.'+ formName +'_field[data-group="false"] .selectBtnMenu').css({
		'width':nonGroup - 28 + 'px'
	});
}
function submitForm(formName,verifyVar)
{
	var slideNumVar = $xo('.inputContainer_'+ formName).children("div.formBox").length - 1;
	var htmlVar = $xo('#'+ formName).attr("data-html-links");
	var htmlStatus = "passed";
	var emptyRequired = "";
	
	for (e=0;e<=slideNumVar;e++)
	{
		var requiredVar = $xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").attr("data-required");
		var inputType = $xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").attr("data-type");
		var includeType = $xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").attr("data-include");
		var titleVar = $xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").attr("data-title");
		var placeholderVar = $xo('.inputContainer_'+ formName +' .formBox').eq(e).children(".formInput").attr("data-placeholder");
		var textValue = $xo('.inputContainer_'+ formName +' .formInput').eq(e).children("textarea").val();
		var inputValue = $xo('.inputContainer_'+ formName +' .formInput').eq(e).find("input, div.selectBtnBox, div.fileTextShow, textarea, select").val();
		var selectValue = $xo('.inputContainer_'+ formName +' .formInput').eq(e).children("div.selectBtnBox, div.fileTextShow").attr("data-value");
		
		var descVar = placeholderVar;
        if (descVar == ""){ descVar = titleVar; }
		
		if (requiredVar == "true")
		{
			if (inputType == "text" || inputType == "subject" || inputType == "number" ||  inputType == "password")
			{
				if (inputValue == "")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children().css({ "color":"#c00" });
				}
				else
				{
					$xo('.inputContainer_'+ formName +' .formInput').eq(e).children("input").removeClass("empty");
				}
			}
			else if (inputType == "upload")
			{
				if (selectValue == "")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children().css({ "color":"#c00" });
				}
				else
				{
					$xo('.inputContainer_'+ formName +' .formInput').eq(e).children("input").removeClass("empty");
				}
			}
			else if (inputType == "sender" || inputType == "recepient" || inputType == "email")
			{
				if (inputValue.indexOf("@") >= 0 && inputValue.indexOf(".") >= 0)
				{
					var emailVar = "true";
				}
				
				if (inputValue == "" || emailVar != "true")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children("input,.formIcon").css({ "color":"#c00" });
				}
                else
                {
                    $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).children("input").removeClass("empty");
                }
			}
			else if (inputType == "phone")
			{
				var maxChar = 14;
				var numberFormat = 	$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-format");
                
                if (numberFormat == "xxx-xxx-xxxx")
                {
                    var maxChar = 12;
                    if (inputValue.length == 10 && inputValue.indexOf('-') == -1)
                    {
                        inputValue = [inputValue.slice(0,3), '-', inputValue.slice(3)].join('');
                        inputValue = [inputValue.slice(0,7), '-', inputValue.slice(7)].join('');
                        $xo('input[name="billingPhone"]').val(inputValue);
                    }
                    var dashCount = (inputValue.match(/-/g) || []).length;
                    if (inputValue.length != maxChar || inputValue.indexOf('-') == -1 || dashCount != 2){ phoneVar = "false"; }
                }
                if (numberFormat != "xxx-xxx-xxxx")
                {
                    if (inputValue.length != maxChar)
                    {
                        var phoneVar = "false";
                    }
                }
				if (inputValue == "" || phoneVar == "false")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children("input,.formIcon").css({ "color":"#c00" });
				}
                else
                {
                    $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).children("input").removeClass("empty");
                }
			}
			else if (inputType == "date")
			{
				if (inputValue.length != 10)
				{
					var dateVar = "false";
				}
				
				if (inputValue == "" || dateVar == "false")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children("input,.formIcon").css({ "color":"#c00" });
				}
				else
				{
					var dateConversion = $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).attr("data-date-conversion");
					if (dateConversion == "database")
					{
						var dateArray = inputValue.split("/");
						var inputValue = dateArray[2] +'-'+ dateArray[0] +'-'+ dateArray[1];
						$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).children(".dateVerify").val(inputValue);
					}
				}
			}
			else if (inputType == "select")
			{
				if (inputValue == "" || inputValue == placeholderVar)
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).find(".selectDefault, .formIcon, select").css({ "color":"#c00" });
				}
                else
                {
                    $xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).find("select").removeClass("empty");
                }
			}
			else if (inputType == "single-select" || inputType == "multi-select")
			{
				if (selectValue == "")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children(".selectBtnBox,.formIcon").css({ "color":"#c00" });
				}
			}
			else
			{
				if (inputValue == "")
				{
					var emptyRequired = emptyRequired + '\n - '+ descVar;
					$xo('.inputContainer_'+ formName +' .formBox').children(".formInput").eq(e).css({ "border-color":"#c00" }).children("textarea,.formIcon").css({ "color":"#c00" });
				}
			}
		}
		if (includeType == "false")
		{
			if (inputType == "text" || inputType == "subject" || inputType == "sender" || inputType == "recepient" || inputType == "email")
			{
				$xo('.inputContainer_'+ formName +' .formInput input').addClass("empty");
			}
			else if (inputType == "single-select" || inputType == "multi-select")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] .selectBtnBox').addClass("empty");
			}
			else if (inputType == "textarea")
			{
				$xo('.inputContainer_'+ formName +' .formInput textarea').addClass("empty");
			}
		}
		if (htmlVar == "disabled")
		{
			if (inputType == "text" || inputType == "subject" || inputType == "sender" || inputType == "recepient" || inputType == "email" || inputType == "file")
			{
				
				if (inputValue.indexOf("<a href=") >= 0)
				{
					var htmlStatus = "failed";
				}
			}
			else if (inputType == "textarea")
			{
				if (textValue.indexOf("<a href=") >= 0)
				{
					var htmlStatus = "failed";
				}
			}
		}
	}
    if (emptyRequired != "")
	{
		alert('Please fill in these fields:'+ emptyRequired);
        return false;
	}
	else
	{
		if (verifyVar == "verify only")
        {
            return true;
        }
        else
        {
            var senderVar = $xo('#'+ formName).attr("data-account") + '@' + $xo('#'+ formName).attr("data-service");
            var recepientVar = senderVar;
            var accountVar = $xo('#'+ formName).attr("data-account");
            var serviceVar = $xo('#'+ formName).attr("data-service");
            var actionVar = $xo('#'+ formName).attr("data-action");
            var redirectVar = $xo('#'+ formName).attr("data-redirect");
            var subjectVar = $xo('#'+ formName).attr("data-subject");
            var messageVar = $xo('#'+ formName).attr("data-message");
            var modeVar = $xo('#'+ formName).attr("data-mode");
            var submitMax = $xo('#'+ formName).attr("data-submit-total");
            var emailFormat = $xo('#'+ formName).attr("data-format");
            
            var ip_address = $xo('#'+ formName).data("ip_address")
            var submitTotal = 0;
            
            if (submitMax != "disabled")
            {
                if ($.cookie("submit_total"))
                {
                    var submitTotal = $.cookie("submit_total");
                    var submitTotal = (submitTotal - 0) + 1;
                }
                else
                {
                    var submitTotal = 1;
                }
                $.cookie("submit_total", submitTotal, {
                    expires : 1
                });
            }
            
            if (htmlStatus == "failed")
            {
                if (messageVar != ""){
                    alert(messageVar);
                }
                window.location.href = redirectVar;
            }
            
            else if (submitMax != "disabled" && submitTotal > submitMax){
                alert("You have hit the max number of times you can use this contact form today. If you would still like to contact us, please give us a call.");
            }
            
            else
            {
                if (modeVar == "test")
                {
                    $xo('#'+ formName + ' .inputContainer').append('<input id="ip_address" type="text" name="IP Address" value="'+ ip_address +'" style="display:none;">');
                    $xo('#'+ formName + ' .inputContainer').append('<input type="text" name="Submission #" value="'+ submitTotal +'" style="display:none;">');
                }
                
                if ( $xo('#'+ formName +' .formInput[data-type="subject"] input').length )
                {
                    // verifies that the subject input is not the same as the tips box    text-type="predefined"
                    if ($xo('#'+ formName +' .formInput[data-type="subject"]').attr("data-text-type") == "predefined")
                    {
                        var subjectVar = $xo('#'+ formName +' .formInput[data-type="subject"] input').val();
                    }
                    else if ( $xo('#'+ formName +' .formInput[data-type="subject"] input').val() != $xo('#'+ formName +' .formInput[data-type="subject"]').attr("data-text") )
                    {
                        var subjectVar = $xo('#'+ formName +' .formInput[data-type="subject"] input').val();
                    }
                }
                if ( $xo('#'+ formName +' .formInput[data-type="sender"] input').length )
                {
                    if ( $xo('#'+ formName +' .formInput[data-type="sender"] input').val() != $xo('#'+ formName +' .formInput[data-type="sender"]').attr("data-text") )
                    {
                        if ($xo('#'+ formName +' .formInput[data-type="sender"] input').val().indexOf("@") >= 0 && $xo('#'+ formName +' .formInput[data-type="sender"] input').val().indexOf(".") >= 0)
                        {
                            var senderVar = $xo('#'+ formName +' .formInput[data-type="sender"] input').val();
                        }
                    }
                }
                if ( $xo('#'+ formName +' .formInput[data-type="recepient"] input').length )
                {
                    if ( $xo('#'+ formName +' .formInput[data-type="recepient"] input').val() != $xo('#'+ formName +' .formInput[data-type="recepient"]').attr("data-text") )
                    {
                        if ($xo('#'+ formName +' .formInput[data-type="recepient"] input').val().indexOf("@") >= 0 && $xo('#'+ formName +' .formInput[data-type="recepient"] input').val().indexOf(".") >= 0)
                        {
                            var recepientVar = $xo('#'+ formName +' .formInput[data-type="recepient"] input').val();
                        }
                    }
                }
                
                $xo('#'+ formName +' form').attr({'name': formName, 'action':actionVar });
                $xo('#'+ formName +' input[name="emailerVal_to"]').val(recepientVar).change();
                $xo('#'+ formName +' input[name="emailerVal_subject"]').val(subjectVar).change();
                $xo('#'+ formName +' input[name="emailerVal_location"]').val(redirectVar).change();
                
                if (emailFormat == "html/text"){
                    $xo('#'+ formName +' input[name="emailerVal_headers"]').val('Reply-To: '+ senderVar +'\nFrom: '+ accountVar +'@'+ serviceVar +'\nContent-Type: text/html');
                }
                else {
                    $xo('#'+ formName +' input[name="emailerVal_headers"]').val('Reply-To: '+ senderVar +'\nFrom: '+ accountVar +'@'+ serviceVar);
                }
                
                if (messageVar != ""){
                    alert(messageVar);
                }
                
                $xo('#'+ formName +' .empty').remove();
                $xo('#' + formName +' form[name="'+ formName +'"]').submit();
            }
        }
	}
}
function updateRadioBox(thisVar)
{
	var displayedValue = $xo(thisVar).attr("data-val");
	$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").attr("data-value",displayedValue).children(".selectBtn").html(displayedValue);
	$xo('.selectBtnMenu').hide();
}
function updateCheckBox(thisVar)
{
	var selectedValue = $xo(thisVar).attr("data-val");
	var displayedValue = $xo(thisVar).val();
	var existingValue = $xo(thisVar).parents().eq(2).siblings(".selectBtnBox").children("input.selectInput").val();
	var existingDisplayed = $xo(thisVar).parents().eq(2).siblings(".selectBtnBox").children(".selectBtn").html();
	var placeholder = $xo(thisVar).parents().eq(3).attr("data-placeholder");
	var predefined = $xo(thisVar).parents().eq(3).attr("data-predefined");
	var selectOptions = $xo(thisVar).closest(".formInput").attr("data-options");
	
	// First check if placeholder contains valid values
	var optionsArray = selectOptions.split(" || ");
	var predefinedValidation = false;
	for (e=0;e<=optionsArray.length-1;e++)
	{
		if (predefined.indexOf(optionsArray[e]) >= 0)
		{
			var predefinedValidation = true;
		}
	}
	var replaceExisting = false;
	for (e=0;e<=optionsArray.length-1;e++)
	{
		if (existingDisplayed.indexOf(optionsArray[e]) >= 0)
		{
			var replaceExisting = true;
		}
	}
		
	if (thisVar.checked)
	{
		if (existingDisplayed != placeholder && predefinedValidation == true || replaceExisting == true)
		{
			$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").attr("data-value",existingDisplayed +', '+displayedValue).children(".selectBtn").html(existingDisplayed +', '+displayedValue);
			$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").children("input.selectInput").attr("value",existingValue +', '+selectedValue);
		}
		else if (existingDisplayed == placeholder)
		{
			$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").attr("data-value",displayedValue).children(".selectBtn").html(displayedValue);
			$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").children("input.selectInput").attr("value",selectedValue);
		}
	}
	else
	{
		var removeVar = existingValue.replace(', '+ selectedValue,"").replace(selectedValue +', ',"").replace(selectedValue,"");
		var removeDisplayed = existingDisplayed.replace(', '+ displayedValue,"").replace(displayedValue +', ',"").replace(displayedValue,"");
		
		if (removeVar == "")
		{
			var removeDisplayed = placeholder;
		}
		
		$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").attr("data-value",removeVar).children(".selectBtn").html(removeDisplayed);
		$xo(thisVar).parents().eq(2).siblings(".selectBtnBox").children("input.selectInput").attr("value",removeVar);
	}
}

function focusSelect(thisVar,formName)
{
	$xo(thisVar).siblings(".selectBtnMenu").show();
	focusScript(thisVar,formName);
}

function blurSelect(thisVar,formName)
{
	if ($xo(thisVar).children(".selectBtnMenu").css("display") == "block")
	{
		$xo(thisVar).children(".selectBtnMenu").fadeOut();
		var thisVar = $xo(thisVar).children(".selectBtnBox");
		blurScript(thisVar,formName);
	}
}

function focusScript(thisVar,formName)
{
	var titleVar = $xo(thisVar).parents('.formInput').attr("data-title");
	var inputType = $xo(thisVar).parents('.formInput').attr("data-type");
	var inputVal = $xo(thisVar).val();
	var focusColor = $xo('.inputContainer_'+ formName).attr("data-focus-color");
	var focusBg = $xo('.inputContainer_'+ formName).attr("data-focus-bg");
	var focusBorder = $xo('.inputContainer_'+ formName).attr("data-focus-border");
	var blurColor = $xo('.inputContainer_'+ formName).attr("data-blur-color");
	var blurBg = $xo('.inputContainer_'+ formName).attr("data-blur-bg");
	var blurBorder = $xo('.inputContainer_'+ formName).attr("data-blur-border");
	
	if (inputType == "single-select" || inputType == "multi-select")
	{
		$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':focusBg, 'border-color':focusBorder }).children('.selectBtnBox,.formIcon').css({ 'color':focusColor }).removeClass("empty");
	}
	else
	{
		if (inputVal == "")
		{
			if (inputType == "text" || inputType == "sender" || inputType == "recepient" || inputType == "email" || inputType == "subject" || inputType == "phone" || inputType == "date" || inputType == "number" || inputType == "password" || inputType == "upload")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':focusBg, 'border-color':focusBorder }).children().css({ 'color':focusColor }).removeClass("empty");
			}
			if (inputType == "textarea")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':focusBg, 'border-color':focusBorder }).children('textarea,.formIcon').css({ 'color':focusColor }).removeClass("empty");
			}
		}
		else if (inputVal != "")
		{
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] input, .formInput[data-title="'+ titleVar +'"] textarea, .formInput[data-title="'+ titleVar +'"] select').css({ 'color':focusColor }).removeClass("empty");
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':focusBg, 'border-color':focusBorder, 'color':focusColor }).children().css({ 'color':focusColor });
		}
		else
		{
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] input, .formInput[data-text="'+ titleVar +'"] textarea').css({ 'color':blurColor }).addClass("empty");
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':blurBg, 'border-color':blurBorder, 'color':blurColor }).children().css({ 'color':blurColor });
		}
	}
	
}

function blurScript(thisVar,formName)
{
	var titleVar = $xo(thisVar).parents('.formInput').attr("data-title");
	var inputType = $xo(thisVar).parents('.formInput').attr("data-type");
	var inputVal = $xo(thisVar).val();
	var selectVal = $xo(thisVar).attr("data-value");
	var placeholder = $xo(thisVar).parents('.formInput').attr("data-placeholder");
	var focusColor = $xo('.inputContainer_'+ formName).attr("data-focus-color");
	var focusBg = $xo('.inputContainer_'+ formName).attr("data-focus-bg");
	var focusBorder = $xo('.inputContainer_'+ formName).attr("data-focus-border");
	var blurColor = $xo('.inputContainer_'+ formName).attr("data-blur-color");
	var blurBg = $xo('.inputContainer_'+ formName).attr("data-blur-bg");
	var blurBorder = $xo('.inputContainer_'+ formName).attr("data-blur-border");
	
	
	
	if (inputType == "single-select" || inputType == "multi-select")
	{
		if (selectVal == "" || selectVal == placeholder)
		{
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':blurBg, 'border-color':blurBorder }).children(".formIcon").css({ 'color':blurColor });
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] .selectBtnBox').css({ 'color':blurColor }).addClass("empty");
		}
	}
	else
	{
		if (inputVal == "" || inputVal == placeholder)
		{
			if (inputType == "text" || inputType == "sender" || inputType == "recepient" || inputType == "email" || inputType == "subject" || inputType == "phone" || inputType == "date" || inputType == "number" || inputType == "password" || inputType == "upload")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] input').css({ 'color':blurColor }).addClass("empty");
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':blurBg, 'border-color':blurBorder }).children(".formIcon,.fileTextShow").css({ 'color':blurColor });
			}
			if (inputType == "select")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] select').css({ 'color':blurColor }).addClass("empty").blur();
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] option').css({ 'color':focusColor });
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':blurBg, 'border-color':blurBorder }).children(".formIcon").css({ 'color':blurColor });
			}
			if (inputType == "textarea")
			{
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] textarea').css({ 'color':blurColor }).addClass("empty");
				$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':blurBg, 'border-color':blurBorder }).children(".formIcon").css({ 'color':blurColor });
			}
		}
		else
		{
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"] input, .formInput[data-text="'+ titleVar +'"] textarea, .formInput[data-text="'+ titleVar +'"] select').css({ 'color':focusColor }).removeClass("empty");
			$xo('#'+ formName +' .formInput[data-title="'+ titleVar +'"]').css({ 'background':focusBg, 'border-color':focusBorder }).children(".formIcon").css({ 'color':focusColor });
		}
	}
}
