var Images = {
	
	basePath: '',
	
	preload : function(src)
	{
		body = document.getElementsByTagName('body');
		
		if (body.length == 1)
		{
			img = createImage(src);
			img.className = 'hidden';
			body[0].appendChild(img);
		}
	},
	
	remove: function(delete_btn, post_url, field_name)
	{
		new Dialog(PHPVars.get('file_delete_confirm'), [
			{
				label : PHPVars.get('yes'),
				callback : function ()
				{
					var req = new AJAX.Request(post_url, {
						method: 'POST',
						json: true,
						parameters: ['fieldName=' + field_name],
						onComplete : function (response)
						{
							if (response.responseJSON.result)
								File.replacePreview(delete_btn.parentNode, field_name);
						}
					});
					
					this.close();
				}
			},
			{
				label : PHPVars.get('no'),
				callback : 'close'
			}
		]);
		
		
	},
	
	preview: function(url)
	{
		var close = function ()
		{
			DOM.removeEvent(document.body, 'click', close);
			DOM.disappear($('imgPrev'), 30, DOM.remove);
		};
		
		if (imgPrev = $('imgPrev'))
		{
			imgPrev.innerHTML = '';
		}
		else
		{
			imgPrev = DOM.create('div', {
				className: 'imagePreview',
				id: 'imgPrev'
			});
		}
		
		imgPrev.style.top = (Browser.posTop() + ((Browser.pageHeight() - 55) / 2) + "px");
		imgPrev.style.left = (((Browser.pageWidth() - 60) / 2) + "px");
		
		var img = DOM.create('img');
		DOM.hide(img);
		
		DOM.addEvent(img, 'load', (function() {
				if (this.height > 600) this.height = 600;
				DOM.appear(img, 30);
				this.style.cursor = 'pointer';
				DOM.addEvent(document.body, 'click', close);
				DOM.setPosition($('imgPrev'),
					((Browser.pageWidth() - $('imgPrev').offsetWidth) / 2),
					(Browser.posTop() + ((Browser.pageHeight() - $('imgPrev').offsetHeight) / 2))
				);
		}).bind(img));
		
		img.src = url;
		
		imgPrev.appendChild(img);
		
		document.getElementsByTagName('body')[0].appendChild(imgPrev);
	},
	
	initializeButtons: function()
	{
		var imgs = document.getElementsByTagName('img');
		
		if (imgs.length > 0) {
			for (img = 0; img < imgs.length; img++) {
				var className = imgs[img].className.split(' ');
				
				for (cid = 0; cid < className.length; cid++) {
					if (className[cid].substring(0, 5) == 'over:') {
						var file = className[cid].substring(5);
						imgs[img].src = Images.basePath + file + "_off.gif";
						imgs[img].setAttribute('border', '0');
						imgs[img].removeAttribute('class');
						Images.assignChangeEvents(imgs[img], ['mouseover', 'mouseout']);
					}
				}
			}
		}
	},
	
	changes : {
		'_on' : '_off',
		'_off' : '_on',
		'_1' : '_0',
		'_0' : '_1',
		'minus' : 'plus',
		'plus' : 'minus'
	},
	
	change : function()
	{
		var oldSrc = this.src, replacement;
		for (var match in Images.changes)
		{
			if (oldSrc.indexOf(match) != -1)
			{
				replacement = Images.changes[match];
				this.src = oldSrc.replace(match, replacement);
				return;
			}
		}
	},
	
	_changeListener : function(event)
	{
		Images.change.apply(DOM.eventTarget(event));
	},
	
	assignChangeEvents : function(image, events)
	{
		for(var i = 0; i < events.length; i++)
		{
			DOM.addEvent(image, events[i], Images._changeListener);
		}
	},
	
	replacePNGs : function(element)
	{
		if (!Browser.isIE())
		{
			return false;
		}
		
		if (typeof(element) == 'undefined')
		{
			element = document;
		}
		
		var imgs = element.getElementsByTagName('img');
		for(imgId = 0; imgId < imgs.length; imgId++)
		{
			if (imgs[imgId].src.substring(imgs[imgId].src.length - 4) == '.png')
			{
				w = imgs[imgId].offsetWidth;
				h = imgs[imgId].offsetHeight;
							
				imgs[imgId].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imgs[imgId].src + "',sizingMethod='scale');";
				imgs[imgId].src = Request.get('basepath') + '/images/pix.gif';
				imgs[imgId].style.width = w + 'px';
				imgs[imgId].style.height = h + 'px';
			}
		}
	}
}

