﻿var pxStaticImagePath = '/Pixell/';
var pxLanguageCode = 'default';
var pxSliderPos = 1;

function pxStrLocalize(val) {
    var retVal = val;
    if ((retVal == 'ab') && (pxLanguageCode == 'fr')) {
        retVal = 'd&#232;s';
    }
    else if ((retVal == 'Weiter') && (pxLanguageCode == 'fr')) {
        //retVal = 'Plus&nbsp;d&#39;offres';
		retVal = 'Avancer';
    }
	else if ((retVal == 'Zur&#252;ck') && (pxLanguageCode == 'fr')) {
        //retVal = 'Plus&nbsp;d&#39;offres';
		retVal = 'Retour';
    }
    return retVal;
}

function UpdateSliderScrollNavigation(pos, elem) {
    if (pos < 1)
        jQuery('.pxSlbLnkBack').css("display", "none");
    else jQuery('.pxSlbLnkBack').css("display", "block");
    if (pos >= 4)
        jQuery('.pxSlbLnkNext').css("display", "none");
    else jQuery('.pxSlbLnkNext').css("display", "block");
    var faktor = 12;
    var base = 60;
    if (travelsuite_code.substring(0, 3) == 'kn_') {
        faktor = 17;
    }
    if (travelsuite_code.substring(0, 3) == 'kn_') {
        base = 85;
    }
    var imgPos = 'left -' + (base - ((pos + 1) * faktor)) + 'px';
    jQuery('.pcSlbNpg').css("background-position", imgPos);
}

function pxTsGetSliderHTML(data) {
    var tsCode = data.page.code;
    if (((tsCode.length - tsCode.toLowerCase().lastIndexOf('_fr')) == 3) || (tsCode.toLowerCase().lastIndexOf('_fr_') > -1)) pxLanguageCode = 'fr';

    var htmlCSS = pxGetCSS(data);
    var htmlSliderHdl = pxGetSliderHeadline(data);
    var htmlOffers = pxGetSliderOffers(data);
    var htmlSlider = '<div class="pxSliderBox"><h1>' + htmlSliderHdl + '</h1><div class="pxSlbContent"><div class="pxSlbContScroll">' + htmlOffers +
        '<div class="pxClearer"></div></div></div><div class="pxSlbLnkBack" >' + pxStrLocalize('Zur&#252;ck') + '</div><div class="pxSlbLnkNext" >' + pxStrLocalize('Weiter') + '</div><div class="pxSlbNavPg"><div class="pcSlbNpg"></div></div></div>';
    return htmlCSS + htmlSlider;
}

function pxGetSliderHeadline(data) {
    var retVal = '';
    var offers = data.getByCode("slideoffer_hdr");
    if ((offers != null) && (offers[0] != null)) retVal = offers[0].headline;
    return retVal;
}

function pxGetSliderOffers(data) {
    var retVal = '';
    var offers = data.getByCode("slideoffer");
    if ((offers != null) && (offers.length == 10)) {
        for (var i = 0; i < 10; i += 2) {
            retVal = retVal + '<div class="pxSlbOffers">';
            var offer1 = offers[i];
            var offer2 = offers[i + 1];

            retVal = retVal + '<div class="pxSlbOb" style="float:left;"><a href="' + offer1.link + '" class="pxSlbObBaseLnk"><img alt="" src="' + offer1.getPicture() + '" /></a><div class="pxSlbObC"><div class="pxSlbObHdl"><a href="' + offer1.link + '" class="pxSlbObBaseLnk">' + offer1.headline +
                '</a></div><div class="pxSlbObHdr"><b>' + getHotelClassText(offer1.textline1) + '</b>' + getHotelClass2(offer1.textline1, offer1.hotel) + '<div class="pxClearer"></div></div><div class="pxSlbObTxt">' +
                offer1.textline2 + '</div><div class="pxSlbObPp">' + pxStrLocalize('ab') + '&nbsp;Fr. <a href="' + offer1.link + '" class="pxSlbObPpLnk">' + offer1.price + '.-</a></div></div></div>';

            retVal = retVal + '<div class="pxSlbOb" style="float:right;"><a href="' + offer2.link + '" class="pxSlbObBaseLnk"><img alt="" src="' + offer2.getPicture() + '" /></a><div class="pxSlbObC"><div class="pxSlbObHdl"><a href="' + offer2.link + '" class="pxSlbObBaseLnk">' + offer2.headline +
                '</a></div><div class="pxSlbObHdr"><b>' + getHotelClassText(offer2.textline1) + '</b>' + getHotelClass2(offer2.textline1, offer2.hotel) + '<div class="pxClearer"></div></div><div class="pxSlbObTxt">' +
                offer2.textline2 + '</div><div class="pxSlbObPp">' + pxStrLocalize('ab') + '&nbsp;Fr. <a href="' + offer2.link + '" class="pxSlbObPpLnk">' + offer2.price + '.-</a></div></div></div>';

            retVal = retVal + '<div class="pxClearer"></div></div>'
        }
    }
    return retVal;
}

function getHotelClass2(text, hotel) {
    var result = text;
    var hasStar = false;
    if (text.indexOf("*") > -1) {
        hasStar = true;
    }
    if (hasStar) return hotel.getClassImageTag();
    return '';
}

function getHotelClassText(text) {
    var result = text;
    if (text.indexOf("*") > -1) {
        result = text.replace(/\*/g, '');
    }
    if (result.indexOf("+") > -1) {
        result = result.replace(/\+/g, '');
    }
    return result;
}

function pxGetCSS(data) {
    var pxCssContent = '';
    if (data.page.code.substring(0, 3) == 'kn_') {
        pxCssContent =
            '.pxStar{border:none;display:block;float:left;margin:0;width:10px;height:15px;background-image:url(' + pxStaticImagePath + 'star.png);background-repeat:no-repeat;background-position:0 1px;}' +
            '*html .pxStar{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pxStaticImagePath + 'star.png", sizingMethod="image");background:none;}' +
            '.pxHalfStar{border:none;display:block;float:left;margin:0;width:10px;height:15px;background-image:url(' + pxStaticImagePath + 'halfstar.png);background-repeat:no-repeat;background-position:0 1px;}' +
            '*html .pxHalfStar{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pxStaticImagePath + 'halfstar.png", sizingMethod="image");background:none;}' +
            '*html .pxStar, *html .pxHalfStar{position:relative;top:1px;}' +
            '.pxClearer{clear:both;line-height:0;height:0;display:block;overflow:hidden;font-size:1px;margin:0;padding:0;}' +
            '.pxSliderContent, .pxSlbContent{margin:0;padding:0;height:276px;overflow:hidden;}' +
            '.pxSlbContent{width:620px;}' +
            '.pxSliderBox{line-height:16px;position:relative;background-color:#FFF;color:#101010;font-family:Verdana;font-size:11px;width:620px;height:349px;overflow:hidden;margin:0;padding:0;}' +
            '.pxSliderBox h1{font-family:Georgia;display:block;margin:0;padding:3px 0 0 1px;height:26px;line-height:20px;text-decoration:none;font-size:15px;color:#000000;text-transform:uppercase;}' +
            '.pxSlbOffers{padding:2px 0 0 0;margin:0;height:274px;float:left;width:620px;}' +
            '.pxSlbOb{position:relative;width:300px;height:272px;margin:0;padding:0;border-top:1px solid #CCCCCC;border-bottom:1px solid #CCCCCC;}' +
            '.pxSlbObBaseLnk, a.pxSlbObBaseLnk, a.pxSlbObBaseLnk:visited, a.pxSlbObBaseLnk:active, a.pxSlbObBaseLnk:link, a.pxSlbObBaseLnk:hover{color:#000000;cursor:pointer;border:none;padding:0;margin:0;text-decoration:none;font-weight:bold;}' +
            '.pxSlbOb img, .pxSlbObBaseLnk img{border:none;display:block;width:300px;height:150px;margin:14px 0 0 0;}' +
            //'.pxSlbObC{margin:0;padding:0 0 0 1px;width:300px;height:110px;color:#4D5153;}' +
			'.pxSlbObC {position:relative;height:96px;width:225px;background:url("/Pixell/bg_pixell-slider.png") bottom left repeat-x;border-color:#f0ede7 #f0ede7 #000000;border-style: solid;border-width:1px;margin:0;padding: 0 0 0 9px;}' +
            '.pxSlbObHdl{font-weight:bold;margin:0;padding:7px 0 0 0;line-height:20px;}' +
            '.pxSlbObHdr {margin:0;padding:1px 0;}' +
            '.pxSlbObHdr b{font-weight:normal;float:left;line-height:16px;padding-right:4px;}' +
            '/*.pxSlbObTxt{line-height:15px;}*/' +
            '.pxSlbObPp{position:absolute;bottom:1px;line-height:30px;font-weight:bold;margin:0;padding:0 0 0 11px;width:120px;background:url(' + pxStaticImagePath + 'bg_price_bullet.gif) no-repeat left 13px;}' +
            'a.pxSlbObPpLnk, a.pxSlbObPpLnk:link, a.pxSlbObPpLnk:visited{color:#4D5153;text-decoration:none;font-weight:bold;padding:0;}' +
            'a.pxSlbObPpLnk:hover{text-decoration:none;}' +
            '.pxSlbNavi{position:relative;height:40px;padding:0 2px;}' +
            '.pxSlbLnk a, .pxSlbLnk a:link, .pxSlbLnk a:visited{position:absolute;color:#070707;font-size:11px;line-height:22px;cursor:pointer;margin:0;text-decoration:none;font-weight:normal;}' +
            '.pxSlbLnk a:hover{text-decoration:underline;}' +
            '.pxSlbContScroll{margin:0;padding:0;width:5000px;}' +
            '.pxSlbLnkBack{position:absolute;color:#4D5153;font-size:13px;line-height:22px;cursor:pointer;margin:0;text-decoration:none;font-weight:bold;background:url(' + pxStaticImagePath + 'button_back_default.png) no-repeat left 2px;padding:0 2px 0 27px;bottom:10px;left:0;z-index:1000;cursor:pointer;display:none;}' +
            '.pxSlbLnkNext{position:absolute;color:#4D5153;font-size:13px;line-height:22px;cursor:pointer;margin:0;text-decoration:none;font-weight:bold;background:url(' + pxStaticImagePath + 'button_next_default.png) no-repeat right 2px;padding:0 27px 0 2px;bottom:10px;right:0;z-index:1000;cursor:pointer;}' +
			'.pxSlbLnkBack, .pxSlbLnkNext{font-size:11px;line-height:18px;padding:0 14px;text-decoration:none;}' +
			'.pxSlbLnkBack:hover, .pxSlbLnkNext:hover{text-decoration:none;}' +
			'.pxSlbLnkBack:hover{background:url(' + pxStaticImagePath + 'button_back_over.png) left top no-repeat;}' +
			'.pxSlbLnkNext:hover{background:url(' + pxStaticImagePath + 'button_next_over.png) left top no-repeat;}' +
			'.pxSlbLnkBack:active{background:url(' + pxStaticImagePath + 'button_back_press.png) left top no-repeat;}' +
			'.pxSlbLnkNext:active{background:url(' + pxStaticImagePath + 'button_next_press.png) left top no-repeat;}' +
            '.pxSlbNavPg{width:620px;padding:14px 0 0 0;margin:0;position:absolute;z-index:100;bottom:13px;}' +
            '.pcSlbNpg{overflow:hidden;width:233px;height:17px;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;padding:0;background:url(' + pxStaticImagePath + 'kn_slb_pg_bg.gif) no-repeat left -68px;}';
    } else {
        pxCssContent =
            '.pxStar{border:none;display:block;float:left;margin:0;width:10px;height:15px;background-image:url(' + pxStaticImagePath + 'star.png);background-repeat:no-repeat;background-position:0 1px;}' +
            '*html .pxStar{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pxStaticImagePath + 'star.png", sizingMethod="image");background:none;}' +
            '.pxHalfStar{border:none;display:block;float:left;margin:0;width:10px;height:15px;background-image:url(' + pxStaticImagePath + 'halfstar.png);background-repeat:no-repeat;background-position:0 1px;}' +
            '*html .pxHalfStar{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pxStaticImagePath + 'halfstar.png", sizingMethod="image");background:none;}' +
            '*html .pxStar, *html .pxHalfStar{position:relative;top:1px;}' +
            '.pxClearer{clear:both;line-height:0;height:0;display:block;overflow:hidden;font-size:1px;margin:0;padding:0;}' +
            '.pxSliderContent, .pxSlbContent{margin:0;padding:0;height:216px;overflow:hidden;}' +
            '.pxSlbContent{position:absolute;width:491px;}' +
            '.pxSliderBox{position:relative;background-color:#FFF;color:#101010;font-family:Arial,Verdana;width:491px;height:284px;overflow:hidden;margin:0;padding:0;}' +
            '.pxSliderBox h1{display:block;margin:0;padding:4px 0 0 3px;height:25px;line-height:20px;font-weight:normal;text-decoration:none;font-size:16px;color:#000000;}' +
            '.pxSlbOffers{padding:2px 2px 0 2px;margin:0;height:214px;float:left;width:487px;}' +
            '.pxSlbOb{width:236px;height:214px;margin:0;padding:0;}' +
            '.pxSlbObBaseLnk, a.pxSlbObBaseLnk, a.pxSlbObBaseLnk:visited, a.pxSlbObBaseLnk:active, a.pxSlbObBaseLnk:link, a.pxSlbObBaseLnk:hover{cursor:pointer;border:none;padding:0;margin:0;text-decoration:none;font-size:14px;font-weight:bold;color:#000;}' +
            '.pxSlbOb img, .pxSlbObBaseLnk img{border:none;display:block;width:236px;height:102px;margin:0;}' +
            '.pxSlbObC {position:relative;height:96px;width:225px;background:url("/Pixell/bg_pixell-slider.png") bottom left repeat-x;border-color:#f0ede7 #f0ede7 #000000;border-style: solid;border-width:1px;margin:0;padding: 0 0 0 9px;}' +
            '.pxSlbObHdl{font-size:16px;font-weight:bold;color:#000;margin:0;padding:6px 0 0 0;line-height:20px;}' +
            '.pxSlbObHdr {margin:0;padding:1px 0;}' +
            '.pxSlbObHdr b{float:left;font-size:12px;line-height:16px;padding-right:4px;}' +
            '.pxSlbObTxt{font-size:12px;line-height:15px;position:relative;}' +
            '.pxSlbObPp{position:absolute;margin:0;padding:6px 0 0 0;bottom:8px;right:11px;width:84px;font-size:12px;}' +
            'a.pxSlbObPpLnk, a.pxSlbObPpLnk:link, a.pxSlbObPpLnk:visited{text-decoration:underline;color:#D5001A;font-weight:bold;font-size:16px;padding:0 1px 0 0;position:absolute;right:0;bottom:0;background:url(' + pxStaticImagePath + 'call_to_action.gif) no-repeat right 4px;}' +
            'a.pxSlbObPpLnk:hover{text-decoration:none;}' +
            '.pxSlbNavi{position:relative;height:40px;padding:0 2px;}' +
            '.pxSlbLnk a, .pxSlbLnk a:link, .pxSlbLnk a:visited{position:absolute;color:#070707;font-size:11px;line-height:22px;cursor:pointer;margin:0;text-decoration:none;font-weight:normal;}' +
            '.pxSlbLnk a:hover{text-decoration:underline;}' +
            '.pxSlbContScroll{margin:0;padding:0;width:5000px;}' +
            '.pxSlbLnkBack{position:absolute;color:#070707;font-size:13px;line-height:22px;cursor:pointer;margin:0;text-decoration:underline;font-weight:normal;background:url(' + pxStaticImagePath + 'button_back_default.png) no-repeat left top;padding:0 2px 0 27px;bottom:8px;left:2px;z-index:1000;cursor:pointer;display:none;}' +
            '.pxSlbLnkNext{position:absolute;color:#070707;font-size:13px;line-height:22px;cursor:pointer;margin:0;text-decoration:underline;font-weight:normal;background:url(' + pxStaticImagePath + 'button_next_default.png) no-repeat right top;padding:0 27px 0 2px;bottom:8px;right:2px;z-index:1000;cursor:pointer;}' +
			'.pxSlbLnkBack, .pxSlbLnkNext{font-size:11px;line-height:18px;padding:0 14px;text-decoration:none;}' +
			'.pxSlbLnkBack:hover, .pxSlbLnkNext:hover{text-decoration:none;}' +
			'.pxSlbLnkBack:hover{background:url(' + pxStaticImagePath + 'button_back_over.png) left top no-repeat;}' +
			'.pxSlbLnkNext:hover{background:url(' + pxStaticImagePath + 'button_next_over.png) left top no-repeat;}' +
			'.pxSlbLnkBack:active{background:url(' + pxStaticImagePath + 'button_back_press.png) left top no-repeat;}' +
			'.pxSlbLnkNext:active{background:url(' + pxStaticImagePath + 'button_next_press.png) left top no-repeat;}' +
            '.pxSlbNavPg{width:491px;padding:14px 0 0 0;margin:0;position:absolute;z-index:100;bottom:14px;}' +
            '.pcSlbNpg{overflow:hidden;width:158px;height:12px;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;padding:0;background:url(' + pxStaticImagePath + 'slb_pg_bg.gif) no-repeat left -48px;}';
    }
    return '<style type="text/css">' + pxCssContent + '</style>';
}

/**
* jQuery[a] - Animated scrolling of series
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 3/20/2008
* @author Ariel Flesler
* @version 1.2.1
*
* http://flesler.blogspot.com/2008/02/jqueryserialscroll.html
*/
; (function($) { var a = 'serialScroll', b = '.' + a, c = 'bind', C = $[a] = function(b) { $.scrollTo.window()[a](b) }; C.defaults = { duration: 1e3, axis: 'x', event: 'click', start: 0, step: 1, lock: 1, cycle: 1, constant: 1 }; $.fn[a] = function(y) { y = $.extend({}, C.defaults, y); var z = y.event, A = y.step, B = y.lazy; return this.each(function() { var j = y.target ? this : document, k = $(y.target || this, j), l = k[0], m = y.items, o = y.start, p = y.interval, q = y.navigation, r; if (!B) m = w(); if (y.force) t({}, o); $(y.prev || [], j)[c](z, -A, s); $(y.next || [], j)[c](z, A, s); if (!l.ssbound) k[c]('prev' + b, -A, s)[c]('next' + b, A, s)[c]('goto' + b, t); if (p) k[c]('start' + b, function(e) { if (!p) { v(); p = 1; u() } })[c]('stop' + b, function() { v(); p = 0 }); k[c]('notify' + b, function(e, a) { var i = x(a); if (i > -1) o = i }); l.ssbound = 1; if (y.jump) (B ? k : w())[c](z, function(e) { t(e, x(e.target)) }); if (q) q = $(q, j)[c](z, function(e) { e.data = Math.round(w().length / q.length) * q.index(this); t(e, this) }); function s(e) { e.data += o; t(e, this) }; function t(e, a) { if (!isNaN(a)) { e.data = a; a = l } var c = e.data, n, d = e.type, f = y.exclude ? w().slice(0, -y.exclude) : w(), g = f.length, h = f[c], i = y.duration; if (d) e.preventDefault(); if (p) { v(); r = setTimeout(u, y.interval) } if (!h) { n = c < 0 ? 0 : n = g - 1; if (o != n) c = n; else if (!y.cycle) return; else c = g - n - 1; h = f[c] } if (!h || d && o == c || y.lock && k.is(':animated') || d && y.onBefore && y.onBefore.call(a, e, h, k, w(), c) === !1) return; if (y.stop) k.queue('fx', []).stop(); if (y.constant) i = Math.abs(i / A * (o - c)); k.scrollTo(h, i, y).trigger('notify' + b, [c]) }; function u() { k.trigger('next' + b) }; function v() { clearTimeout(r) }; function w() { return $(m, l) }; function x(a) { if (!isNaN(a)) return a; var b = w(), i; while ((i = b.index(a)) == -1 && a != l) a = a.parentNode; return i } }) } })(jQuery);

/**
* jQuery.ScrollTo - Easy element scrolling using jQuery.
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 9/11/2008
* @author Ariel Flesler
* @version 1.4
*
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
*/
; (function(h) { var m = h.scrollTo = function(b, c, g) { h(window).scrollTo(b, c, g) }; m.defaults = { axis: 'y', duration: 1 }; m.window = function(b) { return h(window).scrollable() }; h.fn.scrollable = function() { return this.map(function() { var b = this.parentWindow || this.defaultView, c = this.nodeName == '#document' ? b.frameElement || b : this, g = c.contentDocument || (c.contentWindow || c).document, i = c.setInterval; return c.nodeName == 'IFRAME' || i && h.browser.safari ? g.body : i ? g.documentElement : this }) }; h.fn.scrollTo = function(r, j, a) { if (typeof j == 'object') { a = j; j = 0 } if (typeof a == 'function') a = { onAfter: a }; a = h.extend({}, m.defaults, a); j = j || a.speed || a.duration; a.queue = a.queue && a.axis.length > 1; if (a.queue) j /= 2; a.offset = n(a.offset); a.over = n(a.over); return this.scrollable().each(function() { var k = this, o = h(k), d = r, l, e = {}, p = o.is('html,body'); switch (typeof d) { case 'number': case 'string': if (/^([+-]=)?\d+(px)?$/.test(d)) { d = n(d); break } d = h(d, this); case 'object': if (d.is || d.style) l = (d = h(d)).offset() } h.each(a.axis.split(''), function(b, c) { var g = c == 'x' ? 'Left' : 'Top', i = g.toLowerCase(), f = 'scroll' + g, s = k[f], t = c == 'x' ? 'Width' : 'Height', v = t.toLowerCase(); if (l) { e[f] = l[i] + (p ? 0 : s - o.offset()[i]); if (a.margin) { e[f] -= parseInt(d.css('margin' + g)) || 0; e[f] -= parseInt(d.css('border' + g + 'Width')) || 0 } e[f] += a.offset[i] || 0; if (a.over[i]) e[f] += d[v]() * a.over[i] } else e[f] = d[i]; if (/^\d+$/.test(e[f])) e[f] = e[f] <= 0 ? 0 : Math.min(e[f], u(t)); if (!b && a.queue) { if (s != e[f]) q(a.onAfterFirst); delete e[f] } }); q(a.onAfter); function q(b) { o.animate(e, j, a.easing, b && function() { b.call(this, r, a) }) }; function u(b) { var c = 'scroll' + b, g = k.ownerDocument; return p ? Math.max(g.documentElement[c], g.body[c]) : k[c] } }).end() }; function n(b) { return typeof b == 'object' ? b : { top: b, left: b} } })(jQuery);
