﻿
var Ctab = function(refData, Parent) { var refThis = this; refThis.refData = refData; refThis.activeTab = null; this.Init = function() { var cssName = refThis.refData.cssName; if(cssName == null) cssName = "CtabH"; var divCtab = _newElement("div", cssName); refThis.eCtab = divCtab; divCtab.refData = refData; if(refData.onNewTab != null || refData.onAddPart != null) { var divTool = _newElement("div", "tabTool"); var divNew = _newElement("div", "addTab"); divNew.innerHTML = Local.addTab; divNew.onclick = function() { if(refThis.refData.onNewTab) refThis.refData.onNewTab(refThis); }; divTool.appendChild(divNew); var divAdd = _newElement("div", "addPart"); divAdd.innerHTML = Local.addPart; divAdd.onclick = function() { if(refThis.refData.onAddPart) refThis.refData.onAddPart(refThis); }; divTool.appendChild(divAdd); divCtab.appendChild(divTool); }	var ul = _newElement("ul", "tabPad"); refThis.eUl = ul; divCtab.appendChild(ul); var divPage = _newElement("div", "tabPage"); refThis.ePage = divPage; divCtab.appendChild(ul); divCtab.appendChild(divPage); if(refData.tabs) { for(var i=0; i<refData.tabs.length; i++) { refThis.insertTab(refData.tabs[i]); } } Parent.appendChild(divCtab); }; this.insertTab = function(tab) { var li = _newElement("li", "tabItem"); li.refTab = tab; var imgIcon = _newElement("img", "tabIcon"); if(tab.icon) imgIcon.src = tab.icon; else imgIcon.src = "/img/item.gif"; if(tab.onoption) { imgIcon.onclick = function(event) { tab.onoption(li, event); }; } li.icon = imgIcon; li.appendChild(imgIcon); var span = _newElement('span', "tabTitle"); span.appendChild(_newText(tab.title)); li.appendChild(span); li.page = tab.page; if(li.page) { li.page.style.display = "none"; refThis.ePage.appendChild(li.page); } li.onclick = function() { refThis.selectTab(this); }; li.onmouseover = function() { if(this != refThis.activeTab) { this.className = "tabOver"; } }; li.onmouseout = function() { if(this != refThis.activeTab) { this.className = "tabItem"; } }; li.setTitle = function(title) { span.innerHTML = title; }; li.remove = function() { var sel = li.nextSibling; if(sel == null || typeof sel.refTab == "undefined") { sel = li.previousSibling; } if(sel != null) { if(li.page) _removeNode(li.page); _removeNode(li); refThis.activeTab = null; refThis.selectTab(sel); }	}; refThis.eUl.appendChild(li); return li; }; this.selectTab = function(liTab) { if(refThis.activeTab != liTab) { if(refThis.activeTab) { refThis.activeTab.className = "tabItem"; if(refThis.activeTab.page) { refThis.activeTab.page.style.display = "none"; } } liTab.className = "tabActive"; refThis.activeTab = liTab; if(liTab.page == null) { liTab.page = _newElement("div", "page"); liTab.loadUrl = function() { function onLoad(response) { if(response) { liTab.page.innerHTML = response.responseText; var scripts = liTab.page.getElementsByTagName("script"); if(scripts != null) { for(var i=0; i<scripts.length; i++) { eval(scripts[i].innerHTML); } } } } liTab.page.innerHTML = "<img src='/img/loading.gif'/>"; Request.GET(liTab.refTab.url, onLoad); }; liTab.reload = function() { _removeChildNodes(liTab.page); if(liTab.refTab.onload) { liTab.refTab.onload(liTab); } else if(liTab.refTab.url) { liTab.loadUrl(); } }; if(liTab.refTab.onload) { liTab.refTab.onload(liTab); } else if(liTab.refTab.url) { liTab.loadUrl(); } refThis.ePage.appendChild(liTab.page); } else { liTab.page.style.display = "block"; } if(liTab.refTab.onselect) { liTab.refTab.onselect(); } } }; this.Free = function() { _removeNode(refThis.eCtab); delete refThis; }; this.Init(); if(refThis.eUl.firstChild) { var li = refThis.eUl.firstChild; var sel = refThis.refData.selTab; for(;sel>0;sel--) { if(li.nextSibling != null) li = li.nextSibling; else break; } this.selectTab(li); } }; 
