var MSIE = false;
var nums = '0123456789';
var ltrs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var alpha = nums+ltrs;

function get_xmlhttp()
{
	var xml = null
	if(window.XMLHttpRequest)
	{
		xml = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		xml = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return(xml);
}

function is_pocket()
{
	var ret = false;
	var ua = navigator.userAgent;
	if(ua.indexOf('Windows CE') > -1 || ua.indexOf('PPC') > -1 || ua.indexOf('Smartphone') > -1)
		ret = true;
	return(ret);
}

function set_class(obid,ncls)
{
	if(trim(obid).length==0) { return; }
	
	var obj = new get_obj(obid);
	if(obj)
	{
		obj.className=ncls;	
		obj = null;
	}
}

function set_image(iname,img)
{
	document[iname].src = img.src;
}

function ltrim(tstr)
{
    var ret=tstr;
    
    if(ret.length > 0)
    {
        while(ret.charAt(0) == ' ')
        {
            if(ret.length==1) return("");
            ret=ret.substring(1,ret.length);
        }
    }
    return(ret);
}

function rtrim(tstr)
{
    var ret=tstr;
    
    if(ret.length > 0)
    {
        while(ret.charAt(ret.length-1) == ' ')
        {
            if(ret.length==1) return("");
            ret=ret.substring(0,ret.length-1);
        }
    }
    return(ret);
}

function trim(tstr)
{
	if(!tstr)return('');
    var ret=ltrim(tstr);
    ret=rtrim(ret);
    return(ret);
}

function init_dhtml()
{
	var nav = window.navigator.appName;
	var pos = nav.indexOf('Microsoft');
	
	if(pos > -1) MSIE = true;
	return(document.getElementById || document.all || document.layers);
}

function get_obj(name)
{
	var obj = null;
	if(document.getElementById)
	{
		obj = document.getElementById(name);
	}
	else if(document.all)
	{
		obj = document.all[name];
	}
	else if(document.layers)
	{
		obj = document.layers[name];
	}
	return(obj);
}

function validate(adt)
{
	var ndx = adt.indexOf('/');
	if(ndx==-1)return('');
	var arr = adt.split('/');
	var len = arr.length;
	if(len!=3)return('');
	for(var i = 0; i < len;i++)
	{
		var num = arr[i];
		if(i<2)
		{
			// This is month or day
			var mdt = arr[i];
			if(mdt.length>1&&mdt.charAt(0)=='0')
				mdt = mdt.charAt(1);
			var num = parseInt(mdt);
			if(i==0)
			{
				// Month
				if(num<1 || num>12)
					return('');
			}
			else if(i==1)
			{
				if(num<1 || num>31)
					return('');
			}
			if(mdt.length==1)mdt = '0' + trim(mdt);
			arr[i] = mdt;
		}
		else
		{
			// This is the year
			var num = parseInt(arr[2]);
			if(num<1900) return('');
		}
	}
	adt = arr[0] + '/' + arr[1] + '/' + arr[2];
	return(adt);	
}

function validphone(phn)
{
	var nums = '0123456789';
	var len = phn.length;
	var fin = '';
	var chr = '';
	if(len==0)return('');
	var i = 0;
	for(i = 0; i < len; i++)
	{
		chr = phn.charAt(i);
		if(nums.indexOf(chr)>-1)
			fin += chr;
	}
	if(fin.length==10) return(fin);
	return('');
}

function validemail(eml)
{
	if(eml.indexOf('@',0)==-1) return(false);
	if(eml.indexOf('@',0)==eml.length-1)return(false);
	var arr = eml.split('@');
	var tmp = '';
	var ip = '';
	var len = 0;
	var i = 0;
	
	if(arr.length!=2)return(false);
	if(arr[0].length==0)return(false);
	tmp = arr[1];
	if(tmp.indexOf('.',0)==-1)return(false);
	if(tmp.charAt(0)!='[')
	{
		// Normal address
		arr = tmp.split('.');
		len = arr.length;
		for(i = 0; i < len; i++)
			if(trim(arr[i]).length==0 || !is_alpha(arr[i]))
				return(false);
	}
	else
	{
		// Should be in the form of [128.0.0.1]	
		if(tmp.charAt(tmp.length-1)!=']')return(false);
		len = tmp.length-1;
		for(i = 1; i < len; i++)
			ip += tmp.charAt(i);
		if(!validip(ip)) return(false);
	}
	return(true);	
}

function validip(ip)
{
	if(ip.indexOf('.')==0)return(false);	
	var arr = ip.split('.');
	var len = arr.length;
	var num = 0;
	if(len!=4) return(false);
	for(i = 0; i < len; i++)
	{
		if(!is_numeric(arr[i])) return(false);
		num = parseInt(arr[i]);
		if(num < 0 || num > 255)return(false);
	}
	return(true);
}

function is_numeric(num)
{
	var chr = '';
	var tmp = '';
	var pct = 0;
	var len = 0;
	var i = 0;
	var start = 0;
	
	// Check for decimal
	var per = num.indexOf('.');
	if(per>-1)
	{
		// There is a decimal so remove it
		if(per == num.length-1) return(false);
		for(i = 0; i < num.length; i++)
		{
			chr = num.charAt(i);
			if(chr!='.') tmp = tmp + chr;
		}
		num = tmp;
	}
	len = num.length;
	if(len==0)return(false);
	if(num.charAt(0)=='-')start = 1;
	for(i = start; i < len; i++)
	{
		chr = num.charAt(i);
		if(nums.indexOf(chr)==-1) return(false);	
	}
	return(true);
}

function is_alpha(tst)
{
	var len = tst.length;
	if(len==0)return(false);
	var i = 0;
	for(i = 0; i < len; i++)
		if(alpha.indexOf(tst.charAt(i))==-1)
			return(false);
	return(true);
}

function get_win_size()
{	
	var lwdt = 0;
	var lhgt = 0;
	
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		lwdt = window.innerWidth;
		lhgt = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		lwdt = document.documentElement.clientWidth;
		lhgt = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		lwdt = document.body.clientWidth;
		lhgt = document.body.clientHeight;
	}
	
	return {wdt:lwdt,hgt:lhgt};
}

function left(lstr,sz)
{
	var ret = lstr;
	
	if(lstr.length > 0 && sz > 0 && lstr.length >= sz)
	{
		ret = '';
		for(var i = 0; i < sz; i++)
		{
			ret = ret + lstr.charAt(i);
		}
	}
	else
	{
		ret = null;
	}
	
	return(ret);
}

function right(rstr,sz)
{
	var ret = rstr;
	
	if(rstr.length > 0 && sz > 0 && rstr.length >= sz)
	{
		ret = '';
		
		for(var i = 0; i < sz; i++)
		{
			var j = rstr.length - (sz - i);
			ret = ret + rstr.charAt(j);
		}
	}
	else
	{
		ret = null;
	}
	
	return(ret);
}

