/** * Table rowMark * * myRow = new rowMark(1,2,3,4) * * 1: Farbe des Over Effekts z.B. "#ff0000" - string * 2: Farbe des Mark Effeks - string * 3: Farbe des Over Effeks bei der Marked Row - string * 4: Funktion die bei onClick aufgerufen wird - string * * * eine Zeile * * * * @param String sOverColor Over-Color * @param String sMarkedColor Marked-Color * @param String sOverMarked Over-Marked-Color * * @author Jan Lengowski * @modified Timo Trautmann added support for second marked Color used as active sync color, defined by class variable markedSyncColor Each table row containing class name con_sync gets this marked color * @version 1.2 * @copyright Jan Lengowski 2002 */ function rowMark(overColor, markedColor, overMarked, onClick, instanceName) { /** * Set class properties * @access private */ this.instanceName = instanceName; this.overColor = overColor; this.markedColor = markedColor; this.overMarked = overMarked; this.onClick = onClick; this.highlightFrame = "#CCCCCC"; this.backgroundColor = "#E2E2E2"; this.markedSyncColor = "#AED2F1"; this.syncColor = "#ddecf9"; /** * dynamic properties * @access private */ this.oldColor = ''; this.oldColorMarked = ''; this.markedRow = ''; /** * Define class methods * @access private */ this.over = rowMark_over; this.out = rowMark_out; this.click = rowMark_click; this.reset = rowMark_reset; /** * Browsercheck * @access private */ this.browser = ''; } /** * rowMark::over() * @param object oRow table row object */ function rowMark_over(oRow) { if (oRow == null) { return; } if ( oRow.style.backgroundColor != this.markedColor ) { this.oldColor = oRow.style.backgroundColor; } oRow.style.backgroundColor = this.overColor; /*if ( oRow.style.backgroundColor == this.markedColor ) { oRow.style.backgroundColor = this.overMarked; } else { oRow.style.backgroundColor = this.overColor; }*/ } /** * rowMark::out() * @param object oRow table row object */ function rowMark_out(oRow) { if (oRow == this.markedRow) { if (oRow.className=="con_sync") { oRow.style.backgroundColor = this.markedSyncColor; } else { oRow.style.backgroundColor = this.markedColor; } } else { oRow.style.backgroundColor = this.oldColor; } } function rowMark_reset () { var oObjects = document.getElementsByTagName('tr'); var pattern=eval("/" + this.instanceName + "\\.click\\(this\\)/m"); for (var i = 0; i < oObjects.length; i++) { var sOnclick = String(oObjects[i].onclick); if (sOnclick != '' && sOnclick != 'undefined') { if (sOnclick.match(pattern)) { if (oObjects[i].className=="con_sync") { oObjects[i].style.backgroundColor = this.syncColor; } else { oObjects[i].style.backgroundColor = '#FFFFFF'; } } } } this.markedRow = ''; } /** * rowMark::over() * @param object oRow table row object */ function rowMark_click(oRow) { if (oRow == null) { return; } if (typeof this.markedRow != "object") { if (oRow.className=="con_sync") { oRow.style.backgroundColor = this.markedSyncColor; } else { oRow.style.backgroundColor = this.markedColor; } this.markedRow = oRow; this.oldColorMarked = this.oldColor; if ( this.onClick != "") { eval( this.onClick ); } } else if (this.markedRow != oRow) { /* reset old */ this.markedRow.style.backgroundColor = this.oldColorMarked; /* highlight new*/ if (oRow.className=="con_sync") { oRow.style.backgroundColor = this.markedSyncColor; } else { oRow.style.backgroundColor = this.markedColor; } this.markedRow = oRow; this.oldColorMarked = this.oldColor; if ( this.onClick != "") { eval(this.onClick); } } } /** * Table rowMark with image rollover * * REQUIRES rowMark CLASS! * * myRow = new imgMark(1, 2, 3, 4, 5, 6); * * 1: Farbe des Over Effekts z.B. "#ff0000" - string * 2: Farbe des Mark Effeks - string * 3: Farbe des Over Effeks bei der Marked Row - string * 4: Pfad des Bildes das bei .over() gewechselt wird - string * 5: Pfad des Bildes das bei .out() gewechselt wird - string * 6: Function die bei onClick aufgerufen wird - string * * * eine Zeile * * * * @author Jan Lengowski * @version 1.2 * @copyright Jan Lengowski 2002 */ function imgMark(overColor, markedColor, overMarked, imgOutSrc, imgOverSrc, onClick) { /** * Call parent class constructor * @access private */ this.base = rowMark; this.base(overColor, markedColor, overMarked, onClick); /** * Set image path properties * @access private */ this.imgOutSrc = imgOutSrc; this.imgOverSrc = imgOverSrc; /** * Modify inherited .over() method * @access private */ var str = this.over + ''; var astr = str.split('\n'); var fstr = 'var img = oRow.getElementsByTagName("IMG"); img[imgId].src = this.imgOverSrc;'; for (i=2; i * @copyright four for business AG */ function refreshSyncScreen(permSyncCat) { //curLanguageSync = syncFrom; var frame = parent.parent.frames["left"].frames['left_top']; var syncElem = frame.document.getElementById('sync_cat_single'); var syncElemMultiple = frame.document.getElementById('sync_cat_multiple'); if (syncElem && syncElemMultiple) { if (permSyncCat == 0) { syncElem.style.display = 'none'; syncElemMultiple.style.display = 'none'; } else { syncElem.style.display = 'block'; syncElemMultiple.style.display = 'block'; } parent.parent.frameResize.resizeTopLeftFrame(frame.document.getElementById('top_left_container').offsetHeight+1); } } /** * Interface function for transfering * data from left-bottom frame to the * configuration object in the left-top * frame. * * @param object HTML Table Row Object * * @author Jan Lengowski * @copyright four for business AG */ function conInjectData(obj) { /* Configuration Object Reference */ cfgObj = parent.parent.frames["left"].frames['left_top'].cfg; /* Split the data string. 0 -> category id 1 -> category template id 2 -> category online 3 -> category public 4 -> has right for: template 5 -> has right for: online 6 -> has right for: public 7 -> has right for: template_edit 8 -> cat is syncable 9 -> idstring not splitted */ tmp_data = obj.id; data = tmp_data.split("-"); if ( data.length == 9 ) { /* Transfer data to the cfg object through the .load() method */ //cfgObj.load(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]); cfgObj.load(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], obj.id); refreshSyncScreen(data[8]); } else { cfgObj.reset(); refreshSyncScreen(0); } /* String for debugging */ str = ""; str += "Category ID is: " + data[0] + "\n"; str += "Template ID is: " + data[1] + "\n"; str += "Online status is: " + data[2] + "\n"; str += "Public status is: " + data[3] + "\n"; str += "Right for Template: " + data[4] + "\n"; str += "Right for Online: " + data[5] + "\n"; str += "Right for Public: " + data[6] + "\n"; str += "Right for Template Config: " + data[7] + "\n"; str += "data7: " + data[7] + "\n"; if (is.NS) { if (!parent.parent.frames["left"].frames['left_top'].cfg.scrollX) parent.parent.frames["left"].frames['left_top'].cfg.scrollX = 0; if (!parent.parent.frames["left"].frames['left_top'].cfg.scrollY) parent.parent.frames["left"].frames['left_top'].cfg.scrollY = 0; parent.parent.frames["left"].frames['left_top'].cfg.scrollX = window.scrollX; parent.parent.frames["left"].frames['left_top'].cfg.scrollY = window.scrollY; } } /** rowMark instances **/ /* rowMark instance for the general use */ row = new rowMark('#f9fbdd', '#ecf1b2', '#cccccc', 'row'); /* rowMark instance for the Subnavigation */ sub = new rowMark('red', '#FFF', 'blue', 'sub'); /* rowMark instance for the Content area */ con = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'conInjectData(oRow)', 'con'); /* rowMark instance for the Content Category area */ str = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'refreshSelectedBaseCategory(oRow)', 'str'); /* rowMark instance for the Upload area */ //upl = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'setPath(oRow)', 'upl'); upl = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'refreshPathFrame(oRow)', 'upl'); /* Create a new rowMark Instance for the Content- Article overview area */ artRow = new rowMark('#f9fbdd', '#ecf1b2', '#ecf1b2', 'if (conArtOverviewExtractData(oRow) == false) { window.setTimeout(conArtOverviewExtractData(oRow), 250); }', 'artRow'); /* rowMark instance for area 'lay' */ lay = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'saveObj(oRow)', 'lay'); function saveObj(oRow) { parent.parent.frames["left"].frames["left_top"].obj = oRow.id; } function refreshPathFrame(oRow) { var newPath = oRow.id; var left_top = parent.parent.frames["left"].frames["left_top"]; if (left_top) { if (left_top.document.getElementById('caption2')) { left_top.document.getElementById('caption2').innerHTML = newPath; } if (left_top.document.newdir) { left_top.document.newdir.path.value = newPath; } id_path = newPath; } } /**refreshSelectedBaseCategory * Generic function to reMark a row */ function reMark(sObjId) { var elm = document.getElementById(sObjId); if (typeof elm == 'object') { lay.over(elm); lay.click(elm); if (elm && elm != null) { elm.scrollIntoView(false); } } } /** * Function returns offset left, top, width and heigth of a given htnmlelement as array * * @param object oElement - Object which should be analyzed * @return array - containing dimension information */ var getElementPostion = function (oElement) { var iHeigth = oElement.offsetHeight; var iWidth = oElement.offsetWidth; var iTop = 0, iLeft = 0; while (oElement) { iTop += oElement.offsetTop || 0; iLeft += oElement.offsetLeft || 0; oElement = oElement.offsetParent; }; return [iLeft, iTop, iHeigth, iWidth]; }