Images = function() { }

Images.progressImage = '/kernel/images/progress.gif';
Images.elements = [];
Images.signatures = [];

Images.selected = 0;

Images.change = null;
Images.cell = null;
Images.sign = null;
Images.dark = null;
Images.ajax = null;

Images.load = new Images();
Images.load.src = Images.progressImage;

Images.progress = null;

Images.init = function() {
	Images.change = document.getElementById('imageChange');
	Images.cell = document.getElementById('imageCell');
	Images.sign = document.getElementById('imageSignature');
}

Images.select = function(key) {
	if (key == Images.selected) return false;
	var ip = document.getElementById('iprev' + Images.selected);
	if (ip) ip.className = 'preview';
	
	Images.selected = key;
	
	Images.progress = document.createElement('DIV');
	Images.progress.style.position = 'absolute';
	Images.progress.style.zindex = 100;
	Images.progress.innerHTML = '<img src="' + Images.progressImage + '" />';

	Images.cell.insertBefore(Images.progress, Images.cell.firstChild);

	Images.load = new Image();
	Images.load.onload = new Function('Images.onload()');
	Images.load.onerror = new Function('Images.onerror()');
	Images.load.onabort = new Function('Images.onerror()');
	
	Images.load.src = Images.elements[key];
}

Images.onload = function() {
	Images.change.src = Images.load.src;
	Images.load = null;
	Images.onerror();
}

Images.onerror = function() {
	Images.cell.removeChild(Images.progress);
	var ip = document.getElementById('iprev' + Images.selected);
	if (ip) ip.className = 'previewSel';
	Images.sign.innerHTML = Images.signatures[Images.selected];
}

Images.showDark = function(id, lang, flag, name) {
	Images.ajax = new Ajax('/kernel/modules/module.images.php');
	Images.ajax.parameters = '?b=' + id + '&l=' + lang + (flag ? '&f=' + flag : '') + (name ? '&n=' + name : '') + '&nocashe=' + Ajax.nocash();
	Images.ajax.finish = function() {
		var result = Images.ajax.object.responseText;
		if (result != 'false') {
			var div = document.createElement('div');
			div.id = 'darkShow';
			div.innerHTML = result;
			document.body.appendChild(div);
			if (window.addEventListener) {
				window.addEventListener('resize', Images.resizeDark, false);
			} else if (window.attachEvent) {
				window.attachEvent('onresize', Images.resizeDark);
			} else {
				window.onresize = new Function('e', Images.resizeDark);
			}
			Images.resizeDark();
		}
	}
	
	Images.ajax.loading = function() {
		var o = document.getElementById('favoriteContainer');
		if (o) o.insertBefore(Manager.progress, o.firstChild);
	}
	
	Images.ajax.onevent('Images.ajax');	
}

Images.resizeDark = function() {
	var div = document.getElementById('darkConteiner');
	if (div) {
		var footer = document.getElementById('foterId');
		div.style.width = footer ? footer.offsetWidth : document.body.scrollWidth + 'px';
		div.style.height = document.body.scrollHeight + 'px';
	}
}

Images.hideDark = function() {
	var div = document.getElementById('darkShow');
	if (div) document.body.removeChild(div);
	if (window.removeEventListener) window.removeEventListener('resize', Images.resizeDark);
	else if (window.detachEvent) window.detachEvent('onresize', Images.resizeDark);
	else window.onresize = function() {}
}