﻿<!--

/**********************************************************************************************************/
/**                                              General                                                 **/
/**********************************************************************************************************/
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/**********************************************************************************************************/
/**                                            Input Validation                                          **/
/**********************************************************************************************************/
function IntMask(IsPositiveOnly,evt){
	IsPositiveOnly = (IsPositiveOnly) ? IsPositiveOnly : false;	
	evt = (evt) ? evt : window.event	
	var err = "";
	var charCode = (evt.which) ? evt.which : evt.keyCode	
	var e = evt.srcElement;	
				
	if (charCode != '13'){
		if (!(charCode>='0'.charCodeAt()&& charCode <= '9'.charCodeAt() || (charCode=="-".charCodeAt() && e.value.indexOf('-') < 0 && !IsPositiveOnly) || (charCode==",".charCodeAt())))
			err = "This field accepts numbers only."					
	}
	status = err;
	evt.returnValue = (err=="");
}

function DecimalMask(IsPositiveOnly,evt){
	IsPositiveOnly = (IsPositiveOnly) ? IsPositiveOnly : false;	
	evt = (evt) ? evt : window.event	
	var err = "";
	var charCode = (evt.which) ? evt.which : evt.keyCode	
	var e = evt.srcElement;	
				
	if (charCode != '13'){
		if (!((charCode>='0'.charCodeAt()&& charCode <= '9'.charCodeAt()) || (charCode==".".charCodeAt() && e.value.indexOf('.') < 0) || (charCode=="-".charCodeAt() && e.value.indexOf('-') < 0 && !IsPositiveOnly) || (charCode==",".charCodeAt())))
			err = "This field accepts numbers only.";				
	}
	status = err;
	evt.returnValue = (err=="");
}

function FixMaxLength(Object,MaxLen, evt){
    evt = (evt) ? evt : window.event	
	var err = "";
//	var charCode = (evt.which) ? evt.which : evt.keyCode	
//	var e = evt.srcElement;	
    if(Object.value.length > MaxLen){
        err = "Over MaxLength.";
   
    status = err;
	evt.returnValue = (err=="");
  }
}

function SendTab(evt){
	evt = (evt) ? evt : window.event	
	var err = "";
	var charCode = (evt.which) ? evt.which : evt.keyCode	
//	var e = evt.srcElement;	
	if (charCode == '13'){
	    if (evt.which) 
	        evt.which = 9;
	    else
	        evt.keyCode = 9;
	}
}

/**********************************************************************************************************/
/**                                            Check All                                                 **/
/**********************************************************************************************************/
function CheckAll(chkAll,GirdID,ChkItemName){
	var check = chkAll.checked;											//get check state
	var StdName = chkAll.id;
	StdName = StdName.substr(0,StdName.lastIndexOf("ctl")+3) + "$$_" + ChkItemName;
	var i = 2;	
	var	chk = MM_findObj(StdName.replace("$$",padZero(i,2)));		    //find control item number 2 is normal select
	if (chk != null)													//if found first control is 1
		i = 1;															//initial number of control in header row
	var objid =	StdName.replace("$$",padZero(i,2)) + 'AllHead'; 
	chk = MM_findObj(objid);											//find control header
	if (chkAll.id != objid && chk != null)
		chk.checked = check;
	i++;
	chk = MM_findObj(StdName.replace("$$",padZero(i,2)));			    //find control item
	while(chk != null){													//if not found control will end
		chk.checked = check;
		i++;
		chk = MM_findObj(StdName.replace("$$",padZero(i,2)));
	}
	
	objid = StdName.replace("$$",padZero(i,2)) + 'AllFoot';
	chk = MM_findObj(objid);                                            //find control footer
	if (chkAll.id != objid && chk != null)
		chk.checked = check;
}

function CheckAllPrivilege(chkAll,GirdID,ChkItemName){
	var check = chkAll.checked;											//get check state
	var StdName = chkAll.id;
	StdName = StdName.substr(0,StdName.lastIndexOf("ctl")+3) + "$$_" + ChkItemName;
	var i = 0,f=0;
	var	chk;	
	while(f < 5){	
	    chk = MM_findObj(StdName.replace("$$",padZero(i,2)));		    
	    if (chk != null){
	        if (!chk.isDisabled)													
		        chk.checked = check;
		    f=0;
		}else
		    f++;
		i++;
	}
}

function CheckPrivilege(chkAll,GirdID,ChkItemName){
	var check = chkAll.checked;											//get check state
	var StdName = chkAll.id;
	StdName = StdName.substr(0,StdName.lastIndexOf("ctl")+3) + "$$_" + ChkItemName;
	var	head = MM_findObj(StdName.replace("$$",padZero(1,2)) + 'AllHead');
	var i = 1;	
	if (head == null){													
	    head = MM_findObj(StdName.replace("$$",padZero(2,2)) + 'AllHead');
	    i = 2;
	}
	if (!check)
	    head.checked = check;
	else{
	    var f=0;
	    var	chk;	
	    while(f < 5){	
	        chk = MM_findObj(StdName.replace("$$",padZero(i,2)));		    
	        if (chk != null){													
		        if (!chk.isDisabled && !chk.checked){
		            head.checked = false;
		            return;
		        }
		        f=0;
		    }else
		        f++;
		    i++;
	    }
	    head.checked = true;
	}
}

function padZero(number,padLenght){
    var str = number.toString();
    while (str.length < padLenght){
        str = "0" + str;
        }
    return str;
}

/**********************************************************************************************************/
/**                                            Windows Control                                           **/
/**********************************************************************************************************/
function PopWindow(Name,Url,Width,Height,Top,Left) {
	if (Top==-1)
		Top = (screen.height-120-Height)/2;
	if (Left==-1)
		Left = (screen.width-Width)/2;
	newWindow = window.open(Url, Name,'toolbar=no,menubar=no,resizable=no,scrollbars=yes,status=no,location=no,width=' + Width + ',height=' + Height);
	newWindow.moveTo(Left,Top);
	newWindow.focus();
	return false;
}

function BlankWindow(Name,Url) {
	newWindow = window.open(Url, Name);
	newWindow.focus();
	return false;
}

function PopUp(pName, pUrl, pWidth, pHeight){
    PopWindow(pName, pUrl, pWidth, pHeight, -1,-1);
    return false;
}

function DefaultPassword(){
	var a = DefaultPassword.arguments;
	var i;
	for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ 
			txt = MM_findObj(a[i]);
			txt.value = '************';
		}
}

function ForceClick(BtnID){
	btn = MM_findObj(BtnID);
	//btn.focus();
	btn.click();
}

function SetFocus(CtlID){
	Ctl = MM_findObj(CtlID);
	Ctl.focus();
}


/**********************************************************************************************************/
/**                                               Keys Control                                           **/
/**********************************************************************************************************/
function CheckCapsLock( e ) {
    var myKeyCode=0;
    var myShiftKey=false;
    var myMsg='Caps Lock is On.\n\n';

    // Internet Explorer 4+
    if ( document.all ) {
        myKeyCode=e.keyCode;
        myShiftKey=e.shiftKey;

    // Netscape 4
    } else if ( document.layers ) {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;

    // Netscape 6
    } else if ( document.getElementById ) {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;
    }

    // Upper case letters are seen without depressing the Shift key, therefore Caps Lock is on
    if ( ( myKeyCode >= 65 && myKeyCode <= 90 ) && !myShiftKey ) {
        alert( myMsg );

    // Lower case letters are seen while depressing the Shift key, therefore Caps Lock is on
    } else if ( ( myKeyCode >= 97 && myKeyCode <= 122 ) && myShiftKey ) {
        alert( myMsg );
    }
}

function CheckTypingNonEnglish( e ) {
    var myKeyCode=0;
    var myShiftKey=false;
    var myMsg='Please Change keyboard to English language.\n\n';

    // Internet Explorer 4+
    if ( document.all ) {
        myKeyCode=e.keyCode;
        myShiftKey=e.shiftKey;

    // Netscape 4
    } else if ( document.layers ) {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;

    // Netscape 6
    } else if ( document.getElementById ) {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;
    }

    if(myKeyCode > 256)
        alert( myMsg );
    
}

/**********************************************************************************************************/
/**                                            Edraw Control                                             **/
/**********************************************************************************************************/
function EnterEdraw(EdrawID,ResultID,row,col,trow,tcol,evt){
    evt = (evt) ? evt : window.event	
    edraw = MM_findObj(EdrawID);
    edraw.ExcelSetCellValue(col,row,evt.srcElement.value);
    txt = MM_findObj(ResultID);
    txt.value = edraw.ExcelGetCellValue(tcol,trow);
}

function UpdateEdraw(SourceID,EdrawID,ResultID,row,col,trow,tcol,evt){
    txtS = MM_findObj(SourceID);
    edraw = MM_findObj(EdrawID);
    edraw.ExcelSetCellValue(col,row,txtS.value);
    txt = MM_findObj(ResultID);
    txt.value = edraw.ExcelGetCellValue(tcol,trow);
}

function Edraw2Text(EdrawID,ResultID,trow,tcol,evt){
    txt = MM_findObj(ResultID);
    edraw = MM_findObj(EdrawID);
    txt.value = edraw.ExcelGetCellValue(tcol,trow);
}

function openExcelFromServer(pPathFile){
    document.OA1.HttpOpenFileFromServerDir(pPathFile);
    return false;
}
function openInputFormsFromServer(pPathFile){
    document.OA1.HttpOpenFileFromServerDir(pPathFile);
    return false;
}


/**********************************************************************************************************/
/**                                        JavaScriptCal Control                                         **/
/**********************************************************************************************************/
function calSummary(pObjName){
    if (typeof(Replace) != 'undefined' && Replace[pObjName] != null)
        pObjName = Replace[pObjName];
    var	target = MM_findObj(pObjName);
    var sum = 0;
    var index = 0;
    var maxdigit = 0;
    for(i=0; i<SumSource.length; i++){
        if (SumSource[i] == pObjName){
            index = i;
            break;
        }
    }
    for(i=0; i<SumTarget[index].length; i++){
        var opr = SumTarget[index][i].substring(0,1);
        txt = MM_findObj(SumTarget[index][i].substring(1));
        if (txt.value.length > 0)
            if (txt.value.lastIndexOf(".")>-1 && txt.value.length - txt.value.lastIndexOf(".") -1  > maxdigit)
                maxdigit = txt.value.length - txt.value.lastIndexOf(".") -1;
            if (opr=="+")
                sum += parseFloat(txt.value.replace(/,/g,'')); 
            else if (opr=="-")
                sum -= parseFloat(txt.value.replace(/,/g,'')); 
            else{ 
                if (sum==0 && i==0){
                    if (typeof(BaseMul) != 'undefined' && BaseMul[pObjName] != null)
                         sum = BaseMul[pObjName];
                    else
                         sum=1;
                   }
                sum *= parseFloat(txt.value.replace(/,/g,''));
            }     
    }
    target.value = addCommas(sum,maxdigit);
    fireEvent(target,'keyup');
}

function updateSummary(){
    for(i=0; i<SumSource.length; i++){
        var maxdigit = 0;
        var	target = MM_findObj(SumSource[i]);
        var sum = 0;
        for(j=0; j<SumTarget[i].length; j++){
            var opr = SumTarget[i][j].substring(0,1);
            txt = MM_findObj(SumTarget[i][j].substring(1));
            if (txt.value.length > 0)
               if (txt.value.lastIndexOf(".")>-1 && txt.value.length - txt.value.lastIndexOf(".") -1  > maxdigit)
                  maxdigit = txt.value.length - txt.value.lastIndexOf(".") -1;
               if (opr=="+")
                    sum += parseFloat(txt.value.replace(/,/g,'')); 
                else if (opr=="-")
                    sum -= parseFloat(txt.value.replace(/,/g,'')); 
                else{ 
                    if (sum==0 && j==0){
                        if (typeof(BaseMul) != 'undefined' && BaseMul[SumSource[i]] != null)
                            sum = BaseMul[SumSource[i]];
                        else
                            sum=1;
                    }
                    sum *= parseFloat(txt.value.replace(/,/g,''));
                } 
        }
        target.value = addCommas(sum,maxdigit);
    }
}

function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function addCommas(nStr,digit){
    nStr = roundNumber(parseFloat(nStr),digit);
    digit++;
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '.0';
	if (x2.length > 1){
	    if (x2.length >= digit){
	        x2 = x2.substr(0,digit);
	    }else {
	        while (x2.length < digit)
	            x2 = x2 + '0';
	    }
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}









function ForceAjaxCall(BtnName){
	AJAXCbo.DoAjaxCall(BtnName, '', 'sync');
}

function getCursorPosition(obj) {
	if (obj.createTextRange) {
		var r = document.selection.createRange().duplicate()
		r.moveEnd('character', obj.value.length)
		if (r.text == '') return obj.value.length
		return obj.value.lastIndexOf(r.text)
	} else 
		return obj.selectionStart
}

function setCursorPosition(obj, Position){
	if (obj.setSelectionRange){
		obj.focus();
        obj.setSelectionRange(Position, Position);
    }else if (obj.createTextRange) {
        var range = obj.createTextRange();
        range.collapse(true);
        range.moveEnd('character', Position);
        range.moveStart('character', Position);
        range.select();
    }
}

function LimitCheck(obj,minValue,maxValue) {
    var value = parseFloat(obj.value);
	pos = getCursorPosition(obj);
    if (value > maxValue) { 
		obj.value = obj.value.substring(0, pos-1) + obj.value.substring(pos);
		setCursorPosition(obj,pos-1,pos-1);
		alert('กรุณาอย่ากรอกข้อมูลมากกว่า ' + maxValue.toString());  
		return true; 
	} else if (value < minValue) { 
		obj.value = obj.value.substring(0, pos-1) + obj.value.substring(pos);
		setCursorPosition(obj,pos-1,pos-1);
		alert('กรุณาอย่ากรอกข้อมูลน้อยกว่า  ' + minValue.toString());  
		return true; 
	}
    return true;
}
//************************************* Un use code
/*


function SendClick(BtnID, event){
	btn = MM_findObj(BtnID);
	if (document.all){
		if (event.keyCode == 13){
			event.returnValue=false;
			event.cancel = true;
			btn.click();
		}
	}else if (document.getElementById){
		if (event.which == 13){
			event.returnValue=false;
			event.cancel = true;
			btn.focus();
			btn.click();
		}
	}else if(document.layers){
		if(event.keyCode == 13){
			event.returnValue=false;
			event.cancel = true;
			btn.focus();
			btn.click();
		}
	}
}


function BlockEnter() {
	if (window.event.keyCode == 13)
		window.event.keyCode =0;
}






	function PostBack(eventTarget, eventArgument) {
		var theform;
		if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
			theform = document.Form1;
		}
		else {
			theform = document.forms["Form1"];
		}
		//theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
		//theform.__EVENTARGUMENT.value = eventArgument;
		theform.submit();
	}

// -------------------- Style ----------------------------------
function InitStyle(){
	var strCss = getCookie("css");

	if(typeof(strCss) == "undefined")
		strCss = "Small";

	if(strCss == "Small")
		document.write('<link rel="stylesheet" title="Small" href="ITCAT.css" type="text/css">');
	else
		document.write('<link rel="stylesheet" title="Small" href="ITCAT.css" type="text/css" disabled>');

	if(strCss == "Medium")
		document.write('<link rel="stylesheet" title="Medium" href="ITCAT_Medium.css" type="text/css">');
	else
		document.write('<link rel="stylesheet" title="Medium" href="ITCAT_Medium.css" type="text/css" disabled>');

	if(strCss == "Large")
		document.write('<link rel="stylesheet" title="Large" href="ITCAT_Large.css" type="text/css">');
	else
		document.write('<link rel="stylesheet" title="Large" href="ITCAT_Large.css" type="text/css" disabled>');

	return true;
}

function SetStyle(strName){
	var intCount;

	for(intCount = 0;intCount < document.styleSheets.length; intCount++) {
		if(document.styleSheets[intCount].title == strName)
			document.styleSheets[intCount].disabled = false;
		else
			document.styleSheets[intCount].disabled = true;
	}

	setCookie("css", strName, 30, "/", null);
}

function UpdateStyle(){
	var strName;

	strName = getCookie("css")

	if((typeof(strName) != "undefined")&&(strName != null))
		setCookie("css", strName, 30, "/", null);
}

//InitStyle();

// -------------------- Cookies ----------------------------------
function setCookie(strName, strValue, intExpire, strPath, strDomain)
{
	var strSetCookieStatement;
	var dateToday = new Date;
	var dateExpires = new Date;

	if((strName != null)&&(typeof(strName) !=" undefined"))
	{
		strSetCookieStatement = escape(strName) + "=";

		if((strValue != null)&&(typeof(strValue) !=" undefined"))
			strSetCookieStatement = strSetCookieStatement + escape(strValue);

		if((intExpire != null)&&(typeof(intExpire) != "undefined")) {
			dateExpires.setTime(dateToday.getTime() + (60 * 60 * 24 * 1000 * intExpire));
			strSetCookieStatement = strSetCookieStatement + "; expires=" + dateExpires.toGMTString();
		}

		if((strPath != null)&&(typeof(strPath) != "undefined")) {
			strSetCookieStatement = strSetCookieStatement + "; path=" + escape(strPath);
		}

		if((strDomain != null)&&(typeof(strDomain) != "undefined")) {
			strSetCookieStatement = strSetCookieStatement + "; domain=" + escape(strDomain);
		}

		strSetCookieStatement = strSetCookieStatement + ";";

		document.cookie = strSetCookieStatement;
	}
}

function setCookieParameter(strName, intExpire, strPath, strDomain)
{
	var strSetCookieStatement;
	var dateToday = new Date;
	var dateExpires = new Date;

	var intOffset, intEnd;
	var strSearch = strName + "=";
	var strValue;

	if((strName != null)&&(typeof(strName) !=" undefined"))
	{
		strSetCookieStatement = escape(strName) + "=";

		if (document.cookie.length > 0) {
			intOffset = document.cookie.indexOf(strSearch);
		 	if (intOffset != -1) {
	 			intOffset += strSearch.length;
	 			intEnd = document.cookie.indexOf(";", intOffset);
		 		if (intEnd == -1)
		 			intEnd = document.cookie.length;
	 			strValue = document.cookie.substring(intOffset, intEnd);
		 	}
		 }

		if((strValue != null)&&(typeof(strValue) !=" undefined"))
			strSetCookieStatement = strSetCookieStatement + strValue;

		if((intExpire != null)&&(typeof(intExpire) != "undefined")) {
			dateExpires.setTime(dateToday.getTime() + intExpire);
			strSetCookieStatement = strSetCookieStatement + "; expires=" + dateExpires.toGMTString();
		}

		if((strPath != null)&&(typeof(strPath) != "undefined")) {
			strSetCookieStatement = strSetCookieStatement + "; path=" + escape(strPath);
		}

		if((strDomain != null)&&(typeof(strDomain) != "undefined")) {
			strSetCookieStatement = strSetCookieStatement + "; domain=" + escape(strDomain);
		}

		strSetCookieStatement = strSetCookieStatement + ";";

		document.cookie = strSetCookieStatement;
	}
}

function getCookie(strName)
{
	var intOffset, intEnd;
	var strSearch = strName + "=";

	 if (document.cookie.length > 0) {
		intOffset = document.cookie.indexOf(strSearch);
	 	if (intOffset != -1) {
	 		intOffset += strSearch.length;
	 		intEnd = document.cookie.indexOf(";", intOffset);
	 		if (intEnd == -1)
	 			intEnd = document.cookie.length;
	 		return unescape(document.cookie.substring(intOffset, intEnd));
	 	}
	 }
}

function getCookieWithKeys(strName, strKey)
{
	var strValue = getCookie(strName);
	var intOffset, intEnd;
	var strSearch = strKey + "=";

	if ((typeof(strValue) != "undefined")&&(strValue != null)&&(strValue.length > 0)) {
		intOffset = strValue.indexOf(strSearch);
	 	if (intOffset != -1) {
	 		intOffset += strSearch.length;
	 		intEnd = strValue.indexOf("&", intOffset);
	 		if (intEnd == -1)
	 			intEnd = strValue.length;
	 		return unescape(strValue.substring(intOffset, intEnd));
	 	}
	 }	
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function ClosePopUp(P1,P2){	//เช็คการส่งค่ามาจากหน้าที่ Popup
	window.opener.Invoke(P1,P2);
	window.close();
}

function BookmarkSite(Url,Title){
	if (document.all)
		window.external.AddFavorite(Url, Title);
	else if (window.sidebar)
		window.sidebar.addPanel(Title, Url, "")
}


*/
//***************************************************

//-->



