$(document).ready(function() {

	
	// Fix PNG-transparency in IE
	$(document).pngFix();
	

	// Toggle "tip a friend"-form
	$(".tip-toggle").click(function() {
		toggleTipAFriend();
		return false;
	});

	// Print-button
	$("#print a").click(function() {
		window.print();
		return false;
	});

	// Maintain default value for searchboxes
	var searchDefault = $("#searchfield_initialvalue");
	var searchInput = $("#searchfield");
	if (searchDefault.length == 1) {
		// Set default value when page loads
		if (!searchInput.val())
			searchInput.val(searchDefault.val()).addClass("initalvalue");
		searchInput.focus(function() {
			// Empty box when focused
			if ($(this).val() == searchDefault.val())
				$(this).val("").removeClass("initalvalue");
		}).blur(function() {
			// Re-set default value when leaving the box empty
			if ($(this).val() == "")
				$(this).val(searchDefault.val()).addClass("initalvalue");
		});
	}

	// Submit top search
	$("#header_search").keydown(function(e) {
		if (e.keyCode == 13) {
			submitTopSearch();
			return false;
		}
	});
	$("#header-search-btn").click(function() {
		submitTopSearch();
		return false;
	});

	// Submit page search
	$("#searchfield").keydown(function(e) {
		if (e.keyCode == 13) {
			submitPageSearch();
			return false;
		}
	});
	$(".search-button a").click(function() {
		if (searchInput.val() == searchDefault.val())
			searchInput.val("").removeClass("initalvalue");
		submitPageSearch();
		return false;
	});

	// Open typecode-links in new window
	$("a.typecode").click(function() {
        window.open($(this).attr("href"), "newwindow", "width=550,height=550,toolbar=no,location=no,resizable=yes,scrollbars");
		return false;
	});
});


function toggleTipAFriend() {
	$("p#tip a").toggleClass("active");
	$("#tip-a-friend").slideToggle(250);
}

function submitTopSearch() {
	var url = $("#header-search-btn").attr("href");
	var query = $("#header_search").val();
	if (query)
		url += '?query=' + encodeURIComponent(query);
	document.location = url;
}

function submitPageSearch() {
	var url = $(".search-button a").attr("href");
	var query = $("#searchfield").val();
	if (query)
		url += '?query=' + encodeURIComponent(query);
	document.location = url;
}

String.prototype.startsWith = function(str) {
    return this.slice(0, str.length) == str;
};




/**
* jQuery.ScrollTo - Easy element scrolling using jQuery.
* Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 5/25/2009
* @author Ariel Flesler
* @version 1.4.2
*
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
*/
; (function(d) { var k = d.scrollTo = function(a, i, e) { d(window).scrollTo(a, i, e) }; k.defaults = { axis: 'xy', duration: parseFloat(d.fn.jquery) >= 1.3 ? 0 : 1 }; k.window = function(a) { return d(window)._scrollable() }; d.fn._scrollable = function() { return this.map(function() { var a = this, i = !a.nodeName || d.inArray(a.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) != -1; if (!i) return a; var e = (a.contentWindow || a).document || a.ownerDocument || a; return d.browser.safari || e.compatMode == 'BackCompat' ? e.body : e.documentElement }) }; d.fn.scrollTo = function(n, j, b) { if (typeof j == 'object') { b = j; j = 0 } if (typeof b == 'function') b = { onAfter: b }; if (n == 'max') n = 9e9; b = d.extend({}, k.defaults, b); j = j || b.speed || b.duration; b.queue = b.queue && b.axis.length > 1; if (b.queue) j /= 2; b.offset = p(b.offset); b.over = p(b.over); return this._scrollable().each(function() { var q = this, r = d(q), f = n, s, g = {}, u = r.is('html,body'); switch (typeof f) { case 'number': case 'string': if (/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)) { f = p(f); break } f = d(f, this); case 'object': if (f.is || f.style) s = (f = d(f)).offset() } d.each(b.axis.split(''), function(a, i) { var e = i == 'x' ? 'Left' : 'Top', h = e.toLowerCase(), c = 'scroll' + e, l = q[c], m = k.max(q, i); if (s) { g[c] = s[h] + (u ? 0 : l - r.offset()[h]); if (b.margin) { g[c] -= parseInt(f.css('margin' + e)) || 0; g[c] -= parseInt(f.css('border' + e + 'Width')) || 0 } g[c] += b.offset[h] || 0; if (b.over[h]) g[c] += f[i == 'x' ? 'width' : 'height']() * b.over[h] } else { var o = f[h]; g[c] = o.slice && o.slice(-1) == '%' ? parseFloat(o) / 100 * m : o } if (/^\d+$/.test(g[c])) g[c] = g[c] <= 0 ? 0 : Math.min(g[c], m); if (!a && b.queue) { if (l != g[c]) t(b.onAfterFirst); delete g[c] } }); t(b.onAfter); function t(a) { r.animate(g, j, b.easing, a && function() { a.call(this, n, b) }) } }).end() }; k.max = function(a, i) { var e = i == 'x' ? 'Width' : 'Height', h = 'scroll' + e; if (!d(a).is('html,body')) return a[h] - d(a)[e.toLowerCase()](); var c = 'client' + e, l = a.ownerDocument.documentElement, m = a.ownerDocument.body; return Math.max(l[h], m[h]) - Math.min(l[c], m[c]) }; function p(a) { return typeof a == 'object' ? a : { top: a, left: a} } })(jQuery);

// function to adjust the viewport
(function(win, doc) {
    window.adjustViewport = function(property, value) {
        var 
    $viewport = $('meta[name=viewport]'),
    currently = $viewport.attr('content'),
    o_props = currently.split(/\s,\s?/),
    n_props = [],
    i = o_props.length,
    set = false;
        while (i--) {
            o_props[i] = o_props[i].split(/\s?=\s?/);
            if (o_props[i][0] == property) {
                if (value !== false) {
                    o_props[i][1] = value;
                    n_props.push(o_props[i].join('='));
                }
                set = true;
            }
            else {
                n_props.push(o_props[i].join('='));
            }
        }
        if (!set) {
            n_props.push(property + '=' + value);
        }
        n_props = n_props.join(',');
        $viewport.attr('content', n_props);
    };
})(window);


