/* ======================= ARRAY SHIT ======================= */ Array.prototype.deleteItem = function(num){ var len = this.length; var temp_var = new Array(); for (var i = 0; i < num; i++) { temp_var[i] = this[i]; } for (var i = (num + 1); i < len; i++) { temp_var[i-1] = this[i] } return temp_var; } function print_r(arr){ text = ""; for (var i=0; i
" + obj.text + "
"; assignModalButtons(obj); appearModalDiv(); } new Effect.ScrollTo(document.body, { to: 0 }); window.MODAL_ID = GLOBAL_MODAL_ID; } var appearModalDiv = function() { $(GLOBAL_MODAL_ID).setOpacity(1); $(GLOBAL_MODAL_ID).style.display = "block"; w = Element.getDimensions($(GLOBAL_MODAL_ID)).width; $(GLOBAL_MODAL_ID).style.width = ((w < 200) ? 200 : w) + "px"; alignObj(GLOBAL_MODAL_ID); new Effect.Opacity($(GLOBAL_MODAL_ID), {to: 1, duration: .5 }); } var assignModalButtons = function(obj) { var h2 = $(GLOBAL_MODAL_ID).getElementsByTagName("h2"); if(h2[0]) { h2[0].onclick = null; setTimeout(function(){ new Draggable(GLOBAL_MODAL_ID, { zindex : 100000, handle : "modalHandle", starteffect: false, endeffect: false, snap: function(x,y,draggable) { function constrain(n, lower, upper) { if (n > upper) return upper; else if (n < lower) return lower; else return n; } element_dimensions = Element.getDimensions(draggable.element); parent_dimensions = Element.getDimensions($("blockingShadow")); return[ constrain(x, 0, parent_dimensions.width - element_dimensions.width), constrain(y, 0, parent_dimensions.height - element_dimensions.height)]; } }); }, 100); } if(obj.buttonOk || obj.buttonCancel) { $(GLOBAL_MODAL_ID).innerHTML += "
"; if(obj.buttonOk) { $("modalButtonDiv").innerHTML += "  "; setTimeout(function() { $("modalButtonOk").onclick = function() { if(obj.callback) { obj.callback(true); } destroyModalDiv(); return false; } }, 100); } if(obj.buttonCancel) { $("modalButtonDiv").innerHTML += "  "; setTimeout(function() { $("modalButtonCancel").onclick = function() { if(obj.callback) { obj.callback(false); } destroyModalDiv(); return false; } }, 150); } } } var destroyModalDiv = function(id) { id = GLOBAL_MODAL_ID; removeBlockingShadow(); new Effect.Fade(id, { duration: .5 }); window.MODAL_ID = false; } var reloadAjaxPage = function() { new Ajax.Updater("main", AJAX_URL, { noHistory : true }); } var getBgColor = function(start, end, num, range) { var OBJ = new Object(); OBJ.START_COLOR = start; OBJ.END_COLOR = end; OBJ.colors_base = [ parseInt(OBJ.START_COLOR.slice(1,3),16), parseInt(OBJ.START_COLOR.slice(3,5),16), parseInt(OBJ.START_COLOR.slice(5),16) ]; OBJ.colors_delta = [ parseInt(OBJ.END_COLOR.slice(1,3),16)-OBJ.colors_base[0], parseInt(OBJ.END_COLOR.slice(3,5),16)-OBJ.colors_base[1], parseInt(OBJ.END_COLOR.slice(5),16)-OBJ.colors_base[2]]; var position = num / range; OBJ.COLORS = $R(0,2).map( function(i){ return Math.round(OBJ.colors_base[i]+(OBJ.colors_delta[i]*position)) }); return "#" + OBJ.COLORS[0].toColorPart() + OBJ.COLORS[1].toColorPart() + OBJ.COLORS[2].toColorPart(); } var getAbsolutePos = function(el) { var SL = 0, ST = 0; var is_div = /^div$/i.test(el.tagName); if (is_div && el.scrollLeft) SL = el.scrollLeft; if (is_div && el.scrollTop) ST = el.scrollTop; var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST }; if (el.offsetParent) { var tmp = getAbsolutePos(el.offsetParent); r.x += tmp.x; r.y += tmp.y; } return r; } getData = Class.create(); getData.prototype = { initialize: function(element, options) { this.element = $(element); //alert(element + " ! " + this.element); this.setOptions(options); this.initEvents(); }, initEvents: function() { this.element.getElementsBySelector(".sort").each((function(item){ //alert(this.item); Event.observe(item, "click", this.headerClick.bindAsEventListener(this)); }).bind(this)); }, currentHeader: false, headerClick: function(evt, item) { if(evt) { var item = Event.findElement(evt, "th"); } //createModalDiv({ title: "ID", text: item.id, buttonOk: true }); var order = item.id.substring(5); if(item != this.currentHeader) { if(this.currentHeader) { this.currentHeader.removeClassName("sortDESC").removeClassName("sortASC"); } } else { item.removeClassName("sortDESC").removeClassName("sortASC"); } this.setSorting(order, ((this.options.dir == "ASC") ? "DESC" : "ASC")); this.setPaging(0); item.addClassName("sort" + this.options.dir); this.currentHeader = item; this.request(); }, setOptions: function(options) { this.options = { sql: '', table: '', filters: '', order: 'id', dir: 'ASC', onpage: 10, page: 0, outputParams: '', countSql: 'COUNT(*) as num', DB: 'acm', callback: function() {} } Object.extend(this.options, options || {}); }, setPaging: function(page, onpage) { if(page) this.options.page = page; if(onpage) this.options.onpage = onpage; }, setSorting: function(order, dir) { if(order) this.options.order = order; if(dir) this.options.dir = dir; }, clearFilters: function() { this.options.filters = ""; this.options.page = 0; this.options.table = ""; }, addFilter: function(filter) { this.options.filters += " AND " + filter; }, addTable: function(table) { this.options.table += ", " + table; }, request: function() { Position.prepare(); //deltaY getDimensions $(this.element.id + "Loading").setOpacity(0); $(this.element.id + "Loading").setStyle({ width: this.element.getDimensions().width + "px", height: this.element.getDimensions().height + "px", top: getAbsolutePos(this.element).y + "px", left: getAbsolutePos(this.element).x + "px" }); new Effect.Opacity($(this.element.id + "Loading"), {to : .8, duration: .7}); new Ajax.Request("/index.php?", { parameters: "action=_get_data&VALUE[DB]=" + this.options.DB + "&VALUE[sql]=" + this.options.sql + "&VALUE[order]=" + this.options.order + "&VALUE[dir]=" + this.options.dir + "&VALUE[onpage]=" + this.options.onpage + "&VALUE[page]=" + this.options.page + "&VALUE[outputParams]=" + this.options.outputParams + "&VALUE[filters]=" + this.options.filters + "&VALUE[table]=" + this.options.table + "&VALUE[countSql]=" + this.options.countSql + "&VALUE[id]=" + this.element.id, onSuccess: this.complete.bind(this) }); }, removeLoading: function() { $(this.element.id + "Loading").setStyle({ width: 0, height: 0 }); }, complete: function(response) { new Effect.Opacity($(this.element.id + "Loading"), {to : 0, duration: .7, afterFinish: this.removeLoading.bind(this)}); $A(this.element.getElementsByTagName("TR")).each(function(item, counter){ if(counter) { item.parentNode.removeChild(item); } }); //alert(response.responseText); new Insertion.BottomIE(this.element, response.responseText); //alert("!!"); setTimeout((function() { $A(this.element.getElementsByTagName("a")).each(function(item){ item.onclick = function() { new Ajax.Updater("main", this.href); return false; } }); //alert("!!2"); $("pages_" + this.element.id).innerHTML = OUTPAGE; //alert("!!3"); if(this.element.getElementsByTagName("caption")[0]) this.element.getElementsByTagName("caption")[0].innerHTML = COUNT_DATA + ' found'; //alert("!!4"); setTimeout((function() { this.processPages(); this.options.callback(); }).bind(this), 50); //alert("!!5"); }).bind(this), 50); }, processPages: function() { $A($("pages_" + this.element.id).getElementsByTagName("A")).each((function(item){ if(item.href == BASE_HREF + "/#") return; item.onclick = function(){ return false; }; Event.observe(item, "click", this.pageClick.bindAsEventListener(this)); }).bind(this)); }, pageClick: function(evt) { var item = Event.findElement(evt, "a"); this.options.page = item.href.substring(BASE_HREF.length + 1); this.request(); //debugger; //alert("shit"); return false; } } var getTimestamp = function(date, end) { var temp = date.split("/"); var humDate = new Date(Date.UTC(temp[2], (parseFloat(temp[1])-1), (parseFloat(temp[0]) + (end ? 1 : 0)), 0, 0, 0)); return (humDate.getTime()/1000.0); } var stripLeadingZeroes = function(input) { if((input.length > 1) && (input.substr(0,1) == "0")) return input.substr(1); else return input; } var Process = { log: function(text) { if(text.substring(0, 4) == "Done") { $("process_pack_" + text.substring(5)).morph({ backgroundColor: "#BAEFB4" }, { duration: .5 }); } new Insertion.Top("process_log", "
" + text + "
"); var item = $("process_log").getElementsByTagName("div")[0]; item.setOpacity(0); item.style.display = "block"; new Effect.Opacity(item, { to: 1, duration: .5, afterFinish: this.step.bind(this) }); if($("process_log").childNodes.length > 100) { $("process_log").removeChild($("process_log").lastChild); } }, action: function(action, params) { new Ajax.Updater("process_error", "/index.php?", { parameters: "action="+action+"&" + params, onComplete: this.postAction.bind(this) }); }, postAction: function(response) { if(this.stop) return; this.step(); }, step: function() { new Ajax.Request("/index.php?action=_content_process_step", { noHistory : true, method: "get" }); } } function imgUpload(msgZoneId) { // Display Loading... message and upload image msgZone = document.getElementById("imgZone" + msgZoneId) msgZone.innerHTML = "Loading..." document.getElementById("uploadForm").submit() alert(msdZoneID) } function imgRollBack(msgZoneId) { // Display ? in the image box if upload fails msgZone = document.getElementById("imgZone" + msgZoneId) msgZone.innerHTML = "?" } function imgPreview(zoneId,imgPath) { // Display uploaded image msgZone = document.getElementById("imgZone" + zoneId) msgZone.innerHTML = "" imgStorePath(zoneId,imgPath) } function imgStorePath(zoneId,imgPath) { // Store image path document.getElementById("imgPath" + zoneId).value = imgPath }