

function Reason() {
	this.value = false;
	this.message = "";
	this.result = null;
	this.text = "";
}

function GetPhoneArr(num) {

	var arr = new Array();
	var extIndex = num.indexOf("ext:");
	var pnum = "";
	if (extIndex > 0) {
		pnum = num.substring(0, extIndex);
	} else {
		pnum = num;
	}
	arr = pnum.split(".");
	
	if (extIndex > 0) {
		arr.push(num.substring(extIndex+4));
	}

	return arr;
	
}

function Get(val) {
	return document.getElementById(val);	
}

function Trim(txt) {
	 return txt.replace(/^\s+|\s+$/g,'');
}


function ValidString(txt) {
	var result = new Reason();
	var str = Trim(txt);
	if (str != null && str != "") {
		result.value = true;
		result.text = str;
	}
	result.message = "invalid string";
	
	return result;
}

function ValidPhone(txt) {
	return ValidString(txt);	
}

function ValidEmail(txt) {
	var result = new Reason();
	var strRes = ValidString(txt);
	if (strRes.value) {
		var emailTest = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (emailTest.test(txt)) {
			result.value = true;
			result.text = strRes.text;
		}
	}
	result.message = "please provide a valid email address.";

	return result;
}


function ValidPassword(pass1, pass2) {
	var result = new Reason();
	var pass1Res = ValidString(pass1);
	var pass2Res = ValidString(pass2);
	if (pass1Res.value && pass2Res.value) {
		if (pass1 == pass2) {
			if (pass1.length > 3 && pass1.length < 11) {
				result.value = true;
			} else {
				result.message = "please provide a valid password\r\n5-15 alpha-numeric characters long.";
				result.result = 1;
			}
		} else {
			result.message = "your passwords do not match, please retype them.";
			result.result = 2;
		}
	} else if (!pass1Res.value) {
		result.message = "please provide a password.";
		result.result = 1;
	} else if (!pass2Res.value && pass1Res.value) {
		result.message = "please retype your password.";
		result.result = 2;
	}
	return result;
}

function CreateInput(name_str, type_str, value_str, class_str) {
	var inp = document.createElement("input");
	inp.setAttribute("type", type_str);
	inp.setAttribute("value", value_str);
	inp.setAttribute("name", name_str);
	if (class_str != null) {
		inp.className = class_str;
	}
	return inp;
}

function CreateArea(name_str, value_str, class_str) {
	var area = document.createElement("textarea");
	area.setAttribute("name", name_str);
	area.value = value_str;
	if (class_str != null) {
		area.className = class_str;
	}
	return area;
}

function CreateLabel(txt, css) {
	var lbl = document.createElement("span");
	lbl.innerHTML = txt;
	if (css != null) {
		lbl.className = css;
	}
	return lbl;
}

function ClearElement(elmt) {
	if(elmt == undefined || elmt == null) {
		return;
	}
	var len = elmt.childNodes.length;
	while (elmt.hasChildNodes()) {
		elmt.removeChild(elmt.firstChild);
	}
}

function ClearElementType(elmt, elmtType) {
	if(elmt == undefined || elmt == null) {
		return;
	}
	var len = elmt.childNodes.length;
	var tmpArr = new Array();
	var count = 0;
	for (var i=0; i < len; i++) {
		if (elmt.childNodes[i].type == elmtType) {
			tmpArr[count] = elmt.childNodes[i];
			count += 1;
		}
	}
	
	len = tmpArr.length;
	
	for (var i=0; i < len; i++) {
		elmt.removeChild(tmpArr[i]);
	}

}

function AddHiddenInput(id_str, name_str, value_str) {
	var hdn = CreateInput(name_str, "hidden", value_str);
	document.appendChild(hdn);	
	hdn.setAttribute("id", id_str);
}

function LTrim(str) { 
	for (var k=0; k < str.length && str.charAt(k)<=" " ; k++) ;
	return str.substring(k,str.length);
}

function RTrim(str) {
	for (var j=str.length-1; j>=0 && str.charAt(j)<=" " ; j--) ;
	return str.substring(0,j+1);
}
function Trim(str) {
	return LTrim(RTrim(str));
}


/*
function addEvent(obj, type, fn) {
	if (obj.addEventListener) {
      obj.addEventListener(type, fn, false);
    }  
    else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() {
        obj["e"+type+fn](window.event);
      };
      obj.attachEvent("on"+type, obj[type+fn]);
	}
}
*/




