//===== set target text by search result =====
function generate_link_syntax(form){

	if (form.link_type.value ==8) {
		res = "<a href= '" + form.reciprocal.value + "' target='_blank'>" +  form.title.value + "</a>";
	} else if (form.link_type.value ==1) {
		res = "<a href= '" + form.reciprocal.value + "' target='_blank'><img border=0 width=88 height=31 src= '" + form.link_icon_path.value + "' alt='" + form.title.value +  "' > </a>";
	} else if (form.link_type.value ==2) {
		res = "<a href= '" + form.reciprocal.value + "' target='_blank'><img border=0 width=120 height=60 src= '" + form.link_icon_path.value + "' alt='" + form.title.value +  "' > </a>";
	}
	return res;

	//if (eval("opener.document.all."+target).value == "") {
	//	eval("opener.document.all."+target).value = res;
	//} else {
	//	eval("opener.document.all."+target).value += "," + res;
	//}
}


//===== report task =====
//===== view result =====
function view(form, actionName) {
	var w = screen.availWidth;
	var h = screen.availHeight - 60;	
	var dotmozi = actionName.split(".");
	if (checkData(form)) {
		var optionstr = "location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=yes,status=yes,width=" + w + ",height=" + h + ", top=0, left=0";
		view_win = window.open("/webrpt/loading.html",dotmozi[0], optionstr);
		view_win.focus();
		form.rpt_task.value = "view";
		form.target = dotmozi[0];
		form.action = "/webrpt/" + actionName;
		form.submit();
	}
}

//===== mail ===== 
function mailit(form, formaction){
	if (checkData(form)) {
		var mailList = '';
		var other = form.mailToOthers.value;
		if (form.mailTo[0].checked) {
			mailList = form.mailTo[0].value;
			if (form.mailTo[1].checked && other.length>0) {
				mailList += ';' + form.mailToOthers.value;
			}
		} else if (form.mailTo[1].checked && other.length>0) {
			mailList = other;
		} else {
			alert("Invalid value for Mail-Receivers!");
			if (form.mailTo[1].checked) {
				form.mailToOthers.focus();
			}else{ 
				form.mailTo[0].focus();
			}
			return;
		}
	
		var rpt_format = getRadioValue(form.rpt_format);
		var msg = "";
		if (rpt_format == "XLS") {
			msg = "EXCEL";
		} else {
			msg = "PDF";
		}
		var w = screen.availWidth;
		var h = screen.availHeight - 60;
		form.rpt_task.value = 'mail';
		form.rpt_mailList.value = mailList;
		if (confirm("Mail to [" + form.rpt_mailList.value + "] ? \nThe report format is " + msg)) {
			var optionstr = "menubar=no,resizable=yes,scrollbars=yes,status=yes,width=" + w + ",height=" + h + ", top=0, left=0";
			mail_win = window.open("/webrpt/loading.html","win", optionstr);
			mail_win.focus();
			form.target = "win";
			form.action = "/webrpt/" + formaction;
			form.submit();   	 
		} else {
			return;
		}
	}
	return;
}

//===== print =====     
function printit(form, formaction){
	var w = screen.availWidth;
	var h = screen.availHeight - 60;
	if (checkData(form)) {
		if (confirm("Print it now?")) {
			form.rpt_task.value = 'print';
			var optionstr = "menubar=no,resizable=yes,scrollbars=yes,status=yes,width=" + w + ",height=" + h + ", top=0, left=0";
			print_win = window.open("loading.html","win", optionstr);
			print_win.focus();
			form.target = "win";
			form.action = formaction;
			form.submit();      	
		} 
	} 
	return;
}
    
//===== set schedule =====
function setScheduler(form, actionName, mode) {
	var w = screen.availWidth;
	var h = screen.availHeight - 60;
	if (checkData(form) && scheduleValidator(form, mode)) {
		var optionstr = "menubar=no,resizable=yes,scrollbars=yes,status=yes,width=" + w + ",height=" + h + ", top=0, left=0";
		sched_win = window.open("/webrpt/loading.html","win", optionstr);
		sched_win.focus();
		if (mode=='1') {
			form.sched_task.value = "new";
		}else if (mode=='2'){
			form.sched_task.value = "update";
		}else if (mode=='3'){
			form.sched_task.value = "execute";
		}
		form.rpt_task.value = "scheduler";
		form.target = "win";
		form.action = "/webrpt/" + actionName;
		form.submit();
	}
}

//===== schedule fields validate =====
function scheduleValidator(form, mode){

	if (form.inactive_flag.value=='Y'){
		if (form.rec_mail.value==''){
			alert("Invalid value for Mail-Receivers!");
			return false;	
		} else {
			if (!checkmail(form.rec_mail)){
				return false;
			}	
		}
	
		if (form.cron_exp.value==''){
			alert("Invalid value for Fired Time!");
			return false;
		}
	} else if (mode=='3'){
		if (form.rec_mail.value==''){
			alert("Invalid value for Mail-Receivers!");
			return false;	
		} else {
			if (!checkmail(form.rec_mail)){
				return false;
			}	
		}
	}
	
	if (form.job_description.value==''){
		alert("Invalid value for Job Description!");
		return false;
	}
	
	if (form.effective_date.value!=''){
		if (!checkDataTypeDate(form.effective_date)) {
			return false;
		}
	} 
	
	if (form.effective_time.value!='') {
		if (!checkDataTypeTime(form.effective_time)){
			return false;
		}
	}
	return true;
}

//===== utils =====
//===== Date quick picker =====
function datePicker(oname1, oname2, exemode, se) {
	var exeMode = getRadioValue(exemode);
	//alert(exeMode);
	if (exeMode=='regular'){ 
		window.open("/webrpt/util/datePicker.jsp?oname1="+oname1+"&oname2="+oname2, "dateQuickPicker", "menubar=no,resizable=yes,scrollbars=no,width=142,height=180,left=480,top=230");
	} else if (exeMode=='scheduler'){
		window.open("/webrpt/util/scheDatePicker.jsp?oname1="+oname1+"&oname2="+oname2, "scheDateQuickPicker", "menubar=no,resizable=yes,scrollbars=no,width=142,height=180,left=480,top=230");
	}
}

//===== mail picker =====
function mailPicker(oname) {
	window.open("/webrpt/util/mailPicker.jsp?oname=" + oname, "mailPicker", "menubar=no,resizable=yes,scrollbars=no,width=410,height=180,left=500,top=200");
}

//===== scheduler picker =====
function fireDatePicker(oname1, oname2, oname3) {
	window.open("/webrpt/util/fireDatePicker.jsp?oname1=" + oname1 + "&oname2=" + oname2 + "&oname3=" + oname3, "schedulerPicker", "menubar=no,resizable=yes,scrollbars=yes,width=400,height=500,left=400,top=40");
}

// ===== report picker for searching schedule jobs =====
function rptPicker(oname1, oname2){
	window.open("/webrpt/util/rptPicker.jsp?oname1=" + oname1 + "&oname2=" + oname2 , "rptPicker", "menubar=no,resizable=yes,scrollbars=no,width=360,height=150,left=400,top=150");
}

//===== tools =====
//===== hide DIV by id if mode is false ======
function hideDiv(theDiv, mode){
	if (mode){
		theDiv.style.display="";
	} else {
		theDiv.style.display="none";
	}
} 

//===== mover-list to list =====
function move(fbox, tbox) {
     var arrFbox = new Array();
     var arrTbox = new Array();
     var arrLookup = new Array();
     var i;
     for(i=0; i<tbox.options.length; i++) {
          arrLookup[tbox.options[i].text] = tbox.options[i].value;
          arrTbox[i] = tbox.options[i].text;
     }
     var fLength = 0;
     var tLength = arrTbox.length
     for(i=0; i<fbox.options.length; i++) {
          arrLookup[fbox.options[i].text] = fbox.options[i].value;
          if(fbox.options[i].selected && fbox.options[i].value != "") {
               arrTbox[tLength] = fbox.options[i].text;
               tLength++;
          } else {
               arrFbox[fLength] = fbox.options[i].text;
               fLength++;
          }
     }
     //arrFbox.sort();
     //arrTbox.sort();
     fbox.length = 0;
     tbox.length = 0;
     var c;
     for(c=0; c<arrFbox.length; c++) {
          var no = new Option();
          no.value = arrLookup[arrFbox[c]];
          no.text = arrFbox[c];
          fbox[c] = no;
     }
     for(c=0; c<arrTbox.length; c++) {
     	var no = new Option();
     	no.value = arrLookup[arrTbox[c]];
     	no.text = arrTbox[c];
     	tbox[c] = no;
     }
}

//===== move option from text to select =====
function moveto(fbox, tbox, markstr) {
	var i = 0;
	if(fbox.value != "") {
		var no = new Option();
		no.value = markstr + fbox.value;
		no.text = markstr + fbox.value;
		tbox.options[tbox.options.length] = no;
		fbox.value = "";
   	}
}

//===== remove all items from list =====
function removeAll(box) {
	for(var i=0; i<box.options.length; i++) {
		if(box.options[i] != "") {
			box.options[i].value = "";
			box.options[i].text = "";
   		}
	}
	BumpUp(box);
} 

//===== remove one from selected items list =====
function remove(box) {
	for(var i=0; i<box.options.length; i++) {
		if(box.options[i].selected && box.options[i] != "") {
			box.options[i].value = "";
			box.options[i].text = "";
   		}
	}
	BumpUp(box);
} 

function BumpUp(abox) {
	for(var i = 0; i < abox.options.length; i++) {
		if(abox.options[i].value == "")  {
			for(var j = i; j < abox.options.length - 1; j++)  {
				abox.options[j].value = abox.options[j + 1].value;
				abox.options[j].text = abox.options[j + 1].text;
			}
			var ln = i;
			break;
   		}
	}
	if(ln < abox.options.length)  {
		abox.options.length -= 1;
		BumpUp(abox);
   	}
}

//===== mover-up =====
function Moveup(dbox) {
	for(var i = 0; i < dbox.options.length; i++) {
		if (dbox.options[i].selected && dbox.options[i] != "" && dbox.options[i] != dbox.options[0]) {
			var tmpval = dbox.options[i].value;
			var tmpval2 = dbox.options[i].text;
			dbox.options[i].value = dbox.options[i - 1].value;
			dbox.options[i].text = dbox.options[i - 1].text
			dbox.options[i-1].value = tmpval;
			dbox.options[i-1].text = tmpval2;
      	}
   	}
}

//===== mover-down =====
function Movedown(ebox) {
	for(var i = 0; i < ebox.options.length; i++) {
		if (ebox.options[i].selected && ebox.options[i] != "" && ebox.options[i+1] != ebox.options[ebox.options.length]) {
			var tmpval = ebox.options[i].value;
			var tmpval2 = ebox.options[i].text;
			ebox.options[i].value = ebox.options[i+1].value;
			ebox.options[i].text = ebox.options[i+1].text
			ebox.options[i+1].value = tmpval;
			ebox.options[i+1].text = tmpval2;
      	}
   	}
}

//===== get checkbox value and set it to a hidden text =====
function setCheckboxToHiddenText(formname, checkboxName, targetTextName) {
	cbObj = 'document.' + formname + '.' + checkboxName;
	htObj = eval('document.' + formname + '.' + targetTextName);
	htObj.value = getCheckboxValue(cbObj);
	return;
}

//===== get checkbox value and combine to a string =====
function getCheckboxValue(checkbox_obj){
	var obj = eval(checkbox_obj);
	var sz = obj.length;
	var result = "";

	for (i=0; i<sz; i++) {
		if (obj[i].checked == true) {
			if (result == "") {
				result = obj[i].value;
			} else {
				result += "," + obj[i].value;
			}
		}
	}
	
	if (result=="" && typeof(obj) != "undefined"){
		if (obj.checked){
			result = obj.value;	
		}
	}
	
	return result;
}

//===== get radio value =====
function getRadioValue(radio_obj){
	var obj = eval(radio_obj);
	var idx = -1;
	for (i=0; i<obj.length; i++){
		if (obj[i].checked){
			idx = i;
			break;
		}
	}
	if (idx!=-1) {
	    return obj[idx].value;
	} else {
		return '';
	}
}

// get scheduler active or inactive
function getActive(obj){
	if (obj.checked){
		return "Y";
	}else{
		return "N";
	}
}

//===== expand folding DIV =====
function openDiv(theDiv){
	if (theDiv.style.display=="") {
		theDiv.style.display="none";
	} else {
		theDiv.style.display="";
	}
}

//===== open advance criteria =====
function openDivPic(theDiv, obj, src1, src2){
	if (theDiv.style.display=="") {
		theDiv.style.display="none";
		obj.src = src1;
	} else {
		theDiv.style.display="";
		obj.src = src2;
	}
}

//===== Set window.stats =====
function setStatus(fieldName){
	window.status = getMessage(fieldName);
}

//===== Form fields guiding message =====
if (document.layers) {navigator.family = "nn4"}
if (document.all) {navigator.family = "ie4"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) {navigator.family = "gecko"}

overdiv="0";
function popLayer(fieldName){
if (navigator.family == "gecko") {pad="0"; bord="1 bordercolor=black";}
else {pad="1"; bord="0";} // #### 連結說明選單顏色設定
desc = 	  "<table cellspacing=0 cellpadding="+pad+" border="+bord+" bgcolor=000000><tr><td>\n"
	+"<table cellspacing=0 cellpadding=3 border=0 width=100%><tr><td bgcolor=ffffdd><font size=-1>\n"
	+"<img src='/webrpt/images/lightball.gif' border='0'> "
	+getMessage(fieldName)
	+"\n</td></tr></table>\n"
	+"</td></tr></table>";
if(navigator.family =="nn4") {
	document.fieldAlt.document.write(desc);
	document.fieldAlt.document.close();
	document.fieldAlt.left=x+15;
	document.fieldAlt.top=y-5;
	}
else if(navigator.family =="ie4"){
	fieldAlt.innerHTML=desc;
	fieldAlt.style.pixelLeft=x+20;
	fieldAlt.style.pixelTop=y+5;
	}
else if(navigator.family =="gecko"){
	document.getElementById("fieldAlt").innerHTML=desc;
	document.getElementById("fieldAlt").style.left=x+15;
	document.getElementById("fieldAlt").style.top=y-5;
	}
}

function hideLayer(){
if (overdiv == "0") {
	if(navigator.family =="nn4") {eval(document.fieldAlt.top="-500");}
	else if(navigator.family =="ie4"){fieldAlt.innerHTML="";}
	else if(navigator.family =="gecko") {document.getElementById("fieldAlt").style.top="-500";}
	}
}

var isNav = (navigator.appName.indexOf("Netscape") !=-1);
function handlerMM(e){
x = (isNav) ? e.pageX : event.clientX + document.body.scrollLeft;
y = (isNav) ? e.pageY : event.clientY + document.body.scrollTop;
}
if (isNav){document.captureEvents(Event.MOUSEMOVE);}
document.onmousemove = handlerMM;

function getMessage(fieldName){
	var result = "";
	if (fieldName=="area"){
		result = "Acceptable Values:  1: America   2: Europe, Africa, M. East   3: Asia<br>*Allow multiple values  e.g. 1, 2";
	}
	if (fieldName=="comma"){
		result = "Allow multiple values : separated by comma.";
	}
	
	if (fieldName=="single"){
		result = "Allow single value only.";
	}
	
	if (fieldName=="schedule"){
		result = "Click the button to pick fire date/time!";
	}
	
	if (fieldName=="date"){
		result = "Format: YYYYMMDD   e.g. 20050131";
	}
	if (fieldName=="mail"){
		result = "Allow multiple receivers: separated by semicolon.";
	}
	if (fieldName=="time"){
		result = "Format: HHmm   e.g. 1330";
	}
	if (fieldName=="month"){
		result = "Format: YYYYMM   e.g. 200501";
	}
	return result;
}
//end of form fields guiding message
