//
// Functions for Cookie
//

function getCookieVal(offset) {
  var endstr = document.cookie.indexOf (';', offset) ;
  if (endstr == -1)
    endstr = document.cookie.length ;
  return unescape(document.cookie.substring(offset, endstr)) ;
}

function FixCookieDate(date) {
  var base = new Date(0) ;
  /*  dawn of (Unix) time - should be 0 */
  var skew = base.getTime() ;
  /*  Except on the Mac - ahead of its time */
  if (skew > 0)
    date.setTime (date.getTime() - skew) ;
  return ;
}

function GetCookie(name) {
  var key = name + "=" ;
  var value = null ;
  var cookies = window.document.cookie.split(";") ;
  for (var i = 0; i < cookies.length; i++) {
    var pos = cookies[i].indexOf(key) ;
    if (pos >= 0) {
      value = cookies[i].substring(pos + key.length) ;
      if (value) break ;
    }
  }
  return (value != null) ? unescape(value) : null ;
}

function GetCookieGeneric(name) {
  var value = GetCookie(name);
  if (value == null) {
    value = GetCookie(name.replace('ck', 'ckJs'));
  }
  return value;
}

function SetCookie(name, value, expires, path, domain, secure) {
  window.document.cookie = name + "=" + escape(value)
    + (expires ? ("; expires=" + expires.toGMTString()) : "")
      + (path ? ("; path=" + path) : "")
        + (domain ? ("; domain=" + domain) : "")
          + (secure ? ("; secure") : "") ;
  return ;
}

/* call back function when submit */
function register(frm) {
  var oElements = document.getElementsByName("txtNamae");
  if (oElements.length > 0) {
    // frm.txtNamae exists
    var Namae = frm.txtNamae.value;
    // replace 2 byte space into 1 byte space
    Namae = Namae.split('กก');
    Namae = Namae.join(' ');

    arrNamae = Namae.split(' ');
    if (arrNamae.length != 2) {
      alert("Please insert a space between your first name and family name.");
      return false;
    };
    frm.txtNamae.value = Namae;
  }

  var expires = new Date() ;

  /* set time for expire cookies */
  expires.setTime(0) ;

  SetCookie("ckNamae", "", expires, "/") ;
  SetCookie("ckKaisha", "", expires, "/") ;
  SetCookie("ckKaishaKana", "", expires, "/") ;
  SetCookie("ckBusho", "", expires, "/") ;
  SetCookie("ckYakushoku", "", expires, "/") ;
  SetCookie("ckYuubin", "", expires, "/") ;
  SetCookie("ckJuusho", "", expires, "/") ;
  SetCookie("ckTEL", "", expires, "/") ;
  SetCookie("ckFAX", "", expires, "/") ;
  SetCookie("ckEmail", "", expires, "/") ;
  SetCookie("ckChouiki", "", expires, "/") ;
  SetCookie("ckShi", "", expires, "/") ;
  SetCookie("ckKen", "", expires, "/") ;
  SetCookie("ckZipcode", "", expires, "/") ;
  SetCookie("ckBusho2", "", expires, "/") ;
  SetCookie("ckSei", "", expires, "/") ;
  SetCookie("ckSeiKana", "", expires, "/") ;
  SetCookie("ckMei", "", expires, "/") ;
  SetCookie("ckMeiKana", "", expires, "/") ;
  SetCookie("ckCityState", "", expires, "/") ;
  SetCookie("ckCountry", "", expires, "/") ;

  SetCookie("ckJsNamae", "", expires, "/") ;
  SetCookie("ckJsNamaeKana", "", expires, "/") ;
  SetCookie("ckJsKaisha", "", expires, "/") ;
  SetCookie("ckJsKaishaKana", "", expires, "/") ;
  SetCookie("ckJsBusho", "", expires, "/") ;
  SetCookie("ckJsYakushoku", "", expires, "/") ;
  SetCookie("ckJsYuubin", "", expires, "/") ;
  SetCookie("ckJsJuusho", "", expires, "/") ;
  SetCookie("ckJsTEL", "", expires, "/") ;
  SetCookie("ckJsFAX", "", expires, "/") ;
  SetCookie("ckJsEmail", "", expires, "/") ;
  SetCookie("ckJsURL", "", expires, "/") ;

  return true ;
};

/* check browser version */
function checkBrowser() {
  var name = navigator.appName ;
  var version = "" ;
  for (var i = 0; i < navigator.appVersion.length; i++) {
    var c = navigator.appVersion.charAt(i) ;
    if ((c != ".") && isNaN(c))
      break ;
    version = version + c ;
  }

  name = name.toLowerCase() ;
  if (!isNaN(version))
    version = parseFloat(version) ;

  if (
    ((name == "netscape") && (version >= 4)) ||
    ((name == "microsoft internet explorer") && (version >= 4))
    ) return true ;

  alert("Please use Microsoft Internet Explorer 4.01 SP2 or Netscape 4.7") ;

  return false ;
};

/* set text area from cookie */
function setTxtArea(name, value) {
  if (value) {
    var oElements = document.getElementsByName(name);
    if (oElements.length > 0) {
      oElements[0].value = value;
    }
  }
}

function setSelectBox(name, value) {
  if (value) {
    var oElements = document.getElementsByName(name);
    if (oElements.length > 0) {
      oElements[0].selectedIndex = value;
    }
  }
}

/* call back function when page is loaded */
function documentOnLoad() {
  /* get cookie information */
  var Namae = GetCookieGeneric('ckNamae') ;
  var NamaeKana = GetCookieGeneric('ckNamaeKana') ;
  var Kaisha = GetCookieGeneric('ckKaisha') ;
  var KaishaKana = GetCookieGeneric('ckKaishaKana') ;
  var Busho = GetCookieGeneric('ckBusho') ;
  var Yakushoku = GetCookieGeneric('ckYakushoku') ;
  var Yuubin = GetCookieGeneric('ckYuubin') ;
  var Juusho = GetCookieGeneric('ckJuusho') ;
  var TEL = GetCookieGeneric('ckTEL') ;
  var FAX = GetCookieGeneric('ckFAX') ;
  var Email = GetCookieGeneric('ckEmail') ;
  var URL = GetCookieGeneric('ckURL') ;
  var Chouiki = GetCookieGeneric('ckChouiki') ;
  var Shi = GetCookieGeneric('ckShi') ;
  var Ken = GetCookieGeneric('ckKen') ;
  var Zipcode = GetCookieGeneric('ckZipcode') ;
  var Busho2 = GetCookieGeneric('ckBusho2') ;
  var Sei = GetCookieGeneric('ckSei') ;
  var SeiKana = GetCookieGeneric('ckSeiKana') ;
  var Mei = GetCookieGeneric('ckMei') ;
  var MeiKana = GetCookieGeneric('ckMeiKana') ;
  var CityState = GetCookieGeneric('ckCityState') ;
  var Country = GetCookieGeneric('ckCountry') ;

  var frm = window.document.frm ;

  setTxtArea("txtNamae", Namae);
  setTxtArea("txtNamaeKana", NamaeKana);
  setTxtArea("txtKaisha", Kaisha);
  setTxtArea("txtKaishaKana", KaishaKana);
  setTxtArea("txtBusho", Busho);
  setTxtArea("txtYakushoku", Yakushoku);
  setTxtArea("txtZipcode", Yuubin);
  setTxtArea("txtZipcode", Zipcode);
  setTxtArea("txtJuusho", Juusho);
  setTxtArea("txtFAX", FAX);
  setTxtArea("txtTEL", TEL);
  setTxtArea("txtEmail", Email);
  setTxtArea("txtURL", URL);
  setTxtArea("txtChouiki", Chouiki);
  setTxtArea("txtShi", Shi);
  setSelectBox("txtKen", Ken);
  setTxtArea("txtBusho2", Busho2);
  setTxtArea("txtSei", Sei);
  setTxtArea("txtSeiKana", SeiKana);
  setTxtArea("txtMei", Mei);
  setTxtArea("txtMeiKana", MeiKana);
  setTxtArea("txtCityState", CityState);
  setTxtArea("txtCountry", Country);

  /* check browser version */
  checkBrowser() ;

  /* get information from encrypted cookie */
  setPersonalData();

  /* check if a checkbox for confirming to save personal information on
     cookie exists or not.
     if not, create hidden input element. */
  var oElements = document.getElementsByName("chkMemorize");
  if (oElements.length == 0) {
    /* a checkbox does not exist */
    var oInput = document.createElement('input');
    oInput.name = "chkMemorize";
    oInput.type = "hidden";
    oInput.value = "on";
    frm.appendChild(oInput);
  }

  return ;
}

function winOpen(opt){
  url = "/php/get_zipcode.php?txtZipcode=" + opt.value;
  win=window.open(url , "Title" , "width=1,height=1,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no");
}

//
// Encrypt personal information
//
function setPersonalData() {
  var setData = function(req) {
    if (!req) return;
    if (!req.responseText) return;
    var data = eval('(' + req.responseText + ')');
    var p;
    for (p in data) {
      var field;
      var prop;
      var oElements;
      if (p != "end") {
	field = p.replace(/^s/, "txt");
        //cmd = "window.document.frm." + field + ".value = data." + p;
        //eval(cmd);
	oElements = document.getElementsByName(field);
	if (oElements.length > 0) {
	  cmd = "oElements[0].value = data." + p;
	  eval(cmd);
	}
      }
    }
  };

  var url = location.protocol + "//" + location.host + "/php/decPersonal.php";
  sendRequest(setData, '', 'GET', url);
}

//
// from ajax.js
//
function chkAjaBrowser()
{
	var a,ua = navigator.userAgent;
	this.bw= {
	  safari    : ((a=ua.split('AppleWebKit/')[1])?a.split('(')[0]:0)>=124 ,
	  konqueror : ((a=ua.split('Konqueror/')[1])?a.split(';')[0]:0)>=3.3 ,
	  mozes     : ((a=ua.split('Gecko/')[1])?a.split(" ")[0]:0) >= 20011128 ,
	  opera     : (!!window.opera) && ((typeof XMLHttpRequest)=='function') ,
	  msie      : (!!window.ActiveXObject)?(!!createHttpRequest()):false
	}
	return (this.bw.safari||this.bw.konqueror||this.bw.mozes||this.bw.opera||this.bw.msie)
  }

function createHttpRequest() {
	var xmlHttp;
	if(window.ActiveXObject){
		//Win e4,e5,e6
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") ;
			return xmlHttp;
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
				return xmlHttp;
			} catch (e2) {
				return null ;
			}
		}
	} else if(window.XMLHttpRequest){
		//Win Mac Linux m1,f1,o8 Mac s1 Linux k3
		xmlHttp = new XMLHttpRequest() ;
		xmlHttp.overrideMimeType("text/xml");
		return xmlHttp ;
	} else {
		return null ;
	}
}

function sendRequest(callback,data,method,url,async,sload,user,password) {
	var oj = createHttpRequest();
	if( oj == null ) return null;

	var sload = (!!sendRequest.arguments[5])?sload:false;
	if(sload || method.toUpperCase() == 'GET')url += "?";
	if(sload)url=url+"t="+(new Date()).getTime();

	var bwoj = new chkAjaBrowser();
	var opera	  = bwoj.bw.opera;
	var safari	  = bwoj.bw.safari;
	var konqueror = bwoj.bw.konqueror;
	var mozes	  = bwoj.bw.mozes ;

	if(opera || safari || mozes){
		oj.onload = function () { callback(oj); }
	} else {

		oj.onreadystatechange =function ()
		  {
			  if ( oj.readyState == 4 ){
				  callback(oj);
			  }
		  }
	}

	data = uriEncode(data)
    if(method.toUpperCase() == 'GET') {
	  url += data
	}

	oj.open(method,url,async,user,password);

	setEncHeader(oj)

    oj.send(data);

	function setEncHeader(oj){

		var contentTypeUrlenc = 'application/x-www-form-urlencoded; charset=UTF-8';
		if(!window.opera){
			oj.setRequestHeader('Content-Type',contentTypeUrlenc);
		} else {
			if((typeof oj.setRequestHeader) == 'function')
			  oj.setRequestHeader('Content-Type',contentTypeUrlenc);
		}
		return oj
	}

	function uriEncode(data){

		if(data!=""){
			var datas = data.split('&');
			var dataq = datas[0].split('=');
			var encdata = encodeURIComponent(dataq[0])+'='+encodeURIComponent(dataq[1]);
			for(i=1;i<datas.length;i++)
			  {
				  dataq = datas[i].split('=');
				  encdata += '&'+encodeURIComponent(dataq[0])+'='+encodeURIComponent(dataq[1]);
			  }
		} else {
			encdata = "";
		}
		return encdata;
	}

	return oj
}

