﻿
var http = createRequestObject();

function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
	    ro = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
	    ro = new XMLHttpRequest();
	}
	return ro;
}

var popObjID='';
var popLayerID='';

function sndReq(url,objID,layerID,hide) {
	popObjID=objID;
	popLayerID=layerID;
	obj=document.getElementById(popLayerID);
	http.open('get', url);
	http.onreadystatechange = handleResponse;
	http.send(null);
	displayLayer(popObjID,hide);
}

function sndReqB(url) {
	http.open('get', url);
	popLayerID=popLayerID;
	http.onreadystatechange = handleResponse;
	http.send(null);
	displayLayer(popObjID);
}

function handleResponse() {
    if(http.readyState == 4){
		obj=document.getElementById(popLayerID);
		var response = http.responseText;
		obj.innerHTML=response;
    }
}

function displayLayer(obj,hide){
	var dv = document.getElementById(popLayerID);
	//dv.innerHTML='' //清除舊內容,避免新內容尚未擷取到舊內容還殘留
	dv.style.top = realPosY(obj)+20;
	//獲取螢幕寬度
	availWidth = parseInt(window.screen.availWidth);
	tblWidth = 600;
	x = (availWidth - tblWidth)/2;
	dv.style.left = x;
	var browser = navigator.appName;
	if(hide){
		if(hide=='no'){
		}else{
			try{
				hideA = hide.split(',')
				for(i=0;i<hideA.length;i++){
					document.getElementById(hideA[i]).style.visibility = "hidden";
				}
			}catch (e) {}		
		}
	}else{
		if(browser == "Microsoft Internet Explorer"){
			hideElementAll();
		}else{
			HideElement("OBJECT");
		}
	}
	dv.style.visibility = "visible";
}

function hiddenLayer(){
	var dv = document.getElementById(popLayerID);
	dv.style.visibility = "hidden";
	showElementAll();
//	var argArr = hiddenLayer.arguments;
//	for(var i=0;i<argArr.length;i++){
//		document.getElementById(argArr[i]).style.visibility = "hidden";
//	}
}

//物件所在的座標
function realPosX(oTarget) {
 try {
  var realX = oTarget.offsetLeft;
  if (oTarget.offsetParent.tagName != "BODY") {
   realX += realPosX(oTarget.offsetParent);
  }
  return realX;
 }
 catch (e) {
  //alert("realPosX: "+e);
 }
}

function realPosY(oTarget) {
 try {
  var realY = oTarget.offsetTop;
  if (oTarget.offsetParent.tagName != "BODY") {
   realY += realPosY(oTarget.offsetParent);
  }
  return realY;
 }
 catch (e) {
  //alert("realPosY: "+e);
 }
}

function HideElement(strElementTagName){
	try{
		for(i=0;i<document.getElementsByTagName(strElementTagName).length; i++){
			var objTemp = document.getElementsByTagName(strElementTagName)[i];
			objTemp.style.visibility = "hidden";
		}
	}catch(e){
		//alert(e.message);
	}
}

function ShowElement(strElementTagName){
	try{
		for(i=0;i<document.getElementsByTagName(strElementTagName).length; i++){
			var objTemp = document.getElementsByTagName(strElementTagName)[i];
			objTemp.style.visibility = "visible";
		}
	}catch(e){
		//alert(e.message);
	}
}

function hideElementAll(){
	HideElement("SELECT");
	HideElement("OBJECT");
	HideElement("IFRAME");
}

function showElementAll(){
	ShowElement("SELECT");
	ShowElement("OBJECT");
	ShowElement("IFRAME");
}

function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
}

function setValueA(aItem,aItemNo,formName,displayField,valueField,kind,subFormName) {
	var CodeNameB='';
	try{
		CodeNameB = document.forms[subFormName]["CodeNameB"].value;
	}catch(e){
	}
	if (subFormName.indexOf('CITY')>0){
		if(CodeNameB!=''){aItem=CodeNameB+aItem;}
	}
  if(kind>=3){
		displayField = document.forms[formName][displayField];
		AddItem(aItem, aItemNo, displayField, kind);
	}
	else{
		document.forms[formName][displayField].value=aItem;
		document.forms[formName][valueField].value=aItemNo;
	}
	hiddenLayer(popLayerID);
}

function setValueB(formName,displayField,valueField,subFormName) {
	nLen = document.forms[subFormName]["codeno"].length;
	document.forms[formName][valueField].value = '';
	document.forms[formName][displayField].value = '';
	bool = false;
	sVal = '';
	sVals = '';
	if(nLen==undefined){ //如果check box只有一個
		if (document.forms[subFormName]["codeno"].checked){
			bool = true;
			code = document.forms[subFormName]["codeno"].value.split('_');
			sVal = sVal + code[0]+',';
			sVals = sVals + code[1]+',';
		}		
	}else{
		for (i=0;i<nLen;i++){
			if (document.forms[subFormName]["codeno"][i].checked){
				bool = true;
				code = document.forms[subFormName]["codeno"][i].value.split('_');
				sVal = sVal + code[0]+',';
				sVals = sVals + code[1]+',';
			}
		}
	}
	if (!bool) {
	  alert('您忘了選取小類喔！');
		return false;
	}
	if (bool) {
		sVal = sVal.substring(0,sVal.length-1);
		sVals = sVals.substring(0,sVals.length-1);
	}
	document.forms[formName][valueField].value = sVal;
	document.forms[formName][displayField].value = sVals;
	hiddenLayer(popLayerID);
}

function AddItem(newItem, newItemvalue, displayField, maxCount) {
	lenC = displayField.options.length;
	if (lenC >= maxCount)
		window.alert('最多只能選'+maxCount+'項');
	else {
		HasSelected = false;
		for (var i=0; i<lenC; i++ ) {
			if (displayField.options[i].value%100==0 && Math.floor(newItemvalue/100)==displayField.options[i].value/100) {
				HasSelected = true;
				window.alert('大類已經包含這個小類');
				break;
			}
			if (displayField.options[i].value==newItemvalue) {
				HasSelected = true;
				window.alert('這一項已經選過了');
				break;
			}
			if (newItemvalue%100==0 && Math.floor(displayField.options[i].value/100)==newItemvalue/100) {
				//已經有小類後選擇大類
				for (k=i; k<lenC-1; k++) {
					displayField.options[k].text = displayField.options[k+1].text;
					displayField.options[k].value = displayField.options[k+1].value;
				}
				i--;
				lenC--;
				displayField.options.length = lenC;
			}
		}
		if (HasSelected == false) {
			for (var j=0; j<lenC; j++) {
				if (displayField.options[j].value == '') {
					break;
				}
			}
			displayField.options[j] = new Option(newItem, newItemvalue);
		}
	}
}

function DeleteItem(Obj) {
  var  check_index = new Array();
  for (i=Obj.length-1; i>=0; i--) {
    if (Obj.options[i].selected) {
      check_index[i] = true;
      Obj.options[i].selected = false;
    }
    else
      check_index[i] = false;
  }
  for (i=Obj.length-1; i>=0; i--) {
    if (check_index[i]) {
      info = Obj.options[i].value;
      Obj.options[i] = null
    }
  }
  var b=0
  var indexarr = new Array()
  for (i=0;i<Obj.length;i++) {
    value1 = Obj.options[i].value
  }
  for (var c=0;c<b;c++) {
    Obj.options[indexarr[c]-c]=null
  }
}

function ClearItem(objA,objB) {
	objA.value='';
	objB.value='';
}

function selectForm(frmName,objText) {
	alert(frmName);
  pp=document.forms[frmName]['nameOfFormFields'].value.split(',');
  for (var j=0; j< pp.length; j++ ) {
    fLen =  document.forms[frmName][pp[j]].length;
    for (i =0 ;i< fLen;i++) {
      document.forms[frmName][pp[j]].options[i].selected=true;
    }
  }
}

function checkSelect(frm, fld, caption) {
	if (document.forms[frm][fld].length == 0) {
    errMsg = errMsg + caption + '\n';
  }
}

function checkInput(frm, fld, caption) {
	if (trim(document.forms[frm][fld].value).length == 0) {
    errMsg = errMsg + caption + '\n';
  }
}

