﻿function formatPhoneNumber(str) {
	str = str.replace(/[^0-9]/g, '');
	//(123) 456-7890
	if (str.length == 10) {
		return '(' + str.substring(0,3) + ') ' +
			str.substring(3,6) + '-' + 
			str.substring(6,10);
	}		
	return false;
}

function formatPostalCode(str) {
	str = str.replace(/[^0-9A-Za-z]/g, '');
	str = str.toUpperCase();
	//Canada
	if (str.length == 6) {
		return str.substring(0,3) + ' ' +
			str.substring(3,6);
	}
	//US
	if (str.length == 5) {
		return str;
	}
	//US + 4
	if (str.length == 9) {
		return str.substring(0,5) + '-' +
			str.substring(5,9);
	}
	return false;
}

function validateEmailAddress(str) {
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
	return emailPattern.test(str);
}

function formatMacAddress(str) {
	var pattern = /^([0-9a-f]{2}([:-]|$)){6}$|([0-9a-f]{4}([.]|$)){3}$/i;
	return pattern.test(str);
}

function validateWindowsUsername(str) {
	var pattern = /[0-9a-zA-Z]+\\[0-9a-zA-Z]+/;
	return pattern.test(str);
}

function failedValidation(element, message) {
	var pos = element.offset();
	var width = element.width() + 7;
	var bullet = $('<img src="' + base_path() + '/content/images/icon_invalid.png" alt="" />').css({
		'position': 'absolute',
		'left': pos.left + width + 'px',
		'top': pos.top + 3 + 'px'
	});
	createToolTip(bullet, message, { top: pos.top, left: pos.left + width }, 25);
	$(document.body).append(bullet);
	window[element.attr('id')] = bullet;
}

function removeValidation(element) {
	try { 
		window[element.attr('id')].remove(); 
	} catch (e) { }
}

function createToolTip(element, message, pos, width) {
	if (!pos) { pos = element.offset() };
	if (!width) { width = element.width() + 7 };
	var tooltip = $('<div></div>')
		.css({
			'position': 'absolute',
			'left': pos.left + width + 'px',
			'top': pos.top + 3 + 'px',
			'display': 'none',
			'padding': '20px',
			'background': '#f6f3f6',
			'border': '1px solid #818181',
			'width': '175px'
		})
		.html(message);
	element.css('cursor', 'pointer');
	element.mouseover(function() {
		tooltip.css('display', 'block');
	});	
	element.mouseout(function() {
		tooltip.css('display', 'none');
	});
	$(document.body).append(tooltip);
}
