jQuery.loadImage = function(src, callback) {
	var img = new Image();
	$(img).load(function() {
		callback();
	}).attr("src", src);
}

jQuery.loadImages = function(urls, callback) {
	var loaded = 0;
	jQuery.each(urls, function(i, val) {
		$.loadImage(val, function() {
			loaded++;
			if (loaded >= urls.length)
				callback(urls);
		});
	});
}

jQuery.setHeadline = function(t, s, a, w, h) {
	$.loadImage(s, function() {
		var img = jQuery("<img>").attr("src", s).attr("alt", a).css({ width: w, height: h }).addClass("png");
		$(t).html(img);
		if ($.browser.msie && $.browser.version == 6.0 && s.indexOf(".png") != -1)
			img.addClass("png");
	});
}









function showOverlay(closeFunc) {

	var id = "lightbox-overlay";
	var cssClass = "lightbox-overlay transparent-80";
	var overlay = $("<div></div>").attr("id", id).attr("class", cssClass);

	$("embed, object, select").css({ "visibility": "hidden" });
	$("body").css("overflow", "hidden").append(overlay);

	$(document).keydown(function(event) {
		if (event.keyCode == 27) {
			closeOverlay();
			closeFunc();
		}
	});

	overlay.click(function() {
		closeOverlay();
		closeFunc();
	});

	if ($.browser.msie && $.browser.version == 6.0) {
		/* IE6 only */

		$(window).resize(function() {
			resizeOverlay();
		});

		resizeOverlay();
	}
}

/* IE6 Only */
function resizeOverlay() {

	var height = $("body").outerHeight(true);

	if ($("html").outerHeight(true) > height)
		height = $("html").outerHeight(true);

	$("#lightbox-overlay").css({
		position: "absolute",
		width: $(window).width(),
		height: height
	});
}

function closeOverlay() {
	$("#lightbox-overlay").fadeOut(300, function() {
		$(this).remove();
		$("embed, object, select").css({ "visibility": "visible" });
	});
	$("body").css("overflow", "auto");
}





/**
* jQuery custom checkboxes
* 
* Copyright (c) 2008 Khavilo Dmitry (http://widowmaker.kiev.ua/checkbox/)
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
* @version 1.1.0 Beta
* @author Khavilo Dmitry
* @mailto wm.morgun@gmail.com
**/

(function($) {

	$.fn.checkbox = function(options) {

		/* IE6 background flicker fix */
		try { document.execCommand('BackgroundImageCache', false, true); } catch (e) { }

		/* Default settings */
		var settings = {
			cls: 'wip-checkbox',  /* checkbox  */
			empty: vpath + 'Images/blank.gif'  /* checkbox  */
		};

		/* Processing settings */
		settings = $.extend(settings, options || {});

		/* Adds check/uncheck & disable/enable events */
		var addEvents = function(object) {
			var checked = object.checked;
			var disabled = object.disabled;
			var $object = $(object);

			if (object.stateInterval)
				clearInterval(object.stateInterval);

			object.stateInterval = setInterval(
				function() {
					if (object.disabled != disabled)
						$object.trigger((disabled = !!object.disabled) ? 'disable' : 'enable');
					if (object.checked != checked)
						$object.trigger((checked = !!object.checked) ? 'check' : 'uncheck');
				},
				10 /* in miliseconds. Low numbers this can decrease performance on slow computers, high will increase responce time */
			);
			return $object;
		}
		try { console.log(this); } catch (e) { }
		/* Wrapping all passed elements */
		return this.each(function() {
			var ch = this;
			var $ch = addEvents(ch); /* Adds custom eents and returns */

			if (ch.wrapper) {
				ch.wrapper.remove();
			}

			/* Creating div for checkbox and assigning "hover" event */
			ch.wrapper = $('<span class="' + settings.cls + '"><span class="mark"><img src="' + settings.empty + '" /></span></span>');
			ch.wrapperInner = ch.wrapper.children('span');
			ch.wrapper.hover(
				function() { ch.wrapperInner.addClass(settings.cls + '-hover'); },
				function() { ch.wrapperInner.removeClass(settings.cls + '-hover'); }
			);

			/* Wrapping checkbox */
			$ch.css({ position: 'absolute', left: '-999px' }).after(ch.wrapper);

			/* Fixing IE6 label behaviour */
			var parents = $ch.parents('label');
			/* Creating "click" event handler for checkbox wrapper*/
			if (parents.length) {
				parents.click(function(e) { $ch.trigger('click', [e]); return ($.browser.msie && $.browser.version < 7); });
			}
			else {
				ch.wrapper.click(function(e) { $ch.trigger('click', [e]); });
			}

			delete parents;

			$ch.bind('disable', function() { ch.wrapperInner.addClass(settings.cls + '-disabled'); }).bind('enable', function() { ch.wrapperInner.removeClass(settings.cls + '-disabled'); });
			$ch.bind('check', function() { ch.wrapper.addClass(settings.cls + '-checked'); }).bind('uncheck', function() { ch.wrapper.removeClass(settings.cls + '-checked'); });

			/* Disable image drag-n-drop  */
			$('img', ch.wrapper).bind('dragstart', function() { return false; }).bind('mousedown', function() { return false; });

			/* Firefox div antiselection hack */
			if (window.getSelection)
				ch.wrapper.css('MozUserSelect', 'none');

			/* Applying checkbox state */
			if (ch.checked)
				ch.wrapper.addClass(settings.cls + '-checked');
			if (ch.disabled)
				ch.wrapperInner.addClass(settings.cls + '-disabled');
		});
	};


})(jQuery);
