﻿/*	Javascript controlled by Hakan Bilgin 	*/

var jc_sticker = null;

var jc = {
    tmp: {},
    domain: 'http://www.jc.se',
    init: function() {
        if (!_cookie.Get('is_clip_shown')) {
            $('.page_cover, .ol_cover').show();
            _cookie.Set('is_clip_shown', 1);
            jc.embed_once();
        }
        if ($('.blog_img_widget').length > 0) {
            setTimeout(function() {
                jc.widget.init();
            }, 100);
        }
        if ($('.puff_logo').length > 0) {
            setTimeout(function() {
                $('.puff_logo')[0].style.display = 'block';
                setInterval(jc.logos.next, jc.logos.next_time);
            }, 100);
        }
        if ($('.jc_clothes').length > 0) {
            var logos = $('img.jc_clothes');
            for (var x = 0; x < logos.length; x++) {
                logos[x].style.display = 'none';
            }
            if (logos.length > 0) {
                setTimeout(function() {
                    logos[0].style.display = '';
                    logos[1].style.display = '';
                    logos[2].style.display = '';
                    logos[3].style.display = '';
                    setInterval(jc.logos_4.next, jc.logos_4.next_time);
                }, 100);
            }
        }
        if ($('.jc_maps').length > 0) {
            setTimeout(function() {
                jc.maps.init();
            }, 500);
        }
        if ($('.img_widget').length > 0) {
            setTimeout(function() {
                $($('.reel_txt .reel_txt_item')[0]).fadeIn(250);
            }, 500);
        }
        jc.embed_vimeo();
        jc.looklet.init();
    },
    embed_once: function(cId, w, h, cb) {
        if (!cId) return;
        var endpoint = 'http://www.vimeo.com/api/oembed.json';
        var clipUrl = 'http://vimeo.com/' + cId;
        var url = endpoint + '?url=' + encodeURIComponent(clipUrl) + '&callback=' + cb + '&width=' + w + '&height=' + h;

        var js = document.createElement('script');
        js.setAttribute('type', 'text/javascript');
        js.setAttribute('src', url);
        document.getElementsByTagName('head').item(0).appendChild(js);
    },
    embed_vimeo: function() {
        var vEl = $("[jc_element='vimeo']");
        for (var i = 0, il = vEl.length; i < il; i++) {
            var w = parseInt($(vEl[i]).css('width'));
            var h = parseInt($(vEl[i]).css('height'));
            var id = vEl[i].getAttribute('jc_vimeo_id');
            jc.embed_once(id, w, h, 'jc.embed_cb');
        }
    },
    embed_cb: function(video) {
        var c_id = video.html.match(/clip_id=(.+?)&/i);
        var str = video.html.replace(/<param name="allowfullscreen" value="true" \/>/i, '<param name="wmode" value="transparent"/>');
        if (c_id && c_id.length > 0) {
            $("[jc_vimeo_id='" + c_id[1] + "']").html(str);
        }
    },
    club: {
        init: function() {

        },
        show_tooltip: function(box, srcEl) {
            $('.ds_white_box').fadeOut(100);
            var cn = ($('.member_become').length > 0) ? 'member_step' : 'col_div club_body';
            var dim = xdbc.get.dim(srcEl, 'className', cn);
            $('.' + box).css({ 'top': (dim.t - 40) + 'px', 'left': (dim.l - 100) + 'px' });
            $('.' + box).fadeIn(200, function() {

            });
        }
    },
    faq: {
        init: function() {
            var q_links = $('.faq_collection a');
            if (q_links.length > 0) {
                var c_step = 240 / q_links.length;
                for (var i = 0, il = q_links.length; i < il; i++) {
                    var clr = jc.faq.hsb_rgb(parseInt(i * c_step), 92, 92);
                    q_links[i].setAttribute('jc_color', '#' + clr);
                    q_links[i].style.color = '#' + clr;
                }
            }
        },
        hsb_rgb: function(h, s, b) {
            var t = h.toString().split(' ');
            if (t.length == 3) { h = t[0]; s = t[1]; b = t[2]; }
            var hsb = { h: h, s: s * 2.55, b: b * 2.55 };
            var RGB = {};
            if (!hsb.h && !hsb.s) RGB.r = RGB.g = RGB.b = hsb.b;
            else {
                var f0 = (hsb.b * hsb.s) / 255;
                var low = hsb.b - f0;
                if (hsb.h > 300 || hsb.h <= 60) {
                    RGB.r = hsb.b;
                    RGB.g = (hsb.h > 300) ? Math.round(low) : Math.round((hsb.h / 60) * f0 + low);
                    RGB.b = (hsb.h > 300) ? -Math.round(((hsb.h - 360) / 60) * f0 - low) : Math.round(low);
                } else {
                    if (hsb.h > 60 && hsb.h < 180) {
                        RGB.g = hsb.b;
                        RGB.r = (hsb.h < 120) ? Math.round(low - ((hsb.h / 60 - 2) * f0)) : Math.round(low);
                        RGB.b = (hsb.h < 120) ? Math.round(low) : Math.round(low + ((hsb.h / 60 - 2) * f0));
                    } else {
                        RGB.b = hsb.b;
                        RGB.g = (hsb.h < 240) ? Math.round(low - ((hsb.h / 60 - 4) * f0)) : Math.round(low);
                        RGB.r = (hsb.h < 240) ? Math.round(low) : Math.round(low + ((hsb.h / 60 - 4) * f0));
                    }
                }
            }
            RGB.r = Math.round(RGB.r).toString().toHex();
            RGB.g = Math.round(RGB.g).toString().toHex();
            RGB.b = Math.round(RGB.b).toString().toHex();
            return RGB.r + RGB.g + RGB.b;
        }
    },
    logos: {
        next_time: 5000,
        next: function() {
            var logos = $('.puff_logo');
            for (var i = 0, il = logos.length; i < il; i++) {
                if ($(logos[i]).css('display') != 'none') {
                    var el;
                    if (i <= logos.length - 2) el = logos[i + 1];
                    else el = logos[0];
                    $(logos[i]).fadeOut(300, function() {
                        $(el).fadeIn(300);
                    });
                    return;
                }
            }
        }
    },
    logos_4: {
        next_time: 5000,
        next: function() {
            $('div.jc_clothes').fadeOut(300, function() {
                var logos = $('img.jc_clothes');
                for (var i = 0; i < logos.length; i++) {
                    if ($(logos[i]).css('display') != 'none') {
                        $(logos[i]).css('display', 'none');
                    }
                }
                for (var i = 0; i < 4; i++) {
                    var rnd = Math.floor(Math.random() * (logos.length))
                    if ($(logos[rnd]).css('display') != 'none') {
                        i--;
                    }
                    else {
                        $(logos[rnd]).css('display', '');
                    }
                }
                $('div.jc_clothes').fadeIn(300);
            });
        }
    },
    looklet: {
        init: function() {
            if (!window['oLook']) return;
            jc.looklet.swap_group(oLook.init_look);

            $('.ll_link').bind('click', function() {
                xdbc.env.cancelEvent();
                var d = xdbc.get.dim($('.looklet_placeholder')[0]);
                console.log(d.t);
                $('html, body').animate({ scrollTop: d.t }, 300);
            });
        },
        load_look: function(look_id) {
            var lookletAppRef = document["lookletAppFlash"];
            var test = eval(look_id);
            if (test) lookletAppRef.loadLook(test);
        },
        swap_group: function(group_id) {
            if (!oLook[group_id]) return;
            var big_doll = $('.big_doll');
            var thumbs = $('.ll_thumb');

            big_doll[0].src = jc.domain + '/Global/Looklet/' + oLook[group_id].f.l_1.big + '.jpg';
            thumbs[0].src = jc.domain + '/Global/Looklet/' + oLook[group_id].f.l_1.thumb + '.jpg';
            thumbs[0].parentNode.setAttribute('jc_doll_id', group_id + '.f.l_1');
            thumbs[1].src = jc.domain + '/Global/Looklet/' + oLook[group_id].f.l_2.thumb + '.jpg';
            thumbs[1].parentNode.setAttribute('jc_doll_id', group_id + '.f.l_2');
            thumbs[2].src = jc.domain + '/Global/Looklet/' + oLook[group_id].f.l_3.thumb + '.jpg';
            thumbs[2].parentNode.setAttribute('jc_doll_id', group_id + '.f.l_3');
            thumbs[3].src = jc.domain + '/Global/Looklet/' + oLook[group_id].f.l_4.thumb + '.jpg';
            thumbs[3].parentNode.setAttribute('jc_doll_id', group_id + '.f.l_4');

            big_doll[1].src = jc.domain + '/Global/Looklet/' + oLook[group_id].m.l_1.big + '.jpg';
            thumbs[4].src = jc.domain + '/Global/Looklet/' + oLook[group_id].m.l_1.thumb + '.jpg';
            thumbs[4].parentNode.setAttribute('jc_doll_id', group_id + '.m.l_1');
            thumbs[5].src = jc.domain + '/Global/Looklet/' + oLook[group_id].m.l_2.thumb + '.jpg';
            thumbs[5].parentNode.setAttribute('jc_doll_id', group_id + '.m.l_2');
            thumbs[6].src = jc.domain + '/Global/Looklet/' + oLook[group_id].m.l_3.thumb + '.jpg';
            thumbs[6].parentNode.setAttribute('jc_doll_id', group_id + '.m.l_3');
            thumbs[7].src = jc.domain + '/Global/Looklet/' + oLook[group_id].m.l_4.thumb + '.jpg';
            thumbs[7].parentNode.setAttribute('jc_doll_id', group_id + '.m.l_4');

            $('.cloth_thumbs .thumb_div').removeClass('active');
            $(thumbs[0].parentNode).addClass('active');
            $(thumbs[4].parentNode).addClass('active');

            $('.cloth_list .cl_box', big_doll[0].parentNode).html('<h6>' + oLook[group_id].f.l_1.name + '</h6>' + oLook[group_id].f.l_1.list);
            $('.cloth_list .cl_box', big_doll[1].parentNode).html('<h6>' + oLook[group_id].m.l_1.name + '</h6>' + oLook[group_id].m.l_1.list);
        },
        swap_big_doll: function(el, thumb_el) {
            var doll_id = thumb_el.getAttribute('jc_doll_id');
            var doll_id_test = eval('oLook.' + doll_id);
            if (!doll_id_test) return;
            el.parentNode.setAttribute('jc_look_id', doll_id + '.str');
            el.src = jc.domain + '/Global/Looklet/' + doll_id_test.big + '.jpg';
            $('.cloth_list .cl_box', el.parentNode).html('<h6>' + doll_id_test.name + '</h6>' + doll_id_test.list);
        }
    },
    mail: {
        init: function() {
            var top = 450;
            var left = 50;
            var winEl = $('div.send_as_mail');

            $(winEl).css('z-index', '2');
            $(winEl).css('top', top + 'px');
            $(winEl).css('left', left + 'px');
            $(winEl).fadeIn(500, function() {
                $('html, body').animate({ scrollTop: top }, 300);
            });
        },
        send: function(your_name, your_email, friend_name, friend_email, subject, message, callback) {
            var arr = new Array();
            arr.push('{"ID":"friend_name", "Value":"' + friend_name + '", "Type":"friend_name"}');
            arr.push('{"ID":"friend_email", "Value":"' + friend_email + '", "Type":"friend_email"}');
            arr.push('{"ID":"your_name", "Value":"' + your_name + '", "Type":"your_name"}');
            arr.push('{"ID":"your_email", "Value":"' + your_email + '", "Type":"your_email"}');
            arr.push('{"ID":"subject", "Value":"' + subject + '", "Type":"subject"}');
            arr.push('{"ID":"message", "Value":"' + message + '", "Type":"nice_msg"}');

            var servicePostForm = '';
            var data = '[' + arr.join(',') + ']';
            if (typeof FormSettings != 'undefined' && FormSettings.length > 0) {
                servicePostForm = FormSettings[0];
            }

            $.ajax({
                type: "POST",
                url: servicePostForm,
                data: "{ fields : " + data + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "html",
                success: function(r) {
                    if (typeof (callback) == 'string') {
                        callback = eval(callback);
                        var accessoryFlash = swfobject.getObjectById("flashContainer");
                        accessoryFlash.onMailComplete(true);
                        return;
                    }
                    var r = xdbc.load(r);
                    var xError = r.selectSingleNode('//Field/ID');
                    if (xError) {
                        callback(xError.text);
                    } else {
                        var lookletAppRef;
                        if (navigator.appName.indexOf("Microsoft") != -1) {
                            lookletAppRef = window["lookletAppFlash"];
                        } else {
                            lookletAppRef = document["lookletAppFlash"];
                        }
                        lookletAppRef.mailResponse();
                    }
                }
            });
        }
    },
    server: {
        post: function(oData, callback) {
            var dataString = "{ fields : " + oData + "}";
            var servicePostForm = '';
            if (typeof FormSettings != 'undefined' && FormSettings.length > 0) {
                servicePostForm = FormSettings[0];
            }
            $.ajax({
                type: "POST",
                url: servicePostForm,
                data: dataString,
                contentType: "application/json; charset=utf-8",
                dataType: "html",
                success: function(r) {
                    if (typeof (callback) == 'string') callback = eval(callback);
                }
            });
        }
    },
    match_mod: {
        anim: false,
        init: function() {
            if ($('.match_module').length == 0) return;

            var module = $('.match_module')[0];
            var reels = $('.match_reel', module);
            var oEl = Math.abs(parseInt((reels[0].offsetLeft - 1) / 300));
            var iEl_1 = $('img', reels[0])[oEl];
            var reel_1_grade = parseInt(iEl_1.getAttribute('jc_grade'));

            var oEl = Math.abs(parseInt((reels[1].offsetLeft - 1) / 300));
            var iEl_2 = $('img', reels[1])[oEl];
            var reel_2_grade = parseInt(iEl_2.getAttribute('jc_grade'));
            var g = reel_1_grade + reel_2_grade;
            g = Math.min(Math.max(g, 0), 20);

            $('.match_txt', module)[0].className = 'match_txt';
            $('.match_txt', module).addClass('mod_grade_' + g);

            $('.ms_1_txt', module).html((iEl_1.getAttribute('jc_link')) ? '<a href="' + iEl_1.getAttribute('jc_link') + '">' + iEl_1.getAttribute('alt') + '</a>' : iEl_1.getAttribute('alt'));
            $('.ms_2_txt', module).html((iEl_2.getAttribute('jc_link')) ? '<a href="' + iEl_2.getAttribute('jc_link') + '">' + iEl_2.getAttribute('alt') + '</a>' : iEl_2.getAttribute('alt'));
        },
        go: function(reel, dir) {
            if (jc.match_mod.anim) return;
            var iEl = $('img', reel);
            var iLen = iEl.length - 1;
            var oLeft = reel.offsetLeft + 1;
            var l = dir + '=300px';
            if (dir == '+' && oLeft >= 0) l = '-' + (iLen * 300) + 'px';
            if (dir == '-' && Math.abs(oLeft) + 10 > (iLen * 300)) l = '0px';

            var reel_nr = reel.parentNode.className.match(/\d/i)[0];
            var module = xdbc.get.parent(reel, 'className', 'match_module');
            $('.match_txt, .ms_' + reel_nr + '_txt', module).fadeOut(300);

            jc.match_mod.anim = true;
            $(reel).animate({ 'left': l }, 300, function() {
                var reels = $('.match_reel', module);
                var oEl = Math.abs(parseInt((reels[0].offsetLeft - 1) / 300));
                var iEl_1 = $('img', reels[0])[oEl];
                var reel_1_grade = parseInt(iEl_1.getAttribute('jc_grade'));
                var oEl = Math.abs(parseInt((reels[1].offsetLeft - 1) / 300));
                var iEl_2 = $('img', reels[1])[oEl];
                var reel_2_grade = parseInt(iEl_2.getAttribute('jc_grade'));
                var g = reel_1_grade + reel_2_grade;
                g = Math.min(Math.max(g, 0), 20);

                var iEl = (reel_nr == '1') ? iEl_1 : iEl_2;
                $('.ms_' + reel_nr + '_txt', module).html((iEl.getAttribute('jc_link')) ? '<a href="' + iEl.getAttribute('jc_link') + '">' + iEl.getAttribute('alt') + '</a>' : iEl.getAttribute('alt'));

                $('.match_txt', module)[0].className = 'match_txt';
                $('.match_txt', module).addClass('mod_grade_' + g);
                $('.match_txt, .ms_' + reel_nr + '_txt', module).fadeIn(300, function() {
                    jc.match_mod.anim = false;
                });
            });
        }
    },
    widget: {
        init: function() {
            var tmp_span = document.createElement('SPAN');
            var template = '<div class="img_widget bimg_widget" jc_element="img_widget" style="display: block;">' +
						'<div class="reel_img_holder"><div class="reel_img">$i_str$</div>' +
						'<div class="sprite wdgt_left"><span>&#160;</span></div>' +
						'<div class="sprite wdgt_right"><span>&#160;</span></div>' +
						'</div><div class="img_undertext"><div class="reel_txt">$t_str$</div></div></div>';
            var wdgt = $('.blog_img_widget');
            for (var i = 0, il = wdgt.length; i < il; i++) {
                var i_str = '';
                var t_str = '';
                var img = $('img', wdgt[i]);
                var tmp_img = {};
                for (var j = 0, jl = img.length; j < jl; j++) {
                    if (tmp_img.w == undefined) {
                        tmp_img.w = img[j].width;
                        tmp_img.h = img[j].height;
                    }
                    i_str += '<img class="img_underlay" src="' + img[j].src + '" alt="' + img[j].getAttribute('alt') + '" />';
                    t_str += '<span class="reel_txt_item">' + img[j].getAttribute('alt') + '</span>';
                }
                tmp_span.innerHTML = template.replace(/\$i_str\$/ig, i_str).replace(/\$t_str\$/ig, t_str);

                $('.reel_img', tmp_span)[0].style.height = tmp_img.h + 'px';
                tmp_span.firstChild.style.height = (tmp_img.h + 30) + 'px';
                tmp_span.firstChild.style.width = tmp_img.w + 'px';
                tmp_span.firstChild.setAttribute('jc_width', tmp_img.w);
                tmp_span.firstChild.style.overflow = 'hidden';
                tmp_span.firstChild.style.display = 'block';

                wdgt[i].parentNode.replaceChild(tmp_span.firstChild, wdgt[i]);
            }
            jc.widget.init_event_handlers();
        },
        init_event_handlers: function() {
            $('.wdgt_left, .wdgt_right').bind('mouseover', function() { this.className = this.className.replace(/ hover/ig, '') + ' hover'; });
            $('.wdgt_left, .wdgt_right').bind('mouseout', function() { this.className = this.className.replace(/ hover/ig, ''); });
            $('.wdgt_left, .wdgt_right').bind('click', function() {
                var img_wdgt = getParent(this, 'jc_element', 'img_widget');
                if (!img_wdgt) return;
                var reel_imgs = $('.reel_img img', img_wdgt);
                var o_reel_txt = n_reel_txt = $('.reel_txt .reel_txt_item', img_wdgt);
                var step = img_wdgt.getAttribute('jc_img_step');
                step = (step) ? step : 0;

                if (this.className.indexOf('left') > -1) {
                    o_reel_txt = o_reel_txt[step];
                    step--;
                    step = (step > reel_imgs.length - 1) ? 0 : ((step < 0) ? reel_imgs.length - 1 : step);
                    n_reel_txt = n_reel_txt[step];
                } else {
                    o_reel_txt = o_reel_txt[step];
                    step++;
                    step = (step > reel_imgs.length - 1) ? 0 : ((step < 0) ? reel_imgs.length - 1 : step);
                    n_reel_txt = n_reel_txt[step];
                }

                var width = parseInt(img_wdgt.getAttribute('jc_width')) || 317;
                img_wdgt.setAttribute('jc_img_step', step);

                $(o_reel_txt).fadeOut(250, function() {
                    $('.reel_img', img_wdgt).animate({ 'left': '-' + (step * width) + 'px' }, 300, function() {
                        $(n_reel_txt).fadeIn(250, function() {

                        });
                    });
                });
            });
        }
    },
    sorter: {
        xData: false,
        active: {
            combox: false
        },
        drag: {
            on: false,
            diff_y: 0,
            diff_x: 0
        },
        pre_init: function() {
            if (!$('.prod_sorter').length) return;
            var xData = xdbc.load('<data/>').documentElement;

            var xLng = xData.appendChild(xdbc.createNode('lng'));
            var xProd = xData.appendChild(xdbc.createNode('products'));

            var lng = $('ul.lng.hideMe li');
            var vars = $('var', lng[0]);
            for (var j = 0, jl = vars.length; j < jl; j++) {
                xLng.setAttribute(vars[j].className, vars[j].innerHTML);
            }

            for (var i = 1, il = lng.length; i < il; i++) {
                var xNode = xLng.appendChild(xdbc.createNode('i'));
                var vars = $('var', lng[i]);
                if (lng[i].className == 'img_tweens') {
                    for (var j = 0, jl = vars.length; j < jl; j++) {
                        xProd.setAttribute(vars[j].className, vars[j].innerHTML);
                    }
                } else {
                    for (var j = 0, jl = vars.length; j < jl; j++) {
                        xNode.setAttribute(vars[j].className, vars[j].innerHTML);
                    }
                }
            }

            var prod = $('.prod_expose .prod_preview');
            for (var i = 0, il = prod.length; i < il; i++) {
                var vars = $('var', prod[i]);
                if (vars.length == 0) continue;
                var xNode = xProd.appendChild(xdbc.createNode('i'));
                for (var j = 0, jl = vars.length; j < jl; j++) {
                    xNode.setAttribute(vars[j].className, vars[j].innerHTML);
                }

                var sizes = $('ul.sizes li', prod[i]);
                for (var j = 0, jl = sizes.length; j < jl; j++) {
                    var xSize = xNode.appendChild(xdbc.createNode('i'));
                    if (sizes[j].className.slice('0,2') == 'l_w' || sizes[j].className.indexOf('komp_manuel') > -1) {
                        var s = sizes[j].innerHTML.split(',');
                        xSize.setAttribute('l', s[0]);
                        xSize.setAttribute('w', s[1]);
                        if (sizes[j].className.indexOf('komp_manuel') > -1) xSize.setAttribute('komp_manuel', 1);
                        continue;
                    }
                    xSize.setAttribute(sizes[j].className, sizes[j].innerHTML);
                }
            }
            //console.log(xData.xml.replace(/>/g, '>\n'));
            jc.sorter.init(xData);
        },
        init: function(data) {
            if (!$('.prod_sorter').length) return;
            for (var n in jc.rotate.preload.tween) {
                jc.rotate.speed[n] = parseInt(jc.rotate.time / jc.rotate.preload.tween[n]);
            }
            var jeansGuideXml = '/rsrcs/xml/jeans.xml';
            if (typeof JeansGuideSettings != 'undefined' && JeansGuideSettings.length > 0) {
                jeansGuideXml = JeansGuideSettings[0];
            }

            //xdbc.load(jeansGuideXml, function(data) {
            var price_scale = $("[jc_xml_attr='price']");
            var p_a = new Array();
            var xP = data.selectNodes('//*[@price]');
            for (var i = 0, il = xP.length; i < il; i++) {
                p_a.push(new Number(xP[i].getAttribute('price').replace(/,/, '.')));
            }
            p_a.sort_int();

            for (var i = 0, il = price_scale.length; i < il; i++) {
                price_scale[i].setAttribute('jc_scale_min', p_a[p_a.length - 1] - 10);
                price_scale[i].setAttribute('jc_scale_max', p_a[0] + 10);
            }
            jc.sorter.xData = data;

            var lngEl = $('*[jc_lng_id]');
            for (var i = 0, il = lngEl.length; i < il; i++) {
                var xLng = jc.sorter.get_lng(lngEl[i].getAttribute('jc_lng_id'));
                if (!xLng) continue;
                lngEl[i].innerHTML = xLng
            }

            //if (window.location.href.indexOf('imgsize') == -1) jc.sorter.set_img_size(2);
            jc.sorter.draw.sorter_UI();

            jc.sorter.url_get();
            //jc.sorter.draw.products();
            jc.sorter.draw.init_product_event_handlers();
            //});
        },
        get_lng: function(id) {
            var xLng = jc.sorter.xData.selectSingleNode('.//lng//*[@id="' + id + '"]');
            return xLng.getAttribute('str');
        },
        url_set: function(name, obj) {
            var new_prm = new Array();
            var tmp = function(n, o) {
                var val = new Array();
                var mode = ($('.prod_sorter')[0].className.indexOf('max_mode') > -1) ? 'max' : 'min';
                var el = $(".sort_body_" + mode + " *[jc_group='" + n + "']");
                for (var j = 0, jl = el.length; j < jl; j++) {
                    switch (true) {
                        case (el[j].className.indexOf('checked') > -1):
                            val.push(el[j].getAttribute('jc_name'));
                            break;
                    }
                }
                if (o) {
                    if (n == 'imgsize') {
                        val.push(o);
                    } else {
                        val.push(o.min);
                        val.push(o.max);
                    }
                }
                if (val.length > 0) new_prm.push(name + '=' + val.join(','));
            };
            var prm = window.location.href.split('#');
            if (prm.length > 1) {
                var is_done;
                var prms = prm[1].split('&');
                for (var i = 0, il = prms.length; i < il; i++) {
                    if (prms[i].split('=')[0] == name) {
                        tmp(name, obj);
                        is_done = true;
                        continue;
                    }
                    new_prm.push(prms[i]);
                }
                if (!is_done) tmp(name, obj);
            } else {
                tmp(name, obj);
            }
            window.location.href = prm[0] + '#' + new_prm.join('&');
        },
        url_get: function() {
            var prms = window.location.href.split('#');
            if (prms.length <= 1 || prms[1].length == 0) return;
            prms = prms[1].split('&');
            for (var i = 0, il = prms.length; i < il; i++) {
                var name = prms[i].split('=')[0];
                var value = prms[i].split('=')[1].split(',');
                if (name != 'imgsize') jc.sorter.draw.pro_filter[name] = prms[i].split('=')[1];
                else {
                    $('.scale_imgsize .marker_1').css('left', Math.max(Math.min(((parseInt(prms[i].split('=')[1]) - 1) * 44), 81), 10) + 'px');
                }

                for (var j = 0, jl = value.length; j < jl; j++) {
                    var el = $("*[jc_group='" + name + "'][jc_name='" + value[j] + "']");
                    if (!el.length) el = $("*[jc_xml_attr='" + name + "']");
                    if (name == 'imgsize') el = $('.scale_imgsize');
                    for (var k = 0, kl = el.length; k < kl; k++) {
                        switch (true) {
                            case (name == 'imgsize'):
                                jc.sorter.set_img_size(new Number(value[j]));
                                break;
                            case (el[k].className.indexOf('marker_scale') > -1):
                                $('.scale_marker', el[k])[0].style.left = value[0] + 'px';
                                $('.scale_marker', el[k])[1].style.left = value[1] + 'px';
                                jc.sorter.draw.pro_filter[name] = jc.scale.get_max_min($('.scale_marker', el[k])[0].parentNode);
                                $('.marked_area', el[k]).css('left', (parseInt($('.marker_1', el[k]).css('left')) + 6) + 'px');
                                $('.marked_area', el[k]).css('width', (parseInt($('.marker_2', el[k]).css('left')) - parseInt($('.marker_1', el[k]).css('left')) + 1) + 'px');
                                break;
                            case (el[k].className.indexOf('checkbox') > -1):
                                $(el[k]).addClass('checked');
                                var xCombo = getParent(el[k], 'className', 'combox');
                                if (xCombo) {
                                    var opt_len = $('.checkbox', xCombo).length;
                                    var chk_len = $('.checked', xCombo).length;
                                    if (opt_len == chk_len) {
                                        $($('.option', xCombo)[0]).html(jc.sorter.get_lng('all'));
                                    } else if (chk_len > 1) {
                                        $($('.option', xCombo)[0]).html(jc.sorter.get_lng('mixed'));
                                    } else if (chk_len == 1) {
                                        $($('.option', xCombo)[0]).html($($('span', el[k].parentNode)[1]).html());
                                    }
                                }
                                break;
                            case (el[k].className.indexOf('color_ball') > -1):
                                $(el[k]).addClass('checked');
                                break;
                        }
                    }
                }
            }
        },
        set_img_size: function(i) {
            //$('.prod_analysis').trigger('mouseout');
            jc.sorter.draw.curr_size = i;
            $('.prod_expose').stop();
            $('.prod_expose').fadeOut(300, function() {
                $('.scale_imgsize')[0].setAttribute('jc_scale_value', i);
                $('.prod_expose, .xtra_prod').removeClass('img_size_1')
								.removeClass('img_size_2')
								.removeClass('img_size_3')
								.addClass('img_size_' + jc.sorter.draw.curr_size);

                $('.prod_expose').fadeIn(300, function() {
                    $('.prod_expose').css('display', 'block');
                    $('.prod_expose').css('opacity', '1');
                });
            });
        },
        collapse: function() {
            jc.sorter.sync('max');

            /*	COLLAPSE IF ANY COMBOX IS OPEN	*/
            if (jc.sorter.active.combox) $(jc.sorter.active.combox).trigger('click');

            $('.sort_body_max').fadeOut(250, function() {
                $('.sortwin_btn').fadeOut(100, function() {
                    $('.sprite.min_btn').addClass('max_btn').removeClass('min_btn');
                });
                $('.prod_sorter').animate({ height: '80px' }, 150, function() {
                    $('.prod_sorter').addClass('min_mode').removeClass('max_mode');
                    $('.sortwin_btn').fadeIn(100);
                    $('.sort_body_min').fadeIn(250);
                });
            });
        },
        expand: function() {
            jc.sorter.sync('min');
            $('.sort_body_min').fadeOut(250, function() {
                $('.sortwin_btn').fadeOut(100, function() {
                    $('.sprite.max_btn').addClass('min_btn').removeClass('max_btn');
                });
                $('.prod_sorter').animate({ height: '385px' }, 250, function() {
                    $('.prod_sorter').removeClass('min_mode').addClass('max_mode');
                    $('.sort_body_max').fadeIn(250, function() {
                        $('.sortwin_btn').fadeIn(100);
                    });
                });
            });
        },
        sync: function(from) {
            if (!from) return;
            /*	SYNCHRONIZING	*/
            var to = (from == 'min') ? 'max' : 'min';

            /*	PRICE	*/
            $('.sort_body_' + to + ' .fld_price .marker_1').css('left', $('.sort_body_' + from + ' .fld_price .marker_1').css('left'));
            $('.sort_body_' + to + ' .fld_price .marker_2').css('left', $('.sort_body_' + from + ' .fld_price .marker_2').css('left'));
            $('.sort_body_' + to + ' .fld_price .marked_area').css('width', $('.sort_body_' + from + ' .fld_price .marked_area').css('width'));
            $('.sort_body_' + to + ' .fld_price .marked_area').css('left', $('.sort_body_' + from + ' .fld_price .marked_area').css('left'));

            /*	CHECKBOXES & COLOR BALLS	*/
            var from_el = $('.sort_body_' + from + ' *[jc_name]');
            for (var i = 0, il = from_el.length; i < il; i++) {
                var el_name = from_el[i].getAttribute('jc_name');
                var to_el = $(".sort_body_" + to + " *[jc_name='" + el_name + "']");
                if (to_el.length == 0) continue;
                $(to_el[0]).removeClass('checked').addClass((from_el[i].className.indexOf('checked') > -1) ? 'checked' : '');
                var is_combox = getParent(to_el[0], 'className', 'combox');
                if (is_combox != null) {
                    var fr_combox = getParent(from_el[i], 'className', 'combox');
                    if (fr_combox != null) $('[jc_lng_id]', is_combox).html($('[jc_lng_id]', fr_combox).html());
                }
            }
        },
        draw: {
            cb_field: function(group) {
                var xGroup = jc.sorter.xData.selectNodes('//lng/*[@group = "' + group + '"]');
                var str_1 = '<b>' + jc.sorter.xData.selectSingleNode('//lng/*[@id = "' + group + '"]/@str').nodeValue + '</b>';
                var str_2 = '';
                for (var i = 0, il = xGroup.length; i < il; i++) {
                    var o_id = xGroup[i].getAttribute('id');
                    var group = xGroup[i].getAttribute('group');
                    var o_str = xGroup[i].getAttribute('str');
                    switch (group) {
                        case 'clrGroup':
                            str_1 += '<div jc_handle="false" class="sprite color_ball ' + o_id + '" jc_group="' + group + '" jc_name="' + o_id + '" title="' + o_str + '"><span>&#160;</span><div class="sprite color_check"><span>&#160;</span></div></div>';
                            str_2 += '<div jc_handle="false" class="option label"><div class="sprite color_ball ' + o_id + '" jc_group="' + group + '" jc_name="' + o_id + '"><span>&#160;</span><div class="sprite color_check"><span>&#160;</span></div></div> <span class="clr_txt">' + o_str.split(',')[0] + '</span></div>';
                            break;
                        default:
                            str_1 += '<div jc_handle="false" class="label"><div class="sprite checkbox" jc_group="' + group + '" jc_name="' + o_id + '"><span>&#160;</span></div> <span>' + o_str + '</span></div>';
                            str_2 += '<div jc_handle="false" class="option label"><div class="sprite checkbox" jc_group="' + group + '" jc_name="' + o_id + '"><span>&#160;</span></div> <span>' + o_str + '</span></div>';
                            break;
                    }
                }
                $('.xSort_' + group).html(str_1);
                $('.xCombo_' + group).html(str_2);
            },
            sorter_UI: function() {
                jc.sorter.draw.cb_field('sex');
                jc.sorter.draw.cb_field('brand');
                jc.sorter.draw.cb_field('fit');
                jc.sorter.draw.cb_field('waist');
                jc.sorter.draw.cb_field('leg');
                jc.sorter.draw.cb_field('clrGroup');
                $('.prod_sorter').addClass('min_mode');
                $('.prod_sorter').fadeIn(500);
                jc.sorter.init_event_handlers();
            },
            pro_filter: {
                is_active: '1',
                brand: '',
                clrGroup: '',
                fly: '',
                fit: '',
                leg: '',
                waist: ''
            },
            curr_size: 2,
            p_sizes: ['105x150', '175x250', '305x435'],
            products: function() {
                $('.prod_analysis').hide();
                $('.prod_expose').fadeOut(300, function() {
                    var xpath = '';
                    var group = new Array();
                    var tmp2 = new Array();
                    var clrs = new Array();
                    for (n in jc.sorter.draw.pro_filter) {
                        var tmp = new Array();
                        var val = jc.sorter.draw.pro_filter[n];
                        if (val == '') continue;
                        switch (typeof (val)) {
                            case 'object':
                                if (val.min == '' || val.max == '') continue;
                                if (n == 'w' || n == 'l') {
                                    tmp2.push('@' + n + '>=' + val.min + ' and @' + n + '<=' + val.max);
                                    continue;
                                }
                                else tmp.push('@' + n + '>=' + val.min + ' and @' + n + '<=' + val.max);
                                break;
                            default:
                                val = val.split(',');
                                for (var i = 0, il = val.length; i < il; i++) {
                                    if (n == 'clrGroup') {
                                        clrs.push(val[i]);
                                        tmp.push('./*[@' + n + '="' + val[i] + '"]');
                                    } else tmp.push('@' + n + '="' + val[i] + '"');
                                }
                                break;
                        }
                        group.push('(' + tmp.join(' or ') + ')');
                    }

                    xpath = group.join(' and ');
                    var xtra_p = (tmp2.length) ? ' and (./*[' + tmp2.join(' and ') + '])' : '';
                    xpath = '//products/*[' + xpath + xtra_p + ']';

                    var brands = {};
                    var b = jc.sorter.xData.selectNodes('//*[@group="brand"]');
                    for (var i = 0, il = b.length; i < il; i++) {
                        brands[b[i].getAttribute('id')] = b[i].getAttribute('str');
                    }

                    var get_img_info = function(xProd) {
                        var clr = xProd.selectSingleNode('./*[@clrGroup]');
                        if (clr.getAttribute('img_pid')) return get_img_info(jc.sorter.xData.selectSingleNode('//*[@id="' + clr.getAttribute('img_pid') + '"]'));
                        return {
                            clr: clr,
                            id: xProd.getAttribute('id'),
                            img_first: xProd.getAttribute('img_360_first'),
                            iTotal: xProd.getAttribute('img_360_total')
                        };
                    };

                    var ostr = {};
                    var xtra = {};
                    var products = jc.sorter.xData.selectNodes(xpath);
                    for (var i = 0, il = products.length; i < il; i++) {
                        var id = products[i].getAttribute('id');
                        var url = products[i].getAttribute('url');
                        var brand = products[i].getAttribute('brand');
                        var model = products[i].getAttribute('model');
                        var name = products[i].getAttribute('name');
                        var price = products[i].getAttribute('price');
                        var currency = products[i].getAttribute('currency');
                        var clr = products[i].selectSingleNode('./*[@clrGroup]');
                        var ii = get_img_info(products[i]);
                        var new_id = ii.id;

                        if (ii.id != id) new_id = id;

                        if (!ostr[brand]) ostr[brand] = '';
                        if (!xtra[brand]) xtra[brand] = '';

                        var p_str = '<div class="prod_preview" jc_prod_id="' + new_id + '"><a href="' + url + '"><img src="/rsrcs/images/products/' + ii.id + '/360/' + jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1] + '/' + ii.id + '-360-001-_MG_' + ii.img_first + '.jpg" alt="" jc_img_total="' + ii.iTotal + '"/></a>'
									+ '<br/><span class="brand_name">' + brands[brand] + '</span><br/>' + model + ' ' + name + ' <b>' + price + currency + '</b>';

                        if (ii.id != id) {
                            var p_clrs = '<div class="sprite color_ball ' + clr.getAttribute('clrGroup') + '"><span>&#160;</span></div></div>';
                            xtra[brand] += p_str + '<div class="xtra_clrs"><span class="xtra_txt">Finns även i:</span> ' + p_clrs + '</div>';
                        }
                        if (ii.id == id || clrs.indexOf(ii.clr.getAttribute('clrGroup')) > -1) ostr[brand] += p_str + '</div>';
                    }
                    var str = '';
                    for (var n in ostr) {
                        var xBrand = jc.sorter.xData.selectSingleNode('.//*[@id="' + n + '"]');
                        var b_name = xBrand.getAttribute('str');
                        var b_logo = xBrand.getAttribute('logo');
                        var b_logo_class = xBrand.getAttribute('logo').split(".")[0];
                        var b_str = xBrand.getAttribute('description');
                        var brand_str = '<div class="prod_preview"><img class="jeans_logo bl_' + b_logo_class + '" src="/rsrcs/images/logos/' + b_logo + '" alt=""/><span class="brand_txt">' + b_str + '</span></div>';
                        str += brand_str + ostr[n];
                    }
                    $('.prod_expose').html(str);

                    var str = '';
                    for (var n in xtra) {
                        str += xtra[n];
                    }
                    if (str == '') $('.xtra_findings').hide();
                    else {
                        /*var c_str = '';
                        for (var i = 0, il = clrs.length; i < il; i++) {
                        var xClr = jc.sorter.xData.selectSingleNode('.//*[@group="clrGroup" and @id="' + clrs[i] + '"]');
                        c_str += xClr.getAttribute('str').toLowerCase();
                        if (clrs.length > 1 && i < clrs.length - 1) {
                        c_str += (i < clrs.length - 2) ? ', ' : ' och ';
                        }
                        }*/
                        //$('.clr_declaration').html(c_str);
                        $('.xtra_findings').fadeIn(300);
                        $('.xtra_prod').html(str);
                    }

                    $('.prod_expose').fadeIn(300, function() {
                        jc.sorter.draw.init_product_event_handlers();
                        var query_brand = jc.sorter.queryString('brand');
                        if (query_brand.length > 0) {
                            jc.sorter.scrollWin('.' + query_brand);
                        }
                    });
                });
            },
            init_product_event_handlers: function() {
                $('.prod_analysis').bind('click', function() {
                    var prod_id = this.getAttribute('jc_prod_id');
                    if (!prod_id) return;
                    var xNode = jc.sorter.xData.selectSingleNode('.//*[@id="' + prod_id + '"]');
                    if (xNode.getAttribute('url')) document.location.href = xNode.getAttribute('url');
                });
                $('.prod_preview img').bind('mouseover', function(e) {
                    $('.prod_analysis').hide();
                    var pp = this.parentNode.parentNode;
                    var prod_img = xdbc.get.child(pp, 'nodeName', 'IMG');
                    var prod_id = pp.getAttribute('jc_prod_id');
                    if (!prod_id || jc.rotate.tmp_anim) return;
                    var d = getDim(pp, 'jc_element', 'layout_base');
                    var wh = jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1].split('x');
                    var this_product = pp;

                    $('.prod_analysis').removeClass('img_anl_1').removeClass('img_anl_2').removeClass('img_anl_3').addClass('img_anl_' + jc.sorter.draw.curr_size);

                    $('.prod_analysis')[0].style.left = d.l + 'px';
                    $('.prod_analysis')[0].style.top = d.t + 'px';
                    $('.prod_analysis')[0].style.width = wh[0] + 'px';
                    $('.prod_analysis')[0].style.height = wh[1] + 'px';
                    $('.prod_analysis')[0].setAttribute('jc_prod_id', prod_id);
                    $('.prod_analysis img')[0].src = prod_img.src;
                    $('.prod_analysis img')[0].alt = prod_img.alt;

                    var info = prod_img.src.split('/');
                    info = info[info.length - 1].slice(0, -4);

                    $('.prod_analysis').show();
                    var ndim = {
                        w: wh[0] * 1.1,
                        h: wh[1] * 1.1,
                        t: d.t - parseInt(((wh[1] * 1.1) - wh[1]) / 2),
                        l: d.l - parseInt(((wh[1] * 1.1) - wh[1]) / 2) + 2 + jc.sorter.draw.curr_size
                    };
                    jc.rotate.tmp_anim = true;
                    $('.prod_analysis').animate({ 'width': ndim.w + 'px', 'height': ndim.h + 'px',
                        'top': ndim.t + 'px', 'left': ndim.l + 'px'
                    }, 200, function() {
                        jc.rotate.tmp_anim = false;
                        jc.rotate.el = prod_img;
                        jc.rotate.step = (prod_img.getAttribute('jc_rotate_step')) ? parseInt(prod_img.getAttribute('jc_rotate_step')) : 0;

                        var id = info.split('-')[0];
                        var iTotal = jc.sorter.xData.selectSingleNode('//*[@id="' + id + '"]/@img_360_total').nodeValue;

                        if (!jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]] || !jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][id]) {
                            jc.rotate.preload.init(this_product);
                        } else if (jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][id].length + 1 < iTotal / Math.round(iTotal / jc.rotate.preload.tween[jc.sorter.draw.curr_size])) {
                            jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][id].pop();
                            jc.rotate.preload.init(this_product, true);
                        } else {
                            $('.prod_analysis .preview_ctrls').show();
                        }
                    });
                });
                $('.prod_analysis').bind('mouseout', function(e) {
                    if (e.relatedTarget && e.relatedTarget.getAttribute('jc_element') == 'prod_analysis') return;
                    jc.rotate.tmp_anim = false;
                    $('.prod_analysis')[0].removeAttribute('jc_prod_id');
                    $('.prod_analysis .load_txt').hide();
                    $('.prod_analysis').stop();
                    $('.prod_analysis .preview_ctrls').hide();
                    $('.prod_analysis').hide();
                });
            }
        },
        scrollWin: function(element) {
            $('html, body').animate({
                scrollTop: $(element).offset().top - 100
            }, 3000);
        },
        queryString: function(search_word) {
            var url_query = window.location.search.substring(1);
            var parts = url_query.split("&");
            for (i = 0; i < parts.length; i++) {
                var part = parts[i].split("=");
                if (part[0] == search_word) {
                    return part[1];
                }
            }
            return "";
        },
        init_event_handlers: function() {
            $('.sort_fld .label span').bind('click', function() { $('.checkbox', this.parentNode).trigger('click'); });
            $('.sort_fld .checkbox').bind('click', function() {
                var cn = this.className;
                cn = cn.replace(/ checked/ig, '') + ((cn.indexOf('checked') > -1) ? '' : ' checked');
                this.className = cn;

                var name = this.getAttribute('jc_name');
                var group = this.getAttribute('jc_group');
                var body_context = getParent(this, 'jc_element', 'sort_body');
                var group_children = $("*[jc_group='" + group + "']", body_context);
                var g_val = new Array();
                for (var i = 0, il = group_children.length; i < il; i++) {
                    if (group_children[i].className.indexOf(' checked') == -1) continue;
                    g_val.push(group_children[i].getAttribute('jc_name'));
                }

                var _this;
                if ($('.prod_sorter')[0].className.indexOf('max_mode') > -1) {
                    var tmp = $(".sort_body_max *[jc_group='" + group + "']");
                    for (var i = 0; i < tmp.length; i++) {
                        if (tmp[i].getAttribute('jc_name') == name) {
                            _this = tmp[i];
                            break;
                        }
                    }
                } else _this = this;

                var combox = getParent(_this, 'className', 'combox');
                var opt = $('.option', combox);
                var str;
                if (g_val.length == 1) {
                    str = jc.sorter.xData.selectSingleNode('.//lng//*[@group="' + group + '" and @id="' + g_val[0] + '"]/@str').nodeValue;
                } else if (!g_val.length || g_val.length == opt.length - 1) {
                    str = jc.sorter.xData.selectSingleNode('.//lng//*[@id="all"]/@str').nodeValue;
                } else if (g_val.length > 1) {
                    str = jc.sorter.xData.selectSingleNode('.//lng//*[@id="mixed"]/@str').nodeValue;
                }
                opt[0].innerHTML = str;

                jc.sorter.active.combox_collapse = setTimeout(function() {
                    $(jc.sorter.active.combox).trigger('click');
                }, 2000);

                jc.sorter.url_set(group);
                jc.sorter.draw.pro_filter[group] = g_val.join(',');
                jc.sorter.draw.products();
            });
            $('.sort_fld .color_ball').bind('click', function() {
                var cn = this.className;
                cn = cn.replace(/ checked/ig, '') + ((cn.indexOf('checked') > -1) ? '' : ' checked');
                this.className = cn;

                var group = this.getAttribute('jc_group');
                var body_context = getParent(this, 'jc_element', 'sort_body');
                var group_children = $("*[jc_group='" + group + "']", body_context);
                var g_val = new Array();
                for (var i = 0, il = group_children.length; i < il; i++) {
                    if (group_children[i].className.indexOf(' checked') == -1) continue;
                    g_val.push(group_children[i].getAttribute('jc_name'));
                }

                var _this;
                if ($('.prod_sorter')[0].className.indexOf('max_mode') > -1) {
                    var tmp = $(".sort_body_min *[jc_group='" + group + "']");
                    for (var i = 0; i < tmp.length; i++) {
                        if (tmp[i].getAttribute('jc_name') == name) {
                            _this = tmp[i];
                            break;
                        }
                    }
                } else _this = this;

                var combox = getParent(_this, 'className', 'combox');
                var opt = $('.option', combox);
                var c_ball = $('.color_ball', combox)[0];
                var xNode, c_id;
                if (g_val.length == 1) {
                    xNode = jc.sorter.xData.selectSingleNode('.//lng//*[@group="' + group + '" and @id="' + g_val[0] + '"]');
                    c_id = xNode.getAttribute('id');
                } else if (!g_val.length || g_val.length == opt.length - 1) {
                    xNode = jc.sorter.xData.selectSingleNode('.//lng//*[@id="all"]');
                    c_id = 'clrGroup_99';
                } else if (g_val.length > 1) {
                    xNode = jc.sorter.xData.selectSingleNode('.//lng//*[@id="mixed"]');
                    c_id = 'clrGroup_99';
                }
                c_ball.className = c_ball.className.replace(/clrGroup_\d\d/ig, '') + ' ' + c_id;
                $('.option font', combox).html(xNode.getAttribute('str'));

                clearTimeout(jc.sorter.active.combox_collapse);
                jc.sorter.active.combox_collapse = setTimeout(function() {
                    $(jc.sorter.active.combox).trigger('click');
                }, 2000);

                jc.sorter.url_set(group);
                jc.sorter.draw.pro_filter[group] = g_val.join(',');
                jc.sorter.draw.products();
            });
            $('.clr_txt').bind('click', function() {
                $('.color_ball', this.parentNode).trigger('click');
            });
        }
    },
    scale: {
        marker: false,
        init: function() {

        },
        calc_left: function(marker, l) {
            var s_l = new Number(marker.parentNode.getAttribute('jc_marker_max'));
            var s_m = new Number(marker.parentNode.getAttribute('jc_marker_min'));
            if (jc.scale.marker_sibling.length > 1) {
                if (marker.className.indexOf('marker_1') > -1) {
                    s_l = parseInt($(jc.scale.marker_sibling[1]).css('left')) - 10;
                    s_l = (jc.scale.snap) ? s_l - (s_l % jc.scale.snap) : s_l;
                } else if (marker.className.indexOf('marker_2') > -1) {
                    s_m = parseInt($(jc.scale.marker_sibling[0]).css('left')) + 10;
                    s_m = (jc.scale.snap) ? s_m - (s_m % jc.scale.snap) : s_m;
                    if (s_m <= parseInt($(jc.scale.marker_sibling[0]).css('left'))) s_m += jc.scale.snap;
                }
            } else if (marker.parentNode.className.indexOf('scale_imgsize') > -1) {
                s_l = 81;
                s_m = 10;
            }
            l = (jc.scale.snap) ? l - (l % jc.scale.snap) : l;
            l = Math.max(Math.min(l, s_l), s_m);
            return l;
        },
        get_max_min: function(scale) {
            var xml_attr = scale.getAttribute('jc_xml_attr');
            if (!scale || !xml_attr) return;
            var markers = $('.scale_marker', scale);
            var min_left = parseInt($('.marker_1', scale).css('left'));
            var max_left = parseInt($('.marker_2', scale).css('left'));
            var s_min = parseInt(scale.getAttribute('jc_scale_min'));
            var s_max = parseInt(scale.getAttribute('jc_scale_max'));
            var m_max = parseInt(scale.getAttribute('jc_marker_max'));
            var s_diff = s_max - s_min;
            var min = s_min + parseInt(((min_left + (jc.scale.snap ? 1 : 0)) / m_max) * s_diff);
            var max = s_min + parseInt(((max_left + (jc.scale.snap ? 1 : 0)) / m_max) * s_diff);
            jc.sorter.url_set(xml_attr, { min: min_left, max: max_left });
            return (markers.length == 1) ? min : { min: min, max: max };
        },
        get_imgsize_scale_value: function() {
            var scale = $('.scale_imgsize')[0];
            var marker = $('.scale_imgsize .scale_marker')[0];
            var left = parseInt($(marker).css('left'));
            var s_min = parseInt(scale.getAttribute('jc_scale_min'));
            var s_max = parseInt(scale.getAttribute('jc_scale_max'));
            var m_max = parseInt(scale.getAttribute('jc_marker_max'));
            var s_diff = s_max - s_min;
            var val = s_min + parseInt(((left + 1) / m_max) * s_diff);
            jc.sorter.url_set('imgsize', val);
            return val;
        }
    },
    rotate: {
        speed: {},
        time: 2000,
        step: 0,
        el: false,
        el_id: false,
        direction: false,
        imgs: {},
        preload: {
            id: false,
            size: false,
            step: 0,
            total: 0,
            first: 0,
            tween: {
                '1': 35,
                '2': 25,
                '3': 20
            },
            camId: false,
            init: function(product, resume) {
                if (!product || (product.className != 'prod_preview' && !product.getAttribute('jc_img_view'))) return;
                if (!jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]]) jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]] = {};

                var img = (product.nodeName == 'IMG') ? product : $('img', product)[0];
                var info = img.src.split('/');
                info = info[info.length - 1].slice(0, -4);

                var id = info.split('-')[0];
                if (!jc.sorter.xData) {
                    jc.sorter.xData = xdbc.load('<products><i id="' + id + '" img_360_first="' + product.getAttribute('img_360_first') + '" img_360_total="' + product.getAttribute('img_360_total') + '"/></products>');
                    jc.sorter.draw.curr_size = 3;
                    jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]] = new Array();
                    jc.rotate.speed[jc.sorter.draw.curr_size] = parseInt(jc.rotate.time / jc.rotate.preload.tween[jc.sorter.draw.curr_size]);
                }
                var xNode = jc.sorter.xData.selectSingleNode('//products/*[@id="' + id + '"]');
                if (!xNode) return;
                var first = xNode.getAttribute('img_360_first');
                var total = xNode.getAttribute('img_360_total');
                var camId = info.split('_MG_')[1];
                if (!first || total <= 1) return;

                jc.rotate.preload.id = id;
                jc.rotate.preload.step = 0;
                jc.rotate.preload.size = jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1];
                jc.rotate.preload.total = new Number(total);
                jc.rotate.preload.first = new Number(first);
                jc.rotate.preload.camId = new Number(camId);
                jc.rotate.preload.skip = Math.round(jc.rotate.preload.total / jc.rotate.preload.tween[jc.sorter.draw.curr_size]);
                if (resume) jc.rotate.preload.resume = jc.rotate.imgs[jc.rotate.preload.size][id].length;

                if (!jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][id]) {
                    jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][id] = new Array();
                }
                jc.rotate.preload.context = ($('.prod_analysis').length > 0) ? $('.prod_analysis')[0] : $('.prod_analyzer')[0];
                //$('.load_txt', jc.rotate.preload.context).hide();

                if (jc.rotate.imgs[jc.rotate.preload.size][id].length == jc.rotate.preload.total) {
                    jc.rotate.preload.end();
                    return;
                }
                $('.overlay', jc.rotate.preload.context).css('width', '0px');
                $('.load_txt', jc.rotate.preload.context).show();
                var img = new Image();
                img.src = '/rsrcs/images/_.gif?' + Math.random();
                img.onreadystatechange = function() {
                    jc.rotate.preload.next(this);
                };
            },
            next: function(t) {
                var img = t || this;
                if (img.readyState != 'complete') return;
                if (jc.rotate.preload.resume) {
                    jc.rotate.preload.step = (jc.rotate.preload.skip * jc.rotate.preload.resume);
                    jc.rotate.preload.resume = false;
                } else jc.rotate.preload.step += jc.rotate.preload.skip;

                var w = parseInt((jc.rotate.preload.step / (jc.rotate.preload.total + 1)) * parseInt($($('.load_txt')[0]).css('width')));
                $('.overlay', jc.rotate.preload.context).css('width', w + 'px');

                if (jc.rotate.preload.step >= jc.rotate.preload.total + 1) {
                    jc.rotate.preload.end();
                    return;
                }

                var camId = jc.rotate.preload.camId + jc.rotate.preload.step - 1;
                camId = (camId < 1000) ? '0' + camId : camId;
                if (camId.toString().length > 4) {
                    camId++;
                    camId = camId.toString().slice(1);
                }

                var step_360 = (jc.rotate.preload.step < 10) ? '0' : '';
                step_360 += (jc.rotate.preload.step < 100) ? '0' : '';

                var src = '/rsrcs/images/products/' + jc.rotate.preload.id + '/360/' + jc.rotate.preload.size + '/' + jc.rotate.preload.id + '-360-' + step_360 + jc.rotate.preload.step + '-_MG_' + camId + '.jpg?' + Math.random();
                var img = new Image();
                img.onreadystatechange = function() {
                    jc.rotate.preload.next(this);
                };
                img.src = src;
                jc.rotate.imgs[jc.rotate.preload.size][jc.rotate.preload.id].push(img);
            },
            end: function() {
                $('.load_txt', jc.rotate.preload.context).hide();
                $('.zoom_toggle').show();
                $('.preview_ctrls', jc.rotate.preload.context).show();
            }
        },
        start: function(el, direction) {
            var info = el.src.split('/');
            info = info[info.length - 1];
            jc.rotate.el_id = info.split('-')[0];
            jc.rotate.now_imgs = jc.rotate.imgs[jc.sorter.draw.p_sizes[jc.sorter.draw.curr_size - 1]][jc.rotate.el_id];

            jc.rotate.img = (el.parentNode.className.indexOf('prod_analysis') > -1) ? $('.prod_analysis img')[0] : $('img', el.parentNode.parentNode.parentNode)[0];

            var xNode = jc.sorter.xData.selectSingleNode('//products/*[@id="' + jc.rotate.el_id + '"]');
            var total = new Number(xNode.getAttribute('img_360_total'));
            var skip = Math.round(total / jc.rotate.preload.tween[jc.sorter.draw.curr_size]);

            jc.rotate.direction = direction;
            jc.rotate.anim = setInterval(jc.rotate.tween, jc.rotate.speed[jc.sorter.draw.curr_size]);
            //jc.rotate.anim = setInterval(jc.rotate.tween, jc.rotate.speed[jc.sorter.draw.curr_size] * jc.rotate.preload.skip);
        },
        tween: function() {
            jc.rotate.step += jc.rotate.direction;
            if (jc.rotate.step >= jc.rotate.now_imgs.length) jc.rotate.step = 0;
            else if (jc.rotate.step < 0) jc.rotate.step = jc.rotate.now_imgs.length - 1;
            jc.rotate.img.src = jc.rotate.now_imgs[jc.rotate.step].src;
        },
        stop: function() {
            if ($('.prod_analysis').length > 0) {
                $('.prod_analysis img')[0].src = jc.rotate.now_imgs[jc.rotate.step].src.replace(/305x435/i, '630x900');
            }
            var el = jc.rotate.el || jc.rotate.img;
            el.src = jc.rotate.now_imgs[jc.rotate.step].src;
            el.setAttribute('jc_rotate_step', jc.rotate.step);
            clearInterval(jc.rotate.anim);
            jc.rotate.anim = false;
        }
    },
    maps: {
        xData: false,
        seach_clicked: false,
        markers: new Array(),
        country: 'Sverige',
        lng: {},
        styles: [[
			{
			    url: '/rsrcs/images/jcblob_small.png',
			    height: 35,
			    width: 35,
			    opt_textColor: '#000'
			},
			{
			    url: '/rsrcs/images/jcblob_medium.png',
			    height: 45,
			    width: 45,
			    opt_textColor: '#000'
			},
			{
			    url: '/rsrcs/images/jcblob_large.png',
			    width: 55,
			    height: 55
			}
		]],
        gFix: function(marker) {
            if (jc.maps.gFixed_str) return jc.maps.gFixed_str;
            for (n in marker) {
                if (typeof (marker[n]) == 'string' && marker[n].slice(0, 6) == 'marker') {
                    jc.maps.gFixed_str = n;
                    return n;
                }
            }
        },
        init: function() {
            if (!$('.jc_maps').length) return;

            if (GBrowserIsCompatible()) {
                jc.maps.map = new GMap2($('.jc_maps')[0]);
                jc.maps.map.setCenter(new GLatLng(62.34960927573042, 12.0334475338459), 5);
                jc.maps.map.setUIToDefault();

                var jcIcon = new GIcon(G_DEFAULT_ICON);
                jcIcon.image = "/rsrcs/images/jcblob.png";
                jcIcon.iconSize = new GSize(16, 16);
                jcIcon.shadowSize = new GSize(16, 18);
                jcIcon.iconAnchor = new GPoint(6, 15);

                var googleMapsXml = '/rsrcs/xml/butiker.xml';
                if (typeof GoogleMapsSettings != 'undefined' && GoogleMapsSettings.length > 0) {
                    googleMapsXml = GoogleMapsSettings[0];
                }
                if (googleMapsXml != null && googleMapsXml != '') {
                    xdbc.load(googleMapsXml, function(data) {
                        jc.maps.xData = data;

                        var lEl;
                        var dmn = $('.map_overlay_content').attr('class').split(' ').slice(-1);
                        var cnt = data.selectSingleNode('//country[@id="' + dmn + '"]').getAttribute('title');
                        var lnEl = $('.other_country');
                        for (var i = 0, il = lnEl.length; i < il; i++) {
                            if ($(lnEl[i]).html() == cnt) {
                                lEl = lnEl[i];
                                break;
                            }
                        }
                        if (lEl) $(lEl).trigger('click');

                        /*	LANGUAGE	*/
                        var lngs = data.selectNodes('//language/*[@id]');
                        for (var i = 0, il = lngs.length; i < il; i++) {
                            jc.maps.lng[lngs[i].getAttribute('id')] = lngs[i].getAttribute('value');
                        }
                        var shops = jc.maps.xData.selectNodes('//*[@lng and @lat]');
                        for (var i = 0, il = shops.length; i < il; i++) {
                            var latlng = new GLatLng(shops[i].getAttribute('lat'), shops[i].getAttribute('lng'));
                            var country = shops[i].parentNode.getAttribute('title').toLowerCase();
                            var city = shops[i].getAttribute('city').toLowerCase();
                            var marker = jc.maps.createMarker(latlng, city, country, { icon: jcIcon })
                            jc.maps.markers.push(marker);
                            jc.maps.map.addOverlay(marker);

                            shops[i].setAttribute('marker_id', marker[jc.maps.gFix(marker)]);
                        }
                        $('.loading_xml').fadeOut(300);
                        $('.search_box').fadeIn(500);
                        $('.maps_bottom').fadeIn(100);

                        var w = $('.remember').width();
                        $('.remember').css('margin-left', '-' + (w / 2) + 'px')

                        jc.maps.render.country(true);
                        woco.init($('.search_fld input')[0]);

                        //$('.jc_maps')[0].insertBefore($('.maps_bottom')[0], $('.jc_maps')[0].childNodes[1]);
                        // $('.jc_maps')[0].style.position = 'absolute';
                    });
                }
            }
        },
        createMarker: function(point, city, country, icon) {
            var marker = new GMarker(point, icon);
            marker.city = city;
            marker.country = country;
            marker.pleaseHideLater = false;
            GEvent.addListener(marker, 'click', function() {
                var xShop = jc.maps.xData.selectSingleNode('//*[@marker_id="' + this[jc.maps.gFix(this)] + '"]');
                marker.openExtInfoWindow(
					jc.maps.map, 'simple_example_window',
					'<span class="shopbox_bg">' +
						((xShop.getAttribute('phasad_img')) ? '<img class="phasad_img" src="' + xShop.getAttribute('phasad_img') + '" alt=""/>' : '') +
						'<span class="sprite btn_close"><span>&#160;</span></span>' +
						((xShop.getAttribute('url')) ? '<a class="to_store_page" href="' + xShop.getAttribute('url') + '">' + jc.maps.lng.to_store_page + ' &rarr;</a> ' : '') +
						'<span class="shop_adress">' +
						'<b>' + xShop.getAttribute('adress') + '</b><br/>' +
						xShop.getAttribute('zipcode') + ' ' + xShop.getAttribute('city').replace(/_/g, ' ') + '<br/>' +
						jc.maps.lng.tel + ': ' + xShop.getAttribute('tel') + '<br/>' +
						((xShop.getAttribute('fax')) ? jc.maps.lng.fax + ': ' + xShop.getAttribute('fax') : '') +
						'</span><span class="shop_hours">' +
						'<b>' + jc.maps.lng.openhours + '</b><br/>' +
						'<span>' + jc.maps.lng.weekdays + '</span> ' + xShop.getAttribute('weekday') + '<br/>' +
						'<span>' + jc.maps.lng.saturdays + '</span> ' + xShop.getAttribute('saturday') + '<br/>' +
						'<span>' + jc.maps.lng.sundays + '</span> ' + xShop.getAttribute('sunday') +
						'</span></span>',
					{ beakOffset: 229 }
				);
                $('.shopbox_bg .btn_close').bind('mouseover', function() { this.className = 'sprite btn_close hover'; });
                $('.shopbox_bg .btn_close').bind('mouseout', function() { this.className = 'sprite btn_close'; });
                $('.shopbox_bg .btn_close').bind('click', function() { jc.maps.map.closeExtInfoWindow(); });
            });
            return marker;
        },
        render: {
            country: function(show_all) {
                var cities = new Array();
                var c = jc.maps.xData.selectNodes('//country[@title="' + jc.maps.country + '"]/i');
                for (var i = 0, il = c.length; i < il; i++) {
                    var city = c[i].getAttribute('city');
                    if (cities.indexOf(city) > -1) continue;
                    cities.push(city);
                }
                woco.db = ' ' + cities.join(' ').toLowerCase() + ' ';
                jc.maps.render.city(cities.sort(), show_all);
            },
            city: function(cities, show_all) {
                $('.adress_tooltip').hide();
                if (typeof (cities) != 'object' && !cities.length) return;

                var tmp = new Array();
                var str = '';
                for (var i = 0, il = cities.length; i < il; i++) {
                    var city = cities[i].trim();
                    city = city.toUpperCase().slice(0, 1) + city.toLowerCase().slice(1);
                    var xc = jc.maps.xData.selectNodes('//country[@title="' + jc.maps.country + '"]/i[@city="' + city.toUpperCase() + '"]');
                    var ttl = '';
                    for (var j = 0, jl = xc.length; j < jl; j++) {
                        var marker_id = xc[j].getAttribute('marker_id') || xc[j].getAttribute('id');
                        tmp.push(marker_id);
                        ttl += '&lt;a href=&quot;#&quot; jc_marker_id=&quot;' + marker_id + '&quot;&gt;' + (j + 1) + '. ' + xc[j].getAttribute('adress') + '&lt;/a&gt;';
                    }
                    var c2 = city.replace(/%/ig, '/').replace(/_/ig, ' ');
                    str += '<a href="#" class="city ' + city.toLowerCase() + '" _title="' + ttl + '">' + c2 + '</a> ';
                }
                $('.src_matches')[0].innerHTML = str;

                if (!show_all) {
                    for (var i = 0, il = jc.maps.markers.length; i < il; i++) {
                        if (tmp.indexOf(jc.maps.markers[i][jc.maps.gFix(jc.maps.markers[i])]) == -1) {
                            jc.maps.markers[i].hide();
                            jc.maps.markers[i].pleaseHideLater = true;
                        } else {
                            jc.maps.markers[i].show();
                            jc.maps.markers[i].pleaseHideLater = false;
                        }
                    }
                }

                $('.src_matches a').bind('mouseover', function() {
                    if (this.getAttribute('_title')) {
                        $('.adress_tooltip span')[0].innerHTML = this.getAttribute('_title').replace(/&quot;/ig, '"').replace(/&lt;/ig, '<').replace(/&gt;/ig, '>');
                        $('.adress_tooltip').css('display', 'block');
                        var o = getDim(this, 'className', 'search_box');
                        var tool = getDim($('.adress_tooltip')[0], 'className', 'search_box');
                        var matches = getDim($('.src_matches')[0]);
                        matches.w = parseInt($($('.src_matches')[0]).css('width'));

                        var l = Math.min(Math.max((o.l - (tool.w / 2)), 0), matches.w) + (o.w / 2) - 20;
                        if (_env.sf && !/webkit/i.test(navigator.userAgent)) l = l - matches.l;
                        if (/msie 8/i.test(navigator.userAgent)) l = o.l - (tool.w / 2);

                        $('.adress_tooltip').css('top', (o.t + 12) + 'px');
                        $('.adress_tooltip').css('left', l + 'px');

                        $('.adress_tooltip a').bind('click', function() {
                            jc.maps.render.show_baloon(this.getAttribute('jc_marker_id'));
                        });
                    } else {
                        $('.adress_tooltip').css('display', 'none');
                    }
                });
                /*
                $('.src_matches a').bind('mouseout', function() {
                if (jc.maps.seach_clicked) return;
                $('.adress_tooltip .orange_close').hide();
                $('.adress_tooltip').hide();
                });
                */
                $('.src_matches a').bind('mousedown', function() {
                    var stores = this.getAttribute('_title').match(/<a /ig);
                    if (jc.maps.seach_clicked && jc.maps.seach_clicked != this) {
                        $(this).trigger('mouseover');
                        if (stores.length > 1) {
                        } else {
                            var marker_id = this.outerHTML.match(/marker\d{1,}/ig);
                            jc.maps.render.show_baloon(marker_id);
                        }
                    } else {
                        if (stores.length > 1) {
                        } else {
                            var marker_id = this.outerHTML.match(/marker\d{1,}/ig);
                            jc.maps.render.show_baloon(marker_id);
                        }
                    }
                });
            },
            reset: function() {
                $('.search_fld input')[0].value = '';
                $('.search_fld input').focus();
                jc.maps.render.country();
            },
            show_baloon: function(mI) {
                for (var i = 0, il = jc.maps.markers.length; i < il; i++) {
                    if (jc.maps.markers[i][jc.maps.gFix(jc.maps.markers[i])] == mI) {
                        GEvent.trigger(jc.maps.markers[i], 'click');
                        break;
                    }
                }
            }
        }
    }
};

$(document).ready(function() {
    $(document).addClass(_env.os).addClass(_env.br);

    /*
    $('.menu .search input').bind('mouseover', function() {$('.menu .red_bubble').fadeIn(250);});
    $('.menu .search input').bind('mouseout', function() {$('.menu .red_bubble').fadeOut(250);});
    */
    $('.menu .search input').bind('click', function() { $('.menu .search input')[0].select(); });

    $('input, textarea').bind('focus', function() {
        if (this.type == 'submit') return;
        if (this.value == this.defaultValue) {
            this.value = '';
        }
    });
    $('input, textarea').bind('blur', function() {
        if (this.type == 'submit') return;
        if (this.value == '') {
            this.value = this.defaultValue;
        }
    });


    /*	CONTACT	*/
    $('a.contact_send').bind('click', function() {
        xdbc.env.cancelEvent();

        var arr = new Array();
        var form = getParent(this, 'className', 'two_cols');
        if (!form) return;

        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            var val = inEl[i].value;
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + val + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }

        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $('#' + xError.text)[0];
                    var dim = getDim(error_el, 'jc_element', 'form_box');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        return;
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });

    });

    /*	FAQ	*/
    jc.faq.init();
    $('.rb_red .btn_send_q').bind('mouseup', function() {
        var arr = new Array();
        var form = getParent(this, 'jc_element', 'form_box');
        if (!form) return;

        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            var val = inEl[i].value;
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + val + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }

        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '';
        if (typeof FormSettings != 'undefined' && FormSettings.length > 0) {
            servicePostForm = FormSettings[0];
        }
        $(this).removeClass('btn_down');
        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $('#' + xError.text)[0];
                    var dim = getDim(error_el, 'jc_element', 'form_box');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });
    });

    $('.rbw_close').bind('mouseover', function() { this.className = this.className.replace(/ hover/ig, '') + ' hover'; });
    $('.rbw_close').bind('mouseout', function() { this.className = this.className.replace(/ hover/ig, ''); });
    $('.rbw_close').bind('click', function() {
        if (this.parentNode.className == 'ol_cover') return;
        var bubble = getParent(this, 'jc_element', 'reply_bubble');
        if (bubble && bubble.jc_link) {
            bubble.jc_link.removeAttribute('jc_clicked');
            $(bubble.jc_link).trigger('mouseout');
        } else {
            bubble = getParent(this, 'jc_element', 'q_bubble');
        }
        $(bubble).fadeOut(500, function() {

        });
    });

    $('.faq_unreplied ul li a').bind('click', function() {
        _env.cancelEvent();
        var _this = this;
        var url = '/tmp2.xml' || this.href + '&xml=true';
        if (typeof QuestionSettings != 'undefined' && QuestionSettings.length > 0) {
            url = QuestionSettings[0] + '?language=sv&pageid=' + this.getAttribute('id');
        }
        xdbc.load(url, function(resp) {
            if (!resp) return;
            var bubble = getChild(document, 'jc_element', 'q_bubble');
            var nodes = resp.selectNodes('//Question/*');
            for (var i = 0, il = nodes.length; i < il; i++) {
                var el = getChild(bubble, 'jc_id', nodes[i].nodeName);
                if (!el) continue;
                if (el.nodeName == 'A') el.href = nodes[i].text;
                else if (el.nodeName == 'IMG') el.src = nodes[i].text;
                else $(el).html(nodes[i].text);
            }
            $(bubble).css('position', 'absolute');
            $(bubble).css('top', (_this.offsetTop + 21) + 'px');
            $('.wrb_arrow_up', bubble).css('left', (_this.offsetLeft + 430) + 'px');
            $(bubble).fadeIn(300, function() {
                $('html, body').animate({ scrollTop: _this.offsetTop }, 500);
            });
        });
    });

    $('.faq_collection a').bind('mouseover', function() {
        if (this.getAttribute('jc_clicked')) return;
        $(this).css('background-color', this.getAttribute('jc_color'));
        $(this).css('color', '#FFF');
    });
    $('.faq_collection a').bind('mouseout', function() {
        if (this.getAttribute('jc_clicked')) return;
        var _this = this;
        var clr = this.getAttribute('jc_color');
        $(this).animate({ 'color': clr, backgroundColor: '#FFF' }, 300, function() {
            $(_this).css('backgroundColor', '#FFF');
            $(_this).css('color', clr);
        });
    });
    $('.faq_collection a').bind('click', function() {
        _env.cancelEvent();
        var url = '/tmp2.xml' || this.href + '&xml=true';
        if (typeof QuestionSettings != 'undefined' && QuestionSettings.length > 0) {
            url = QuestionSettings[0] + '?language=sv&pageid=' + this.getAttribute('id');
        }

        if ($('.rb_white')[0].jc_link) {
            $('.rb_white')[0].jc_link.removeAttribute('jc_clicked');
            $($('.rb_white')[0].jc_link).trigger('mouseout');
        }
        var _this = this;
        _this.setAttribute('jc_clicked', 1);
        $('.rb_white')[0].jc_link = _this;

        xdbc.load(url, function(resp) {
            if (!resp) return;
            var bubble = getChild(document, 'jc_element', 'reply_bubble');
            var nodes = resp.selectNodes('//Question/*');
            for (var i = 0, il = nodes.length; i < il; i++) {
                var el = getChild(bubble, 'jc_id', nodes[i].nodeName);
                if (!el) continue;
                switch (el.nodeName.toLowerCase()) {
                    case 'a':
                        el.href = nodes[i].text;
                        break;
                    case 'img':
                        el.src = nodes[i].text;
                        break;
                    default:
                        $(el).html(nodes[i].text);
                        break;
                }
            }
            $(bubble).css('position', 'absolute');
            $(bubble).css('top', (bubble.jc_link.offsetTop + 21) + 'px');
            $('.wrb_arrow_up', bubble).css('left', (bubble.jc_link.offsetLeft + 25) + 'px');
            $(bubble).fadeIn(300, function() {
                $('html, body').animate({ scrollTop: (bubble.jc_link.offsetTop - (parseInt($(bubble).css('height')) / 2)) }, 500);
            });
        });
    });


    /*	SEARCH RESULTS	*/
    $('.find_filter').bind('click', function() {
        var _this = this;
        var filters = $('.find_filter');
        for (var i = 0, il = filters.length; i < il; i++) {
            var cn = filters[i].className.replace(/ checked/ig, '');
            cn = (filters[i] == this) ? cn + ' checked' : cn;
            filters[i].className = cn;
        }
        var found_type = this.getAttribute('jc_element').split('_')[0];
        var show_els = (found_type == 'all') ? '.found_products, .found_blogs, .found_pages, .found_videos' : '.found_' + found_type;
        var active_els = (this.parentNode.getAttribute('jc_active_els') != null) ? this.parentNode.getAttribute('jc_active_els') : '.found_products, .found_blogs, .found_pages, .found_videos';
        $(active_els).fadeOut(300, function() {
            $(show_els).fadeIn(300, function() {
                _this.parentNode.setAttribute('jc_active_els', show_els);
            });
        });
    });

    /*	BAD BROWSER	*/
    if (/msie 6/i.test(navigator.userAgent)) {
        $('.layout.base, .layout.footer').hide();
        $('.bad_browser').fadeIn(300);
    }
    $('.bad_browser .btn_close').bind('mouseover', function() { this.className = 'sprite btn_close hover'; });
    $('.bad_browser .btn_close').bind('mouseout', function() { this.className = 'sprite btn_close'; });
    $('.bad_browser .btn_close').bind('click', function() {
        $('.bad_browser').fadeOut(300);
    });

    jc.widget.init_event_handlers();

    /*	GLOASSARY	*/
    $('.exp_intro').bind('mouseover', function() {
        if (this.getAttribute('jc_expanded') == 1) return;
        this.className = this.className.replace(/ hover/ig, '') + ' hover';
    });
    $('.exp_intro').bind('mouseout', function() {
        this.className = this.className.replace(/ hover/ig, '');
    });
    $('.exp_intro').bind('click', function() {
        var _this = this;
        var desc = getChild(_this, 'className', 'ext_description');
        if (/msie 7/i.test(navigator.userAgent)) {
            if (!_this.getAttribute('jc_expanded') || _this.getAttribute('jc_expanded') == 0) {
                $('.geek_expand', desc.parentNode).addClass('hideMe');
                $('.geek_collapse', desc.parentNode).removeClass('hideMe');
                $(desc)[0].style.display = 'block';
                $(desc)[0].style.height = 'auto';
                _this.setAttribute('jc_expanded', 1);
            } else {
                $('.geek_collapse', desc.parentNode).addClass('hideMe');
                $('.geek_expand', desc.parentNode).removeClass('hideMe');
                $(desc)[0].style.display = 'none';
                _this.setAttribute('jc_expanded', 0);
            }
        } else {
            if (!_this.getAttribute('jc_expanded') || _this.getAttribute('jc_expanded') == 0) {
                $(desc).show();
                $(desc).animate({ 'height': desc.scrollHeight + 'px' }, 500, function() {
                    $('.geek_expand', desc.parentNode).addClass('hideMe');
                    $('.geek_collapse', desc.parentNode).removeClass('hideMe');
                    _this.setAttribute('jc_expanded', 1);
                    _this.className = _this.className.replace(/ hover/ig, '');
                });
            } else {
                $(desc).animate({ 'height': '0px' }, 500, function() {
                    $('.geek_collapse', desc.parentNode).addClass('hideMe');
                    $('.geek_expand', desc.parentNode).removeClass('hideMe');
                    _this.setAttribute('jc_expanded', 0);
                    $(desc).hide();
                });
            }
        }
    });

    /*	JC MAPS	*/
    $('.other_country').bind('click', function() {
        var oCntry = $('.src_country')[0].innerHTML;
        var nCntry = this.innerHTML;
        nCntry = nCntry.slice(0, 1) + nCntry.slice(1).toLowerCase();

        $('.src_country').html(nCntry);
        $(this).html(oCntry);
        jc.maps.country = nCntry;
        jc.maps.render.reset();
    });

    $('.orange_close').bind('mouseover', function() { this.className = this.className.replace(/ hover/ig, '') + ' hover'; });
    $('.orange_close').bind('mouseout', function() { this.className = this.className.replace(/ hover/ig, ''); });
    $('.orange_close').bind('click', function() {
        this.className = this.className.replace(/ hover/ig, '');
        $(this.parentNode.parentNode).css('display', 'none');
    });

    /*	SORTER WINDOW	*/
    jc.sorter.pre_init();

    $("*[jc_element='window']").bind('mousedown', function(e) {
        var srcEl = event.srcElement;
        var is_handle = getParent(srcEl, 'jc_handle', 'false');
        if (is_handle || (e.target && e.target.nodeName == 'input')) return;
        _env.cancelEvent();
        jc.sorter.drag.on = true;
        jc.sorter.drag.win = getParent(srcEl, 'jc_element', 'window');
        var srcDim = getDim(srcEl, 'jc_element', 'window');
        var sorter_parent_dim = getDim(jc.sorter.drag.win.parentNode);

        jc.sorter.drag.diff_y = event.offsetY + sorter_parent_dim.t + srcDim.t;
        jc.sorter.drag.diff_x = event.offsetX + sorter_parent_dim.l + srcDim.l;

        var lb = getParent(jc.sorter.drag.win, 'jc_element', 'layout_base');
        jc.sorter.drag.body_dim = (lb) ? getDim(lb) : { w: 9999, h: 9999 };
        jc.sorter.drag.sorder_dim = getDim(jc.sorter.drag.win);
    });
    $(document).bind('mousemove', function(e) {
        if (!jc.sorter.drag.on) return;
        _env.cancelEvent();
        var ie7_diff = (/msie 7/i.test(navigator.userAgent)) ? $(document).scrollTop() : 0;
        var ff_diff = (/firefox/i.test(navigator.userAgent)) ? $(document).scrollTop() : 0;
        var t = Math.max(e.pageY - jc.sorter.drag.diff_y - ie7_diff + ff_diff + 20, 3);
        //var l = Math.max(Math.min(e.pageX - jc.sorter.drag.diff_x + $(document).scrollLeft(), jc.sorter.drag.body_dim.w - jc.sorter.drag.sorder_dim.w), ((jc.sorter.drag.body_dim.w == 9999) ? -9999 : 0));
        var l = e.pageX - jc.sorter.drag.diff_x + $(document).scrollLeft();
        //var l = e.pageX - jc.sorter.drag.diff_x;
        jc.sorter.drag.win.style.top = t + 'px';
        jc.sorter.drag.win.style.left = l + 'px';
    });
    $(document).bind('mouseup', function(e) {
        jc.sorter.drag.win =
        jc.sorter.drag.on = false;
    });

    $('.prod_sorter .sortwin_btn *').bind('click', function() {
        (($('.prod_sorter')[0].className.indexOf('max_mode') > -1) ? jc.sorter.collapse : jc.sorter.expand)();
    });

    /*	SORT	*/
    $('.layout').bind('mouseover', function(e) {
        if (e.target == this) {
            setTimeout(function() {
                $('.prod_analysis').trigger('mouseout');
            }, 100);
        }
    });

    $('.combox .arrow_down').bind('click', function() {
        _env.cancelEvent();
        var cEl = getParent(this, 'className', 'box_body');
        cEl = getChild(cEl, 'className', 'option');
        $(cEl).trigger('click');
    });

    $('.combox').bind('click', function(e) {
        var srcEl = (event) ? event.srcElement : e.target;
        if (srcEl == null || (srcEl.nodeName == 'SPAN' && srcEl.parentNode.className.indexOf('sprite arrow_') == -1) || srcEl.className == 'option label') return;
        var _this = this;
        var cb = $('.xCombo', _this)[0];
        var coll_func = function(context) {
            $('.xCombo', context).animate({ 'height': '0px' }, 200, function() {
                $(context).css('z-index', '');
                jc.sorter.active.combox = false;

            });
        };
        if (jc.sorter.active.combox && jc.sorter.active.combox != this) coll_func(jc.sorter.active.combox);

        if ($(_this).css('z-index') == 3) coll_func(_this);
        else {
            $(_this).css('z-index', 3);
            $(cb).animate({ 'height': cb.scrollHeight + 'px' }, 200, function() {
                jc.sorter.active.combox = _this;
                clearTimeout(jc.sorter.active.combox_collapse);
                jc.sorter.active.combox_collapse = setTimeout(function() {
                    if (jc.sorter.active.combox) $('.box_body', jc.sorter.active.combox).trigger('click');
                }, 2000);
            });
        }
    });

    /*
    $('.combox').bind('click', function(e) {
    var srcEl = (event)? event.srcElement : e.target;
    if (srcEl == null || (srcEl.nodeName == 'SPAN' && srcEl.parentNode.className.indexOf('sprite arrow_') == -1) || srcEl.className == 'option label') return;
    var _this = this;
    var coll_func = function(context) {
    $('.arrow_up', context).removeClass('arrow_up').addClass('arrow_down');
    $('.box_body', context).animate({ height: '17px' }, 200, function() {
    jc.sorter.active.combox = false;
    clearTimeout(jc.sorter.active.combox_collapse);
    jc.sorter.active.combox_collapse = false;
    });
    };
    if (jc.sorter.active.combox && jc.sorter.active.combox != this) coll_func(jc.sorter.active.combox);

		var height = $('.box_body', _this)[0].scrollHeight + 2;
    if ($('.arrow_down, .arrow_up', _this)[0].className.indexOf('arrow_down') > -1) {
    $('.arrow_down', _this).removeClass('arrow_down').addClass('arrow_up');
    $('.box_body', _this).animate({ height: height + 'px' }, 200, function() {
    jc.sorter.active.combox = _this;
    clearTimeout(jc.sorter.active.combox_collapse);
    jc.sorter.active.combox_collapse = setTimeout(function() {
    $(jc.sorter.active.combox).trigger('click');
    }, 2000);
    });
    } else coll_func(_this);
    });
    */

    /*	SCALE	*/
    $('.marker_scale').bind('mousedown', function() {
        var srcEl = event.srcElement;
        if (srcEl.parentNode.className.indexOf('marker_scale') == -1) return;

        var m_area = $('.marked_area', srcEl.parentNode)[0];
        jc.scale.marker_sibling = $('.scale_marker', srcEl.parentNode);
        jc.scale.snap = (this.getAttribute('jc_scale_snap')) ? parseInt(this.getAttribute('jc_scale_snap')) : 0;

        var c_left = event.offsetX - 8 + (jc.scale.snap / 2) + ((srcEl.className.indexOf('marked_area') > -1) ? m_area.offsetLeft : 0);
        var marker, tmp_left = new Array(), mrk_left = new Array();
        var markers = $('.scale_marker', srcEl.parentNode);
        if (markers.length == 1) {
            marker = 'marker_1';
        } else {
            for (var i = 0, il = markers.length; i < il; i++) {
                var cn = markers[i].className.match(/marker_\d/ig);
                var ml = Math.abs(c_left - parseInt($(markers[i]).css('left')));
                tmp_left.push(ml);
                mrk_left.push(ml + ':' + cn);
            }
            tmp_left.sort_int(1);
            for (var i = 0, il = mrk_left.length; i < il; i++) {
                if (tmp_left[0].toString() == mrk_left[i].split(':')[0]) {
                    marker = mrk_left[i].split(':')[1];
                    break;
                }
            }
        }
        var left = jc.scale.calc_left($('.' + marker, srcEl.parentNode)[0], c_left);
        if (markers.length > 1) {
            var anim = {
                'width': (((marker == 'marker_1') ? markers[1].offsetLeft - left : left - markers[0].offsetLeft) + 1) + 'px'
            };
            if (marker == 'marker_1') anim.left = (left + 6) + 'px';
            $(m_area).animate(anim, 300);
        }
        $('.' + marker, srcEl.parentNode).animate({ 'left': left + 'px' }, 300, function() {
            var xml_attr = srcEl.parentNode.getAttribute('jc_xml_attr');
            if (xml_attr) jc.sorter.draw.pro_filter[xml_attr] = jc.scale.get_max_min(srcEl.parentNode);
            if (srcEl.parentNode.className.indexOf('scale_imgsize') > -1) {
                var o_val = srcEl.parentNode.getAttribute('jc_scale_value');
                var n_val = jc.scale.get_imgsize_scale_value();
                if (o_val == n_val) return;
                jc.sorter.set_img_size(n_val);
            }
            jc.sorter.draw.products();
        });
    });
    $('.scale_marker').bind('mousedown', function() {
        jc.scale.dim = getDim(this.parentNode);
        jc.scale.marker = this;
        jc.scale.marker_sibling = $('.scale_marker', jc.scale.marker.parentNode);
        jc.scale.marked_area = $('.marked_area', jc.scale.marker.parentNode)[0];
        jc.scale.snap = (this.parentNode.getAttribute('jc_scale_snap')) ? parseInt(this.parentNode.getAttribute('jc_scale_snap')) : 0;
    });
    $(document).bind('mousemove', function(e) {
        var marker = jc.scale.marker;
        if (!marker) return;
        var l = e.pageX - jc.scale.dim.l - 6 + (jc.scale.snap / 2);
        l = jc.scale.calc_left(marker, l);
        marker.style.left = l + 'px';
        if (jc.scale.marked_area) {
            if (marker == jc.scale.marker_sibling[0]) jc.scale.marked_area.style.left = (l + 6) + 'px';
            jc.scale.marked_area.style.width = (jc.scale.marker_sibling[1].offsetLeft - jc.scale.marker_sibling[0].offsetLeft + 1) + 'px';
        }
    });
    $(document).bind('mouseup', function(e) {
        var marker = jc.scale.marker;
        if (!marker) return;
        var xml_attr = marker.parentNode.getAttribute('jc_xml_attr');
        if (xml_attr) jc.sorter.draw.pro_filter[xml_attr] = jc.scale.get_max_min(marker.parentNode);
        if (marker.parentNode.className.indexOf('scale_imgsize') > -1) {
            var o_val = marker.parentNode.getAttribute('jc_scale_value');
            var n_val = jc.scale.get_imgsize_scale_value();
            if (o_val == n_val) return;
            jc.sorter.set_img_size(n_val);
        }
        jc.sorter.draw.products();
        jc.scale.marker =
		jc.scale.marked_area = false;
        jc.scale.marker_sibling = false;
        jc.scale.snap = 0;
    });

    /*	POST-IT	*/
    $('.postit').bind('mousedown', function() {
        if (event.srcElement.parentNode.className != 'sprite postit') return;
        jc.tmp.postit_move = {
            dim: getDim(this),
            diff_y: event.offsetY,
            diff_x: event.offsetX + getDim($('.layout.base')[0]).l
        };
    });
    $(document).bind('mousemove', function(e) {
        if (!jc.tmp.postit_move) return;
        var t = event.clientY - jc.tmp.postit_move.diff_y;
        var l = event.clientX - jc.tmp.postit_move.diff_x;
        $('.postit')[0].style.top = t + 'px';
        $('.postit')[0].style.left = l + 'px';
    });
    $(document).bind('mouseup', function(e) {
        jc.tmp.postit_move = false;
    });
    $('.postit_close').bind('mouseup', function(e) {
        $('.postit').fadeOut(300);
    });

    /*	PRODUCT PREVIEW	*/
    $('.preview_ctrls.left').bind('mouseover', function() {
        if (this.parentNode.className.indexOf('prod_analysis') > -1) $('.img_zoom').hide();
        jc.rotate.start($('img', this.parentNode)[0], 1);
    });
    $('.preview_ctrls.left').bind('mouseout', function() {
        jc.rotate.stop();
    });

    $('.preview_ctrls.right').bind('mouseover', function() {
        if (this.parentNode.className.indexOf('prod_analysis') > -1) $('.img_zoom').hide();
        jc.rotate.start($('img', this.parentNode)[0], -1);
    });
    $('.preview_ctrls.right').bind('mouseout', function() {
        jc.rotate.stop();
    });

    /*	BLOG	*/
    $('.comment_expander').bind('click', function() {
        var this_ce = this;
        var this_be = getParent(this_ce, 'className', 'blog_entry');
        var be_comments = getChild(this_be, 'className', 'comments');
        $('*', this_ce).fadeOut(500);
        $(be_comments).fadeIn(100);
        $(be_comments).animate({ height: $(be_comments)[0].scrollHeight + 'px' }, 400, function() {
            $(be_comments).css('overflow', 'visible');
        });
    });

    $('.click_to_resize').bind('click', function() {
        $('.click_to_resize').fadeOut(500);
        $('.copy_info *, .copy_info').animate({ fontSize: '12px' }, 400);
    });
    $('.copy_info').bind('click', function() {
        $('.copy_info *, .copy_info').animate({ fontSize: '3px' }, 400, function() {
            $('.click_to_resize').fadeIn(500);
        });
    });

    /*	SEND AS EMAIL	*/
    $('a.link_as_mail').bind('click', function() {
        _env.cancelEvent();
        var blogEl = getParent(this, 'className', 'blog_entry');
        var winEl = ($('div.send_as_mail', blogEl).length > 0) ? $('div.send_as_mail', blogEl)[0] : blogEl.appendChild($('div.send_as_mail.hideMe')[0]);
        var link_dim = (this.className.indexOf('product') > -1) ? getDim(this, 'className', 'layout right') : getDim(this, 'className', 'blog_entry');
        var dim2 = getDim(this);
        var dim3 = getDim(this, 'className', 'blog_entry');

        var top_diff = 260;
        var left_diff = 2;
        switch (this.getAttribute('jc_align_box')) {
            case 'bottom':
                top_diff = 520;
                break;
        }

        if (/msie 7/i.test(navigator.userAgent)) dim2.t += $(document).scrollTop();

        $(blogEl).css('z-index', '2');
        $(winEl).css('top', (dim3.t - 320) + 'px');
        $(winEl).css('left', (link_dim.l - 200) + 'px');
        $(winEl).fadeIn(500, function() {
            $('html, body').animate({ scrollTop: $(winEl).offset().top - 340 }, 300);
        });
    });
    $('.send_as_mail .btn_close').bind('mouseover', function() { this.className = 'sprite btn_close hover'; });
    $('.send_as_mail .btn_close').bind('mouseout', function() { this.className = 'sprite btn_close'; });
    $('.send_as_mail .btn_close').bind('click', function() {
        var winEl = getParent(this, 'jc_element', 'window');
        $(winEl).fadeOut(500, function() {

        });
    });
    $('.send_as_mail .form_button').bind('click', function() {
        var arr = new Array();
        var form = getParent(this, 'jc_element', 'window');

        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            var val = inEl[i].value;
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + val + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }

        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }

        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $('#' + xError.text)[0];
                    var dim = getDim(error_el, 'jc_element', 'window');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $(form).animate({ top: '+=220px', height: '60px' }, 600);
                    $('.form_els', form).fadeOut(200, function() {
                        $('.form_thanx', form).fadeIn(200, function() {
                            setTimeout(function() {
                                $(form).fadeOut(500, function() {
                                    $(form).css('height', 'auto');
                                    $('.form_els', form).show();
                                    $('.form_thanx', form).hide();
                                    var iEl = $('input, textarea', form);
                                    for (var i = 0, il = iEl.length; i < il; i++) {
                                        iEl[i].value = iEl[i].defaultValue;
                                    }
                                });
                            }, 2000);
                        });
                    });
                }
            }
        });
    });

    /*	FORM	*/
    $('.button.btn_l').bind('mousedown', function() {
        this.className = this.className.replace(/ btn_down/ig, '') + ' btn_down';
    });
    $('.button.btn_l').bind('mouseup', function() {
        this.className = this.className.replace(/ btn_down/ig, '');
    });
    $('.button.btnfi_l').bind('mousedown', function() {
        this.className = this.className.replace(/ btn_down/ig, '') + ' btn_down';
    });
    $('.button.btnfi_l').bind('mouseup', function() {
        this.className = this.className.replace(/ btn_down/ig, '');
    });
    $('input#accept').bind('click', function() {
        if ($('input#accept').attr('checked')) {
            $('.input_fld.checkbox_fld').css('color', '#000000');
            $('.input_fld.checkbox_fld a').css('color', '#000000');
            return;
        }
    });
    $('.button.btn_l, .form_button').bind('click', function() {
        var arr = new Array();
        var form = getParent(this, 'className', 'fake_form');
        if (!form) return;
        if ($('input#accept').length > 0 && !$('input#accept').attr('checked')) {
            var offset_form = $('.form_els').offset();
            var offset = $('input#accept').offset();
            $('.red_bubble_check').css('top', (offset.top - offset_form.top - 90) + 'px');
            $('.red_bubble_check').css('left', (offset.left - offset_form.left) + 'px');
            $('.red_bubble_check').fadeIn(200, function() {
                setTimeout(function() {
                    $('.red_bubble_check', form_box).fadeOut(200);
                }, 1500);
            });
            $('.input_fld.checkbox_fld').css('color', '#ff0000');
            $('.input_fld.checkbox_fld a').css('color', '#ff0000');
            return;
        }
        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            var val = (inEl[i].value == inEl[i].defaultValue) ? '' : inEl[i].value;
            if (inEl[i].readOnly) val = inEl[i].defaultValue;
            if (inEl[i].type == 'checkbox') val = inEl[i].checked;
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + val + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }

        var form_box = getParent(form, 'jc_element', 'form_box');
        var last_comment = $('.comment.hideMe', form_box)[0];
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '';
        if (typeof FormSettings != 'undefined' && FormSettings.length > 0) {
            servicePostForm = FormSettings[0];
        }

        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                var xDate, tmp_date = r.selectNodes('//Field/Type');
                var xValue = r.selectNodes('//Field/Value');

                for (var i = 0, il = tmp_date.length; i < il; i++) {
                    if (tmp_date[i].text == 'date') {
                        var tmp = $('.comment.hideMe')[0].cloneNode(true).outerHTML;
                        var inEl = getChildren(form, 'jc_type');
                        for (var j = 0, jl = inEl.length; j < jl; j++) {
                            var rx = new RegExp('\\\$' + inEl[j].getAttribute('jc_type') + '\\\$', 'ig')
                            tmp = tmp.replace(rx, inEl[j].value);
                            inEl[j].value = inEl[j].defaultValue;
                        }
                        var span = document.createElement('SPAN');
                        span.innerHTML = tmp.replace(/\$date\$/ig, r.selectSingleNode('//Field/Value').text);
                        var tmpEl = last_comment.parentNode.insertBefore(span.firstChild, last_comment);

                        $(tmpEl.parentNode).animate({ height: ($(tmpEl.parentNode).height() + $(tmpEl).height() + 15) + 'px' }, 300, function() {
                            $(tmpEl).fadeIn(250);
                        });
                        return;
                    }
                }
                if (xError) {
                    var error_el = $('#' + xError.text)[0];
                    var dim = (getParent(error_el, 'jc_element', 'form_holder')) ? getDim(error_el, 'jc_element', 'form_holder') : getDim(error_el, 'className', 'form_holder');
                    if (xValue[0].text.length == 0) {
                        $('.red_bubble', form_box).css('top', (dim.t - 10 - parseInt($('.red_bubble', form_box).css('height'))) + 'px');
                        $('.red_bubble', form_box).css('left', (dim.l - 20) + 'px');
                        $('.red_bubble', form_box).fadeIn(200, function() {
                            setTimeout(function() {
                                $('.red_bubble', form_box).fadeOut(200);
                            }, 1500);
                        });
                    }
                    else if (error_el.id == 'ssn') {
                        $('.red_bubble_ssn', form_box).css('top', (dim.t - 10 - parseInt($('.red_bubble_ssn', form_box).css('height'))) + 'px');
                        $('.red_bubble_ssn', form_box).css('left', (dim.l - 20) + 'px');
                        $('.red_bubble_ssn', form_box).fadeIn(200, function() {
                            setTimeout(function() {
                                $('.red_bubble_ssn', form_box).fadeOut(200);
                            }, 1500);
                        });
                    }
                    else {
                        $('.red_bubble', form_box).css('top', (dim.t - 10 - parseInt($('.red_bubble', form_box).css('height'))) + 'px');
                        $('.red_bubble', form_box).css('left', (dim.l - 20) + 'px');
                        $('.red_bubble', form_box).fadeIn(200, function() {
                            setTimeout(function() {
                                $('.red_bubble', form_box).fadeOut(200);
                            }, 1500);
                        });
                    }
                } else {
                    $('.form_els', form_box).fadeOut(200, function() {
                        $('.form_thanx', form_box).fadeIn(200);
                    });
                }
            }
        });
    });

    /*	MATCH MODULE	*/
    jc.match_mod.init();
    $('.match_slot .ms_left, .match_slot .ms_right').bind('click', function() {
        var aEl = this;
        var reel = xdbc.get.child(this.parentNode, 'className', 'match_reel');
        var dir = (aEl.className.indexOf('ms_left') > -1) ? '+' : '-';
        jc.match_mod.go(reel, dir);
    });
    /*	PRODUCTS	*/
    if ($('.prod_analyzer').length > 0) {
        var img = $('.img_01', $('.prod_analyzer')[0].parentNode)[0];
        $('.prod_analyzer')[0].dim = getDim(img);
        $('.prod_analyzer')[0].dim.zw = parseInt($('.img_zoom').width() / 2);
        $('.prod_analyzer')[0].dim.zh = parseInt($('.img_zoom').height() / 2);

        jc.rotate.preload.init(img);
    }
    $('.prod_analyzer').bind('mousemove', function(e) {
        if (!jc.tmp.imgzoom) return;
        var _this = this;
        var t = e.clientY - _this.dim.t + $(document).scrollTop();
        var l = e.clientX - _this.dim.l;

        if (t < 0 || l < 0 || t > _this.dim.h || l > _this.dim.w) {
            $('.img_zoom').hide();
            return;
        } else if (e.target.className == 'prod_analyzer') $('.img_zoom').show();

        $('.img_zoom').css('top', (t - $('.prod_analyzer')[0].dim.zh) + 'px');
        $('.img_zoom').css('left', (l - $('.prod_analyzer')[0].dim.zw) + 'px');
        $('.img_zoom img').css('top', '-' + (t * 1.55) + 'px');
        $('.img_zoom img').css('left', '-' + (l * 1.45) + 'px');
    });

    $('.img_zoom').bind('click', function() {
        jc.tmp.imgzoom = false;
        $('.img_zoom').hide();
        $('.preview_ctrls, .zoom_toggle').fadeIn(250, function() {

        });
    });

    $('.zoom_toggle').bind('mouseover', function() { this.className = this.className.replace(/ hover/ig, '') + ' hover'; });
    $('.zoom_toggle').bind('mouseout', function() { this.className = this.className.replace(/ hover/ig, ''); });
    $('.zoom_toggle').bind('click', function() {
        $('.img_zoom img')[0].src = $('.product_imgs img')[0].src.replace(/305x435/i, '630x900');
        $('.preview_ctrls, .zoom_toggle').fadeOut(250, function() {
            jc.tmp.imgzoom = true;
        });
    });

    /*$('.btn_back').bind('click', function() {
    history.go(-1);
    });*/
    $('.btn_show_normal').bind('mouseup', function() {
        $('.layout_07').fadeOut(300, function() {
            $('.layout_06').fadeIn(300, function() {

            });
        });
    });

    if ($('.extra_imgs img').length > 0) $('.btn_only_pics').removeClass('hideMe');
    $('.btn_only_pics a').bind('click', function() {
        xdbc.env.cancelEvent();
        var dim = xdbc.get.dim($('.extra_imgs')[0]);
        $('html, body').animate({ scrollTop: dim.t }, 200);
    });

    /*	INITIATES RATING	*/
    $('.love_it .sprite').bind('click', function() {
        var r = (this.className.indexOf('thumbs_up') > -1) ? 1 : -1;
        /*	POST XML NODE	*/
        if (typeof RatingServiceSettings != 'undefined' && RatingServiceSettings[0].length > 0) {
            ratingService = RatingServiceSettings[0];
        }

        $.post(ratingService, { pageID: $('input.page_id')[0].value, productID: $('input.product_id')[0].value, rating: r },
		function(r) {
		    /*	HANDLING RESPONSE FROM SERVER	*/

		});
    });
    $('.love_it .sprite').bind('mouseover', function() {
        $(this).addClass('over');
    });
    $('.love_it .sprite').bind('mouseout', function() {
        $(this).removeClass('over');
    });

    $('.pro_laundry .laundry').bind('mouseover', function() {
        var dim = getDim(this, 'nodeName', 'DIV');
        $('.pro_laundry .big_laundry')[0].src = this.src.replace(/\/laundry\//i, '/laundry/big/').replace(/.jpg/i, '.png');
        $('.pro_laundry .big_laundry').css('top', (dim.t - 10) + 'px');
        $('.pro_laundry .big_laundry').css('left', (dim.l - 10) + 'px');
        $('.pro_laundry .big_laundry').css('display', 'block');
    });
    $('.pro_laundry .big_laundry').bind('mouseout', function() {
        $('.pro_laundry .big_laundry').hide();
    });

    $('.ol_cover .rbw_close').bind('click', function() {
        $('.page_cover, .ol_cover').hide();
    });

    $('.fine_print').bind('click', function() {
        _env.cancelEvent();
        $('html, body').animate({ scrollTop: $($('h2.copy_head')[0].parentNode).offset().top }, 1000);
    });

    $('.go_to_top').bind('click', function() {
        $('html, body').animate({ scrollTop: 0 }, document.body.offsetHeight);
    });

    $('.get_more_purchase').bind('click', function() {
        xdbc.env.cancelEvent();
        var _this = this;
        var p = xdbc.get.parent(_this, 'nodeName', 'P');
        var sp = $('.loading', p);
        $(_this).hide();
        $(sp).show();

        var dates = $('.purchase_list var');
        if (dates.length == 0) {
            $($('.get_more_purchase')[0].parentNode).hide();
            return;
        }
        var last_date = $(dates[dates.length - 1]).html();
        var data = '{"ID":"last_date", "Value":"' + last_date + '", "Type":"date"}';

        var servicePostForm = '/tmp3.xml';
        if (typeof FormSettings != 'undefined' && FormSettings.length > 0) {
            servicePostForm = FormSettings[0];
        }

        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var str = '';
                var xBuy = r.selectNodes('.//*[@date]');
                for (var i = 0, il = xBuy.length; i < il; i++) {
                    var cn = (i == 0) ? 'class="dvdr"' : '';
                    str += '<tr ' + cn + '>' +
							'	<td>' + xBuy[i].getAttribute('date_str') + ' <var>' + xBuy[i].getAttribute('date') + '</var></td>' +
							'	<td>' + xBuy[i].getAttribute('amount') + '</td>' +
							'	<td><img alt="' + xBuy[i].getAttribute('store_name') + '" src="' + xBuy[i].getAttribute('logo') + '"/></td>' +
							'	<td>' + xBuy[i].getAttribute('location') + '</td>' +
							'</tr>';
                }
                $('.purchase_list').append(str);
                $(_this).show();
                $(sp).hide();

                setTimeout(function() {
                    $('.purchase_list tr').removeClass('dvdr');
                }, 1000);
            }
        });
    });

    $('.with_hands, .no_hands').bind('click', function() {
        xdbc.env.cancelEvent();
        if (this.className.indexOf('no_hands') > -1) {
            $('.no_hands').toggleClass('hideMe');
            $('.with_hands').toggleClass('hideMe');
            if ($('.bracelet_list').length > 0) {
                $('.bracelet_list').toggleClass('hideMe');
                $('.prod_bracelets').toggleClass('hideMe');
            }
            if ($('.earring_list').length > 0) {
                $('.earring_list').toggleClass('hideMe');
                $('.prod_earrings').toggleClass('hideMe');
            }
            if ($('.neclace_list').length > 0) {
                $('.neclace_list').toggleClass('hideMe');
                $('.prod_necklaces').toggleClass('hideMe');
            }
        } else {
            $('.no_hands').toggleClass('hideMe');
            $('.with_hands').toggleClass('hideMe');
            if ($('.bracelet_list').length > 0) {
                $('.bracelet_list').toggleClass('hideMe');
                $('.prod_bracelets').toggleClass('hideMe');
            }
            if ($('.earring_list').length > 0) {
                $('.earring_list').toggleClass('hideMe');
                $('.prod_earrings').toggleClass('hideMe');
            }
            if ($('.neclace_list').length > 0) {
                $('.neclace_list').toggleClass('hideMe');
                $('.prod_necklaces').toggleClass('hideMe');
            }
        }
    });

    $('.acs_prod_layout .prod_big').bind('mouseup', function() {
        if (this.src.indexOf('banner/page') > -1) {
            this.src = this.src.replace(/banner\/page/i, 'product/page');
            this.src = this.src.replace(/_ill_630/i, '_prod_630');
            $('.prod_small')[0].src = $('.prod_small')[0].src.replace(/product\/page/i, 'banner/page');
            $('.prod_small')[0].src = $('.prod_small')[0].src.replace(/_prod_300/i, '_ill_300');
        } else {
            this.src = this.src.replace(/product\/page/i, 'banner/page');
            this.src = this.src.replace(/_prod_630/i, '_ill_630');
            $('.prod_small')[0].src = $('.prod_small')[0].src.replace(/banner\/page/i, 'product/page');
            $('.prod_small')[0].src = $('.prod_small')[0].src.replace(/_ill_300/i, '_prod_300');
        }
    });

    $('.acs_prod_layout .prod_small').bind('mouseup', function() {
        if (this.src.indexOf('product/page') > -1) {
            this.src = this.src.replace(/product\/page/i, 'banner/page');
            this.src = this.src.replace(/_prod_300/i, '_ill_300');
            $('.prod_big')[0].src = $('.prod_big')[0].src.replace(/banner\/page/i, 'product/page');
            $('.prod_big')[0].src = $('.prod_big')[0].src.replace(/_ill_630/i, '_prod_630');
        }
        else {
            this.src = this.src.replace(/banner\/page/i, 'product/page');
            this.src = this.src.replace(/_ill_300/i, '_prod_300');
            $('.prod_big')[0].src = $('.prod_big')[0].src.replace(/product\/page/i, 'banner/page');
            $('.prod_big')[0].src = $('.prod_big')[0].src.replace(/_prod_630/i, '_ill_630');
        }
    });

    jc.tmp.clng = $('.layout.base')[0].className.split(' ')[2];
    $('.language a.flag_' + jc.tmp.clng).bind('mouseover', function() {

        jc.tmp.flgs = ['no', 'fi'];
        switch (jc.tmp.clng) {
            case 'fi':
                jc.tmp.flgs = ['no', 'sv'];
                break;
            case 'no':
                jc.tmp.flgs = ['fi', 'sv'];
                break;
        }

        $('.language a.flag_' + jc.tmp.flgs[0] + ', .language a.flag_' + jc.tmp.flgs[1]).show();
        $('.language a.flag_' + jc.tmp.flgs[0] + '').animate({ 'top': '35px' }, 150);
        $('.language a.flag_' + jc.tmp.flgs[1]).animate({ 'top': '70px' }, 150);

        setTimeout(function() {
            $('.language a.flag_' + jc.tmp.flgs[0] + ', .language a.flag_' + jc.tmp.flgs[1]).animate({ 'top': '0px' }, 150, function() {
                $('.language a.flag_' + jc.tmp.flgs[0] + ', .language a.flag_' + jc.tmp.flgs[1]).hide();
            });
        }, 3000);
    });

    $("*[jc_element='live']").bind('mouseover', function() { if (this.className.indexOf('dsbld') > -1) return; $(this).addClass('over').removeClass('down'); });
    $("*[jc_element='live']").bind('mouseout', function() { if (this.className.indexOf('dsbld') > -1) return; $(this).removeClass('over').removeClass('down'); });
    $("*[jc_element='live']").bind('mousedown', function() { if (this.className.indexOf('dsbld') > -1) return; $(this).removeClass('over').addClass('down'); });
    $("*[jc_element='live']").bind('mouseup', function() { if (this.className.indexOf('dsbld') > -1) return; $(this).removeClass('down').addClass('over'); });

    $('.club_faq a').bind('click', function() {
        var _this = this;
        var link = xdbc.get.parent(_this, 'nodeName', 'A');
        if (link.parentNode.parentNode.active) {
            $(link.parentNode.parentNode.active).fadeOut(100);
        }
        if (link.parentNode.nodeName != 'LI') return;
        $('.club_faq_answer', link.parentNode).fadeIn(200, function() {
            link.parentNode.parentNode.active = this;
        });
    });

    $('.save_userinfo').bind('click', function() {
        xdbc.env.cancelEvent();

        var arr = new Array();
        var form = xdbc.get.parent(this, 'className', 'user_info');
        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + inEl[i].value + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '/tmp.xml';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }
        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $("[name='" + xError.text + "']")[0];
                    var dim = getDim(error_el, 'className', 'user_info');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });
    });

    $('.req_new_card').bind('click', function() {
        var arr = new Array();
        var form = xdbc.get.parent(this, 'className', 'card_list');
        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + inEl[i].value + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '/tmp4.xml';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }
        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $("[name='" + xError.text + "']")[0];
                    var dim = getDim(error_el, 'className', 'card_list');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });
    });

    $('.req_do_it').bind('click', function() {
        var _this = this;
        xdbc.env.cancelEvent();

        var data = '{"ID":"user_id","Value":"' + $("[name='user_id']").html() + '","Type":"id"}';
        var servicePostForm = '/tmp4.xml';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }

        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                jc.club.show_tooltip('new_card_sent', _this);
            }
        });
    });

    $('.become_member').bind('click', function() {
        xdbc.env.cancelEvent();
        var dim = xdbc.get.dim(this, 'className', 'member_step');
        $('.become_member_form').css({ 'top': (dim.t + 35) + 'px', 'left': (dim.l - 50) + 'px' });
        $('.become_member_form').fadeIn(200);
    });
    $('.become_member_form .close_x').bind('click', function() {
        $('.become_member_form').fadeOut(200);
    });
    $('.reg_member').bind('click', function() {
        xdbc.env.cancelEvent();
        var arr = new Array();
        var form = xdbc.get.parent(this, 'className', 'become_member_form hideMe');
        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + inEl[i].value + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '/tmp.xml';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }
        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $("[name='" + xError.text + "']", form)[0];
                    console.log(form);
                    var dim = getDim(error_el, 'className', 'become_member_form hideMe');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.become_member_form').fadeOut(200);
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });
    });

    $('.activate').bind('click', function() {
        xdbc.env.cancelEvent();
        var dim = xdbc.get.dim(this, 'className', 'get_login_details');
        $('.get_login_details_form').css({ 'top': (dim.t + 35) + 'px', 'left': (dim.l - 420) + 'px' });
        $('.get_login_details_form').fadeIn(200);
    });
    $('.get_login_details_form .close_x').bind('click', function() {
        $('.get_login_details_form').fadeOut(200);
    });
    $('.activate_form').bind('click', function() {
        xdbc.env.cancelEvent();
        var arr = new Array();
        var form = xdbc.get.parent(this, 'className', 'get_login_details_form hideMe');
        var inEl = getChildren(form, 'jc_type');
        for (var i = 0, il = inEl.length; i < il; i++) {
            arr.push('{"ID":"' + inEl[i].id + '","Value":"' + inEl[i].value + '","Type":"' + inEl[i].getAttribute('jc_type') + '"}');
        }
        var data = '[' + arr.join(',') + ']';
        var servicePostForm = '/tmp.xml';
        if (typeof EmailSettings != 'undefined' && EmailSettings.length > 0) {
            servicePostForm = EmailSettings[0];
        }
        $.ajax({
            type: "POST",
            url: servicePostForm,
            data: "{ fields : " + data + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function(r) {
                var r = xdbc.load(r);
                var xError = r.selectSingleNode('//Field/ID');
                if (xError) {
                    var error_el = $("[name='" + xError.text + "']", form)[0];
                    var dim = getDim(error_el, 'className', 'get_login_details_form hideMe');
                    $('.red_bubble', form).css('top', (dim.t - parseInt($('.red_bubble', form).css('height'))) + 'px');
                    $('.red_bubble', form).css('left', (dim.l - 20) + 'px');
                    $('.red_bubble', form).fadeIn(200, function() {
                        setTimeout(function() {
                            $('.red_bubble', form).fadeOut(200);
                        }, 1500);
                    });
                } else {
                    $('.form_thanx', form).fadeIn(200, function() {
                        var iEl = $('[jc_type]');
                        for (var i = 0, il = iEl.length; i < il; i++) {
                            if (iEl[i].getAttribute('jc_type') != 'page_id' && iEl[i].getAttribute('jc_type') != 'language') {
                                iEl[i].value = '';
                            }
                        }
                        setTimeout(function() {
                            $('.get_login_details_form').fadeOut(200);
                            $('.form_thanx', form).fadeOut(200);
                        }, 2000);
                    });
                }
            }
        });
    });

    $('a.card_lost').bind('click', function() {
        xdbc.env.cancelEvent();
        $('.request_new_card').fadeIn(200, function() {

        });
    });
    $('.ds_white_box .close_x').bind('click', function() {
        $(this.parentNode).fadeOut(100);
    });

    $('.club_faq .cfa_close').bind('click', function() {
        var li = xdbc.get.parent(this, 'nodeName', 'LI');
        $('.club_faq_answer', li).fadeOut(100, function() {
            li.parentNode.active = false;
        });
    });

    $('.club_faq a').bind('click', function() {
        xdbc.env.cancelEvent();
        var link = xdbc.get.parent(this, 'nodeName', 'A');
        if (link.parentNode.nodeName != 'LI') return;
        $('.club_faq_answer', link.parentNode).fadeIn(200);
    });

    $('.doll_rotate_left, .doll_rotate_right').bind('click', function() {
        var ll_board = xdbc.get.parent(this, 'jc_el', 'll_board');
        var ll_doll = xdbc.get.child(ll_board, 'className', 'big_doll');
        var iSrc = (ll_doll.src.indexOf('_front') > -1) ? ll_doll.src.replace(/_front/i, '_back') : ll_doll.src.replace(/_back/i, '_front');
        ll_doll.src = iSrc;
    });
    $('.thumb_div').bind('click', function() {
        var ll_board = xdbc.get.parent(this, 'jc_el', 'll_board');
        var ll_doll = xdbc.get.child(ll_board, 'className', 'big_doll');
        //ll_doll.src = jc.domain +'/Global/Looklet/' + this.getAttribute('jc_doll_id') + '.jpg';
        jc.looklet.swap_big_doll(ll_doll, this);

        $('.thumb_div', this.parentNode).removeClass('active');
        $(this).addClass('active');
    });
    $('.big_doll').bind('mouseover', function() {
        $('.remix_look', this.parentNode).removeClass('hideMe');
    });
    $('.big_doll').bind('mouseout', function() {
        $('.remix_look', this.parentNode).addClass('hideMe');
    });
    $('.big_doll').bind('mousemove', function(e) {
        var pageX = (xdbc.env.ie) ? event.offsetX : e.pageX;
        var pageY = (xdbc.env.ie) ? event.offsetY : e.pageY;
        var oDim = xdbc.get.dim($('.remix_look span', this.parentNode)[0]);
        var w = parseInt(oDim.w) / 2;
        var o = $(this.parentNode).offset();
        var l = pageX - o.left;
        var t = pageY - o.top - 25;
        l = (xdbc.env.ie) ? event.offsetX - 90 : l;
        t = (xdbc.env.ie) ? event.offsetY - 25 : t;
        $('.remix_look', this.parentNode).css('top', t + 'px');
        $('.remix_look', this.parentNode).css('left', ((l > 5 && l < 210) ? l : -9999) + 'px');
    });
    $('.ll_board .cloth_list').bind('click', function() {
        $('.big_doll', this.parentNode).trigger('click');
    });
    $('.big_doll, .big_doll_price').bind('click', function() {
        if (this.parentNode.getAttribute('jc_look_id')) jc.looklet.load_look('oLook.' + this.parentNode.getAttribute('jc_look_id'));
        var o = $($('.looklet_placeholder')[0]).offset();
        $('html, body').animate({ scrollTop: o.top - 20 }, 500);
    });
    $('.llb_reel_item').bind('click', function() {
        if (this.getAttribute('jc_look_group')) jc.looklet.swap_group(this.getAttribute('jc_look_group'));
        $('.llb_reel_item', this.parentNode).removeClass('active');
        $(this).addClass('active');
        var o = $('.ll_board_box').offset();
        $('html, body').animate({ scrollTop: o.top - 30 }, 500);
    });

    $('.ll_reel_head').bind('click', function() {
        xdbc.env.cancelEvent();
        var reels = $('.ll_board_reel');
        for (var i = 0, il = reels.length; i < il; i++) {
            var rItems = $('.llb_reel_item', reels[i]).length;
            $('.wdgt_left', reels[i])[(rItems > 3) ? 'removeClass' : 'addClass']('hideMe');
            $('.wdgt_right', reels[i])[(rItems > 3) ? 'removeClass' : 'addClass']('hideMe');
        }
        $('.show_reel').fadeOut(10, function() {
            $('.ll_board_reel').fadeIn(10);
            $('.ll_board_reel').css('height', '1px');
            $('.ll_board_reel').animate({ height: '335px' }, 400, function() {
                var o = $('.llb_reel_div').offset();
                $('html, body').animate({ scrollTop: o.top - 100 }, 500);
            });
        });
    });
    $('.ll_board_reel .wdgt_close').bind('click', function() {
        $('.ll_board_reel').animate({ height: '1px' }, 400, function() {
            $('.ll_board_reel').fadeOut(10);
            $('.show_reel').fadeIn(10, function() {

            });
        });
    });
    $('.ll_board_reel .wdgt_left, .ll_board_reel .wdgt_right').bind('click', function() {
        var reel_div = $('.llb_reel_div', this.parentNode);
        if (!reel_div[0].getAttribute('jc_step')) reel_div[0].setAttribute('jc_step', 0);

        var rItems = $('.llb_reel_item', this.parentNode).length;
        var dir = (this.className.indexOf('left') > -1) ? 1 : -1;
        var step = parseInt(reel_div[0].getAttribute('jc_step')) + dir;
        if (step * -1 < 0) step = -(rItems - 3);
        else if (step < -(rItems - 3)) step = 0;
        reel_div[0].setAttribute('jc_step', step);

        reel_div.animate({ 'left': (316 * step) + 'px' }, 250, function() {

        });
    });
    $('.mLink').bind('mouseover', function() {
        clearTimeout(jc.tmp.menu_to);
        jc.tmp.menu_to = setTimeout(function() {
            $('.mLink').removeClass('over');
            $('.mRoot').removeClass('over');
        }, 2500);

        if (this.parentNode.className == 'mSubmenu') return;
        $('.mLink').removeClass('over');
        $('.mRoot').removeClass('over');
        if (this.parentNode.className.indexOf('mRoot') > -1) {
            if ($('.mSubmenu', this.parentNode).length == 0) $('.rMenu_arrow', this).css('display', 'none');

            $('.mSubmenu', this.parentNode).css('min-width', ($(this).width() - 2) + 'px');

            $(this).addClass('over');
            $(this.parentNode).addClass('over');
            $('.layout.menu')[0].aMenu = this.parentNode;
        }
    });
    if (typeof (window['jc_sticker']) == 'undefined') {
        if (!xdbc.cookie.get('sticker')) {
            xdbc.cookie.set('sticker', 1);
            var sticker = document.createElement('SPAN');
            sticker.innerHTML = '<div class="sticker_holder cp_sticker_' + (Math.rnd(3) + 1) + '" style="top: ' + Math.rnd(450) + 'px; left: ' + Math.rnd(670) + 'px;">' +
								'	<div class="sticker_close">&#160;</div>' +
								'	<div class="sticker">&#160;</div>' +
								'</div>';
            $('.layout.body')[0].appendChild(sticker.firstChild);
        }
    }
    $('.sticker_holder').bind('mouseover', function(e) {
        if (e.target.className == 'sticker_close') return;
        $('.sticker_close').animate({ marginLeft: '0px' }, 200, function() {
            this.parentNode.close = 'on';
            $(this).css('z-index', '3');
        });
    });
    $('.sticker_holder').bind('mouseout', function(e) {
        $('.sticker_holder *').stop();
        if (e.relatedTarget.className == 'sticker_close') return;
        $('.sticker_close').css('z-index', '1');
        $('.sticker_close').animate({ marginLeft: '-50px' }, 200, function() {
            $('.sticker_close').css('z-index', '1');
        });
    });
    $('.sticker_close').bind('click', function() {
        $('.sticker_holder').animate({ opacity: '0' }, 200, function() {
            this.parentNode.removeChild(this);
        });
    });
    jc.init();

});