function MM_swapImgRestore() { // v3.0
	var i, x, a = document.MM_sr;
	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
		x.src = x.oSrc;
}
function MM_preloadImages() { // v3.0
	var d = document;
	if (d.images) {
		if (!d.MM_p)
			d.MM_p = new Array();
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i = 0; i < a.length; i++)
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_findObj(n, d) { // v4.01
	var p, i, x;
	if (!d)
		d = document;
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}
	if (!(x = d[n]) && d.all)
		x = d.all[n];
	for (i = 0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for (i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n, d.layers[i].document);
	if (!x && d.getElementById)
		x = d.getElementById(n);
	return x;
}

function MM_swapImage() { // v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array;
	for (i = 0; i < (a.length - 2); i += 3)
		if ((x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc)
				x.oSrc = x.src;
			x.src = a[i + 2];
		}
}



function refresh() {
	document.taxForm.submit();
}

// validate phone number format like (905) 560-1234 x 2228 or (905) 560-1234
function testPhoneNumber(phone) {
	var regExp = /(\(\d{3}\)\s?\d{3}(-|\s)?\d{4}$)|(\(\d{3}\)\s?\d{3}(-|\s)?\d{4}\s?x\s?\d+)/;
	if (!phone.match(regExp)) {
		alert('Please enter a valid phone number.\ne.g. (905) 560-1234 x 2228 ');
		return false;

	}
	return true;

}

function testEmailAddress(email){
	 var regExp = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	 if (!email.match(regExp)) {
			alert('Please enter a valid email address.');
			return false;

		}
		return true;
}

function processStrToFloat(str) {
	return parseFloat(String(str).replace('$', '').replace(',', ''));
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function formatToCurrency(str){
	return '$'+addCommas(str.toFixed(2));
}


function htmlEntities(str) {
	return String(str).replace(/'/g, '&#39;').replace(/"/g, '&quot;');
}

function isPostCode(entry) { // checks cdn codes only
	
	strlen = entry.length;
	if (strlen !== 6) {
		return false;
	}
	entry = entry.toUpperCase(); // in case of lowercase
	// Check for legal characters,index starts at zero
	s1 = 'ABCEGHJKLMNPRSTVXY';
	s2 = s1 + 'WZ';
	d3 = '0123456789';
	if (s1.indexOf(entry.charAt(0)) < 0) {
		return false;
	}
	if (d3.indexOf(entry.charAt(1)) < 0) {
		return false;
	}
	if (s2.indexOf(entry.charAt(2)) < 0) {
		return false;
	}
	if (d3.indexOf(entry.charAt(3)) < 0) {
		return false;
	}
	if (s2.indexOf(entry.charAt(4)) < 0) {
		return false;
	}
	if (d3.indexOf(entry.charAt(5)) < 0) {
		return false;
	}
	return true;
}


