JSTR = {
	between:function(v, l, h) {
		if (v <= h && v >= l) 
			return true;
		return false;
	},
	isnum:function(v) {
		var s = new String(v);
		for (i=0;i<s.length;i++) 
			if (isNaN(parseInt(s.charAt(i))))
				return false;
		return true;
	},
	exist:function(s, m) {
		for(i = 0; i < s.length; i++)
			if (m.indexOf(s.charAt(i)) < 0) 
				return false;
		return true;
	},
	toint:function(s) {
		if(!JSTR.isnum(s))
			return 0;
		if(s.charAt(0) == '0') 
			return JSTR.toint(s.substring(1, s.length));
		else 
			if(s.length > 0) 
				return parseInt(s);
			 else 
				return (0);
	},
	count:function(s, m) {
		var c = 0;
		for(i = 0; i < s.length; i++)
			if (s.charAt(i) == m) 
				c++;
		return c;
	},
	trim:function(s) {
		return s.replace(/^\s+|\s+$/g, '');
	},
	empty:function(s) {
		return ((s == null) || (s.length == 0))
	},
	mark:function(s, m) {
		for(i = 0; i < m.length && s.indexOf(m.charAt(i)) < 0; i++);
		return (i < m.length) ? false : true;
	},
	numeric:function(s) {
		if(JSTR.empty(s) == false) {
			var renumeric = /^[a-zA-Z0-9]+$/;
			return renumeric.test(s);
		}
	},
	isnumber:function (nb) {
		var ptn = /^[0-9]+$/;
		var nb = JSTR.trim(nb);
		if (!ptn.test(nb)) return false;
		return true;
	},
	isvalid:function(s) {
		if(JSTR.empty(s) == false){
			var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
			var temp;
			for(var i = 0; i < s.length; i++){
				temp = "" + s.substring(i, i+1);
				if (valid.indexOf(temp) == "-1") return false;
			}
			return true;
		}
	},
	isusername:function(us) {
		var ptn=/^[a-z][a-z0-9_-]{2,30}$/i;
		if(!ptn.test(us)) return false;
		return true;
	},
	isphone:function(phn) {
		var ptn = /^\+?[0-9 ()-.]+[0-9.]$/;
		var tel = JSTR.trim(phn);
		if (!ptn.test(tel)) return false;
		return true;
	},
	isemail:function(v) {
		if(JSTR.empty(v))	return true;
		if(v.indexOf(" ") >= 0) return false;
		var state, c, username, domain, amountOfDot, i;
		state = 1; username=''; domain=''; amountOfDot = 0;
		for(i = 0; i < v.length; i++) {
			c = v.charAt(i);
			if (state==1) {
				if (c == "<" || c == ">" || c == "(" || c == ")") 
					return false;
				else 
				if(c == "@")
					if (username == '') 
						return false;
					else 
						state = 3;
				username += c;
			} else 
			if(state==3) {
				if ((c >= "0" && c <= "9") || (c >= "A" && c <= "Z") || (c >= "a" && c <= "z") || c == "_" || c == "-") ;
				else 
				if(c == ".")
					if (domain == '' || domain.charAt(domain.length-1) == '.') return false;
					else amountOfDot++;
				else return false;
				domain += c;
			}
		}
		if(state != 3) return false;
		if(domain == '' || domain.charAt(domain.length-1) == '.') return false;
		if(amountOfDot <1) return false;
		return true;
	},
	unicode:function(is) {
		for (i = 0, os = ''; i < is.length;) {
			if(is.charCodeAt(i) == 38) {
				if(is.charCodeAt(i + 1) == 35) {
					p = is.indexOf(';', i + 2);
					if(p != -1) {
						if(p - i <= 7) {
							if(isFinite(is.substr(i + 2, p - i - 2))) {
								os = os.concat(String.fromCharCode(is.substr(i + 2, p - i - 2)));
								i = p + 1;
								continue;
							}
						}
					}
				}
			}
			os = os.concat(is.charAt(i));
			i++;
		}
		return os;
	},
	setunicode:function(is) {
		for (i = 0, os = ''; i < is.length; i++) {
			j = is.charCodeAt(i);	
			if (j < 32 || j > 127 || j == 34 || j == 39) {
				os = os.concat('&#').concat(j).concat(';');
			} else {
				os = os.concat(is.charAt(i)); 
			}
		}
		return os;
	},
	split:function(ss, aa) {
		st = 0;
		kk = 0;
		arr = new Array(aa + 1);
		for(ii = 0; ii < chuoi.length; ii++) {
			if(ss.charAt(ii) == '|') {
				arr[kk] = JSTR.setunicode(ss.substring(st, ii));
				st = ii + 1;
				kk++;
			}
		}
		arr[kk] = JSTR.setunicode(ss.substring(st, ss.length));
		return arr;
	},
	replace:function(sc, so, sn) {
		var ps = 0;
		while((ps = sc.indexOf(so, ps)) >= 0) {
			sc = sc.substring(0, ps) + sn  + sc.substring(ps + so.length);
			ps += sn.length;
		}
		return sc;
	},
	acept:function(fln) {
		var lfl = Array("doc", "jpg", "gif", "bmp", "htm", "html", "zip", "rar", "avi", "mpeg", "mpg", "wmv", "swf", "pdf", "xls", "ppt");
		var exf = (fln.substring((fln.lastIndexOf(".") + 1), fln.length)).toLowerCase();
		for(var ie = 0; ie < lfl.length; ie++) {
			if(exf == lfl[ie])
				return true;
		}
		return false;
	},
	open:function(fl, w, h) {
		w += 50;
		h += 50;
		if(w > 780)	w = 780;
		if(h > 600)	 h = 600;
		window.open(fl, "_full", "scrollbars=2, resizable=yes, width=" + w + ", height = " + w);
	}
}
