﻿
var Cbox = function(refData, Parent) { var refThis = this; this.refData = refData; this.Init = function() { var cssName = "Cbox"; if(refData.cssName) cssName = refData.cssName; var divCbox = _newElement("div", cssName); this.eCbox = divCbox; divCbox.refData = refData; var divFrame = _newElement("div", "frame"); this.eFrame = divFrame; var divHeader = _newElement("div", "header"); this.eHeader = divHeader; var divTitle = _newElement("div", "title"); this.eTitle = divTitle; this.setTitle(refData.title); var divClose = _newElement("div", "close"); this.eClose = divClose; divClose.innerHTML = '<img src="/img/close.gif"/>'; divClose.style.display = "block"; divClose.onmousedown = function(event) { _cancelBubble(true, event); }; divClose.onmouseup = function(event) { _cancelBubble(true, event); refThis.Close(); }; var divContent = _newElement("div", "content"); this.eContent = divContent; if(refData.content) { divContent.appendChild(refData.content); } else if(refData.url) { divContent.innerHTML = '<img src="/img/loading.gif"/>'; } divHeader.appendChild(divClose); if(refData.gear) { var divGear = _newElement("div", "gear"); this.eGear = divGear; divGear.innerHTML = '<img src="/img/gear.gif"/>'; divGear.style.display = "block"; divGear.onmousedown = function(event) { if(refThis.eGpad.style.display == "none") { refThis.eGpad.style.display = ""; refData.gear(refThis); } else { refThis.eGpad.style.display = "none"; } _cancelBubble(true, event); }; divGear.onmouseup = function(event) { _cancelBubble(true, event); }; divHeader.appendChild(divGear); } if(refData.refresh) { var divRefresh = _newElement("div", "refresh"); this.eRefresh = divRefresh; divRefresh.innerHTML = '<img src="/img/refresh.gif"/>'; divRefresh.style.display = "block"; divRefresh.onmousedown = function(event) { refData.refresh(refThis); _cancelBubble(true, event); }; divRefresh.onmouseup = function(event) { _cancelBubble(true, event); }; divHeader.appendChild(divRefresh); } divHeader.appendChild(divTitle); divFrame.appendChild(divHeader); if(refData.gear) { var divGpad = _newElement("div", "gpad"); divGpad.style.display = "none"; refThis.eGpad = divGpad; divFrame.appendChild(divGpad); } divFrame.appendChild(divContent); divCbox.appendChild(divFrame); Parent.appendChild(divCbox); if(refData.cssName == "CDlg") { var divTail = _newElement("div", "tail"); var imgSize = _newElement("img", "sizer"); imgSize.src = "/img/sizer.gif"; divTail.appendChild(imgSize); DragSize.Enable(divCbox, imgSize);	divCbox.onSizeChanged = function() { if(divContent.onSizeChanged) { divContent.onSizeChanged(); } }; divCbox.appendChild(divTail); var rect = getRect(divCbox); var width = rect.right - rect.left; var height = rect.bottom - rect.top; if(refData.width != null) width = refData.width; if(refData.height != null) height = refData.height; var wh = window.screen.availHeight - height; divCbox.style.left = (document.body.clientWidth-width)/2 + "px"; divCbox.style.top = (document.documentElement.scrollTop+wh/3) + "px"; divCbox.style.width = width + "px"; divCbox.style.height = height + "px"; DragDrop.Enable(divCbox, divCbox, divHeader); divCbox.onDragBegin = function(x,y,mousex, mousey) { var left = getX(this); var top = getY(this); var w = this.offsetWidth; this.style.width = (w-5)+"px"; }; divCbox.onDragging = function(x,y, mousex, mousey) { }; divCbox.onDragEnd = function(x,y,el) { }; } else { var cHead = divHeader.childNodes; if(cHead.length > 1) { divHeader.onmouseover = function() { for(var i=0; i<cHead.length; i++) { if(cHead[i] != divTitle) { cHead[i].style.display = ""; } } }; divHeader.onmouseout = function() { for(var i=0; i<cHead.length; i++) { if(cHead[i] != divTitle) { cHead[i].style.display = "none"; } } }; for(var i=0; i<cHead.length; i++) { if(cHead[i] != divTitle) { cHead[i].style.display = "none"; } } } divCbox.onDragEnd = function(x,y,el) { if(refData.dropped) refData.dropped(refThis); }; divCbox.cntr = refData.cntr; DragDrop.Enable(divCbox, null, divHeader); } }; this.setTitle = function(title) { refThis.eTitle.innerHTML = title; var as = refThis.eTitle.getElementsByTagName("a"); if(as && as.length > 0) { for(var i=0; i<as.length; i++) { as[i].target = "_blank"; as[i].onmousedown = function(event) { _cancelBubble(true, event); }; as[i].onmouseup = function(event) { _cancelBubble(true, event); }; } } }; this.Exec = function(rootNode, cboxName) { var cbox = rootNode.getElementsByTagName(cboxName)[0]; if(cbox != null && cboxName) { var nodes = cbox.childNodes; for(var i=0; i<nodes.length; i++) { switch(nodes[i].tagName) { case "innerHTML": refThis.eContent.innerHTML = _text(nodes[i]); break; case "script": eval(_text(nodes[i])); break; } } } else { this.Error("Not found Element tagName of " + cboxName); } }; this.Error = function(message) { var innerHTML = "<font color=red>Error! (" + message + ")</font>"; refThis.eContent.innerHTML = innerHTML; }; this.Load = function(url, param) { function onLoad(response) { if(refData.onLoad) { refData.onLoad(response, refThis); return; } else if(response && response.responseXML) { var rootNode = response.responseXML.documentElement; if(rootNode && rootNode.tagName == "cbox") { refThis.Exec(rootNode, refThis.refData.name); return; } else if(rootNode) { refThis.Error("response xml's rootNode.tagName=" +rootNode.tagName +" != cbox"); } else { refThis.Error("response xml's rootNode=NULL"); } } else { refThis.Error("response NULL"); } } if(arguments.length > 1) Request.POST(url, param, onLoad); else Request.GET(url, onLoad); }; this.Show = function(bShow) { if(refThis.refData.screenCover) ScreenCover(bShow); if(bShow) { refThis.eCbox.style.display = "block"; if(refThis.onfocus) { refThis.onfocus(); } } else { refThis.eCbox.style.display = "none"; } }; this.Close = function() { if(refThis.refData.caller) { refThis.refData.caller.Show(true); } refThis.Free(); }; this.Free = function() { if(refThis.refData.screenCover) ScreenCover(false); if(refThis.eContent.onClose) { refThis.eContent.onClose(); } _removeNode(this.eCbox); if(refThis.refData.onclose) { refThis.refData.onclose(refThis); } if(refThis.onClose) { refThis.onClose(); } delete refThis; }; if(refThis.refData.screenCover) ScreenCover(true); if(refThis.refData.caller) { refThis.refData.caller.Show(false); } this.Init(); if(refData.Load) { refData.Load(refThis); } else if(refData.url) { if(refData.options) { var param; if(refData.url.indexOf('?') > 0) param = '&options='; else param = '?options='; param += refData.options; this.Load(refData.url, param); } else { this.Load(refData.url); } } }; function ScreenCover(bCover, nView) { var divCover = document.getElementById("ScreenCover"); if(bCover) { if(!divCover) { divCover = document.createElement("div"); divCover.id = "ScreenCover"; divCover.ref = 0; document.body.appendChild(divCover); } divCover.ref++; var dHeight = parseInt(document.documentElement.scrollHeight); var sHeight = parseInt(window.screen.height); var oStyle = divCover.style; oStyle.display = "block"; oStyle.top = oStyle.left = "0px"; oStyle.margin = oStyle.padding = "0px"; oStyle.width = "100%"; oStyle.height = (dHeight > sHeight ? dHeight : sHeight)+"px"; oStyle.position = "absolute"; oStyle.zIndex = "3"; if ((!Browser.isSafari) && (!Browser.isOpera)) { oStyle.background = "#181818"; } else { oStyle.background = "#F0F0F0"; } var v = 40; if(nView != null) { v = nView; } oStyle.filter = "alpha(opacity="+v+")"; oStyle.opacity = v/100; oStyle.MozOpacity = v/100; var allSelect = document.getElementsByTagName("select"); if(allSelect) { for(var i=0; i<allSelect.length; i++) allSelect[i].style.visibility = "hidden"; } } else if(divCover) { divCover.ref--; if(divCover.ref < 1) { divCover.style.display = "none"; var allSelect = document.getElementsByTagName("select"); if(allSelect) { for(var i=0; i<allSelect.length; i++) allSelect[i].style.visibility = "visible"; } } } } function ScreenRecover() { var divCover = document.getElementById("ScreenCover"); if(divCover && divCover.style.display != "none") { var dHeight = parseInt(document.documentElement.scrollHeight); var sHeight = parseInt(window.screen.height); var oStyle = divCover.style; oStyle.height = (dHeight > sHeight ? dHeight : sHeight)+"px"; } } function MessageBox(message, buttons) { var cbox = new Cbox({title:Local.msg, cssName:'CDlg', width:320, height:160, screenCover:true}, document.body); var msg = _newElement("center"); msg.innerHTML = message + "<br style='margin:30px;'>"; if(arguments.length > 1) { for(var i=0;i<buttons.length;i++) { var bt = _newElement("input"); bt.type = "button"; bt.value = buttons[i].text; bt.call = buttons[i].call; bt.onclick = function() { if(this.call) this.call(); cbox.Close(); }; msg.appendChild(bt); } } else { var btOK= _newElement("input"); btOK.type = "button"; btOK.value = Local.OK; btOK.onclick = function() { cbox.Close(); }; msg.appendChild(btOK); } cbox.eContent.appendChild(msg); return cbox; } function MessageTip(x, y, message, done) { if(x == null || y == null) { x = parseInt(document.body.clientWidth/2); y = parseInt(document.documentElement.scrollTop+ window.screen.availHeight/3); } if(typeof window.tip == "undefined") { window.tip = _newElement("div", "tip"); var frm = _newElement("div", "frm"); var con = _newElement("div", "con"); frm.appendChild(con); window.tip.appendChild(frm); window.tip.msg = _newElement("center"); con.appendChild(window.tip.msg); document.body.appendChild(window.tip); } var tip = window.tip; tip.msg.innerHTML = message; tip.style.display = "block"; tip.t = y; tip.l = x; tip.w = 300; tip.h = 60; tip.style.width = "0px"; tip.style.height = "0px"; window.showTip = function() { var step = 5; if(tip.n > (step*3)) { tip.it = clearInterval(tip.it); tip.style.display = "none"; } else { var a = tip.n; if(tip.n > (step*2)) { a = (step*3) - tip.n; } else if(tip.n == (step*2)) { a = (step*3) - tip.n; tip.msg.innerHTML = done; } else if(tip.n > step) { tip.n++; return; } var width = tip.w/step*a; var height = tip.h/step*a; var wh = window.screen.availHeight - height; tip.style.left = parseInt(tip.l-width/2) + "px"; tip.style.top = parseInt(tip.t-height*4/5) + "px"; tip.style.width = width + "px"; tip.style.height = height + "px"; tip.n++; } }; tip.n = 0; if(tip.it == null) { tip.it = window.setInterval("showTip()",200); } } 
