//------------------------------- TAMyCode -------------------------------------
var EngCode = new Array(); 
var ThaiCode = new Array(); 
var TAMyCode=new Array();
//var lang=document.cscform.__language.value;
var FormatDate="DD/MM/YYYY";
var systemName="MyHR ";

var emp_status = "'U','S','X','Y','Z',''";

if( document.implementation.hasFeature("XPath", "3.0") )
{
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
	{
		if( !xNode ) { xNode = this; } 

		var oNSResolver = this.createNSResolver(this.documentElement)
		var results = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null)

        return results.singleNodeValue; 

	}

	Element.prototype.selectSingleNode = function(cXPathString)
	{	
		if(this.ownerDocument.selectSingleNode)
		{
			return this.ownerDocument.selectSingleNode(cXPathString, this);
		}
		else{throw "For XML Elements Only";}
	}

}

if(window.ActiveXObject){
    var Loader = new ActiveXObject("Msxml.DOMDocument");
    Loader.async = false;
    Loader.load("XML/SWAPLANG.xml");

	if(!Loader){
       Loader.load("../XML/SWAPLANG.xml");
	}
	 objDOM = Loader;

}else if(window.XMLHttpRequest) {
	var Loader = new XMLHttpRequest();
    Loader.open("GET", "XML/SWAPLANG.xml" ,false); 
	if(!Loader){
      Loader.open("GET", "../XML/SWAPLANG.xml", false);
	}
	//edit for IE11
	try { Loader.responseType = 'msxml-document'; } catch(e){}
    Loader.send(null);
    objDOM = Loader.responseXML;

 }else{
	objDOM = null;
 }

/*===========================================*/
   ThaiCode[0]="ทดสอบ";
	EngCode[0]="Test";
    ThaiCode[1]="กรุณากรอกข้อมูลอย่างน้อย 1 แถว";
	EngCode[1]="Please insert data more than 1 row.";
    ThaiCode[2]="ไม่สามารถกำหนดวันที่สุดเกินวันที่";
	EngCode[2]="You can't select limit date.";
	ThaiCode[3]="กรุณาระบุจำนวนวันที่ต้องการด้วย";
	EngCode[3]="Please Entry Count Date to Process."
	ThaiCode[4]="กรุณาระบุจำนวนวันที่ต้องการอย่างน้อย 1 รายการ";
	EngCode[4]="Please Entry Count Date Minimum is 1 row";


	TAMyCode=EngCode;

//----------------------------------------------------------------------

function setTALang(lan){
   lang=lan.toLowerCase();
   setCode();
}

function getLang(){
	return lang;
}

function setCode(){
	if(getLang()=="tha"){
		TAMyCode=ThaiCode;
		//MyAlert=ThaiAlert;
	}else{
		TAMyCode=EngCode;
		//MyAlert=EngAlert;
	}
}
/*================================================================*/

function searchDescEmp(empid, desc, condition){
//	alert(condition);
	var splitDesc="",getField="",setField="";
	splitDesc = desc.split(",");
	for(var i = 0; i < splitDesc.length; i++){
		if(splitDesc[i].indexOf("@") > -1 && splitDesc[i].indexOf(":") == -1){
			if(splitDesc[i].indexOf("$") > -1) {
				var newDesc = splitDesc[i].substring(0,splitDesc[i].indexOf("$"));
				getField += newDesc.replace(/@/g,".");
			}else{
				getField += splitDesc[i].replace(/@/g,".");
			}
			setField += splitDesc[i];
		}else{
			getField += splitDesc[i].substring(0,splitDesc[i].indexOf(":"));
			setField += splitDesc[i].substring(splitDesc[i].indexOf(":")+1,splitDesc[i].length);
		}
		if(i+1 == splitDesc.length){
			break;
		}else{
			getField+=",";
			setField+=",";
		}
	}
	SearchDWR.searchDBXMLAll(new Array("MEMPLOYEEHELP3", getField, "memployee:employeeid = '"+empid.value+"' "+condition, "false", "langOn"), function(data){
		setField = setField.split(",");
		if(data.length > 0){
			for(i=0;i<setField.length;i++){
				DWRUtil.setValue(setField[i],data[0][i]);
			}
		}else{
			empid.value ="";
			for(i=0;i<setField.length;i++){
				DWRUtil.setValue(setField[i],"");
			}
			//alert(MyCode[6]);
			//empid.focus();
			//empid.select();
		}
	});
}

function searchEmp2(empid, desc, condition){
	if(empid.value != ""){
		var splitDesc="",getField="",setField="";
		splitDesc = desc.split(",");
		for(var i = 0; i < splitDesc.length; i++){
			if(splitDesc[i].indexOf("@") > -1 && splitDesc[i].indexOf(":") == -1){
				if(splitDesc[i].indexOf("$") > -1) {
					var newDesc = splitDesc[i].substring(0,splitDesc[i].indexOf("$"));
					getField += newDesc.replace(/@/g,".");
				}else{
					getField += splitDesc[i].replace(/@/g,".");
				}
				setField += splitDesc[i];
			}else{
				getField += splitDesc[i].substring(0,splitDesc[i].indexOf(":"));
				setField += splitDesc[i].substring(splitDesc[i].indexOf(":")+1,splitDesc[i].length);
			}
			if(i+1 == splitDesc.length){
				break;
			}else{
				getField+=",";
				setField+=",";
			}
		}
		SearchDWR.searchDBXMLAll(new Array("MEMPLOYEEHELP_FULLNAME", getField, "memployee:employeeid = '"+empid.value+"' "+condition, "false", "langOn"), function(data){
			setField = setField.split(",");
			if(data.length > 0){
				for(i=0;i<setField.length;i++){
					DWRUtil.setValue(setField[i],data[0][i]);
				}
			}else{
				empid.value ="";
				for(i=0;i<setField.length;i++){
					DWRUtil.setValue(setField[i],"");
				}
			}
		});
	}
}

function searchBoss(bossid, desc, condition){
	var splitDesc="",getField="",setField="";
	splitDesc = desc.split(",");
	for(var i = 0; i < splitDesc.length; i++){
		getField += splitDesc[i].substring(0,splitDesc[i].indexOf(":"));
		setField += splitDesc[i].substring(splitDesc[i].indexOf(":")+1,splitDesc[i].length);
		if(i+1 == splitDesc.length){
			break;
		}else{
			getField+=",";
			setField+=",";
		}
	}
	SearchDWR.searchDBXMLAll(new Array("MEMPLOYEEHELP3", getField, "memployee:employeeid = '"+bossid+"' "+condition, "false", "langOn"), function(data){
		setField = setField.split(",");
		if(data.length > 0){
			for(i=0;i<setField.length;i++){
				DWRUtil.setValue(setField[i],data[0][i]);
			}
		}else{
			for(i=0;i<setField.length;i++){
				DWRUtil.setValue(setField[i], "");
			}
		}
	});
}


function checkAll(chk){
	with(document.cscform){
		for(i=0; i<elements.length; i++){
			if(elements[i].name.indexOf("chk") > -1 && elements[i].name != "chkAll"){
				elements[i].checked = chk.checked;
			}
		}
	}
}

function searchDWRData(helpName, keyField, id){
	DWRUtil.setValue(helpName+"@TDESC", "");
	if(id.value != ""){
		SearchDWR.searchAll(new Array(helpName, keyField+",tdesc,edesc", keyField+" = '"+id.value+"'", keyField, "langon"), {callback:function(data){
			if(data.length > 0){
				DWRUtil.setValue(helpName+"@TDESC", data[0][1]);
			}else{
				DWRUtil.setValue(helpName+"@TDESC", "");
				alert(MyCode[6]);
				id.focus();
				id.select();
			}
		},async:true});
	}
}

/*
function : search description;
param : helpName (ชื่อ Table), keyField (ชื่อ key), id (object key), no (line ที่เท่าไร)
*/
function searchDWRChild(helpName, keyField, id, no){
	DWRUtil.setValue(helpName+"@TDESC$"+no, "");
	if(id.value != ""){
		SearchDWR.searchAll(new Array(helpName, keyField+",tdesc,edesc", keyField+" = '"+id.value+"'", keyField, "langon"), {callback:function(data){
			if(data.length > 0){
				DWRUtil.setValue(helpName+"@TDESC$"+no, data[0][1]);
			}else{//alert();
				DWRUtil.setValue(helpName+"@TDESC$"+no, "");
				alert(MyCode[6]);
				id.focus();
				id.select();
			}
		},async:true});
	}
}

function dateDifferenceNoAlert(firstdate,seconddate) {
	//alert(firstdate +", "+ seconddate);
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

	var mArray1 = firstdate.match(datePat); // is the format ok?
	var mArray2 = seconddate.match(datePat); // is the format ok?

	var month1 = mArray1[3]; // parse date into variables
	var day1 = mArray1[1];
	var year1 = mArray1[4];

	var month2 = mArray2[3]; // parse date into variables
	var day2 = mArray2[1];
	var year2 = mArray2[4];


		if(parseInt(year1)>parseInt(year2)){
				//alert("Data not match !!! ");			
				return false;
		}else if(parseFloat(year1)==parseFloat(year2)){
					if(parseFloat(month1)>parseFloat(month2)){
						//alert("Data not match !!! ");
						return false;
					}else if(parseFloat(month1)==parseFloat(month2)){
						if(parseFloat(day1)>parseFloat(day2)){
						//alert("Data not match !!! ");
						return false;									    
						} 
					}
		}
	return true; // form should never submit, returns false
}

/*
function เช็คว่า startdate and enddate อยู่ในสัปดาห์เดียวกันหรือไม่
param : startdate, enddate
return true แสดงว่าอยู่ในสัปดาห์เดียวกัน
*/
function checkWeekEnd(startdate, enddate){
	var stday = startdate.value.split("-");
	var msg = "You can't select date more ";
	if(document.cscform.__language.value == "tha"){
		msg = "ไม่สามารถกำหนดวันที่สุดเกินวันที่ ";
	}

	var dmy = new Date(stday[2], parseInt(stday[1],10)-1, parseInt(stday[0],10));
	dmy.setDate(dmy.getDate()+(7-dmy.getDay()));
	var endOfWeek = dmy.getDate()+"-"+(dmy.getMonth()+1)+"-"+dmy.getYear();
	if( dateDifferenceNoAlert(enddate.value, endOfWeek) ){
		return true;
	}else{
		alert(msg+setDDMMYYYY(endOfWeek));
		enddate.value = setDDMMYYYY(endOfWeek);
		return false;
	}
}

function setDDMMYYYY(strDate){
	var subDate = strDate.split("-");
	if(subDate[0].length == 1){
		subDate[0] = "0"+subDate[0];
	}
	if(subDate[1].length == 1){
		subDate[1] = "0"+subDate[1];
	}
	return subDate[0]+"-"+subDate[1]+"-"+subDate[2];
}

function overZero(obj){
	with(document.cscform){
		if(obj.value == "0"){
			obj.value = "1";
			obj.focus();
			obj.select();
		}
	}
}

function copy(child, value){
	with(document.cscform){
		for(i=0; i<elements.length; i++){
			if(elements[i].name.indexOf(child) > -1){
				elements[i].value = value;
			}
		}
	}
}

function formatNumber(num, decplaces) {
	num = parseFloat(num);
	if (!isNaN(num)) {
		var str = "" + Math.round (eval(num) * Math.pow(10,decplaces));
		if (str.indexOf("e") != -1) {
			return "Out of Range";
		}
		while (str.length <= decplaces) {
			str = "0" + str;
		}

		var decpoint = str.length - decplaces;
		var tmpNum = str.substring(0,decpoint);
		//---------------Add Commas--------------------------
		var numRet = tmpNum.toString();
		var re = /(-?\d+)(\d{3})/;
		while (re.test(numRet)) {
			numRet = numRet.replace(re, "$1,$2");
		}
		return numRet + "." + str.substring(decpoint,str.length);
	} else {
		return "0.00";
	}
}

function selectedEmp(tableName, fieldName){
	with(document.cscform){
		var empid = "";
		var count = 0;
		for(i=0; i<elements.length; i++){
			if(elements[i].checked && elements[i].type == "checkbox" && elements[i].name.indexOf("chk") > -1){
				count++;
				var line = elements[i].value;
				empid = DWRUtil.getValue("__wf__"+tableName+"$"+fieldName+"$"+line);
				if(empid == "") alert(MyCode[15]);
				return empid;
			}// end if
		}// end for
		return empid;
	}// end with
}

function linkHelp_Return_CallFunction(help,input,newFunction){
	with( document.cscform ){
		var param="BROWSE_TIMEHELP.jsp?__helpName="+help+"&__helpReturn="+input+"&__pageCall="+__screen.value+"&__fixCon="+__fixCon.value+"&__checkVerify=off&__langOn=off&__callFunction="+newFunction;
		window.open(param,"Help","left=150,top=150,width=530,height=370,toolbar=no,status=yes,scrollbars=yes,resizable=yes");
	}
}

function beforeSaveWF(){
	with (document.cscform) {
		for(i=0;i<__docInputType.length;i++){				
			if (__docInputType[i].checked){
				if (__docInputType[i].value==0) {					
				__wf_status.value='4';
				} else if (__docInputType[i].value==1) {					
				__wf_status.value='6';
				}  else if (__docInputType[i].value==2) {					
				__wf_status.value='8';
				}
			}
		}// end for
	}
}

function getYYYYMMDD(dd){
	var splitdate = dd.split("-");
	var size = splitdate.length;
	var result = dd;
	var msg = "Date is not in a valid format.";
	//if(document.cscform.__language.value == "tha") msg = "รูปแบบวันที่ไม่ถูกต้อง";
	if(size == 3){
		result = "";
		if(splitdate[0].length == 4 && splitdate[1].length == 2 && splitdate[2].length == 2){
			return result;
		}else{
			return setDDMMYYYY(splitdate[2]+"-"+splitdate[1]+"-"+splitdate[0]);
		}
		result = result.substring(1,result.length);
	}else{
		alert(msg);
	}
	alert(result);
	return result;
}

function insertRow(theCell) {
	if( document.createElement && document.childNodes ) {
		var inputTxt = document.getElementById("txt");
		var max = document.getElementById("max");
		var thisRow = theCell.parentNode;
		var newElement = thisRow.cloneNode(true);
		max.value++;
		inputTxt.setAttribute("name","txt"+max.value);
		inputTxt.setAttribute("value",inputTxt.name);
		thisRow.parentNode.insertBefore(newElement,thisRow .nextSibling);
	}
}

/* deleteRow
* Deletes a row when a cell is clicked on.
* Gets a reference to the row that the cell is in, then deltes the
* entire row from the table.
*/
function deleteRow1(theCell) {
	var con = confirm("Are you sure delete.");
	if(con){
		if( document.createElement && document.childNodes ) {
			var thisRow = theCell.parentNode;
			thisRow.parentNode.removeChild(thisRow);
		}
	}
}

function isDuplicateDate(firstdate, seconddate){
	//alert(firstdate +", "+ seconddate);
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

	var mArray1 = firstdate.match(datePat); // is the format ok?
	var mArray2 = seconddate.match(datePat); // is the format ok?

	var month1 = mArray1[3]; // parse date into variables
	var day1 = mArray1[1];
	var year1 = mArray1[4];

	var month2 = mArray2[3]; // parse date into variables
	var day2 = mArray2[1];
	var year2 = mArray2[4];

	if(parseInt(year1)==parseInt(year2) && parseInt(month1)==parseInt(month2) && parseInt(day1)==parseInt(day2))
		return true;
	else
		return false; // form should never submit, returns false
}

// check รหัสบัตรประชาชน
function checkID(id) {
    if(id.length != 13) return false;
    for(i=0, sum=0; i < 12; i++)

        sum += parseFloat(id.charAt(i))*(13-i);
    if((11-sum%11)%10!=parseFloat(id.charAt(12))) return false;
    return true;
}

/**
*	Create By	: Hunter
*	Edit Date	: 12/1/2551
*	Param		: Object Name
*	Return		: boolean
*	Event			: true > focus(), select()
*					: false > ...
*/
function chkNullValue(objName, eventObj){
	var obj = document.getElementById(objName);
	if (typeof obj != "undefined") {
		if (obj.value == "") {
			if (eventObj){
				obj.focus();
				obj.select();
			}
			return true;
		}else{
			return false;
		}
	}
}

/**
*	Create By	: Hunter
*	Edit Date	: 14/1/2551
*	Param		: firstdate, seconddate
*	Return		: amount days
*	Event			: 
*/
function countDate(start_date, end_date){
	if(isValidDate(start_date) && isValidDate(end_date)){
		var splitStDate = start_date.split("-");
		var splitEnDate = end_date.split("-");
		var stDate = new Date(splitStDate[2], splitStDate[1]-1, splitStDate[0]);
		var enDate = new Date(splitEnDate[2], splitEnDate[1]-1, splitEnDate[0]);
		var diff = enDate-stDate; //unit is milliseconds
		diff=Math.round(diff/1000/60/60/24);
		return diff+1;
	}
}

/**
	Create By	: Hunter
	Edit Date	: 17/1/2551
	Param		: obj (Object inner Table)
	Return		: 
	Event			: 
*/
function deleteRow(btn) {
	var con = confirm(MyCode[4]);
	if(con){
		var cell, row, sect;
		if((cell = btn.parentNode) && (row = cell.parentNode)&& (sect = row.parentNode) && sect.removeChild){
			row.parentNode.removeChild(cell.parentNode);
			var list_record = document.getElementById("__wf__list_record");
			var line = btn.name.substring(btn.name.lastIndexOf("$")+1, btn.name.length);
			var split_list = list_record.value.split(",");
			for(i = 1; i<split_list.length; i++){
				if(split_list[i] == line)
					list_record.value = list_record.value.replace(","+line,"");
			}
		}
	}
}

/**
	Create By	: Hunter
	Edit Date	: 17/1/2551
	Description	: Get Table Name From Child Table. It's substring from 0 to $.
	Param		: obj (Object inner Table)
	Return		: table name. ex >> __wf__table
	Event			: 
*/
function getChildTbName(obj){
	if (typeof obj != "undefined"){
		return obj.name.substring(0, obj.name.indexOf("$"));
	}
}

function getChildLine(obj){
	if (typeof obj != "undefined"){
		return obj.name.substring(obj.name.lastIndexOf("$")+1, obj.name.length);
	}
}

/**
	Create By	: Hunter
	Edit Date	: 22/1/2551
	Description	: Convert time to minute.
	Param		: value (ex. 1.30 hr. >>> 90 min)
	Return		: Minute
*/
function TmToMin(value){
	var subTime = value.split(".");
	var h2m = 0;
	var min = 0;
	if (subTime.length == 2) {
		var h = Number(subTime[0]);
		var m = Number(subTime[1]);
		h2m = h*60;
		min = m + h2m;
	}
	return min;
}

/**
	Create By	: Hunter
	Edit Date	: 22/1/2551
	Description	: Convert minute to normal time.
	Param		: value (ex. 90 min >>> 1.30 hr.)
	Return		: HR.
*/
function MinToTm(value){
	var h = 0;
	var m = 0;
	var hm = 0;
	h = parseInt(Number(value)/60);
	m = Number(value)%60;
	return h+"."+m;
}

/*
	Create By Hunter
	Edit Date	: 3/4/2551
	Description	: Search data. and set condition too.
	Param		: value (ex. 90 min >>> 1.30 hr.)
	Return		: HR.

*/
function searchDWRChildFilter(helpName, keyField, id, no, filter){
	DWRUtil.setValue(helpName+"@TDESC$"+no, "");
	var setFilter = "";
	if (filter != "") {
		setFilter = " and " + filter;
	}
	if(id.value != ""){
		SearchDWR.searchAll(new Array(helpName, keyField+",tdesc,edesc", keyField+" = '"+id.value+"'"+ setFilter, keyField, "langon"), {callback:function(data){
			if(data.length > 0){
				DWRUtil.setValue(helpName+"@TDESC$"+no, data[0][1]);
			}else{//alert();
				DWRUtil.setValue(helpName+"@TDESC$"+no, "");
				alert(MyCode[6]);
				id.focus();
				id.select();
			}
		},async:true});
	}
}