// 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];
}
}