/**
 * @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
 */
var Print = {
	menuId:	'printMenu',
	disabled: [],
	added: [],
	
	init: function(translations){
		this.translations = translations;
	},

	addPrintButton: function(){
		var out = [];
		out.push('<div id="'+ this.menuId +'">');
		out.push('<button type="button" onclick="window.print();">');
		out.push('<img src="img/common/ico/yes.gif" alt="" /> '+ this.translations.print);
		out.push('</button>');
		out.push('<button type="button" onclick="window.Print.close();">');
		out.push('<img src="img/common/ico/no.gif" alt="" /> '+ this.translations.close);
		out.push('</button>');
		out.push('</div>');

		$(out.join(' '))
			.prependTo('body');
	},

	removePrintButton: function(){
		$('#'+ this.menuId)
			.remove();
	},

	open: function(){	
		var Print = this;
		var s = $('style');
		var l = $('link[@rel=stylesheet]');
		var a = [];

		$.each(s, function(i,n){a.push(n);});
		$.each(l, function(i,n){a.push(n);});
		$.each(a, function(i, n){
			var media = $(n).attr('media');
			if(media)
				switch(media.toLowerCase())
				{
					case 'print':
					var o = n.cloneNode(false);
					o.media = 'screen';
					Print.added.push(o);
					n.parentNode.insertBefore(o, n);
					break;
					
					default:
					if(!n.disabled)
					{
						n.disabled = true;
						Print.disabled.push(n);
					}
					break;
				}
			});
	
		Print.addPrintButton();
	},
	
	close: function(){
		var Print = this;
		$.each(Print.disabled, function(i,n){n.disabled = false;});
		$.each(Print.added, function(i,n){
			n.disabled = true;
			n.parentNode.removeChild(n);
		});

		Print.disabled = [];
		Print.added = [];
		Print.removePrintButton();
	}
};