﻿/*
var answer = confirm ("Please click on OK to continue loading my page, or CANCEL to be directed to the Yahoo site.")
if (!answer)
window.location="http://www.yahoo.com/"
*/
var strHospitalName = "BV Phụ Sản Minh Hải";
var strHospitalAddress = "09 Lạc Long Quân K.5 P.7<br>Tp.Cà Mau";
var strHospitalPhoneFax = "(08) 9135000";

//============== default info =============================
var strStateId = "823";
var strDistrictId = "82301";
var strVillage = "8230111"
var strPaidTypeId = "1";
var strClassType = "0";
var strBlood = "0";
var strJobId = "6";
//=============================================================================
var strHost = "";
var strUpdateUrl = strHost + "update.php";//&intGetInserted=1
var strAccessUrl = strHost + "getpaginglist.php";
var strLoginUrl = strHost + "login.php";//login.aspx?strUserLogin=admin&strUserPass=admin&intFunctionId=1
var strLoginServerUrl = strHost + "loginServer.php";//login.aspx?strUserLogin=admin&strUserPass=admin&intFunctionId=1
var strExportUrl = strHost + "export.php";//export.aspx?strSql=select%20*%20from%20products&strFilename=test.xml&strPath=quan_huyen
var strRecordUrl = strHost + "getRecord.php";//getRecord.aspx?strSql=select%20*%20from%20tblProvider%20where%20prvid=1
var strLogoutUrl = strHost + "logoutServer.php";
var strHomePage = strHost + "toathuoc.php";
var strAjaxErrorDiv = "divAjaxError";
var intLanguage = 0;//0 - Vietnamese;1 - English
var strDateSign = ".";
//=============================================================
//var strDate = formatDate(new Date(),strDateSign);//01.01.2008
//var strUserLogin = "admin";
//var strUserName = "Administrator";
//var strUserId = "1";
//var strDepId = "1";
//var strDepName = "1";
//var strSessionId = "1";
//=============================================================
var strPatientInitCode = "BN";
var strServiceOrderInitCode = "VP";
var strServiceAssignOrderInitCode = "CD";
var strDrugOrderInitCode = "DT";
var strTransactionInitCode = "TC";
var strTestOrderInitCode = "XN";
var strRadiologyOrderInitCode = "SA";
var strImportSaleOrderInitCode = "PN";
var strExportSaleOrderInitCode = "PX";
var strRetailExportSaleOrderInitCode = "BL";
//=============================================================
function trim(pstr){
	return pstr.replace(/^\s+/,"").replace(/\s+$/,"");
}
//=============================================================
function getVnWeek(){
	var objDate = new Date(strDate.substr(6,4),parseInt(strDate.substr(3,2),10) - 1,
		strDate.substr(0,2));
	var strWeekOfDay = new Array("Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm",
		"Thứ sáu","Thứ bảy");
	//alert(parseInt(objDate.getDay()));
	return strWeekOfDay[parseInt(objDate.getDay())];
}
//=============================================================
function sendKey(pstr){
	var objShell = null;
	if(window.navigator.appName != "Netscape")
		objShell = new ActiveXObject("WScript.Shell");
	else
		return;
	objShell.SendKeys(pstr);
}
//=============================================================
function loadXMLstr(pstr){
	if (window.ActiveXObject){//IE
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(pstr);
	}
	else{// code for Mozilla, Firefox, Opera, etc.
		var parser = new DOMParser();
		var xmlDoc = parser.parseFromString(pstr,"text/xml");
	}
	return xmlDoc;
	//var x=objXML.getElementsByTagName('to');
	//for(i=0;i<x.length;i++)
	//alert("Node value : " + x.item(i).childNodes[0].nodeValue + "\n" + 
	//	"Node attributes name : " + x.item(i).attributes[0].name + "\n" + 
	//	"Node attributes value : " + x.item(i).attributes[0].value); 
}
//==============================================================
function loadXMLfile(pstr){
	var xmlDoc;
	// code for IE
	if (window.ActiveXObject)
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	else if (document.implementation && document.implementation.createDocument)
		xmlDoc = document.implementation.createDocument("","",null);
	else
		alert('Your browser cannot handle this script');
	xmlDoc.async = false;
	xmlDoc.load(pstr);
	return xmlDoc;
	//xmlDoc.onload = getmessage;
	//using
	//var x=xmlDoc.getElementsByTagName('to');
	//for(i=0;i<x.length;i++)
	//{
	//	document.write(x.item(i).childNodes[0].nodeValue);
	//	document.write(x.item(i).attributes[0].name);
	//	document.write(x.item(i).attributes[0].value);
	//}
}
//==============================================================
function getCodedURL(pstr){
	var strData = "",intLength,intCount,strTemp;
	intLength = pstr.length;
	for(intCount = 0;intCount < intLength;intCount++){
		strTemp = pstr.charAt(intCount);
		if(strTemp == " ")
			strData = strData + "%20";
		else
			strData = strData + strTemp;
	}
	return strData;
}
//======================================================================
var strTempStyle;
function overRow(pobjThis){
	//alert("over");return;
	strTempStyle = pobjThis.className;
	pobjThis.className = "overRow";
}
//======================================================================
function outRow(pobjThis){
	//alert("out");return;
	pobjThis.className = strTempStyle;
}
//======================================================================
function checkString(pstr,pstrField){
	var blnResult;
	var filter=/[\?\{\'\=\}\"\<\>\\%<>]/;
	if (filter.test(pstr)){
		blnResult = false; 
		alert("[" + pstrField + "] Xin loại bỏ các ký tự đặc biệt.");
	}
	else
		blnResult = true;
	return blnResult;
}
//======================================================================
function checkNumber(pstr,pstrField){
	var strValidChars = "0123456789.,";
	var blnResult = true;
	var strChar;
	for (var intCount = 0; intCount < pstr.length && blnResult == true; intCount++){
		strChar = pstr.charAt(intCount); 
		if (strValidChars.indexOf(strChar) == -1){
			blnResult = false;
			alert("[" + pstrField + "] Xin nhập số.");
		}
    }
   return blnResult;   
}
// ===========================================
function getKeycode(e){
	if(window.navigator.appName != "Netscape")
		return event.keyCode;
	else
		return e.which;
}
// ===========================================
function getX(pobj){
	var intX = 0;
	while (pobj){
		intX += pobj.offsetLeft;
		pobj = pobj.offsetParent;
	}
	return intX;
}
// ===========================================
function getY(pobj){
	var intY = 0;
	while (pobj){
		intY += pobj.offsetTop;
		pobj = pobj.offsetParent;
	}
	return intY;
}
// ===========================================
function showMePosition(pobj,pstrDiv){
	//window.status = "X:Y - " + getX(pobj) + ":" + getY(pobj);
	document.getElementById(pstrDiv).style.top = (getY(pobj) + 22) + "px";
	document.getElementById(pstrDiv).style.left = getX(pobj) + "px";
}
// ============================================
function getWidth(oNode){return oNode.offsetWidth;}
function getHeight(oNode){return oNode.offsetHeight;}
//=========================================================================
function getCSS(pintStyle,pintRule){
	if(window.navigator.appName == "Netscape")
		return document.styleSheets.item(pintStyle).cssRules.item(pintRule);
	else
		return document.styleSheets.item(pintStyle).rules.item(pintRule);
	//getCSS(1,0).style.fontSize = "16px";	
}
//=========================================================================
function getOptionURL(pstrId,pstrURL){
	clearSelectOption(pstrId);
	var objSelect = document.getElementById(pstrId);
	var objXML = loadXMLstr(getResponse(pstrURL));//xml_parser.js
	var x = objXML.getElementsByTagName('item');
	for(i = 0;i < x.length;i++){
		objSelect.options[i] = new Option(x.item(i).attributes[1].value,
		x.item(i).attributes[0].value);
	}
}
//=========================================================================
function getOptionFile(pstrId,pstrXMLfile){
	var i;
	clearSelectOption(pstrId);
	var objSelect = document.getElementById(pstrId);
	var objXML = loadXMLfile(pstrXMLfile);//xml_parser.js
	var x = objXML.getElementsByTagName('item');
	objSelect.options[0] = new Option("","");
	for(i = 0;i < x.length;i++){
		objSelect.options[i + 1] = new Option(x.item(i).attributes[1].value,
		x.item(i).attributes[0].value);
	}
}
//=========================================================================
function getOptionString(pstrId,pstrXML){
	clearSelectOption(pstrId);
	var objSelect = document.getElementById(pstrId);
	var objXML = loadXMLstr(pstrXML);//xml_parser.js
	var x = objXML.getElementsByTagName('item');
	objSelect.options[0] = new Option("","");
	for(i = 0;i < x.length;i++){
		objSelect.options[i + 1] = new Option(x.item(i).attributes[1].value,
		x.item(i).attributes[0].value);
	}
}
//=========================================================================
function setComboValue(pstrCombo,pstrValue){
	var objCombo = document.getElementById(pstrCombo);
	for(i = 0;i < objCombo.options.length;i++)
		if(objCombo.options.item(i).value == pstrValue){
			objCombo.value = pstrValue;
			return;
		}
}
//=========================================================================
function setCombo(pobjCombo,pstrValue){
	var i;
	for(i = 0;i < pobjCombo.options.length;i++)
		if(pobjCombo.options.item(i).value == pstrValue){
			pobjCombo.value = pstrValue;
			return;
		}
}
//=========================================================================
function getInsertedId(pstrData,pstrControlId){
	var objXML = loadXMLstr(pstrData);
	document.getElementById(pstrControlId).value = 
		objXML.getElementsByTagName('item').item(0).attributes[0].value;
}
//=========================================================================
function addSelectOption(pstrId,pstrValue,pstrText){
	//clearSelectOption(pstrId);
	var objSelect = document.getElementById(pstrId);
	var objOption = document.createElement("OPTION");
	objOption.text = pstrText;
	objOption.value = pstrValue;
	if(window.navigator.appName != "Netscape")
		objSelect.add(objOption);
	else
		objSelect.appendChild(objOption);
}
//=========================================================================
function clearSelectOption(pstrId){
	var objSelect = document.getElementById(pstrId);
	while(objSelect.hasChildNodes())
		objSelect.removeChild(objSelect.childNodes[0]);
}
//=========================================================================
var strActiveDeactive = new Array("Deactive","Active");
function intToYesNoString(pstrTable,pintColumn,pintFromRow){
	var objTable = document.getElementById(pstrTable);
	var intCount;
	//alert("Table row : " + objTable.rows.length);
	if(window.navigator.appName != "Netscape")
		for(intCount = pintFromRow;intCount < objTable.rows.length - 2;intCount++){
			var objCell = objTable.rows.item(intCount).cells.item(pintColumn);
			if(objCell) objCell.innerHTML = strActiveDeactive[parseInt(objCell.innerText)];
		}
	else
		for(intCount = pintFromRow;intCount < objTable.rows.length - 2;intCount++){
			var objCell = objTable.rows.item(intCount).cells.item(pintColumn);
			if(objCell) objCell.innerHTML = strActiveDeactive[parseInt(objCell.textContent)];
		}
}
//=========================================================================
function formatDateGrid(pstrTable,pintColumn,pintFromRow){
	var objTable = document.getElementById(pstrTable);
	var intCount;
	//alert("Table row : " + objTable.rows.length);
	if(window.navigator.appName != "Netscape")
		for(intCount = pintFromRow;intCount < objTable.rows.length - 2;intCount++){
			var objCell = objTable.rows.item(intCount).cells.item(pintColumn);
			if(objCell) objCell.innerHTML = formatDate(objCell.innerText,strDateSign);
		}
	else
		for(intCount = pintFromRow;intCount < objTable.rows.length - 2;intCount++){
			var objCell = objTable.rows.item(intCount).cells.item(pintColumn);
			if(objCell) objCell.innerHTML = formatDate(objCell.textContent,strDateSign);
		}
	//formatDate(pstr,pstrSign);
}
//=========================================================================
//function formatGridTransaction(pstrTable,intColumn){
//	var objTable = document.getElementById(pstrTable);
//	var intCount;
//	//alert("Table row : " + objTable.rows.length);
//	if(window.navigator.appName != "Netscape")
//		for(intCount = 1;intCount < objTable.rows.length - 2;intCount++){
//			var objCell = objTable.rows.item(intCount).cells.item(intColumn);
//			if(objCell) objCell.innerHTML = formatDate(objCell.innerText,strDateSign);
//			//alert(objCell.innerHTML);
//		}
//	else
//		for(intCount = 1;intCount < objTable.rows.length - 2;intCount++){
//			var objCell = objTable.rows.item(intCount).cells.item(intColumn);
//			if(objCell) objCell.innerHTML = formatDate(objCell.textContent,strDateSign);
//			//alert(objCell.textContent);
//		}
//	//formatDate(pstr,pstrSign);
//}
//=========================================================================
function getFilterStatusCombo(pstrStatusFilterControlId){
return "<select id=" + pstrStatusFilterControlId + " style='width:100%'>" +
	"<option value=''></option><option value='0'>" + strActiveDeactive[0] + "</option>" +
	"<option value='1'>" + strActiveDeactive[1] + "</option></select>";
}
//=========================================================================
function replaceBR(pstr){
	if(window.navigator.appName != "Netscape"){
		var objRegExp = new RegExp("\n<br>","gi");
		pstr = pstr.replace(objRegExp,"\n");
		objRegExp = new RegExp("<br>","gi");
		return pstr.replace(objRegExp,"\n");
	}
	var objRegExp = new RegExp("<br>","gi");
	return pstr.replace(objRegExp,"\n");
}
//=========================================================================
function replace(pstr,pstrFilter,pstrReplace){
	var objRegExp = new RegExp(pstrFilter,"gi");
	return pstr.replace(objRegExp,pstrReplace);
}
//=========================================================================
function replaceSql(pstr){
	var strData = ""
	strData = replace(pstr,"%","{percent}");
	strData = replace(strData,"/+","{plus}");
	return strData;
}
//=========================================================================
function exportXml(pstrSql,pstrPath,pstrFilename){
	var strData = "",intCount;
	strData += "strSql=" + pstrSql;
	strData += "&strPath=" + pstrPath;
	strData += "&strFilename=" + pstrFilename;
	strData = replaceSql(strData);//alert("Export : " + strData);
	makeRequest1(strData,strExportUrl,"exportXmlResponse()");
}
//=========================================================================
function exportXmlResponse(){
	//alert("Exported : " + strResponseText1);
}
//=========================================================================
function exportXml1(pstrSql,pstrPath,pstrFilename){
	var strData = "",intCount;
	strData += "strSql=" + pstrSql;
	strData += "&strPath=" + pstrPath;
	strData += "&strFilename=" + pstrFilename;
	strData = replaceSql(strData);//alert("Export : " + strData);
	makeRequest2(strData,strExportUrl,"exportXmlResponse1()");
}
//=========================================================================
function exportXmlResponse1(){
	//alert("Exported 1: " + strResponseText2);
}
//=========================================================================
function exportXmlDrug(pstrSql,pstrPath,pstrFilename,pstrHandler){
	var strData = "",intCount;
	strData += "strSql=" + pstrSql;
	strData += "&strPath=" + pstrPath;
	strData += "&strFilename=" + pstrFilename;
	strData = replaceSql(strData);//alert("Export : " + strData);
	makeRequest1(strData,strExportDrugUrl,"exportXmlDrugResponse()");
}
//=========================================================================
function exportXmlDrugResponse(){
	//alert("Exported eval : " + strResponseText1);
	//eval(pstrHandler);
}
//=========================================================================
function numberFormat(nStr){
	if(nStr == "") return "0";
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1].substr(0,2) : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1))
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	return x1 + x2;
	//return x1;
}
//=========================================================================
function numberFormat00(nStr){
	if(nStr == "") return "0";
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1].substr(0,2) : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1))
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	return x1 + x2;
}
//=========================================================================
function numberFormatVN(nStr){
	if(nStr == "") return "0";
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1].substr(0,2) : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1))
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	//return x1 + x2;
	return x1;
}
//============================================================================
function makeUpdate(pintCommand,pstrTableName,pintGetInserted,pintFunctionId,
	pstrUpdateResponse,pstrFieldId,pstrFieldType){
	//alert("upate");
	var strData = "";
	var strTempFieldName = "";
	var strTempFieldType = "";
	var strTempFieldValue = "";
	var intCount;
	for(intCount = 0;intCount < pstrFieldId.length;intCount++){
		strTempFieldName += "fn" + intCount + "=" + pstrFieldId[intCount].substr(3) + "&";
		strTempFieldType += "ft" + intCount + "=" + pstrFieldType[intCount] + "&";
		if(pstrFieldType[intCount] == 2)
			strTempFieldValue += "fv" + intCount + "=" +
				replace(document.getElementById(pstrFieldId[intCount]).value,",","") + "&";
		else
			if(pstrFieldId[intCount].substr(0,3) != "txa")
				strTempFieldValue += "fv" + intCount + "=" +
					encodeURI(document.getElementById(pstrFieldId[intCount]).value) + "&";
			else
				strTempFieldValue += "fv" + intCount + "=" +
					getCodedURL(document.getElementById(pstrFieldId[intCount]).value) + "&";
	}
	strData += strTempFieldName + strTempFieldType + strTempFieldValue + 
		"intCommand=" + pintCommand + "&strTableName=" + pstrTableName + 
		"&intGetInserted=" + pintGetInserted + "&intFunctionId=" + intFunctionId;
	//alert(strData);
	makeRequest(strData,strUpdateUrl,pstrUpdateResponse);
}
//============================================================================
function codeUnicode(pstr){
	var intCount,strData = "",intLen,intTemp;
	intLen = pstr.length;
	for(intCount = 0;intCount < intLen;intCount++){
		intTemp = pstr.substr(intCount,1).charCodeAt(0);
		if(intTemp > 255)
			strData = strData + "&#" + intTemp + ";";
		else
			strData = strData + pstr.substr(intCount,1);
	}
	return strData;
}
//============================================================================
function decodeUnicode(pstr){
	var strData = "",intCount,intLen,strTemp,intTemp;
	intCount = 0;
	intLen = pstr.length;
	while(intCount <= intLen){
		strTemp = pstr.substr(intCount,1);
		if(strTemp == "&"){
			intTemp = pstr.indexOf(";",intCount);
			if(intTemp != -1){
				strData = strData + 
					String.fromCharCode(parseInt(pstr.substr(intCount + 2,intTemp - intCount - 2),10));
				intCount = intTemp + 1;
			}
			else
				break;
		}
		else{
			strData = strData + pstr.substr(intCount,1);
			intCount = intCount + 1;
		}
	}
	return strData;
}
//============================================================================
function formatDate(pstr,pstrSign){
	var objDay = new Date(pstr);
	var strMonth = objDay.getMonth()+1;
	var strYear = objDay.getYear();
	var strDay = objDay.getDate();
	if(strDay < 10) strDay = "0" + strDay;
	if(strMonth < 10) strMonth= "0" + strMonth;
	if(strYear < 1000) strYear += 1900;
    return (strDay + pstrSign + strMonth + pstrSign + strYear);
}
//============================================================================
function encodeHtml(pstr){
	var strData = pstr;
	strData = replace(strData,"<","{lessthan}");
	strData = replace(strData,">","{greaterthan}");
	strData = replace(strData,"%","{percent}");
	strData = replace(strData,"&","{and}");
	strData = replace(strData,"/","{devide}");
	//strData = replace(strData,"\\","{reverse}");
	return strData;
}
//============================================================================
function decodeHtml(pstr){
	var strData = pstr;
	strData = replace(strData,"{lessthan}","<");
	strData = replace(strData,"{greaterthan}",">");
	strData = replace(strData,"{percent}","%");
	strData = replace(strData,"{and}","&");
	strData = replace(strData,"{devide}","/");
	//strData = replace(strData,"{reverse}","\\");
	return strData;
}
//============================================================================
function format0(pint,pintLength){
	var strData = "";	
	for(var intCount = pint.toString().length;intCount < pintLength;intCount++)
		strData += "0";
	strData += pint;
	return strData;
}
//============================================================================
function checkExpireInsurance(pstrControl){
	var strExpireDate = document.getElementById(pstrControl).value;
	if(strExpireDate == "") return;
	var objCurrentDate = new Date(strDate.substr(6,4),parseInt(strDate.substr(3,2),10) - 1,
		strDate.substr(0,2));
	var objExpireDate = new Date(strExpireDate.substr(6,4),parseInt(strExpireDate.substr(3,2),10) - 1,
		strExpireDate.substr(0,2));
	//alert("check ins expire" + objCurrentDate + "/" + objExpireDate);
	if(objCurrentDate > objExpireDate)
		document.getElementById(pstrControl).style.color = "red";
	else
		document.getElementById(pstrControl).style.color = "black";
}
//============================================================================
function checkExpireInsuranceObj(pobjControl){
	var strExpireDate = pobjControl.value;
	if(strExpireDate == "") return;
	var objCurrentDate = new Date(strDate.substr(6,4),parseInt(strDate.substr(3,2),10) - 1,
		strDate.substr(0,2));
	var objExpireDate = new Date(strExpireDate.substr(6,4),parseInt(strExpireDate.substr(3,2),10) - 1,
		strExpireDate.substr(0,2));
	if(objCurrentDate > objExpireDate)
		pobjControl.style.color = "red";
	else
		pobjControl.style.color = "black";
}
//===============================================================================
function checkExpire(pstrExpireDate){
	var objCurrentDate = new Date(strDate.substr(6,4),parseInt(strDate.substr(3,2),10) - 1,
		strDate.substr(0,2));
	var objExpireDate = new Date(pstrExpireDate.substr(6,4),parseInt(pstrExpireDate.substr(3,2),10) - 1,
		pstrExpireDate.substr(0,2));
	//alert("check ins expire" + objCurrentDate + "/" + objExpireDate);
	if(objCurrentDate > objExpireDate)
		return true;
	else
		return false;
}
//===============================================================================
function checkLogin(){
	if(strUserId == ""){
		alert("Ban chua dang nhap.");
		window.location.href = strLoginUrl;
		alert("Goto : " + window.location.href);
	}
}
//===============================================================================
function checkRight(){
	if(blnAllow == false){
		alert("Bạn không có quyền sử dụng chức năng này. Liên hệ admin");
		window.location.href = strHomePage;
	}
}
//===============================================================================
function logout(){
	makeRequest3("",strLogoutUrl,"logoutResonse()");
}
//===============================================================================
function logoutResonse(){
	window.location.href = strLoginUrl;
}
//===============================================================================
function checkBalance(pstrBalanceId){
	var strCelBalanceId = "celBalance";
	var strBalanceId = "txtPntBalance";
	var strData = "";
	var intBalance = replace(document.getElementById(pstrBalanceId).value,",","");
	document.getElementById(strCelBalanceId).innerHTML = "";
	if(intBalance < 0){
		strData = "<input type='text' id='" + strBalanceId + "' style='width:100%;direction:rtl;color:red' " +
			"class='textbox' readonly='true' value='" + numberFormat(Math.abs(intBalance)) + " -'/>";
	}
	else
		strData = "<input type='text' id='" + strBalanceId + "' style='width:100%;direction:rtl;' " +
			"class='textbox' readonly='true' value='" + numberFormat(Math.abs(intBalance)) + "'/>";
	document.getElementById(strCelBalanceId).innerHTML = strData;
}
//====================================================================
function textboxOnfocus(pobjThis){
	pobjThis.style.borderWidth = "";//thin/medium/thick/length
	pobjThis.style.borderStyle = "";//none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset
	pobjThis.style.borderColor = "";//transparent/color
	pobjThis.style.backgroundColor = "yellow";//transparent/color
}
//====================================================================
function textboxOnblur(pobjThis){
	pobjThis.style.borderWidth = "";//thin/medium/thick/length
	pobjThis.style.borderStyle = "";//none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset
	pobjThis.style.borderColor = "";//transparent/color
	pobjThis.style.backgroundColor = "";//transparent/color
}
//===============================================================================
function keepSession(){
	var strFunction = "makeRequest4('strTime=ABC','" + strHost + "keepSession.php',keepSessionResponse())";
	window.setInterval(strFunction,5000);
}
//===============================================================================
var intSessionCount = 1;
function keepSessionResponse(){
	//alert("session" + strResponseText4);
	//window.status = "Update session" + intSessionCount;
	intSessionCount++;
}
//===============================================================================
function getTime() {
// initialize time-related variables with current time settings
var now = new Date();
var hour = now.getHours();
var minute = now.getMinutes();
now = null;
var ampm = ""; 

// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12;
ampm = "PM";
} else
ampm = "AM";
hour = (hour == 0) ? 12 : hour;

// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute; // do not parse this number!

// return time string
return hour + ":" + minute + " " + ampm;
}

function leapYear(year) {
if (year % 4 == 0) // basic rule
return true; // is leap year
/* else */ // else not needed when statement is "return"
return false; // is not leap year
}

function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12);
ar[0] = 31; // January
ar[1] = (leapYear(year)) ? 29 : 28; // February
ar[2] = 31; // March
ar[3] = 30; // April
ar[4] = 31; // May
ar[5] = 30; // June
ar[6] = 31; // July
ar[7] = 31; // August
ar[8] = 30; // September
ar[9] = 31; // October
ar[10] = 30; // November
ar[11] = 31; // December

// return number of days in the specified month (parameter)
return ar[month];
}

function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12);
ar[0] = "January";
ar[1] = "February";
ar[2] = "March";
ar[3] = "April";
ar[4] = "May";
ar[5] = "June";
ar[6] = "July";
ar[7] = "August";
ar[8] = "September";
ar[9] = "October";
ar[10] = "November";
ar[11] = "December";

// return name of specified month (parameter)
return ar[month];
}

function setCal() {
// standard time attributes
var now = new Date(strDate.substr(6,4),
	parseInt(strDate.substr(3,2),10)-1,parseInt(strDate.substr(0,2),10));
var year = now.getYear();
if (year < 1000)
year+=1900;
var month = now.getMonth();
var monthName = getMonthName(month);
var date = now.getDate();
//now = null

// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1);
var firstDay = firstDayInstance.getDay();
firstDayInstance = null;

// number of days in current month
var days = getDays(month, year);

// call function to draw calendar
return drawCal(firstDay + 1, days, date, monthName, year,now);
}

function drawCal(firstDay, lastDate, pdate, monthName, year,pnow) {
// constant table settings
var headerHeight = 10; // height of the table's header cell
var border = 2; // 3D height of table's border
var cellspacing = 1; // width of table's border
var headerColor = "midnightblue"; // color of table's header
var headerSize = "2"; // size of tables header font
var colWidth = 10; // width of columns in table
var dayCellHeight = 15; // height of cells containing days of the week
var dayColor = "darkblue"; // color of font representing week days
var cellHeight = 30; // height of cells representing dates in the calendar
var todayColor = "red"; // color specifying today's date in the calendar
var timeColor = "purple"; // color of font representing current time

// create basic table structure
var text = ""; // initialize accumulative variable to empty string
text += '<CENTER>';
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + ' style="font-size:6px">'; // table settings
text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + '>'; // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>'; // set font for table header
text += monthName + ' ' + year;
text += '</FONT>'; // close table header's font settings
text += '</TH>'; // close header cell

// variables to hold constant settings
var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>';
openCol += '<FONT COLOR="' + dayColor + '">';
var closeCol = '</FONT></TD>';

// create array of abbreviated day names
var weekDay = new Array(7);
weekDay[0] = "Sun";
weekDay[1] = "Mon";
weekDay[2] = "Tues";
weekDay[3] = "Wed";
weekDay[4] = "Thu";
weekDay[5] = "Fri";
weekDay[6] = "Sat";
// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center" style="font-size:07px">';
for (var dayNum = 0; dayNum < 7; ++dayNum) {
	if(dayNum == 0)
		text += openCol + "<font color='red'>" + weekDay[dayNum] + "</font>" + closeCol;
	else if(pnow.getDay() == dayNum)
		text += openCol + "<font size='1'>" + weekDay[dayNum] + "</font>" + closeCol;
	else
		text += openCol + weekDay[dayNum] + closeCol;
}
text += '</TR>';

// declaration and initialization of two variables to help with tables
var digit = 1;
var curCell = 1;

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top" style="font-size:07px">';
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break;
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++;
} else {
if (digit == pdate) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>';
text += '<FONT COLOR="' + todayColor + '" size="3">';
text += digit;
text += '</FONT>';
//text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
//text += '<CENTER>' + getTime() + '</CENTER>'
//text += '</FONT>'
text += '</TD>';
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>';
digit++;
}
}
text += '</TR>';
}

// close all basic table tags
text += '</TABLE>';
text += '</CENTER>';

// print accumulative HTML string kha kha kha
return text;
}