var errorMsg = 'Error.';
function PostComFuncForStateChanged(url, param){
	checkxmlHttp();
	DisplayFormLoading();
	ShowHideFormMsg(0);
	xmlHttp.onreadystatechange=StateChanged;
	postXmlHttp(url, param);
}

function StateChanged(){ 
	if(xmlHttp.readyState==4){
		if(xmlHttp.status == 200){
			document.getElementById('formSpan').innerHTML = xmlHttp.responseText;
			scroll(0,0);
		}else{
			document.getElementById('formSpan').innerHTML = errorMsg;
		}
	}
}

function StateChangedLookup(){
	if(xmlHttp.readyState==4){
		if(xmlHttp.status == 200){
			document.getElementById('cli_IDDiv').innerHTML = xmlHttp.responseText;
		}else{
			document.getElementById('cli_IDDiv').innerHTML = errorMsg;
		}
	}
}

function StateChangedLookup2(){
	if(xmlHttp.readyState==4){
		if(xmlHttp.status == 200){
			document.getElementById('cli_IDDiv').innerHTML = xmlHttp.responseText;
			OpenTab(document.getElementById('divMonth').innerHTML);
		}else{
			document.getElementById('cli_IDDiv').innerHTML = errorMsg;
		}
	}
}

function StateChangedLookup3(){
	if(xmlHttp.readyState==4){
		if(xmlHttp.status == 200){
			document.getElementById('cli_IDDiv').innerHTML = xmlHttp.responseText;
			OpenTab(document.getElementById('divView').innerHTML, document.getElementById('tabList').value, 
			document.getElementById('tabList2').value, document.getElementById('divMonth').innerHTML, document.getElementById('divDay').innerHTML, 
			document.getElementById('divYear').innerHTML);
		}else{
			document.getElementById('cli_IDDiv').innerHTML = errorMsg;
		}
	}
}

function StateChanged3(){
	if(xmlHttp.readyState==4){
		if(xmlHttp.status == 200)
			document.getElementById('divAmend').innerHTML = xmlHttp.responseText;
		else
			document.getElementById('divAmend').innerHTML = errorMsg;
	} 
}

function StateChangedChecking(){ 
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			if(xmlHttp.responseText!=''){
				var arrError = new Array();
				arrError[0] = xmlHttp.responseText;
				if(DisplayError('trFormError', 'divFormError', arrError)){
					return false;
				}
			}else{
				document.formNew.submit();
				return true;
			}
		}else{
			var arrError = new Array();
			arrError[0] = 'Error. Please try again.';
			if(DisplayError('trFormError', 'divFormError', arrError)){
				return false;
			}
		}
	}
}

function alertContents(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			document.getElementById('dt').innerHTML = xmlHttp.responseText;
		}else{
			document.getElementById('dt').innerHTML = 'error';
		}
	}
}

function alertContents2(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			document.getElementById('formSpan').innerHTML = '';
			document.getElementById('dt').innerHTML = xmlHttp.responseText;
		}else{
			document.getElementById('dt').innerHTML = 'error';
		}
	}
}

function RegenTable(url, parameters) {
	checkxmlHttp();
	DisplayFormLoading2();
	if(parameters=='req=search')//cancel search
		xmlHttp.onreadystatechange = alertContents2;
	else//search
		xmlHttp.onreadystatechange = alertContents;
	postXmlHttp(url, parameters);
}

function RegenTable2(url, parameters) {
	checkxmlHttp();
	DisplayFormLoading2();
	xmlHttp.onreadystatechange = alertContents;
	postXmlHttp(url, parameters);
}

function LoadDeleteForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadDelete&'+param);
}

function LoadEditForm(url, param){
	PostComFuncForStateChanged(url, 'req=bindValue&'+param);
}

function LoadClientForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadClientForm&'+param);
}

function LoadTechnicianForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadTechnicianForm&'+param);
}

function LoadFlag(url, param, id){
	PostComFuncForStateChanged(url, 'req=loadFlag&'+param);
}

function LoadViewForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadView&'+param);
}

function LoadAmendmentForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadAmend&'+param);
}

function LoadNewForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadNew&'+param);
}

function LoadSearchForm(url){
	PostComFuncForStateChanged(url, 'req=loadSearch');
}

function LoadApprovalForm(url){
	PostComFuncForStateChanged(url, 'req=loadApproval');
}

function LoadCopyForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadCopy&'+param);
}

function LoadDeleteAllForm(url, param){
	PostComFuncForStateChanged(url, 'req=loadDeleteAll&'+param);
}

function LoadEditRemark(url, param){
	PostComFuncForStateChanged(url, 'req=loadEditRemark&'+param);
}

function LoadEditStatus(url, param){
	PostComFuncForStateChanged(url, 'req=loadEditStatus&'+param);
}

function LoadDeleteRemark(url, param){
	PostComFuncForStateChanged(url, 'req=loadDeleteRemark&'+param);
}

function LoadDeleteStatus(url, param){
	PostComFuncForStateChanged(url, 'req=loadDeleteStatus&'+param);
}

function CancelNew(url){
	PostComFuncForStateChanged(url, 'req=unload');
}

function CancelSearch(url){
	checkxmlHttp();
	ShowHideFormMsg(0);
	CheckSearch(1);
}

function GetLookup(url, param, id){
	checkxmlHttp();
	document.getElementById(id).innerHTML = 'Loading...';
	xmlHttp.onreadystatechange=StateChangedLookup;
	postXmlHttp(url, param);
}

function GetLookup2(url, param, id){
	checkxmlHttp();
	document.getElementById(id).innerHTML = 'Loading...';
	xmlHttp.onreadystatechange=StateChangedLookup2;
	postXmlHttp(url, param);
}

function GetLookup3(url, param, id){
	checkxmlHttp();
	document.getElementById(id).innerHTML = 'Loading...';
	xmlHttp.onreadystatechange=StateChangedLookup3;
	postXmlHttp(url, param);
}

function ShowHideFormMsg(v){
	ShowHide(v, 'txtFormMsg');
}

function DisplayFormLoading(){
	document.getElementById('formSpan').className = 'Loading';
	document.getElementById('formSpan').innerHTML = 'Loading...';
}

function DisplayFormLoading2(){
	if(document.getElementById('dt')){
		document.getElementById('dt').className = 'Loading';
		document.getElementById('dt').innerHTML = 'Loading...';
	}
}

function mclick(dtRow){
	if(dtRow.className=='trClick') dtRow.className = 'sortable';
	else dtRow.className = 'trClick';
}

function ShowHideRemark(spanId, trId, trIdStatus){
	if(document.getElementById(spanId).alt=='Show remark & status'){
		document.getElementById(spanId).src = 'image/minus.png';
		document.getElementById(spanId).alt = 'Hide remark & status';
		document.getElementById(trId).style.display = '';
	}else{
		document.getElementById(spanId).src = 'image/plus.png';
		document.getElementById(spanId).alt = 'Show remark & status';
		document.getElementById(trId).style.display = 'none';
	}
}

function ShowHideRemarkAmendment(spanId, trId){
	if(document.getElementById(spanId).alt=='Show remark'){
		document.getElementById(spanId).src = 'image/minus.png';
		document.getElementById(spanId).alt = 'Hide remark';
		document.getElementById(trId).style.display = '';
	}else{
		document.getElementById(spanId).src = 'image/plus.png';
		document.getElementById(spanId).alt = 'Show remark';
		document.getElementById(trId).style.display = 'none';
	}
}

function ShowHideDescAll(totalTr){
	if(document.getElementById('imgAllDesc').alt=='Show all description'){
		document.getElementById('imgAllDesc').src = 'image/minus.png';
		document.getElementById('imgAllDesc').alt = 'Hide all description';
		var i = 0;
		for(i=0;i<totalTr;i++){
			document.getElementById('imgDescShowHide'+i).src = 'image/minus.png';
			document.getElementById('imgDescShowHide'+i).alt ='Hide description';
			document.getElementById('trDesc'+i).style.display = '';
		}
	}else{
		document.getElementById('imgAllDesc').src = 'image/plus.png';
		document.getElementById('imgAllDesc').alt = 'Show all description';
		var i = 0;
		for(i=0;i<totalTr;i++){
			document.getElementById('imgDescShowHide'+i).src = 'image/plus.png';
			document.getElementById('imgDescShowHide'+i).alt = 'Show description';
			document.getElementById('trDesc'+i).style.display = 'none';
		}
	}
}

function ShowHideRemarkAllAmendment(totalTr){
	if(totalTr>0){
		if(document.getElementById('imgAllRemark').alt=='Show all remarks'){
			document.getElementById('imgAllRemark').src = 'image/minus.png';
			document.getElementById('imgAllRemark').alt = 'Hide all remarks';
			var i = 0;
			for(i=0;i<totalTr;i++){
				document.getElementById('img2Remark'+i).src = 'image/minus.png';
				document.getElementById('img2Remark'+i).alt = 'Hide remark';
				document.getElementById('tr2Remark'+i).style.display = '';
			}
		}else{
			document.getElementById('imgAllRemark').src = 'image/plus.png';
			document.getElementById('imgAllRemark').alt = 'Show all remarks';
			var i = 0;
			for(i=0;i<totalTr;i++){
				document.getElementById('img2Remark'+i).src = 'image/plus.png';
				document.getElementById('img2Remark'+i).alt = 'Show remark';
				document.getElementById('tr2Remark'+i).style.display = 'none';
			}
		}
	}
}

function DisplayError(trId, divId, arrError){
	if(arrError.length>0){
		document.getElementById(trId).style.display = '';
		document.getElementById(divId).innerHTML = '';
		for(var j=0; j<arrError.length; j++){
			document.getElementById(divId).innerHTML += arrError[j] + '<br>';
		}
		return true;
	}
	return false;
}

function DataPage(e, pageNo, maxPageNo, url, parameters){
	var key = window.event ? e.keyCode : e.which;

	if(key==13){
		if(pageNo <= maxPageNo && pageNo>0){
			RegenTable(url, parameters);
			return false;
		}else{
			alert('Invalid page.');
		}
	}
}
