
String.prototype.replaceAll = function(findStr,repStr){
	var txt = this;
	var srchNdx = 0;
	var newStr = "";
	while (txt.indexOf(findStr,srchNdx) != -1) {
		newStr += txt.substring(srchNdx,txt.indexOf(findStr,srchNdx));
		newStr += repStr;
		srchNdx = (txt.indexOf(findStr,srchNdx) + findStr.length);
	}
	newStr += txt.substring(srchNdx,txt.length);
	return newStr;
}

function E(id){
	if (typeof E === "string") {
		return document.getElementById(id);
	} else {
		return id;
	}
}

function firstChildElement(ele)
{
	var node = null;
	if (ele){
		node = ele.firstChild;
		if (node && node.nodeType != 1)
			node = nextElement(node);
	}
	return node;
}
function previousElement(ele)
{
	var node = null;
	if (ele){
		node = ele.previousSibling;
		if (node && node.nodeType != 1)
			node = previousElement(node);
	}
	return node;
}
function nextElement(ele)
{
	var node = null;
	if (ele){
		node = ele.nextSibling;
		if (node && node.nodeType != 1)
			node = nextElement(node);
	}
	return node;
}
function fmtPrice(v, csign){
	var vs = String(v).replace(/[^\d.-]*/gi, "");
	if(vs.length == 0 ) {vs = "0"};
	var vn = Number(vs);
	if( isNaN(vn)) {vn = 0;}
	var neg = vn < 0;
	if (neg) {vn *= -1;}
	vs = String(vn);

	var vi = vs;
	var vd = "";
	if (vs.indexOf(".") > -1){
		vi = vs.split(".")[0];
		vd = vs.split(".")[1];
	}
	
	if (vi.length == 0) { vi = "0"; }
	if( vd.length > 2 ) {
		vd = String(Math.round(Number(vd.substring(0,3))/10));
	} else {
		while( vd.length < 2 ) {vd += "0";}
	}

	var x = [], i=0, n=Number(vi);
	while( n > 999 ){
		x[i] = "00" + String(n%1000);
		x[i] = x[i].substring(x[i].length - 3);
		n = Math.floor(n/1000);
		i++;
	}
	x[i] = String(n%1000);
	vi = x.reverse().join(",");
	vs = (neg ? "-" : "") + (csign ? "$" : "") + vi + "." + vd;
	return vs;
}

function validEmail(s){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return filter.test(s);
}
