if (languageFormat == 'undefined' || languageFormat == null)
{
    var languageFormat = navigator.userLanguage;
    languageFormat = languageFormat.toLowerCase();
}
// JScript source code
function PVButtonControl(DIVID, OBJECTID, WIDTH, HEIGHT, PICTURE, CODEBASE, CAPTION, FONT, SIZE)
{
var strGrapicImage = 'graphics/window.gif';
var arImages = new Array(15);
arImages[0] = 'graphics/window search.gif';
arImages[1] = 'graphics/window message.gif';
arImages[2] = 'graphics/window error.gif';
arImages[3] = 'graphics/window help.gif';
arImages[4] = 'graphics/window error.gif';
arImages[5] = 'graphics/window add.gif';
arImages[6] = 'graphics/window delete.gif';
arImages[7] = 'graphics/window edit.gif';
arImages[8] = 'graphics/window information.gif';
arImages[9] = 'graphics/window error.gif';
arImages[10] = 'graphics/window delete.gif';
arImages[11] = 'graphics/window check.gif';
arImages[12] = 'graphics/window delete.gif';
arImages[13] = 'graphics/window configuration.gif';
arImages[14] = 'graphics/printer 1.gif';

switch (CAPTION.toLowerCase())
{
	case 'add':
		strGraphicImage = 'graphics/window add.gif';
		break;
	case 'update':
		strGraphicImage = 'graphics/window add.gif';
		break;
	case 'cancel':
		strGraphicImage = 'graphics/window error.gif';
		break;
	case 'find':
		strGraphicImage = 'graphics/window find.gif';
		break;
	case 'home':
		strGraphicImage = 'graphics/window check.gif';
		break;
	case 'select':
		strGraphicImage = 'graphics/window search.gif';
		break;
	case 'ok':
		strGraphicImage = 'graphics/window find.gif';
		break;
	case 'print':
		strGraphicImage = 'graphics/printer 1.gif';
		break;
	case 'reset':
		strGraphicImage = 'graphics/window refresh.gif';
		break;
	case 'xml':
		strGraphicImage = 'graphics/save.gif';
		break;
	case 'export':
		strGraphicImage = 'graphics/save.gif';
		break;
	default:
		strGraphicImage = arImages[PICTURE];
		break
}
if (FONT == 'noimage')
{
	var strWrite = '<button id="' + OBJECTID + '" class="ActionButton" onClick="' + OBJECTID + '_Click()" style="width:' + WIDTH + 'px;"><span id="' + OBJECTID + 'text">' + CAPTION + '</span></button>';
}
else
{
	var strWrite = '<button id="' + OBJECTID + '" class="ActionButton" onClick="' + OBJECTID + '_Click()"><img src="' + strGraphicImage + '" id="' + OBJECTID + 'Img" /><span id="' + OBJECTID + 'text">' + CAPTION + '</span></button>';
}
var div = document.getElementById(DIVID);
div.innerHTML = strWrite;
}

function PVGridControl(DIVID, OBJECTID, WIDTH, HEIGHT, CODEBASE, FONT, SIZE)
{
var div = document.getElementById(DIVID);
var grid = document.createElement('object');
div.appendChild(grid);
grid.id = OBJECTID;
grid.name=OBJECTID;
if (WIDTH >= 600 && div.tagName.toLowerCase() != 'td' && div.parentElement.tagName.toLowerCase() != 'td')
{
    grid.width = '99%';
}
else
{
    grid.width = WIDTH;
}
grid.height = HEIGHT;
grid.classid = "CLSID:E9C9692E-F93C-11D1-ABB0-0040054FC6FB";
grid.codebase = CODEBASE;
//grid.columnset.labelwidth = 60;
grid.backcolor = "16777215";
grid.Headings.Height=18;
grid.RowSet.Height=14;
}

function validateDate(ele)
{
    var s_date = ele.value;
    if (s_date.length == 0)
    {
        return true;
    }
    switch (languageFormat)
    {
        case 'en-za':
            var rgdt_sa = /^(?=\d)(?:(?!(?:1582(?:\.|-|\/)10(?:\.|-|\/)(?:0?[5-9]|1[0-4]))|(?:1752(?:\.|-|\/)0?9(?:\.|-|\/)(?:0?[3-9]|1[0-3])))(?=(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:\d\d)(?:[02468][048]|[13579][26]))\D0?2\D29)|(?:\d{4}\D(?!(?:0?[2469]|11)\D31)(?!0?2(?:\.|-|\/)(?:29|30))))(\d{4})([-\/.])(0?\d|1[012])\2((?!00)[012]?\d|3[01])(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/
	        if (!rgdt_sa.test(s_date))
	        {
	            alert('Invalid Date: "' + s_date + '" using en-za');
	            return false;
	        }
	        else
	        {
    	        return true;
    	    }
            break;
        case 'en-gb':
    //	    var rg_dt = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([.])([0-9][0-9][0][48]))|((29)([/])(02)([.])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26]))) /;
            var rg_dt = /^(((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$/;
	        if (!rg_dt.test(s_date))
	        {
	            alert('Invalid Date: "' + s_date + '" using en-gb');
	            return false;
	        }
	        else
	        {
    	        return true;
    	    }
    	    break;
	    case 'en-us':
	var re_dtTm = /(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])(\s{0,1})([AM|PM|am|pm]{2,2})$)|(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})([AM|PM|am|pm]{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})([AM|PM|am|pm]{2,2})$)/;
	var re_dt = /((^(10|12|0?[13578])([/])(3[01]|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(11|0?[469])([/])(30|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(2[0-8]|1[0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(29)([/])([2468][048]00)$)|(^(0?2)([/])(29)([/])([3579][26]00)$)|(^(0?2)([/])(29)([/])([1][89][0][48])$)|(^(0?2)([/])(29)([/])([2-9][0-9][0][48])$)|(^(0?2)([/])(29)([/])([1][89][2468][048])$)|(^(0?2)([/])(29)([/])([2-9][0-9][2468][048])$)|(^(0?2)([/])(29)([/])([1][89][13579][26])$)|(^(0?2)([/])(29)([/])([2-9][0-9][13579][26])$))/;
	
	var l = s_date.length;

	switch (l)
	{
		case 0:
			return true;
			break;
		case 6:
			if (s_date.indexOf('/') < 0)
			{
				var tmp = s_date.substring(0,2) + '/' + s_date.substring(2,4) + '/';
				var yy = parseInt(s_date.substring(4));
				if (yy <= 30)
				{
					tmp = tmp + '20' + s_date.substring(4);
				}
				else
				{
					tmp = tmp + '19' + s_date.substring(4);
				}
				s_date = tmp;
			}
			break;
		case 8:
			if (s_date.indexOf('/') < 0)
			{
				var mth = s_date.substring(0,2);
				var dd = s_date.substring(2,4);
				var yr = s_date.substring(4);
				s_date = mth + '/' + dd + '/' + yr;
			}
			break;		
		default:
			break;
	}

	if (s_date.indexOf(" ") > 0)
		{
		s_date2 = s_date.substring(0, s_date.indexOf(" "));
		var s_time = s_date.substring(s_date.indexOf(" ")+1, s_date.length);
		if (!re_dtTm.test(s_time)) alert('Invalid Time: ' + s_time);
		s_date = s_date2;
		}
		
	if (!re_dt.test(s_date)) 
	{
		alert('Invalid date: ' + s_date);
		return false;
	}
	ele.value = s_date;	
	return true;
	        break;
	    default:
	        return true;
	        break;
    }
}

function parseInteger(field, doDefault, imin, imax)
{
	var val = field.value;
	var sNumbers = '-0123456789';	
	var iMaxAllowed = 2147483647;
	var iMinAllowed = -2147483648;

	if (imin != 'undefined')
		iMinAllowed = imin;

	if (imax != 'undefined')
		iMaxAllowed = imax;
	
		
	if (val.length == 0) 
	{
		if (doDefault)
		{
			field.value = 0;
		}
		return true;
	}

	if (val < iMinAllowed || val > iMaxAllowed)
	{
		alert('Number outside of allowed range ' + iMinAllowed + ' - ' + iMaxAllowed);
		field.value = 0;
		return false;
	}
	
	var anint = /^-?\d*$/;
	
	if (!anint.test(val))
	{
		var newVal = '';
		for (var i=0; i <= val.length; i++)
		{
			var l = val.charAt(i);
			if (sNumbers.indexOf(l) > -1)
			{
				newVal = newVal + l;
			}
		}
		field.value = newVal;
	}
	
	if (field.value.length == 0) 
	{
		if (doDefault)
		{
			field.value = 0;
		}
	}
	
	return true;
}

function parseNumber(field, doDefault, imin, imax, maxdec)
{
	var val = field.value;
	var sNumbers = '-0123456789.';
	var iMaxAllowed = 2147483647;
	var iMinAllowed = -2147483648;

	if (imin != undefined)
		iMinAllowed = imin;

	if (imax != undefined)
		iMaxAllowed = imax;
	
	if (val.length == 0)
	{
		if (doDefault)
		{
			field.value = 0;
		}
		return true;
	}
		
	if (val < iMinAllowed || val > iMaxAllowed)
	{
		alert('Number outside of allowed range ' + iMinAllowed + ' - ' + iMaxAllowed);
		if (doDefault)
			{
				field.value = 0;
			}
		else
			{
				field.value = '';
			}
		return false;
	}

	var anum = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	if (!anum.test(val))
	{
		var newVal = '';
		var hasDot = false;
		for (var i=0; i <= val.length; i++)
		{
			var l = val.charAt(i);
			if (sNumbers.indexOf(l) > -1)
			{
				if (l == "." )
				{
					if (!hasDot)
					{
						newVal = newVal + l;
						hasDot = true;
					}
				}
				else
				{
					newVal = newVal + l;
				}
			}
		}
		
		field.value = newVal;
	}

	
	if (field.value.length == 0) 
	{
		if (doDefault)
		{
			field.value = 0;
		}
	}
	else
	{
		if (maxdec != undefined)
		{
			if (field.value.indexOf(".") > -1)
			{
				if ((field.value.length - field.value.indexOf(".") - 1) > maxdec)
				{
					alert('Only ' + maxdec + ' decimal(s) allowed');
					field.value = field.value.substring(0, field.value.length - 1);
				}
			}
		}
	}
	
	return true;
}

function defaultOnBlur(field)
{
	var val = field.value;
	if (val.length == 1 && val == '-')
	{
		field.value = 0;
		return false;
	}
}
function PVNumberControl(DIVID, OBJECTID, WIDTH, HEIGHT, DEFAULTVAL, ONBLUR, INTEGER, TABINDEX, MINVALUE, MAXVALUE, MAXDECIMALS)
{
	var blnDefault = (DEFAULTVAL.length > 0);
	var imin;
	var imax;

	if (!blnDefault)
		{
			var strWrite = '<Input type="text" id="' + OBJECTID + '" name="' + OBJECTID + '" class="numericInput" TabIndex="' + TABINDEX  + '" ';
		}
	else
		{
			var strWrite = '<Input type="text" id="' + OBJECTID + '" name="' + OBJECTID + '" class="numericInput" TabIndex="' + TABINDEX + '" value="0"';
		}

	strWrite = strWrite + ' onFocus="this.select();" ';

	if ((ONBLUR.toLowerCase() != 'arial') && (ONBLUR.length != 0))
		{
			strWrite = strWrite + 'onblur="' + ONBLUR + '" '
		}
	else
		{
			strWrite = strWrite + 'onblur="defaultOnBlur(this);" '
		}

	if (WIDTH < 100)
		strWrite = strWrite + ' style="width:' + WIDTH + 'px" '

	if (MINVALUE == undefined)
		{
			imin = -2147483648;
		}
	else
		{
			imin = MINVALUE;
		}

	if (MAXVALUE == undefined)
		{
			imax = 2147483647;
		}
	else
		{
			imax = MAXVALUE;
		}
		
	if (INTEGER > 0)
		{
			if (MAXDECIMALS == undefined)
				{
					strWrite = strWrite + 'onKeyUp="javascript:return parseNumber(this,' + blnDefault + ', ' + imin + ', ' + imax + ');" />';
				}
			else
				{
					strWrite = strWrite + 'onKeyUp="javascript:return parseNumber(this,' + blnDefault + ', ' + imin + ', ' + imax + ', ' + MAXDECIMALS + ');" />';
				}
		}
	else
		{
			strWrite = strWrite + 'onKeyUp="javascript:return parseInteger(this,' + blnDefault + ', ' + imin + ', ' + imax + ');" />';
		}

	var div = document.getElementById(DIVID);
	div.innerHTML = strWrite;
}

function parseCurrency(field, doDefault) 
{
	var num = field.value
	if (num.length == 0)
	{
		if (doDefault)
		{
			field.value = formatCurrency(0);
		}
		return true;
	}
	switch (languageFormat)
	{
	    case 'en-gb':
	        if (num.length == 1 && num == '\u00A3' || num == '-')
	        {
		        return true;
	        }	
	        break;
	    case 'en-za':
	        if (num.length == 1 && num == 'R' || num == '-')
	        {
		        return true;
	        }	
	        break;
	    default:
	if (num.length ==1 && num == '$' || num == '-')
	{
		return true;
	}	
	        break;
	}
	num = num.toString().replace(/\$|\,|R|\u00A3/g,''); 

    var currency = /^-?[0-9]+(?:\.\d{0,2})?$/; 
    var onlyCurrency = /^(-?[0-9]+(?:\.\d{0,2})?)[\s\S]*$/; 
    
    if(!currency.test(num)) 
    { 
		//alert('Invalid character for currency field');
        field.value = formatCurrency(num.replace(onlyCurrency, "$1"));
	}
	
	if (field.value.length == 0) 
	{
		if (doDefault)
		{
			field.value = formatCurrency(0);
		}
	}
}

function formatCurrency(num) 
{
    var currencySymbol = '$';
    switch (languageFormat)
    {
        case 'en-us':
            currencySymbol = '$ ';
            break;
        case 'en-gb':
            currencySymbol = '\u00A3';
            break;
        case 'en-za':
            currencySymbol = 'R ';
            break;
        default:
            currencySymbol = '';
            break;
    }
	num = num.toString().replace(/\$|\,|R|r|\u00A3/g,'');
	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0, num.length-(4*i+3))+',' + num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + currencySymbol + num + '.' + cents);
}

function formatCurrencyIsDefault(num, blnDefault)
{
	if (!blnDefault && num.length == 0)
		return num;
	
	return formatCurrency(num);
}

function PVMoneyControl(DIVID, OBJECTID, WIDTH, HEIGHT, DEFAULTVAL, ONBLUR, SIZE, TABINDEX)
{
	var blnDefault = (DEFAULTVAL.length > 0);

	if (!blnDefault)
	{
		var strWrite = '<input type="text" id="' + OBJECTID + '" class="currencyInput" TabIndex="' + TABINDEX + '" ';
	}
	else
	{
		var strWrite = '<input type="text" id="' + OBJECTID + '" class="currencyInput" tabindex="' + TABINDEX + '" value="0.00"';
	}

	strWrite = strWrite + ' onChange="javascript:parseCurrency(this,' + blnDefault + ');"';

//	strWrite = strWrite + 'onKeyUp="javascript:parseCurrency(this,' + blnDefault + ');" onChange="javascript:parseCurrency(this,' + blnDefault + ');"';

	if (WIDTH != '100')
	{
		strWrite = strWrite + ' style="width:"' + WIDTH + 'px"';
	}
	if ((ONBLUR.toLowerCase() != 'arial') && (ONBLUR.length != 0) && (ONBLUR.toLowerCase() != 'this.value = formatCurrencyIsDefault(this.value,' + blnDefault +'); '))
	{
		strWrite = strWrite + ' onblur="this.value = formatCurrencyIsDefault(this.value,' + blnDefault +'); ' + ONBLUR + '"';
	}
	else
	{
		strWrite = strWrite + ' onblur="this.value = formatCurrencyIsDefault(this.value,' + blnDefault +');"';
	}
	strWrite = strWrite + ' />\n';
	var div = document.getElementById(DIVID);
	div.innerHTML = strWrite;
}

// mask functions
function autoMask(field, event, sMask) {
    var KeyTyped = String.fromCharCode(getKeyCode(event));
    var targ = getTarget(event);
    keyCount = targ.value.length;

	if(keyCount == sMask.length)
	{
		return false;
	}
    if (sMask.charAt(keyCount) == '*')
            return true;
            
	if ((sMask.charAt(keyCount+1) != '#') && (sMask.charAt(keyCount+1) != 'A' )  && (sMask.charAt(keyCount+1) != '*') )
	{
		field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
		var i=2;
		while ((sMask.charAt(keyCount+i) != '#') && (sMask.charAt(keyCount+i) != 'A' ) && (sMask.charAt(keyCount+1) !='*'))
		{
			field.value = field.value + sMask.charAt(keyCount+i);
			i++;
			if (i > sMask.length) break;
		}	
		return false;
	}
    if (sMask.charAt(keyCount) == KeyTyped)
    {
            return true;
    }

    if ((sMask.charAt(keyCount) == '#') && _isNumeric(KeyTyped))
        return true;

    if ((sMask.charAt(keyCount) == 'A') && _isAlpha(KeyTyped))
        return true;

	if (sMask.charAt(keyCount) == '(')
	{
		field.value = sMask.charAt(keyCount) + KeyTyped;
		return false;
	}

    if ((sMask.charAt(keyCount+1) == '?') )
    {
        field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
        return true;
    }
    if (KeyTyped.charCodeAt(0) < 32) return true;
    return false;
}

function getTarget(e) {
  // IE5
   if (e.srcElement) {
        return e.srcElement;
   }
    if (e.target) {
        return e.target;
   }
 }

  function getKeyCode(e) {
 //IE5
 if (e.srcElement) {
        return e.keyCode
 }
  // NC5
  if (e.target) {
   return e.which
  }
 }

 function _isNumeric(c)
{
        var sNumbers = "01234567890";
        if (sNumbers.indexOf(c) == -1)
                return false;
        else return true;

}

function _isAlpha(c)
{
        var lCode = c.charCodeAt(0);
        if (lCode >= 65 && lCode <= 122 )
          {
                return true;
         }
        else
        return false;
}

function _isPunct(c)
{
        var lCode = c.charCodeAt(0);
        if (lCode >= 32 && lCode <= 47 )
          {
                return true;
         }
        else
        return false;

}
// end mask functions

function PVMaskControl(DIVID, OBJECTID, CLASSNAME, MASK, ONBLUR, MAXLENGTH, TABINDEX)
{
	var strWrite = '<Input type="text" id="' + OBJECTID + '" class="' + CLASSNAME + '" tabindex="' + TABINDEX  + '"';
	if (MASK.length != 0)
	{
		strWrite = strWrite + ' onkeypress="return autoMask(this, event, \'' + MASK + '\');"';
	}
	if (MAXLENGTH.length != 0)
	{
		strWrite = strWrite + ' maxlength = "' + MAXLENGTH + '"';
	}

	if ((ONBLUR.toLowerCase() != 'arial') && (ONBLUR.length != 0))
	{
		strWrite = strWrite + ' onblur="' + ONBLUR + ';"';
	}
	strWrite = strWrite + ' title="Edit Mask: ' + MASK + '" />\n';
	var div = document.getElementById(DIVID);
	div.innerHTML = strWrite;

}


function PVBarControl(DIVID, OBJECTID, WIDTH, HEIGHT, CODEBASE)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
div.appendChild(obj);
obj.id=OBJECTID;
obj.name=OBJECTID;
obj.classid = "clsid:B283E20C-2CB3-11D0-ADA6-00400520799C";
obj.codebase = CODEBASE;
obj.width = WIDTH;
obj.height = HEIGHT;
obj.BackColor="&H00C0C0C0";
obj.BorderStyle=0;
obj.Enabled=true;
obj.Appearance=1;
obj.ShowTickMarks=false;
obj.ShowNumbers=false;
obj.ShowPercentComplete=true;
obj.Limit=100;
obj.Value=50;
obj.FillColor="8388608";
}

function PVTreeControl(DIVID, OBJECTID, WIDTH, HEIGHT, CODEBASE)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
div.appendChild(obj);
obj.id=OBJECTID;
obj.name=OBJECTID;
obj.classid = "CLSID:DB625B9A-05EA-11D2-97DD-00400520799C";
obj.codebase = CODEBASE;
obj.width = WIDTH;
obj.height = HEIGHT;
obj.Appearance=1;
obj.AlwaysShowSelection=true;
obj.AllowInPlaceEditing=false;
}

function PVComboControl(DIVID, OBJECTID, WIDTH, HEIGHT, CODEBASE, FONT, SIZE, TABINDEX)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
div.appendChild(obj);
obj.id=OBJECTID;
obj.name=OBJECTID;
obj.classid = "clsid:0FAA926E-2AF4-11D3-9995-00A0CC3A27A9";
obj.codebase = CODEBASE;
obj.width=WIDTH;
obj.height=HEIGHT;
obj.tabindex=0;
obj.Appearance=1;
obj.Border=true;
obj.Enabled=true;
obj.BackColor="16777215";
obj.ForeColor=0;
obj.ShowPictures=false;
obj.ColumnHeaders=true;
obj.PrimaryColumn=0;
obj.VisibleItems=10;
obj.ColumnHeaderHeight=20;
obj.ListMember="";
obj.ColumnHeaderForeColor="0";
obj.ColumnHeaderBackColor="14215660";
obj.SelectedForeColor="16777215";
obj.SelectedBackColor="12937777";
obj.AlternateBackColor="16777215";
obj.ItemLabelStyle=1;
obj.ItemLabelType=0;
obj.ItemLabelWidth=40;
obj.ItemLabelForeColor=0;
obj.ItemLabelBackColor="14215660";
obj.ColumnHeaderStyle=0;
obj.VerticalGridLines=true;
obj.HorizontalGridLines=true;
obj.ColumnResize=true;
obj.ItemLabelResize=true;
obj.AllowDBAutoConfig=true;
obj.GridLineColor="13421772";
obj.NullString="N/A";
obj.DropShadow=false;
obj.Font.Bold=false;
obj.Font.Name="Arial";
obj.Font.Size=8;
}


function axExportControl(DIVID, OBJECTID, CODEBASE)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
div.appendChild(obj);
obj.id=OBJECTID;
obj.name=OBJECTID;
obj.classid = "CLSID:4AA2F030-DB04-47EE-B0CB-7DE0DF47D5F6";
obj.codebase = CODEBASE;

}

function ActiveXViewerV9(DIVID)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
div.appendChild(obj);
obj.id="CRViewer";
obj.classid = "CLSID:2DEF4530-8CE6-41c9-84B6-A54536C90213";
obj.codebase = "/viewer9/activeXViewer/activexviewer.cab#Version=9,2,2,716";
obj.EnableRefreshButton = 0;
obj.EnableGroupTree = 1;
obj.DisplayGroupTree = 0;
obj.EnablePrintButton = 1;
obj.EnableExportButton = 1;
obj.EnableDrillDown = 1;
obj.EnableSearchControl = 1;
obj.EnableAnimationControl = 1;
obj.EnableZoomControl = 1;
}

function ActiveXViewerV10(DIVID)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
obj.id="CRViewer";
obj.classid = "clsid:A1B8A30B-8AAA-4a3e-8869-1DA509E8A011";
obj.codebase = "/crystalreportviewers10/ActiveXControls/ActiveXViewer.cab#Version=10,0,5,1012";
obj.EnableRefreshButton = 0;
obj.EnableGroupTree = 1;
obj.DisplayGroupTree = 0;
obj.EnablePrintButton = 1;
obj.EnableExportButton = 1;
obj.EnableDrillDown = 1;
obj.EnableSearchControl = 1;
obj.EnableAnimationControl = 1;
obj.EnableZoomControl = 1;
div.appendChild(obj);
}

function ActiveXViewerV11(DIVID)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
obj.id="CRViewer";
obj.classid = "clsid:460324E8-CFB4-4357-85EF-CE3EBFE23A62";
obj.codebase = "/crystalreportviewers11/ActiveXControls/ActiveXViewer.cab#Version=11,0,0,893";
obj.EnableRefreshButton = 0;
obj.EnableGroupTree = 1;
obj.DisplayGroupTree = 0;
obj.EnablePrintButton = 1;
obj.EnableExportButton = 1;
obj.EnableDrillDown = 1;
obj.EnableSearchControl = 1;
obj.EnableAnimationControl = 1;
obj.EnableZoomControl = 1;
div.appendChild(obj);
}

function TRSLincoln(DIVID, OBJECTNAME, CODEBASE)
{
var div = document.getElementById(DIVID);
var obj = document.createElement('object');
obj.id = OBJECTNAME;
obj.classid = "CLSID:7667BA0B-72B6-11D3-8896-0020781534B9";
obj.codebase = CODEBASE;
obj.width = 1;
obj.height = 1;
div.appendChild(obj);
}

function mask(str,textbox,loc,delim){
var locs = loc.split(',');

for (var i = 0; i <= locs.length; i++){
	for (var k = 0; k <= str.length; k++){
	 if (k == locs[i]){
	  if (str.substring(k, k+1) != delim){
	   if (event.keyCode != 8){ //backspace
	    str = str.substring(0,k) + delim + str.substring(k,str.length);
       }
	  }
	 }
	}
 }
textbox.value = str
}

var keybYN = new keybEdit('yn','Valid values are \'Y\' or \'N\'.');
var keybNumeric = new keybEdit('01234567890','Numeric input only.');
var keybAlpha = new keybEdit('abcdefghijklmnopqurstuvwxy ','Alpha input only.');
var keybAlphaNumeric = new keybEdit('abcdefghijklmnopqurstuvwxy01234567890 ','Alpha-numeric input only.');
var keybDecimal = new keybEdit('01234567890.','Decimal input only.');
var keybDate =  new keybEdit('01234567890/','Date input only');;
var keybYNNM = new keybEdit('yn');
var keybNumericNM = new keybEdit('01234567890');
var keybAlphaNM = new keybEdit('abcdefghijklmnopqurstuvwxy');
var keybAlphaNumericNM = new keybEdit('abcdefghijklmnopqurstuvwxy01234567890');
var keybDecimalNM = new keybEdit('01234567890.');
var keybDateNM = new keybEdit('01234567890/');;

function keybEdit(strValid, strMsg) {
	/*	Function:		keybEdit
		Creation Date:	October 11, 2001
		Programmer:		Edmond Woychowsky
		Purpose:		The purpose of this function is to be a constructor for
						the keybEdit object.  keybEdit objects are used by the
						function editKeyBoard to determine which keystrokes are
						valid for form objects.  In addition, if an error occurs,
						they provide the error message.
						
						Please note that the strValid is converted to both
						upper and lower case by this constructor.  Also, that
						the error message is prefixed with 'Error:'.
						
						The properties for this object are the following:
							valid	=	Valid input characters
							message	=	Error message
							
						The methods for this object are the following:
							getValid()	=	Returns a string containing valid
											characters.
							getMessage()=	Returns a string containing the
											error message.

		Update Date:	Programmer:			Description:
	*/

	//	Variables
	var reWork = new RegExp('[a-z]','gi');		//	Regular expression\

	//	Properties
	if(reWork.test(strValid))
		this.valid = strValid.toLowerCase() + strValid.toUpperCase();
	else
		this.valid = strValid;

	if((strMsg == null) || (typeof(strMsg) == 'undefined'))
		this.message = '';
	else
		this.message = strMsg;

	//	Methods
	this.getValid = keybEditGetValid;
	this.getMessage = keybEditGetMessage;
	
	function keybEditGetValid() {
	/*	Function:		keybEdit
		Creation Date:	October 11, 2001
		Programmer:		Edmond Woychowsky
		Purpose:		The purpose of this function act as the getValid method
						for the keybEdit object.  Please note that most of the
						following logic is for handling numeric keypad input.

		Update Date:		Programmer:			Description:
	*/

		return this.valid.toString();
	}
	
	function keybEditGetMessage() {
	/*	Function:		keybEdit
		Creation Date:	October 11, 2001
		Programmer:		Edmond Woychowsky
		Purpose:		The purpose of this function act as the getMessage method
						for the keybEdit object.

		Update Date:	Programmer:			Description:
	*/
	
		return this.message;
	}
}




void function editKeyBoard(objForm, objKeyb) {
	/*	Function:		editKeyBoard
		Creation Date:	October 11, 2001
		Programmer:		Edmond Woychowsky
		Purpose:		The purpose of this function is to edit edit keyboard input
						to determine if the keystrokes are valid.
	
		Update Date:		Programmer:			Description:
	*/

	strWork = objKeyb.getValid();
	strMsg = '';							// Error message
	blnValidChar = false;					// Valid character flag

	// Part 1: Validate input
	if(!blnValidChar)
		for(i=0;i < strWork.length;i++)
			if(window.event.keyCode == strWork.charCodeAt(i)) {
				blnValidChar = true;

				break;
			}

	// Part 2: Build error message
	if(!blnValidChar) {
		if(objKeyb.getMessage().toString().length != 0)
			alert('Error: ' + objKeyb.getMessage());

		window.event.returnValue = false;		// Clear invalid character
		objForm.focus();						// Set focus
	}
}
function PVNationalIDControl(DIVID, OBJECTID, WIDTH, HEIGHT, CLASSNAME, ONBLUR, TABINDEX, ck)
{
	
	var strWrite = '<input type="text" id="' + OBJECTID + '" class="' + CLASSNAME + '" TabIndex="' + TABINDEX + '" ';
	
	if (WIDTH != '100')
	{
		strWrite = strWrite + ' style="width:' + WIDTH + 'px"';
	}
	
	strWrite = strWrite + ' onblur = CheckNationalID(this.id,this.value,"' + ck + '","' + ONBLUR + '");';
	
	 
	strWrite = strWrite + ' />\n';
	var div = document.getElementById(DIVID);
	div.innerHTML = strWrite;
}

function CheckNationalID(id, val, ck, ONBLUR)
{
    var len=val.length;
    var c = ck.split('!');
    
    switch (languageFormat)
    {
        case 'en-us':
            
            break;
        case 'en-gb':
           
            break;
        case 'en-za':
           
           
           if (isNaN(val))
           {
             document.getElementById('Message').innerText = 'Error: Number Check Failed';
             document.getElementById(id).focus();
             return false;
           }
            
           if (len != 13)
           {
                document.getElementById('Message').innerText = 'Error:  Length Check Failed';
                document.getElementById(id).focus();
                return false;
           }
            
           
           if (c[0].length != 6)
           {
                document.getElementById('Message').innerText = 'Error:  Birth Date Has Not Been Set In CAMS';
                document.getElementById(id).focus();
                return false;
           }
            
          
            
            if (c[1].toUpperCase() != 'F' && c[1].toUpperCase() != 'M')
            {
                document.getElementById('Message').innerText = 'Error:  Gender Has Not Been Set In CAMS';
                document.getElementById(id).focus();
                return false;
            }
                
            if (val.substr(0,6) != c[0])
            {
                document.getElementById('Message').innerText = 'Error:  Birth Date Does Not Correspond With National ID';
                document.getElementById(id).focus();
                return false;
            }
            
            if (Number(val.charAt(6)) > 4 && c[1].toUpperCase() == 'F')
            {
                document.getElementById('Message').innerText = 'Error:  Gender Does Not Correspond with National ID';
                document.getElementById(id).focus();
                return false;
            }
            
            if (Number(val.charAt(6)) < 5 && c[1].toUpperCase() == 'M')
            {
                document.getElementById('Message').innerText = 'Error:  Gender Does Not Correspond with National ID';
                document.getElementById(id).focus();
                return false;
            }
            
            if (val.substr(7,3) == val.charAt(6) + val.charAt(6) + val.charAt(6))
            {
                document.getElementById('Message').innerText = 'Error:  Repeated Characters Not Allowed.';
                document.getElementById(id).focus();
                return false;
            }
            
            var odd='';
            var even = '';
            var sodd = 0;
            var seven = 0;
            
            for (var i=0; i< val.length -1; i++)
            {
                
                if ((i+1)%2)
                {
                   //odd
                   
                   odd += val.charAt(i);
                }
                
                else
                
                {
                    //even
                    
                    even += val.charAt(i);
                }
             }
             
             for (var j=0; j<odd.length; j++)
             {
                sodd += Number(odd.charAt(j));
             }
             
             even = Number(even) * 2;
             even += '';
             
             for (var k=0; k < even.length; k++)
             {
             
                seven += Number(even.charAt(k));
             }
             
             
             var s = sodd + seven;
    
             s += '';
            
             var ld = 10 - Number(s.charAt(s.length -1));
             ld += '';
             lastD = ld.charAt(ld.length -1);
             
             if (lastD != val.charAt(val.length -1))
             {
                document.getElementById('Message').innerText = 'Error:  Last Digit Does Not Equal ' + ld;
                document.getElementById(id).focus();
                return false;
             }
                
             document.getElementById('Message').innerText = '';   
             
             
               
            break;
        default:
            
            break;
    }

    if (ONBLUR.length > 0)
    {
        eval(ONBLUR);
    }
        
    return true;
}

function fnBuildOptionList(ele, optVal, sel) 
{
    var opAR = optVal.split('~');
    var op = document.createElement('option');
    op.value = optVal;
    op.text = opAR[1];
    if (sel != 'undefined')
    {
        op.selected = sel;
    }
    try
    {
        ele.add(op, null);
    }
    catch(ex)
    {
        try
        {
            ele.add(op);
        }
        catch(ex)
        {
            alert(ex);
        }
    }
}

function fnBuildOptionList2(ele, optVal, optText, sel) 
{
    var op = document.createElement('option');
    op.value = optVal;
    op.text = optText;
    if (sel != 'undefined')
    {
        op.selected = sel;
    }
    try
    {
        ele.add(op, null);
    }
    catch(ex)
    {
        try
        {
            ele.add(op);
        }
        catch(ex)
        {
            alert(ex);
        }
    }
}

function DisableInputFlds()
{
    var fld = document.getElementsByTagName('input');
    for (var i=0; i < fld.length; i++)
    {
        if (fld[i].type != 'hidden')
        {
            fld[i].disabled = true;
        }
    }
    
    var select = document.getElementsByTagName('select');
    for (var i=0; i < select.length; i++)
    {
        select[i].disabled = true;
    }
    
    var txtArea = document.getElementsByTagName('textarea');
    for (var i=0; i < txtArea.length; i++)
    {
        txtArea[i].disabled = true;
    }
}

function DisableClassLabel()
{
//    var a = [];
    var classes = new Array('ReqdPromptText', 'PromptText', 'LPromptText', 'RecommendedLabel', 'LReqdPromptText', 'SevisPrompt');
    var newClass = new Array('DisabledText', 'DisabledText', 'DisabledTextLeft', 'DisabledText', 'DisabledTextLeft', 'DisabledText');
	var els = document.getElementsByTagName('td');
	var j = 0;
    
    for(var i=0; i < els.length; i++)
    {
		for (j=0; j < classes.length; j++)
		{
			if (els[i].className.toLowerCase() == classes[j].toLowerCase())
			{
				els[i].className = newClass[j];
				j = classes.length;
			}
		}
    }
}
