function printVersion() {

	if (trigger = dom('print-version')) {
		dom.event.add(trigger, 'click', function(e) {
			e.preventDefault();
			printVersion.switchToPrintLayout();
		});
	}
}

extend(printVersion, {
	printLayout : false,
	buttonMessages : {
		'lt' : ['Uždaryti', 'Atspausdinti'],
		'en' : ['Close', 'Print']
	},
	switchToPrintLayout : function() {
		var allLinks = dom(dom(), 'link'), i = 0;
		if (!this.printLayout) {
			for (; (link = allLinks[i]); ++i) {
				if (link.media.indexOf('print') != -1) {
					var spoofedLink = link.cloneNode(false);
					spoofedLink.media = 'screen';
					link.parentNode.insertBefore(spoofedLink, link);
				}
				else if (link.rel.indexOf('stylesheet') != -1) {
					link.disabled = true;
				}
			}
			var lang = dom().body.className.split(' ')[0];
			dom().body.appendChild(dom.create(
				sprintf(Template.print.controlDiv,
					sprintf(Template.print.closeButton, this.buttonMessages[lang][0]),
					sprintf(Template.print.printButton, this.buttonMessages[lang][1]))
				)
			);
			this.printLayout = !this.printLayout;
		}
	},
	switchToNormalLayout : function() {
		var allLinks = dom(dom(), 'link'), i = 0;
		if (this.printLayout) {
			for (; (link = allLinks[i]); ++i) {
				if (link.media.indexOf('screen') != -1 && !link.disabled) {
					link.parentNode.removeChild(link);
				}
				else if (link.rel.indexOf('stylesheet') != -1) {
					link.disabled = false;
				}
			}
			dom('js-print-controls').parentNode.removeChild(dom('js-print-controls'));
			this.printLayout = !this.printLayout;
		}
	}
});


function backToTop() {
	if (dom().body.id != 'index' && (dom('footer').offsetTop - document.documentElement.clientHeight) > 200 && !dom('CareerMotivation')) {
		dom.removeClass(dom('back-to-top').parentNode, 'hide');
	}
}


function externalLinks() {
	if (externalLinks = dom.getByClass('external', null, 'a')) {
		for (var i = 0; (link = externalLinks[i]); i++) {
			link.target = '_blank';
		}
	}
}


function focusFields() {
	for (var i = 0; (form = document.forms[i]); ++i) {
		if (fields = focusFields.getFields(form)) {
			for (var j = 0; (field = fields[j]); ++j) {
				dom.event.add(field, 'focus', function(e) {
					dom.addClass(this.parentNode, 'focused');
				});
				dom.event.add(field, 'blur', function(e) {
					dom.removeClass(this.parentNode, 'focused');
				});
			}
		}
	}
	for (var i = 0; (field = focusFields.pendingFields[i]); ++i) {
		field.focus();
	}
}

extend(focusFields, {
	pendingFields : [],
	getFields : function(form) {
		var fields = [];
		if (form) {
			for (var i = 0; (elem = form.elements[i]); ++i) {
				if (elem.parentNode.className.indexOf('field') != -1 && elem.focus) {
					fields[fields.length] = elem;
					if (arguments[1] === true) {
						break;
					}
				}
			}
		}
		return fields;
	},
	first : function(form) {
		if (form) {
			if (firstField = this.getFields(form, true)[0]) {
				this.pendingFields[this.pendingFields.length] = firstField;
			}
		}
	}
});


function addRoundedCorners(elements) {
	if (elements && elements.length) {
		var html = '<b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>';
		for (var i = 0, l = elements.length; i < l; ++i) {
			if (elements[i]) {
				var element = elements[i];
				element.innerHTML += html;
			}
			/*if (element.length) {
				for (var j = 0; (node = element[j]); ++j) {
					alert(node);
				}
			}
			else {
				alert(element);
			}*/
		}
	}
}


var Template = {
	'print' : {
		'controlDiv'  : '<div id="js-print-controls">%s%s</div>',
		'closeButton' : '<button id="js-close-button" onclick="printVersion.switchToNormalLayout();">%s</button>',
		'printButton' : '<button id="js-print-button" onclick="window.print();"><strong>%s</strong></button>'
	}
};

