﻿//:push(arr,o) - push o on the end of the array arr, return the index
//
function push(arr,o) {
	var ix = arr.length;
	arr[ix] = o;
	return ix;
}
	
//:pop(arr) - pop the last o off the end of the array arr and return it
//
function pop(arr) {
	var o = arr[arr.length - 1];
	arr[arr.length - 1] = null;
	arr.length--;
	return o;
}

//:sMail(to,sub,body,cc,bcc) - send an email
//
function sMail(to,sub,body,cc,bcc) {
	if (to && to.length < 5)
		return;
	var s = "mailto:" + to + "?";
	if (sub && sub.length)
		s += "subject=" + sub;
	if (cc && cc.length)
		s += "&cc=" + cc;
	if (bcc && bcc.length)
		s += "&bcc=" + bcc;
	if (body && body.length)
		s += "&body=" + body;
	window.location = s;
}

//:esc(s) {
function esc(s) {
	var ret = "";
	for ( var i = 0; i < s.length; i++ )
		ret += "&#" + s.charCodeAt(i) + ";";
	return ret;
}	

//:eml(a,b,c) {
function eml(a,b,c) { return esc(a + "@" + b + "." + ((c && c.length) ? c : "com")); }

//:ph(a,b,c) {
function ph(a,b,c) { return esc(a + "." + b + "." + c); }

//:addr(a,b,c,d,e,s) {
function addr(a,b,c,d,e,s) { return esc(a + " " + b) + " " + s + esc(c + ", " + d + " " + e); }

//:fctExists(s) {
function callFct(s,p) { try { return eval(s+ "(" + p + ")"); } catch (e) {} return false; }
