// Basic module 'kib' -------------------------------------------------------------------- function kib_module(){ /* -------------------------------- variables ----------------------------------- */ var galleries; // gallery objects this.dirs; // gallery folders this.pics; // pic names and dimensions var customsettings = new Array(); // individual width, heights and backgrounds customsettings['default'] = Array(850, 500, "#fff", "#666666", "#dacd88", 1.3, 1, 1, 2); /* -------------------------------- getElementById function --------------------- */ function $(id){ return document.getElementById(id); } /* -------------------------------- constructor/descturctor --------------------- */ this.constr = function() { galleries = new Array(); this.dirs = new Array(); var temp = document.getElementsByTagName("div"); var found = 0; for(var i = 0; i < temp.length; i++){ if(temp[i].className.indexOf("koschtitgallery") >= 0){ temp[i].id = temp[i].title + "_" + found; temp[i].style.position = "relative"; temp[i].style.padding = "0px"; temp[i].style.overflow = "hidden"; var obj = customsettings[temp[i].title] ? customsettings[temp[i].title] : customsettings['default']; temp[i].style.width = obj[0] + "px"; temp[i].style.height = obj[1] + "px"; temp[i].style.background = obj[2]; this.dirs.push(temp[i].title); temp[i].title = ""; galleries.push(temp[i]); found++; } } if(galleries.length == 0){ return; } else { this.pics = new Array(galleries.length); showgallery(0); } } this.destr = function(){ } /* -------------------------------- methodes ------------------------------------ */ this.reinit = function(){ for(var i = 0; i < this.dirs.length; i++){ $(this.dirs[i]+"_"+i).title = this.dirs[i]; } kib.constr(); } this.resetcustomsettings = function(dirname, fr_width, fr_height, fr_color, th_bord_color, th_bord_hover_color, th_bord_hover_increase, resize_auto, nav_style, th_bord_size){ if(fr_width == "")fr_width = customsettings['default'][0]; if(fr_height == "")fr_height = customsettings['default'][1]; if(fr_color == "")fr_color = customsettings['default'][2]; if(th_bord_color == "")th_bord_color = customsettings['default'][3]; if(th_bord_hover_color == "")th_bord_hover_color = customsettings['default'][4]; if(th_bord_hover_increase == "")th_bord_hover_increase = customsettings['default'][5]; if(resize_auto == "")resize_auto = customsettings['default'][6]; if(nav_style == "")nav_style = customsettings['default'][7]; if(th_bord_size == "")th_bord_size = customsettings['default'][8]; if(!customsettings[dirname])customsettings[dirname] = new Array(); customsettings[dirname][0] = parseInt(fr_width); customsettings[dirname][1] = parseInt(fr_height); customsettings[dirname][2] = fr_color; customsettings[dirname][3] = th_bord_color; customsettings[dirname][4] = th_bord_hover_color; customsettings[dirname][5] = parseFloat(th_bord_hover_increase); customsettings[dirname][6] = resize_auto; customsettings[dirname][7] = nav_style; customsettings[dirname][8] = th_bord_size; } function showgallery(gallerynumber){ var gallery = galleries[gallerynumber]; gallery.innerHTML = ""; var node = document.createElement("div"); node.id = gallery.id + "_see"; node.style.position = "absolute"; node.style.height = "100%"; node.style.width = "100%"; node.style.overflow = "hidden"; node.style.display = "none"; gallery.appendChild(node); node = document.createElement("div"); node.id = gallery.id + "_hide"; node.style.position = "absolute"; node.style.height = "100%"; node.style.width = "100%"; node.style.overflow = "hidden"; node.style.display = "none"; gallery.appendChild(node); kib.inc(gallerynumber, 0, 0, 1); if(gallerynumber+1 < galleries.length){ showgallery(gallerynumber+1); } else { } } //direction: 0 = static 1 = left, 2 = right, 3 = top, 4 = bottom this.inc = function(gallerynumber, direction, startfrom, collectinfo) { var params = "?reldir=&gallery=" + this.dirs[gallerynumber] + "&gallerynumber=" + gallerynumber; if(startfrom)params += "&startfrom="+startfrom; if(collectinfo) params += "&collectinfo=1"; else { collectinfo = 0; } fw.getHTTP("ki_base/ki_koschtit.php" + params, gotinc, new Array(direction, gallerynumber, collectinfo)); } function gotinc(responseText, params) { var direction = params[0]; var gallerynumber = params[1]; var collectinfo = params[2]; var container = $(kib.dirs[gallerynumber]+"_"+gallerynumber+"_see"); var switcher = $(kib.dirs[gallerynumber]+"_"+gallerynumber+"_hide"); container.id = kib.dirs[gallerynumber]+"_"+gallerynumber+"_hide"; switcher.id = kib.dirs[gallerynumber]+"_"+gallerynumber+"_see"; container.innerHTML = responseText; if(collectinfo == 1){ var jsontxt = $(gallerynumber+"_info").value; kib.pics[gallerynumber] = eval("(" + jsontxt + ")"); } var x = parseInt(container.parentNode.style.width); var y = parseInt(container.parentNode.style.height); var xto = 0; var yto = 0; if(direction > 2) var onlydir = 3; else var onlydir = 2; if(direction == 1){xto = x;} if(direction == 2){xto = -x;} if(direction == 3){yto = y;} if(direction == 4){yto = -y;} container.style.overflow = "hidden"; container.parentNode.style.overflow = "hidden"; container.style.left = -1*xto+"px"; container.style.top = -1*yto+"px"; fw.move(container, onlydir, 0, 0); fw.move(switcher, onlydir, xto, yto, Array( function(){ var node = document.createElement("div"); node.id = switcher.id; node.style.position = "absolute"; node.style.height = "100%"; node.style.width = "100%"; node.style.overflow = "hidden"; node.style.lineHeight = "12px"; node.style.display = "none"; var parnt = switcher.parentNode; parnt.removeChild(switcher); parnt.appendChild(node); container.style.overflow = "visible"; parnt.style.overflow = "visible"; var temp = $(gallerynumber+"_shownav").value.split("|"); var cs = customsettings[kib.dirs[gallerynumber]] ? customsettings[kib.dirs[gallerynumber]] : customsettings['default']; var ysize = cs[1]; if(cs[6] == 1){ for(var i = container.childNodes.length-1; i > 0; i--){ if(container.childNodes[i]){ if(container.childNodes[i].nodeName == "IMG"){ var temp2 = container.childNodes[i].alt.split("_"); ysize = parseInt(temp2[3]) + 0.5*(parseInt(temp2[1]) + cs[8]*2); break; } } } for(var j = 0; j < 10; j++){ if(container.childNodes[j]){ if(container.childNodes[j].nodeName == "IMG"){ temp2 = container.childNodes[j].alt.split("_"); ysize = ysize + parseInt(temp2[3]) + 0.5*(parseInt(temp2[1]) + cs[8]*2); if(temp[0] == 1)ysize += 38; if(ysize <= cs[1])fw.resize(parnt, 4, 0, ysize); break; } } } } if(temp[0] == 1){ var tbcontent = ""; var breite = 20; tbcontent += ""; if(temp[3] == 1 && kib.pics[gallerynumber].length > 0){ tbcontent += ""; breite += (4 + 20); } if($(gallerynumber+"_prev")){ tbcontent += ""; breite += (4 + 20); } if($(gallerynumber+"_next")){ tbcontent += ""; breite += (4 + 20); } var navpos = 0; var cs = customsettings[kib.dirs[gallerynumber]] ? customsettings[kib.dirs[gallerynumber]] : customsettings['default']; if(temp[2] == "right"){ navpos = -3; } else if(temp[2] == "left"){ navpos = 3; } else { breite += 16; navpos = (cs[0]-breite+2)*0.5; } fw.addtoolbar(container, tbcontent, navpos, ysize - 20 - 14, temp[1]); var tb = $(container.id + "_tb"); tb.style.background = temp[4]; if(cs[7] == 2){ tb.style.borderRadius = "20px"; tb.style.MozBorderRadius = "20px"; tb.style.WebkitBorderRadius = "20px"; } tb.style.border = "2px solid " + temp[5]; tb.style.padding = "1px 3px 3px 3px"; tb.style.lineHeight = "12px"; if(collectinfo != 1)fw.fade(tb, 100); } } )); } this.getImage = function(picstring) { var temp = picstring.indexOf("_"); var gallerynumber = Number(picstring.substr(0, temp)); var picnumber = Number(picstring.substr(temp+1)); var params = Array( gallerynumber, picnumber ); fw.addjs("ki_base/ki_js_view.php?reldir=&gallery="+kib.dirs[gallerynumber], "kiv", params); } this.slideshow = function(gallerynumber) { kib.getImage(gallerynumber + "_0"); (function(){ if($("thepicture")){ var sspic = $("ssbutton"); sspic.src = "ki_base/ki_nav_stop.png"; sspic.title = "Stop slideshow"; if($("kiv_gps"))$("kiv_gps").value = "0,0"; if($("kiv_help"))$("kiv_help").style.display = "none"; kiv.sshelp(1); return; } setTimeout(arguments.callee, 10); })(); } this.startExplorer = function(gallerynumber) { var params = Array(); params.push(gallerynumber); fw.addjs("ki_base/ki_js_explorer.php?reldir=&gallery="+kib.dirs[gallerynumber], "kie", params); } this.makebigger = function(obj){ var temp = obj.id.split("_"); var cs = customsettings[kib.dirs[temp[0]]] ? customsettings[kib.dirs[temp[0]]] : customsettings['default']; var faktor = cs[5]; var temp = obj.alt.split("_"); var size = Array( temp[0], temp[1] ); var newsize = Array( Math.round(size[0]*faktor), Math.round(size[1]*faktor) ); var pos = Array( temp[2], temp[3] ); var newpos = Array( pos[0]-0.5*(newsize[0]-size[0]), pos[1]-0.5*(newsize[1]-size[1]) ); fw.move(obj, 1, newpos[0], newpos[1]); fw.resize(obj, 1, newsize[0], newsize[1]); obj.style.zIndex = 100; obj.style.borderColor = cs[4]; } this.makesmaller = function(obj){ var temp = obj.alt.split("_"); var newsize = Array( temp[0], temp[1] ); var newpos = Array( temp[2], temp[3] ); fw.move(obj, 1, newpos[0], newpos[1]); fw.resize(obj, 1, newsize[0], newsize[1]); obj.style.zIndex = 0; temp = obj.id.split("_"); var cs = customsettings[kib.dirs[temp[0]]] ? customsettings[kib.dirs[temp[0]]] : customsettings['default']; obj.style.borderColor = cs[3]; } }