	var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
	function _isInteger(val){
		var digits="1234567890";
		for(var i=0;i < val.length;i++){
			if(digits.indexOf(val.charAt(i))==-1){
				return false;
			}
		}
		return true;
	}
	
	function moneyFormat(amount){
		// THIS FUNCTION IS COURETSY OF WILLIAM BONTRAGER
		// http://www.web-source.net/cgi-bin/web/jump.cgi?ID=762
		var i = parseFloat(amount);
		if(isNaN(i)){
			i = 0.00;
		}
		var minus = '';
		if(i < 0){
			minus = '-';
		}
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if(s.indexOf('.') < 0){
			s += '.00';
		}
		if(s.indexOf('.') == (s.length - 2)){
			s += '0';
		}
		s = minus + s;
		return s;
	}
	
	function parseDate(val, phpDateFormat){
		var dividers = new Array('/','-','.');
		for(var a=0; a<dividers.length; a++){
			if(phpDateFormat.indexOf(dividers[a]) != '-1'){
				var divider = dividers[a];
			}
		}
		var dateFormat = '';
		for(var a=0; a<phpDateFormat.length; a++){
			if(phpDateFormat.charAt(a) == 'd'){
				dateFormat = dateFormat+'dd';
			} else if(phpDateFormat.charAt(a) == 'j'){
				dateFormat = dateFormat+'d';
			} else if(phpDateFormat.charAt(a) == 'm'){
				dateFormat = dateFormat+'MM';
			} else if(phpDateFormat.charAt(a) == 'n'){
				dateFormat = dateFormat+'M';
			} else if(phpDateFormat.charAt(a) == 'y'){
				dateFormat = dateFormat+'yy';
			} else if(phpDateFormat.charAt(a) == 'Y'){
				dateFormat = dateFormat+'yyyy';
			} else {
				dateFormat = dateFormat + phpDateFormat.charAt(a);
			}
		}
		var formattedDate = "";
		for(var a=0; a<dividers.length; a++){
			// REPLACES ALL POSSIBLE DIVIDERS WITH /
			val = val.replace(dividers[a], "/");
			val = val.replace(dividers[a], "/");
			val = val.replace(dividers[a], "/");
			val = val.replace(dividers[a], "/");
			val = val.replace(dividers[a], "/");
		}
		a = 0;
		var parsedYear = "";
		var parsedMonth = "";
		var parsedDay = "";
		var chunks = val.split('/');
		if(chunks.length == 3){
			for(a=0; a<chunks.length; a++){
				if(chunks[a].length == 4){
					// SHOULD BE YEAR
					if(parsedYear == ""){
						parsedYear = chunks[a];
					}else{
						alert('Unknown date format. Try using the mm/dd/yyyy format.');
						return '';
					}
				} else {
					if(chunks[a] > 12){
						// SHOULD BE DAY
						if(parsedDay == ""){
							parsedDay = chunks[a];
						} else {
							alert('Unknown date format. Try using the mm/dd/yyyy format.');
							return '';
						}
					} else {
						// COULD BE DAY OR MONTH
						if(parsedMonth == ""){
							parsedMonth = chunks[a];
						} else {
							parsedDay = chunks[a];
						}
					}
				}
			}
		} else {
			alert('Unknown date format. Try using the mm/dd/yyyy format.');
			return '';
		}
		if(dateFormat.indexOf('.') != '-1'){
			var formattedDivider = '.';
		} else if(dateFormat.indexOf('-') != '-1'){
			var formattedDivider = '-';
		} else if(dateFormat.indexOf('/') != '-1'){
			var formattedDivider = '/';
		}
		var formatArray = dateFormat.split(formattedDivider);
		for(a=0;a<formatArray.length;a++){
			if(formatArray[a] == "MM"){
				formattedDate = formattedDate+parsedMonth;
			} else if(formatArray[a] == "M"){
				formattedDate = formattedDate+parsedMonth;
			}
			if(formatArray[a] == "dd"){
				formattedDate = formattedDate+parsedDay;
			} else if(formatArray[a] == "d"){
				formattedDate = formattedDate+parsedDay;
			}
			if(formatArray[a] == "yyyy"){
				formattedDate = formattedDate+parsedYear;
			} else if(formatArray[a] == "yy"){
				formattedDate = formattedDate+parsedYear;
			}
			if(a!= formatArray.length - 1){
				formattedDate = formattedDate + formattedDivider;
			}
		}
		return formattedDate;
	}
	
	function checkEmail(email)
	{
		var x = email;
		if (x.length == 0) return false;
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(x)) return true;
		else return false;
	}
	
	// USED FOR MD5 ENCRYPTION
	var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
	// USED FOR MD5 ENCRYPTION
	var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
	// USED FOR MD5 ENCRYPTION
	var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
	function md5(stringValue){
		return binl2hex(core_md5(str2binl(stringValue), stringValue.length * chrsz));
	}

	function strpos(haystack, needle, offset){
		for(var i=0; i<haystack.length; i++){
			if(haystack.substr(i, needle.length) == needle){
				if(offset != ''){
					if(i>offset){
						return i;
					}	
				} else {
					return i;
				}
			}
		}
		return false;
	}
	
	// USED FOR MD5 ENCRYPTION
	function core_md5(x, len){
		/* append padding */
		x[len >> 5] |= 0x80 << ((len) % 32);
		x[(((len + 64) >>> 9) << 4) + 14] = len;
		var a =  1732584193;
		var b = -271733879;
		var c = -1732584194;
		var d =  271733878;
		for(var i = 0; i < x.length; i += 16){
			var olda = a;
			var oldb = b;
			var oldc = c;
			var oldd = d;
			a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
			d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
			c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
			b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
			
			a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
			d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
			c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
			b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
			
			a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
			d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
			c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
			b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
			
			a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
			d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
			c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
			b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
			
			a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
			d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
			c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
			b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
			
			a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
			d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
			c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
			b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
			
			a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
			d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
			c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
			b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
			
			a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
			d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
			c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
			b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
			
			a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
			d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
			c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
			b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
			
			a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
			d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
			c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
			b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
			
			a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
			d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
			c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
			b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
			
			a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
			d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
			c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
			b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
			
			a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
			d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
			c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
			b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
			
			a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
			d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
			c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
			b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
			
			a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
			d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
			c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
			b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
			
			a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
			d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
			c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
			b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
			
			a = safe_add(a, olda);
			b = safe_add(b, oldb);
			c = safe_add(c, oldc);
			d = safe_add(d, oldd);
		}
		return Array(a, b, c, d);
	}

	// USED FOR MD5 ENCRYPTION
	function safe_add(x, y){
		var lsw = (x & 0xFFFF) + (y & 0xFFFF);
		var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
		return (msw << 16) | (lsw & 0xFFFF);
	}
	
	// USED FOR MD5 ENCRYPTION
	function md5_cmn(q, a, b, x, s, t){
		return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
	}

	// USED FOR MD5 ENCRYPTION
	function md5_ff(a, b, c, d, x, s, t){
		return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
	}

	// USED FOR MD5 ENCRYPTION
	function md5_gg(a, b, c, d, x, s, t){
		return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
	}

	// USED FOR MD5 ENCRYPTION
	function md5_hh(a, b, c, d, x, s, t){
		return md5_cmn(b ^ c ^ d, a, b, x, s, t);
	}

	// USED FOR MD5 ENCRYPTION
	function md5_ii(a, b, c, d, x, s, t){
		return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
	}

	// USED FOR MD5 ENCRYPTION
	function str2binl(str){
		var bin = Array();
		var mask = (1 << chrsz) - 1;
		for(var i = 0; i < str.length * chrsz; i += chrsz){
			bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
		}
		return bin;
	}

	// USED FOR MD5 ENCRYPTION
	function binl2hex(binarray){
		var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
		var str = "";
		for(var i = 0; i < binarray.length * 4; i++){
			str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
		}
		return str;
	}

	// USED FOR MD5 ENCRYPTION
	function binl2str(bin){
		var str = "";
		var mask = (1 << chrsz) - 1;
		for(var i = 0; i < bin.length * 32; i += chrsz){
			str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
		}
		return str;
	}

	// USED FOR MD5 ENCRYPTION
	function bit_rol(num, cnt){
		return (num << cnt) | (num >>> (32 - cnt));
	}

	var date_1 = new Date();
	function showCalendar(fieldName,minYear,maxYear,format){
		if (minYear=="") minYear="1900";
		if (maxYear=="") maxYear="2050";
		if (format=="") format="1";
		calWindow = window.open('/master_data_set/classes/javascript/date_picker/datepicker.html?fieldName='+fieldName+'&minYear='+minYear+'&maxYear='+maxYear+'&format='+format, 'calWindow', 'toolbar=no,location=no,scrollbars=no,status=no,resizable=no,width=230,height=164');
		calWindow.focus();
		if (calWindow.opener == null) calWindow.opener = self;
	}
	function show_main_balloon(){
		if(navigator.appName == "Microsoft Internet Explorer"){ // INTERNET EXPLORER
			if(document.body.client){
				document.body.getElementById('main_smokescreen').style.height=document.body.clientHeight;
			}else if(getWindowScrollOffsetY()){
//				alert("1");
				var a = getWindowScrollOffsetY();
				document.body.getElementById('main_smokescreen').style.height = parseInt(document.body.style.height) + parseInt(a);
//				alert(parseInt(document.body.style.height) + parseInt(a));
//				alert("3");
			}else{
				
			}
		}else{
			document.getElementById('main_smokescreen').style.height=document.height;
		}
		document.getElementById('main_smokescreen').style.display='block';
		document.getElementById('main_balloon_holder').style.display='block';
	}
	function hide_main_balloon(){
		document.getElementById('main_smokescreen').style.display='none';
		document.getElementById('main_balloon_holder').style.display='none';
	}
	function getInnerWindowWidth(){
		if(typeof(window.innerWidth)=="number"){
			// Non-Internet Explorer
			var innerWindowWidth = window.innerWidth;
		}else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
			// IE 6+ in "standards compliant mode"
			var innerWindowWidth = document.documentElement.clientWidth;
		}else if(document.body && (document.body.clientWidth || document.body.clientHeight)){
			// IE 4 compatible
			var innerWindowWidth = document.body.clientWidth;
		}else {
			var innerWindowWidth = 0;
		}
		return innerWindowWidth;
	}
	function getInnerWindowHeight(){
		if(typeof(window.innerWidth)=="number"){
			// Non-Internet Explorer
			var innerWindowHeight = window.innerHeight;
		}else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
			// IE 6+ in "standards compliant mode"
			var innerWindowHeight = document.documentElement.clientHeight;
		}else if(document.body && (document.body.clientWidth || document.body.clientHeight)){
			// IE 4 compatible
			var innerWindowHeight = document.body.clientHeight;
		}else {
			var innerWindowHeight = 0;
		}
		return innerWindowHeight;
	}
	function getWindowScrollOffsetX(){
		if(typeof(window.pageYOffset)== "number"){
			//Netscape compliant
			var scrollOffsetX = window.pageXOffset;
		}else if(document.body && (document.body.scrollLeft || document.body.scrollTop)){
			//DOM compliant
			var scrollOffsetX = document.body.scrollLeft;
		}else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){
			//IE6 standards compliant mode
			var scrollOffsetX = document.documentElement.scrollLeft;
		}else {
			var scrollOffsetX = 0;
		}
		return scrollOffsetX;
	}
	function getWindowScrollOffsetY(){
		if(typeof(window.pageYOffset)== "number"){
			//Netscape compliant
			var scrollOffsetY = window.pageYOffset;
		}else if(document.body && (document.body.scrollLeft || document.body.scrollTop)){
			//DOM compliant
			var scrollOffsetY = document.body.scrollTop;
		}else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){
			//IE6 standards compliant mode
			var scrollOffsetY = document.documentElement.scrollTop;
		}else {
			var scrollOffsetY = 0;
		}
		return scrollOffsetY;
	}
	function setUseableWidthGlobalVariable(){
		var innerWindowWidth = getInnerWindowWidth();
		var useableWidth = innerWindowWidth - 4;
		document.getElementById("useableWidth").innerHTML=parseInt(useableWidth);
	}
	function setUseableHeightGlobalVariable(){
		var innerWindowHeight = getInnerWindowHeight();
		var useableHeight = innerWindowHeight;
		document.getElementById("useableHeight").innerHTML=parseInt(useableHeight);
	}
	
