function LTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1) {
	var j=0, i = s.length;

	while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
	j++;

	s = s.substring(j, i);
	}
	return s;
}

function RTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
	var i = s.length - 1;       // Get length of string

	while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
	i--;

	s = s.substring(0, i+1);
	}
	return s;
}

function Trim(str)
{
	return RTrim(LTrim(str));
}
  
function validateEmail(str)
{
	var emailExp = new RegExp("[A-Za-z0-9\-\_\+\.][A-Za-z0-9]+@[A-Za-z0-9\-\_][A-Za-z0-9]+\.[A-Za-z][A-Za-z\-\.]*$");
	if ( (Trim(str) == "") || (!emailExp.test(str)) || (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(Trim(str)) ) )  
	{  return false; }        
	else
	{ return true; }
}  

function validateNRIC(str)
{
    var bValid = true;
	
    if (Trim(str) != "")
    {
	    // these variables used for NRIC checks
	    weight = new Array("2","7","6","5","4","3","2");
	    u_reftb = new Array("A","B","C","D","E","F","G","H","I","Z","J");
	    f_reftb = new Array("K","L","M","N","P","Q","R","T","U","W","X");
	    var i=0, prod=0, sum=0, rem = 0 ;
	    var pfx, chkdgt;

        if (str.length!=9)
        { bValid = false; }
        
        if (bValid)
        {
	        pfx    = Trim(str).charAt(0).toUpperCase();
	        chkdgt = Trim(str).charAt(8).toUpperCase();

	        if (pfx != 'I' && pfx != 'S' && pfx != 'T' &&
	        pfx != 'F' && pfx != 'G')
	        { bValid = false; }
	        for(i=0; i<7; i++)
	        {
		        prod = weight[i] * Trim(str).charAt(i+1);
		        sum +=prod;
	        }
	        if(pfx == 'T' || pfx == 'G')
	        {
		        sum +=4;
	        }
	        rem = sum % 11;
	        if (pfx == 'I' || pfx == 'S' || pfx == 'T')
	        {
		        if (chkdgt == u_reftb[(11-rem) -1])
		        { bValid = true; }
		        else
		        { bValid = false; }
	        }
	        else
	        {
		        if (chkdgt == f_reftb[(11-rem) -1])
		        { bValid = true; }
		        else
		        { bValid = false;	}
	        }
	   }
    }
    return bValid
}


function jsHTMLEncode (str)
{
    var div = document.createElement('div');
    var text = document.createTextNode(str);
    div.appendChild(text);
    return div.innerHTML;
}

function converttodate(datefield, separator)
{
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;

	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";

	strDate = datefield

	strDateArray = strDate.split(separator);

	strDay = strDateArray[0];
	strMonth = strDateArray[1];
	strYear = strDateArray[2];

	intday = parseInt(strDay, 10);
	intMonth = parseInt(strMonth, 10);
	intYear = parseInt(strYear, 10);

	datefield = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
	return datefield;
}


function fPopUpWindow(url, hWind, nWidth, nHeight, nScroll, nResize) {
    var popupwin, cToolBar;
    cToolBar = 'toolbar=0,location=0,directories=0,status=' + nResize + ',menubar=0,scrollbars=' + nScroll + ',resizable=' + nResize + ',width=' + nWidth + ',height=' + nHeight;
    popupwin = window.open(url, hWind, cToolBar);
    return popupwin;
}
function fCloseWindow(hWind) {
    //try { if (hWind) { window.open("javascript:close()",hWind) } } catch(errC) {}	
    var closewin;
    try { if (hWind) { closewin = window.open("", hWind); closewin.close(); } } catch (errC) { }

    return true;
}


var tgs = new Array('div', 'td', 'tr', 'p');
var szs = new Array('xx-small', 'x-small', 'small', 'medium', 'large', 'x-large'); 
var startSz = 2; 
function textResize(trgt, inc) {
    if (!document.getElementById) return
    var d = document, cEl = null, sz = startSz, i, j, cTags; sz += inc; if (sz < 0) sz = 0; if (sz > szs.length - 1) sz = szs.length - 1; startSz = sz; if (!(cEl = d.getElementById(trgt))) cEl = d.getElementsByTagName(trgt)[0]; cEl.style.fontSize = szs[sz]; for (i = 0; i < tgs.length; i++) { cTags = cEl.getElementsByTagName(tgs[i]); for (j = 0; j < cTags.length; j++) cTags[j].style.fontSize = szs[sz]; }
}
