/***** Control *****/
function GetCtrl(CtrlName){
    if (document.all) return document.all[CtrlName];
    else return document.getElementById(CtrlName);
}
function GetCtrlValue(CtrlName){
	var val = "";
	if (GetCtrl(CtrlName) != null){
		val = GetCtrl(CtrlName).value;
	}
	return val;
}
function SetCtrlValue(CtrlName, Value){
	if (GetCtrl(CtrlName) != null){
		GetCtrl(CtrlName).value = Value;
	}
}
function SetInnerText(CtrlName, Value){
	if (GetCtrl(CtrlName) != null){
		GetCtrl(CtrlName).innerText = Value;
	}
}
function GetInnerText(CtrlName){
    var val = "";
	if (GetCtrl(CtrlName) != null){
		val = GetCtrl(CtrlName).innerText;
	}
	return val;
}
function SetCtrlChecked(CtrlName, Value){
	if (GetCtrl(CtrlName) != null){
		GetCtrl(CtrlName).checked = Value;
	}
}
/*function GetOpenerCtrlValue(CtrlName){
	var val = "";
	if (window.opener.document.getElementById(CtrlName) != null){
		val = window.opener.document.getElementById(CtrlName).value;
	}
	return val;
}

function SetOpenerCtrlValue(CtrlName, Value){
	if (window.opener.document.getElementById(CtrlName) != null){
		window.opener.document.getElementById(CtrlName).value = Value;
	}
}

function SetOpenerInnerText(CtrlName, Value){
	if (window.opener.document.getElementById(CtrlName) != null){
		window.opener.document.getElementById(CtrlName).innerText = Value;
	}
}
function GetOpenerInnerText(CtrlName){
    var val = "";
	if (window.opener.document.getElementById(CtrlName) != null){
		val = window.opener.document.getElementById(CtrlName).innerText;
	}
	return val;
}*/

//Created By Aoy 23/04/2552
/*function GetParentCtrlValue(CtrlName){
	var val = "";
	if (window.parent.document.getElementById(CtrlName) != null){
		val = window.parent.document.getElementById(CtrlName).value;
	}
	return val;
}

function SetParentCtrlValue(CtrlName, Value){
	if (window.parent.document.getElementById(CtrlName) != null){
		window.parent.document.getElementById(CtrlName).value = Value;
	}
}

function SetParentInnerText(CtrlName, Value){
	if (window.parent.document.getElementById(CtrlName) != null){
		window.parent.document.getElementById(CtrlName).innerText = Value;
	}
}

function SetParentInnerText(CtrlName, Value){
	if (window.parent.document.getElementById(CtrlName) != null){
		window.parent.document.getElementById(CtrlName).innerText = Value;
	}
}
//End
*/

function SubmitForm(FrmName){
		eval("document." + FrmName + ".submit();");
}
function SubmitOpenerForm(FrmName){
		eval("window.opener.document." + FrmName + ".submit();");
}
function GetValueFromRadioList(FrmName, Name){
	var len = eval("document." + FrmName + "." + Name + ".length");
	var Ctrl;
	var ret = "";
	
	for (i = 0; i <len; i++) {
		Ctrl = eval("document." + FrmName + "." + Name + "[" + i + "]");
		if (Ctrl != null && Ctrl.checked) {
			ret = Ctrl.value;
		}
	}
	return ret;
}
function GetDescFromDropDown(FrmName, Name){
	var sel = eval("document." + FrmName + "." + Name + ".selectedIndex");
	var txt = "";
	if (sel >= 0){ txt = eval("document." + FrmName + "." + Name + ".options[" + sel + "].text"); }
	return txt;
}

/***** Style *****/
/*var old_bgcolor;
var old_class;
var old_bgcolor1;
var old_class1;
function ShowBar(src) {
	if (!src.contains(event.fromElement)) {
		src.style.cursor = 'hand';
		old_class = src.className;
		src.className = 'TableSelectBar';
	}
}
function HideBar(src) {
	if (!src.contains(event.toElement)) {
		src.style.cursor = 'default';
		src.className = old_class;
	}
}
function ShowBar1(src) {
	if (!src.contains(event.fromElement)) {
		src.style.cursor = 'hand';
		old_class1 = src.className;
		src.className = 'TableSelectStatusBar';
	}
}
function HideBar1(src) {
	if (!src.contains(event.toElement)) {
		src.style.cursor = 'default';
		src.className = old_class1;
	}
}
function GetDate(ctrlName, DateSel){
    SetCtrlValue(ctrlName, DateSel);
}
function Calendar_Open(ctrlname){
    var d;
    d = GetCtrlValue(ctrlname);
   	window.open("../script/Calendar.aspx?CtrlName=" + ctrlname + "&CurrentDate=" + d + "&Lang=EN","","height=230,width=280"); 
}

function openReport(URLs) { window.open(URLs,"_blank","toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,directories=0"); }
*/
/***** Utility *****/
/*function To_Num(N){
	if (N != ''){
		if (typeof(N)=='string') {
			var convertedString = N.split(':');
			convertedString = convertedString.join('');
			return parseFloat(convertedString);
		} else { 
			return N; 
		}
	} else {
		return 0;
	}
}
 function RoundNumber(rnum,rlength) {
 // The number of decimal places to round to
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	return newnumber;
}
function isDate(DateToCheck){
	if(DateToCheck==""){return true;}
	var m_strDate = FormatDate(DateToCheck);
	if(m_strDate==""){
		return false;
	}
	
	var m_arrDate = m_strDate.split("/");
	var m_DAY = m_arrDate[0];
	var m_MONTH = m_arrDate[1];
	var m_YEAR = m_arrDate[2];
	if(m_YEAR.length > 4){return false;}
	if(m_YEAR< 1000){return false;}
	var d = new Date();
	m_YEAR = parseInt(m_YEAR);
	if (m_YEAR > 2500) {
		m_YEAR = m_YEAR-543;
	}
	m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
	var testDate=new Date(m_strDate);
	if(testDate.getMonth()+1==m_MONTH){
		return true;
	} else {
		return false;
	}
}
function FormatDate(DateToFormat,FormatAs){
	if(DateToFormat==""){return"";}
	if(!FormatAs){FormatAs="dd/mm/yyyy";}
	var strReturnDate;
	FormatAs = FormatAs.toLowerCase();
	DateToFormat = DateToFormat.toLowerCase();
	var arrDate;
	var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var strMONTH;
	var Separator;
	while(DateToFormat.indexOf("st")>-1){
		DateToFormat = DateToFormat.replace("st","");
	}
	while(DateToFormat.indexOf("nd")>-1){
		DateToFormat = DateToFormat.replace("nd","");
	}
	while(DateToFormat.indexOf("rd")>-1){
		DateToFormat = DateToFormat.replace("rd","");
	}
	while(DateToFormat.indexOf("th")>-1){
		DateToFormat = DateToFormat.replace("th","");
	}
	if(DateToFormat.indexOf(".")>-1){
		Separator = "/";
	}
	if(DateToFormat.indexOf("-")>-1){
		Separator = "/";
	}
	if(DateToFormat.indexOf("/")>-1){
		Separator = "/";
	}
	if(DateToFormat.indexOf(" ")>-1){
		Separator = "/";
	}
	arrDate = DateToFormat.split(Separator);
	DateToFormat = "";
	for(var iSD = 0;iSD < arrDate.length;iSD++){
		if(arrDate[iSD]!=""){
			DateToFormat += arrDate[iSD] + Separator;
		}
	}
	DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
	arrDate = DateToFormat.split(Separator);
	if(arrDate.length < 3){
		return "";
	}
	var DAY = arrDate[0];
	var MONTH = arrDate[1];
	var YEAR = arrDate[2];
	if(parseFloat(arrDate[1]) > 12){
		DAY = arrDate[1];
		MONTH = arrDate[0];
	}
	if(parseFloat(DAY) && DAY.toString().length==4){
		YEAR = arrDate[0];
		DAY = arrDate[2];
		MONTH = arrDate[1];
	}
	for(var iSD = 0;iSD < arrMonths.length;iSD++){
		var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
		var MonthPosition = DateToFormat.indexOf(ShortMonth);
		if(MonthPosition > -1){
			MONTH = iSD + 1;
			if(MonthPosition == 0){
				DAY = arrDate[1];
				YEAR = arrDate[2];
			}
			break;
		}
	}
	var strTemp = YEAR.toString();
	if(strTemp.length==2){
		if(parseFloat(YEAR)>40){
			YEAR = "19" + YEAR;
		} else {
			YEAR = "20" + YEAR;
		}
	}
	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
		MONTH = "0" + MONTH;
	}
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
		DAY = "0" + DAY;
	}
	switch (FormatAs){
		case "dd/mm/yyyy":
			return DAY + "/" + MONTH + "/" + YEAR;
		case "mm/dd/yyyy":
			return MONTH + "/" + DAY + "/" + YEAR;
		case "dd/mmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
		case "mmm/dd/yyyy":
			return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
		case "dd/mmmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
		case "mmmm/dd/yyyy":
			return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	}
	return DAY + "/" + strMONTH + "/" + YEAR;;
}

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;
}

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 IsNumeric(sText){
var ValidChars = "0123456789.,";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++){ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1)  {
		IsNumber = false;
	}
}
	return IsNumber;
}

function IsEnglish(sText){
var ValidChars = " 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.,*&#@?><{}/-+$%()_=|[]:;'";
var IsEnglishs=true;
var Char;
for (i = 0; i < sText.length && IsEnglishs == true; i++){ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1)  {
		IsEnglishs = false;
	}
}
	return IsEnglishs;
}

function IsTime(sText){
var ValidChars = "0123456789:-";
var IsTimes=true;
var Char;
for (i = 0; i < sText.length && IsTimes == true; i++){ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1)  {
		IsTimes = false;
	}
}
	return IsTimes;
}

function IsNumberData(sText){
var ValidChars = "0123456789";
var IsNumType=true;
var Char;
for (i = 0; i < sText.length && IsNumType == true; i++){ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1)  {
		IsNumType = false;
	}
}
	return IsNumType;
}

function IsEMailList(MailList) {
var IsEmail=true;
var MailArr;
MailList = MailList.replace(",", ";");
MailArr = MailList.split(";");
for (i=0;i < MailArr.length && IsEmail==true; i++) {
	var EMailid = MailArr[i];
	if (IsEmailCheck(EMailid)==true) {
		IsEmail = true;
	} else {
		IsEmail = false;
	}
}
return IsEmail;
//if (MailList.indexOf("@")==-1){
//	return false;
//} 
//else { return true; }
}

function IsEmailCheck(emailStr) {
// checks if the e-mail address is valid
var Isemail=true;

var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
var isOK = !r1.test(emailStr) && r2.test(emailStr);
if (emailStr.length < 1) isOK=true;
//var emailPat = /^(\".*\"|[A-Za-z0-9]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9]\w*(\.[A-Za-z0-9]\w*)+)$/;
//var matchArray = emailStr.match(emailPat);
//	if (matchArray == null) {
	//alert("Your email address seems incorrect.  Please try again (check the '@' and '.'s in the email address)");
//		Isemail= false;
	 return isOK;
}

function IsPhoneData(sText){
var ValidChars = "#0123456789,-#*+() ต่อ ext";
var IsPhoneType=true;
var Char;
for (i = 0; i < sText.length && IsPhoneType == true; i++){ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1)  {
		IsPhoneType = false;
	}
}
	return IsPhoneType;
}

function IsValidTime(value) {
   var colonCount = 0;
   var hasMeridian = false;
   for (var i=0; i<value.length; i++) {
      var ch = value.substring(i, i+1);
      if ( (ch < '0') || (ch > '9') ) {
         if ( (ch != ':') && (ch != ' ') && (ch != 'a') && (ch != 'A') && (ch != 'p') && (ch != 'P') && (ch != 'm') && (ch != 'M')) {
            return false;
         }
      }
      if (ch == ':') { colonCount++; }
      if ( (ch == 'p') || (ch == 'P') || (ch == 'a') || (ch == 'A') ) { hasMeridian = true; }
   }
   if ( (colonCount < 1) || (colonCount > 2) ) { return false; }
   var hh = value.substring(0, value.indexOf(":"));
   if ( (parseFloat(hh) < 0) || (parseFloat(hh) > 23) ) { return false; }
   if (hasMeridian) {
      if ( (parseFloat(hh) < 1) || (parseFloat(hh) > 12) ) { return false; }
   }
   if (colonCount == 2) {
      var mm = value.substring(value.indexOf(":")+1, value.lastIndexOf(":"));
   } else {
      var mm = value.substring(value.indexOf(":")+1, value.length);
   }
   if ( (parseFloat(mm) < 0) || (parseFloat(mm) > 59) ) { return false; }
   if (colonCount == 2) {
      var ss = value.substring(value.lastIndexOf(":")+1, value.length);
   } else {
      var ss = "00";
   }
   if ( (parseFloat(ss) < 0) || (parseFloat(ss) > 59) ) { return false; }
   return true;
}
*/

/***
IN: str - the string we are LEFTing
start - our string's starting position (0 based!!)
len - how many characters from start we want to get

RETVAL: The substring from start to start+len
***/
/*function Mid(str, start, len)
{
// Make sure start and len are within proper bounds
if (start < 0 || len < 0) return "";

var iEnd, iLen = String(str).length;
if (start + len > iLen)
iEnd = iLen;
else
iEnd = start + len;

return String(str).substring(start,iEnd);
}*/

/*
InStr(strSearch, charSearchFor) : Returns the first location a substring (charSearchFor) found in the string strSearch. (If the character is not found, -1 is returned.)
*/
/*function InStr(strSearch, charSearchFor)
{
for (i=0; i < strSearch.length; i++)
{
if (charSearchFor == Mid(strSearch, i, 1))
{
return i;
}
}
return -1;
} 

function Asc(CHARACTER){
return CHARACTER.charCodeAt(0);
}

function Right(STRING,CHARACTER_COUNT){
return STRING.substring((STRING.length - CHARACTER_COUNT),STRING.length);
}
*/

var CharList = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@#$%^&*()-+/=.,";
var CharCount = 79;
var MaxKeyLen=50;

function Key2Char(num) {
	return CharList.charAt(num % CharCount);
}

function Key2Num(Key) {
    return CharList.indexOf(Key);
}

function EncodeKey(SecretKey,Data) {
var X,X0;
var S,t,EncodedKey;
var Valid=true;
var I;
var EncKey;
var ch;

    S = SecretKey + Data;
    X0 = 12;
    for (I = 0; I < S.length; I++){ 
		X0 = X0 + S.charCodeAt(I);
		if (Key2Num(S.charAt(I)) == -1) Valid=false;
	}
    X0 = X0 % CharCount;
    X = X0;
    if (! Valid) {
		return "";
	}
        
    EncodedKey = Key2Char(X0);
    S = "          " + SecretKey + SecretKey + SecretKey + SecretKey;
    S = S.substr(S.length - MaxKeyLen, MaxKeyLen)
    t = "          " + Data + Data + Data + Data;
    t = t.substr(t.length - MaxKeyLen, MaxKeyLen);
  //  alert("S=[" + S + "], t=["+t+"]");
	for (I = 0; I < MaxKeyLen; I++){
		X = X + 55 + Key2Num(S.charAt(I)) - Key2Num(t.charAt(I));
        EncodedKey = EncodedKey + Key2Char(X);
	}
	EncodedKey = EncodedKey + Key2Char(Math.floor(X / CharCount)) + Key2Char(X0 + Data.length);
//	alert("Encode Key = [" +  EncodedKey + "]");
    return EncodedKey; 
}

/*
function expand(ID)
{
	document.getElementById('item'+ID).style.display = 'block';
	document.getElementById('expander'+ID).innerHTML ='<a class="expander" href="javascript:collapse('+ID+')" title="Collapse">[-]</a>';
}
function collapse(ID)
{
	document.getElementById('item'+ID).style.display = 'none';
	document.getElementById('expander'+ID).innerHTML ='<a class="expander" href="javascript:expand('+ID+')" title="Expand">[+]</a>';
}

//---------------------------------
// กำหนดให้เปลี่ยนสีพื้น text box ตอน Click ที่ textbox นั้นๆ

var highlightcolor="#f0fff0"

var ns6=document.getElementById&&!document.all
var previous=''
var eventobj

//Regular expression to highlight only form elements
//var intended=/INPUT|TEXTAREA|SELECT|OPTION/
var intended=/INPUT|TEXTAREA|OPTION/

//Function to check whether element clicked is form element
function checkel(which){
if (which.style&&intended.test(which.tagName)){
if (ns6&&eventobj.nodeType==3)
eventobj=eventobj.parentNode.parentNode
return true
}
else
return false
}

//Function to highlight form element
function highlight(e){
eventobj=ns6? e.target : event.srcElement
if (previous!=''){
if (checkel(previous))
previous.style.backgroundColor=''
previous=eventobj
if (checkel(eventobj))
eventobj.style.backgroundColor=highlightcolor
}
else{
if (checkel(eventobj))
eventobj.style.backgroundColor=highlightcolor
previous=eventobj
}
}
*/
//---------------------------------
/***
                IN: str - the string we are LEFTing
                    n - the number of characters we want to return

                RETVAL: n characters from the left side of the string
        ***/
 /*function Left(str, n)
        
        {
                if (n <= 0)     // Invalid bound, return blank string
                        return "";
                else if (n > String(str).length)   // Invalid bound, return
                        return str;                // entire string
                else // Valid bound, return appropriate substring
                        return String(str).substring(0,n);
        }
        
        function getMonth(MON){
    var Month = 0;
    switch(MON){
        case "Jan" : Month = 1; break;
        case "Feb" : Month = 2; break;
        case "Mar" : Month = 3; break;
        case "Apr" : Month = 4; break;
        case "May" : Month = 5; break;
        case "Jun" : Month = 6; break;
        case "Jul" : Month = 7; break;
        case "Aug" : Month = 8; break;
        case "Sep" : Month = 9; break;
        case "Oct" : Month = 10; break;
        case "Nov" : Month = 11; break;
        case "Dec" : Month = 12; break;
    }
    return Month;
}
*/

function bookmark() {
    var title = 'Looking for Work? - Adecco Thailand';
    var url = 'http://www.adecco.co.th/employers/';
    if (document.all)
        window.external.AddFavorite(url, title);
    else if (window.sidebar)
        window.sidebar.addPanel(title, url, "")
    else if (window.sidebar && window.sidebar.addPanel)
        window.sidebar.addPanel(title, url, "");
}

function getfile(value)
{
    var settings = "resizable=yes,status=no,toolbar=no,location=no,directories=no,menubar=no,titlebar=no,scrollbars=yes";
    window.open ("download-file.aspx?P=" + value, "file" , settings);
}
