


function isLowerCase (c) { return ((c >= "a") && (c <= "z")); }
function isUpperCase (c) { return ((c >= "A") && (c <= "Z")); }

function max(a, b) { if (a > b) return a; return b; }


function getObj(id)
{
	
	if (document.getElementById)
		return document.getElementById(id);
	
	
	if (document.all)
		return document.all[id];

	
	if (document.layers)
		return document.layers[id + "Pos"].document.layers[id];
}


function checkEmail(email)
{
	return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email);
}



function submitEnter(e, fptr)
{
	var key = getKeyCode(e);
	
	if (key == 13)
	{
		if (fptr != null)
			fptr();
		return false;
	}
	return true;
}


function numbersOnly(e, chars, fptr)
{
	var key = getKeyCode(e);
	var keychar;
	
	if (key == null)
		return true;
		
	if (key == 13)
	{
		if (fptr != null)
			fptr();
		return false;
	}
	
	keychar = String.fromCharCode(key);	
	
	
	if (key == 0 || key == 8 || key == 9 || key == 27)
		return true;
	
	
	if (keychar >= '0' && keychar <= '9')
		return true;
		
	if (chars != null && chars.indexOf(keychar) > -1)
		return true;
		
	return false;
}


function emailInput(e, fptr)
{
	var specialchars = "@.-_";
	var key = getKeyCode(e);
	var keychar;
	
	if (key == null)
		return true;
		
	if (key == 13)
	{
		if (fptr != null)
			fptr();
		return false;
	}
	
	keychar = String.fromCharCode(key).toLowerCase();
		
	
	if (key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
		return true;
		
	
	if (specialchars.indexOf(keychar) > -1)
		return true;	
	
	
	if (keychar >= 'a' && keychar <= 'z' || keychar >= '0' && keychar <= '9')
		return true;
		
	return false;
}


function formatField(myfield)
{
	var val = extractNumbers(myfield.value);
	myfield.value = formatNumbers(val);
}


function formatNumbers(val)
{
	val += ""; 
	var millionSeparator = ',';
	var thousandSeparator = ',';
	var len = val.length;
	
	if (len > 6)
		return val.substring(0, len-6) + 
			millionSeparator + val.substring(len-6, len-3) + 
			thousandSeparator +  val.substring(len-3, len);
		
	if (len > 3)
		return val.substring(0, len-3) + thousandSeparator +  
			val.substring(len-3, len);
	
	return val;
}


function extractNumbers(s)
{
	var ret = "";
	for (var i=0; i<s.length; i++)
	{
		var c = s.charAt(i);
		if ( ("0123456789").indexOf(c) > -1)
		{
			ret += c;
		}	
	}
	return ret;
}


function getKeyCode(e)
{
	var keycode = null;
	
	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;
		
	return keycode;
}


function getDateTime(millis)
{
	var date = new Date();
	date.setTime(millis);
	
	var year = date.getYear();
   var day  = date.getDate();
   var month = date.getMonth();
   var hours = date.getHours();
   var minutes = date.getMinutes();
   
   if (minutes <= 9) minutes = "0" + minutes;
   if (hours <= 9) hours = "0" + hours;
   
   return day + " " + months[month] + " " + year + " " + hours + ":" + minutes;
}


function getDate(millis)
{
	var date = new Date();
	date.setTime(millis);
	
   var day = date.getDate();
   var month = date.getMonth();
   
   return day + " " + months[month].substring(0,3);
}


function getCookie(nameOfCookie)
{
	if (document.cookie.length > 0) 
	{ 
		var begin = document.cookie.indexOf(nameOfCookie+"="); 
		if (begin != -1)
		{ 
			begin += nameOfCookie.length + 1; 
			var end = document.cookie.indexOf(";", begin);
			if (end == -1)
				end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end)); 
		} 
	}
	return null; 
}


function setCookie(nameOfCookie, value, expiredays) 
{
	var expireDate = new Date ();
	expireDate.setTime(expireDate.getTime() + (expiredays * 24 * 3600 * 1000));
	document.cookie = nameOfCookie + "=" + escape(value) + 
	((expiredays == null) ? "" : "; expires=" + expireDate.toGMTString());
}


function delCookie(nameOfCookie) 
{
	if (getCookie(nameOfCookie))
	{
		document.cookie = nameOfCookie + "=" +
			"; expires=Thu, 01-Jan-01 00:00:01 GMT";
	}
}


function preloadImage(path)
{
	var img = new Image();
	img.src = path;
	return img;
}


function checkCapitals(text, minCaps, percent)
{
	var upper = 0;
	var lower = 0;
	var len = text.length;
	
	for (var i=0; i<len; i++) {
		var c = text.charAt(i);
		if (isUpperCase(c))
			upper++;
		else if (isLowerCase(c))
			lower++;
	}
	if (lower > 0 && upper == 0 && isLowerCase(text.charAt(0)))
		return 2;
	
	
	if (upper > minCaps && (upper * percent) > lower)
		return 1;
		
	return 0;
}


function fixCapitals(s, space)
{
	var ret = "";
	var lastDot = true;
	for (var i=0; i<s.length; i++)
	{
		var c = s.charAt(i);
		if (lastDot && !(/[-, ]/).test(c))
		{
			ret += c.toUpperCase();
			lastDot = false;	
		}
		else
			ret += c.toLowerCase();
			
		if ((space && c == ' ') || (/[-*.\n!?]/).test(c))
			lastDot = true;	
	}
	return ret;	
}
