// ditzie.js
//
// (c) 2009 CJ Niemira (http://siege.org)
//
// All rights reserved
//
// This library contains many of the functions necessary to support
// http://ditzie.com
//

function contains_underscore(s) {
	if (s.indexOf("_") > 0) {
		return true;
	}
	return false;
}

function fullsrc_from_thumb(src) {
	var oldIdParts = src.id.split('_');
	var g2_id = oldIdParts[1];
	var oldItemID = 'itemId=' + g2_id;
	var newItemID = 'itemId=' + src.alt;
	var oldSrc = src.src;
	var newSrc = oldSrc.replace(oldItemID, newItemID);
	return newSrc;
}

function handleKeyDown(event) {
	msg(null);

	if (event.enterKey || event.keyCode == 13) {
		if (mbActive == 1) {
			return;
		}

		if (shiftPressed == 1) {
msg('d=' + ditzie + ', s=' + ditzieSet);
			//mb_global();

		} else {
			var imgs = new Hash();

			imgs.set('ditzie', ditzie);
			imgs.set('set', ditzieSet);

			$$('img.clone').each(function(img) {
				var dat = new Hash();
				dat.set('alt', img.alt);
				dat.set('title', img.readAttribute('title'));
				dat.set('height', img.style.height);
				dat.set('width', img.style.width);
				dat.set('left', img.style.left);
				dat.set('top', img.style.top);
				dat.set('zIndex', img.style.zIndex);
				dat.set('opacity', img.getStyle('opacity'));
				dat.set('classes', img.readAttribute('class'));
				imgs.set(img.id, JSON.stringify(dat));
			});

			new Ajax.Request('/save.php', {
				method: 'post',
				parameters: imgs,
				onSuccess: function(response) {
					location.href = response.responseJSON.url;
				},
				onFailure: function(response) {
					alert(response.responseText);
				}
			});
		}
	}

	if (event.upKey || event.keyCode == 38) {
		try {
			Draggables.lastDraggable.style.zIndex = zCount++;
		} catch(err) {}
	}

	if (event.downKey || event.keyCode == 40) {
		try {
			Draggables.lastDraggable.style.zIndex = '-1';
		} catch(err) {}
	}

	if (event.altKey || event.keyCode == 18) {
		window.altPressed = 1;
	}

	if (event.shiftKey || event.keyCode == 16) {
		window.shiftPressed = 1;
	}
}

function handleKeyUp(event) {
	window.altPressed = 0;
	window.shiftPressed = 0;
}

function make_fullsize(id) {
		var fsImage = new Image();
		fsImage.onload = function() {
			if (fsImage.height > 0)
				$(id).style.height = fsImage.height + 'px';
			if (fsImage.width > 0)
				$(id).style.width = fsImage.width + 'px';
			delete fsImage;
		};
		fsImage.src = $(id).src;
}

function mb(id) {
	mbCalledOn = id;
	msg(null);

	/* is this the attributes box, or the browser? */
	if (shiftPressed == 1) {
		mb_attribute();

	/* pop the image browser */
	} else {
		if ($(mbCalledOn).hasClassName('nochange')) {
			msg('You cannot change this image.');
		} else {
			mb_browser($(mbCalledOn).alt);
		}
	}
	return false;
}

function mb_attribute() {
	mb_show('mb_attributes.php', 'ditzie &gt;&gt; Attributes', 0);
}

function mb_browser(set) {
	mb_show('mb_browser.php?set=' + set, null, 1);
}

function mb_global() {
	mb_show('mb_global.php', 'ditzie &gt;&gt; Global', 0);
}

function mb_help(page) {
	mb_show('mb_help.php?page=' + page, null, 1);
}

function mb_login(page) {
	mb_show('mb_login.php?page=' + page, 'ditzie &gt;&gt; Login', 0);
}

function mb_show(url, title, resize) {
	Modalbox.show('/' + url, { title: title, width: 640, afterHide: function() {
		mbActive = 0;
	}, afterLoad: function(){
		mbActive = 1;
		if (resize > 0) {
			Modalbox.resizeToContent();
		}
	} });
}

function msg(text) {
	$('msg').update(text);
}

function msie() {
	var msie = parseFloat(navigator.appVersion.split('MSIE')[1]);
	if ((msie >= 5.5) && (msie < 7) && ($('body').filters))
		$$('img[src$=".png"]:not(.msie)').each(function(img) {
			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "', sizingMethod='scale')";
			img.addClassName('msie').src = "/transparentpixel.gif";
		});
}

var altPressed = 0;
var shiftPressed = 0;
var cCount = 0;
var mbActive = 0;
var mbCalledOn = 0;

var ditzieDraggables = new Hash();

