﻿cookieOpt = {
    expires: 30,
    path: '/',
    domain: 'smarter.co.kr'
};

$(document).ready(function(){
    //listview and gridview change
    $('a.gridview').click(function(){
        $.cookie('showGridView', 1, cookieOpt);
        window.location.reload();
    });
    $('a.listview').click(function(){
        $.cookie('showGridView', 0, cookieOpt);
        window.location.reload();
    });
    
    var rv = $.cookie('RecentlyViewed') || '';
    var wl = $.cookie('WishList') || '';
    var prodListFormat = /(\d+-\d+-\d+x\d+x\d+\*?)+/;
    var prodDetailUrl = '/async/async_prod.php';
    var itemLimit = 18;
    var wishListLimit = 4;
    var recentlyViewedLimit = 4;
    
    $('a.savetowishlist').click(function(){
        var data = $(this).attr('name');
        var type = $(this).attr('type');
        var wl = $.cookie('WishList');
        if (type == 'listview') {
            var p = $(this).parents('div.plist');
        } else if (type == 'gridview') {
            var p = $(this).parents('div.pgridlist')
        } else {
            var p = $(this).parents('div.baseinfo')
        }
        if (wl == null) {
            wl = '';
        }
        if (wl.indexOf(data) != -1) {
            return false;
        }
        if (wl.split('*').length >= itemLimit) {
            alert('관심상품 목록이 이미 찼습니다. 한개 아이템을 삭제하시고 새로운 상품을 추가하십시오.');
            return false;
        }
        d = new Date();
        var s = (d.getUTCMonth() + 1) + 'x' + d.getUTCDate() + 'x' + d.getUTCFullYear();
        data += '-' + s;
        if (wl != '') {
            data = '*' + data;
        }
        $.cookie('WishList', wl + data, cookieOpt);
        var h = $('div.wishlist').outerHeight();
        $('div.wishlistwrapper .overmylist').height(h).css({
            'opacity': '0.8'
        }).show();
        loadAjaxData('wl');
        if (type == 'listview') {
            var o = $('div.addokbox').clone().prependTo(p).fadeIn('fast').children('div').width(p.outerWidth()).height(p.outerHeight());
        } else if (type == 'gridview') {
            var o = $('div.addokbox').clone().prependTo(p).fadeIn('fast').children('div').height(p.outerHeight()).width(p.outerWidth());
        } else {
            var o = $('div.addokbox').clone().prependTo(p).fadeIn('fast').children('div').height(p.outerHeight()).width(p.outerWidth());
        }
        o.find('td').css('background', '#666');
        o.fadeOut(4000);
        $(this).find('img').attr('src', '/images/saved_but.gif');
        return false;
    });
    
    $('div.wishlist > a.btnup').click(function(){
        var prev = $('div.wishlist li').index($('div.wishlist li:visible:first')) - 1;
        var next = prev + wishListLimit;
        if (prev < 0) {
            return false;
        }
        $('div.wishlist li:eq(' + prev + ')').show('slow');
        $('div.wishlist li:eq(' + next + ')').hide('slow');
        if ($('div.wishlist li:first').is(':visible') && $('div.wishlist li').length > wishListLimit) {
            $('div.wishlist > a.btnup').hide();
        }
        $('div.wishlist > a.btndown').show();
        return false;
    });
    $('div.recentlyviewed > a.btnup').click(function(){
        var prev = $('div.recentlyviewed li').index($('div.recentlyviewed li:visible:first')) - 1;
        var next = prev + recentlyViewedLimit;
        if (prev < 0) {
            return false;
        }
        $('div.recentlyviewed li:eq(' + prev + ')').show('slow');
        $('div.recentlyviewed li:eq(' + next + ')').hide('slow');
        if ($('div.recentlyviewed li:first').is(':visible') && $('div.recentlyviewed li').length > recentlyViewedLimit) {
            $('div.recentlyviewed > a.btnup').hide();
        }
        $('div.recentlyviewed > a.btndown').show();
        return false;
    });
    $('div.wishlist > a.btndown').click(function(){
        var next = $('div.wishlist li').index($('div.wishlist li:visible:last')) + 1;
        var prev = next - wishListLimit;
        if (next >= $('div.wishlist li').length) {
            return false;
        }
        $('div.wishlist li:eq(' + prev + ')').hide('slow');
        $('div.wishlist li:eq(' + next + ')').show('slow');
        if ($('div.wishlist li:last').is(':visible') && $('div.wishlist li').length > wishListLimit) {
            $('div.wishlist > a.btndown').hide();
        }
        $('div.wishlist > a.btnup').show();
        return false;
    });
    $('div.recentlyviewed > a.btndown').click(function(){
        var next = $('div.recentlyviewed li').index($('div.recentlyviewed li:visible:last')) + 1;
        var prev = next - recentlyViewedLimit;
        if (next >= $('div.recentlyviewed li').length) {
            return false;
        }
        $('div.recentlyviewed li:eq(' + prev + ')').hide('slow');
        $('div.recentlyviewed li:eq(' + next + ')').show('slow');
        if ($('div.recentlyviewed li:last').is(':visible') && $('div.recentlyviewed li').length > recentlyViewedLimit) {
            $('div.recentlyviewed > a.btndown').hide();
        }
        $('div.recentlyviewed > a.btnup').show();
        return false;
    });
    
    deleteItemFromCookie = function(cookieName, data){
        var ck = $.cookie(cookieName);
        var cd = data;
        if (ck.indexOf(cd) != -1) {
            pos = ck.indexOf(cd);
            len = cd.length;
            var next = ck.substr(pos + len, 1);
            if (next != '') {
                ck = ck.substr(0, pos) + ck.substr(pos + len + 1);
            } else {
                if (ck == cd) {
                    ck = "";
                } else {
                    ck = ck.substr(0, pos - 1);
                }
            }
            $.cookie(cookieName, ck, cookieOpt);
            return true;
        }
        return false;
    };
    
    loadAjaxData = function(dt){
        if (dt == 'all' || dt == 'rv') {
            var rv = $.cookie('RecentlyViewed') || '';
            if ($('div.recentlyviewed').attr('data') != rv && prodListFormat.test(rv)) {
                var rvHtml = '';
                jQuery.post(prodDetailUrl, {
                    'data': rv
                }, function(data, textStatus){
                    var rvdata = data.prods;
                    var lc = rv.split('*').reverse();
                    var k = 0;
                    for (i in rvdata) {
                        if (rvdata[i].chid < 10) {
                            rvdata[i].chid = '0' + rvdata[i].chid;
                        }
                        var nameStr = rvdata[i].chid + '-' + rvdata[i].pid + '-' + rvdata[i].date;
                        if (lc[i] != nameStr) {
                            k++;
                            lc.splice(i, 1);
                        }
                        rvHtml += '<li><a href="' + rvdata[i].purl + '" target="_blank"><img src="' + rvdata[i].img + '" /></a><a href="#" data="' + nameStr + '" class="disn"><img src="/images/delete.gif" class="delete" /></a></li>';
                    }
                    $('div.recentlyviewed').attr('data', rv)
                    $('div.recentlyviewed > a.btnup').hide();
                    $('div.recentlyviewed > a.btndown').hide();
                    if (rvdata.length > recentlyViewedLimit) {
                        //$('div.recentlyviewed > a.btnup').show();
                        $('div.recentlyviewed > a.btndown').show();
                    }
                    $('div.recentlyviewedwrapper .overmylist').fadeOut('fast');
                    $('div.recentlyviewed > ul').html(rvHtml);
                    $('div.recentlyviewed li:gt(' + (recentlyViewedLimit - 1) + ')').hide();
                    $('div.recentlyviewed > div.topcow > span').html(rvdata.length);
                    //when delete link is clicked
                    $('div.recentlyviewed > ul > li > a[href!=#]').hover(function(){
                        $(this).next('a').show();
                    }, function(){
                        var alink = $(this).next('a');
                        var t = window.setTimeout(function(){
                            alink.hide();
                        }, 0);
                        alink.hover(function(){
                            clearTimeout(t);
                        }, function(){
                            $(this).hide();
                        });
                    });
                    $('div.recentlyviewed > ul > li > a[data]').click(function(){
                        var data = $(this).attr('data');
                        deleteItemFromCookie('RecentlyViewed', data);
                        var h = $('div.recentlyviewed').outerHeight();
                        $('div.recentlyviewedwrapper .overmylist').height(h).css({
                            'opacity': '0.8'
                        }).show();
                        loadAjaxData('rv');
                        return false;
                    });
                }, 'json');
            } else if (rv == '') {
                $('div.recentlyviewedwrapper .overmylist').fadeOut('fast');
                $('div.recentlyviewed > ul').html('상품이없습니다');
                $('div.recentlyviewed > div.topcow > span').html(0);
            }
        }
        
        if (dt == 'all' || dt == 'wl') {
            var wl = $.cookie('WishList') || '';
            if (prodListFormat.test(wl)) {
                var wlHtml = '';
                var items = wl.split('*');
                for (x in items) {
                    var temp = items[x].split('-');
                    $('a.savetowishlist[name="' + temp[0] + '-' + temp[1] + '"]').find('img').attr('src', '/images/saved_but.gif');
                }
                jQuery.post(prodDetailUrl, {
                    'data': wl
                }, function(data, textStatus){
                    var wldata = data.prods;
                    var lc = wl.split('*').reverse();
                    var k = 0;
                    for (i in wldata) {
                        if (wldata[i].chid < 10) {
                            wldata[i].chid = '0' + wldata[i].chid;
                        }
                        var nameStr = wldata[i].chid + '-' + wldata[i].pid + '-' + wldata[i].date;
                        if (lc[i] != nameStr) {
                            k++;
                            lc.splice(i, 1);
                        }
                        wlHtml += '<li><a href="' + wldata[i].purl + '" target="_blank"><img src="' + wldata[i].img + '" /></a><a href="#" data="' + nameStr + '" class="disn"><img src="/images/delete.gif" class="delete" /></a></li>';
                    }
                    $('div.wishlistwrapper .overmylist').fadeOut('fast');
                    $('div.wishlist > a.btnup').hide();
                    $('div.wishlist > a.btndown').hide();
                    if (wldata.length > wishListLimit) {
                        //$('div.wishlist > a.btnup').show();
                        $('div.wishlist > a.btndown').show();
                    }
                    $('div.wishlist > ul').html(wlHtml);
                    $('div.wishlist li:gt(' + (wishListLimit - 1) + ')').hide();
                    $('div.wishlist > div.topcow > span').html(wldata.length);
                    //when delete link is clicked
                    $('div.wishlist > ul > li > a[href!=#]').hover(function(){
                        $(this).next('a').show();
                    }, function(){
                        var alink = $(this).next('a');
                        var t = window.setTimeout(function(){
                            alink.hide();
                        }, 0);
                        alink.hover(function(){
                            clearTimeout(t);
                        }, function(){
                            $(this).hide();
                        });
                    });
                    $('div.wishlist > ul > li > a[data]').click(function(){
                        var data = $(this).attr('data');
                        deleteItemFromCookie('WishList', data);
                        var temp = data.split('-');
                        $('a.savetowishlist[name=' + temp[0] + '-' + temp[1] + ']').find('img').attr('src', '/images/save_but.gif');
                        var h = $('div.wishlist').outerHeight();
                        $('div.wishlistwrapper .overmylist').height(h).css({
                            'opacity': '0.8'
                        }).show();
                        loadAjaxData('wl');
                        return false;
                    });
                }, 'json');
            } else if (wl == '') {
                $('div.wishlistwrapper .overmylist').fadeOut('fast');
                $('div.wishlist > ul').html('상품이없습니다');
                $('div.wishlist > div.topcow > span').html(0);
            }
        }
    };
    
    rv_check = function(){
        if (rv != $.cookie('RecentlyViewed')) {
            loadAjaxData('rv');
        }
    };
    
    loadAjaxData('all');
    window.setInterval(function(){
        rv_check();
    }, 2000);
    
    //slider range
    var staticMax = parseInt($('div.maxprice').text());
    $('div.minprice').css('left', parseInt(($('div.minprice').text() / staticMax) * 100) + 'px');
    $('#slider-price').slider({
        animate: true,
        min: 0,
        max: parseInt($('div.maxprice').text()),
        range: true,
        step: 1000,
        values: [parseInt($('div.minprice').text()), parseInt($('div.maxprice').text())],
        slide: function(event, ui){
            var minprice = ui.values[0];
            var maxprice = ui.values[1];
            $('div.minprice').text(minprice);
            $('div.minprice').css('left', parseInt((minprice / staticMax) * 100) || 5 + 'px');
            $('div.maxprice').text(maxprice);
            $('div.maxprice').css('left', parseInt((maxprice / staticMax) * 100 + 10) + 'px');
            $('#np').val(minprice);
            $('#xp').val(maxprice);
        }
    });
    
    $('div.slider :button').click(function(){
        $('div.slider').hide();
        $('div.input').show();
    });
    $('div.input :button').click(function(){
        $('div.slider').show();
        $('div.input').hide();
    });
    $('div.sortby').find('a').click(function(){
        $('input[name=sb]').val($(this).attr('data'));
        $('form[name=sortForm]').submit();
    });
    
    //enlarge image
    $('a.[rel^=#overlay]').overlay({
        top: 'center'
    });
    
    $('a.couponlist').hover(function(){
        $(this).next('div.couponwrapper').show();
    }, function(){
        var coupon = $(this).next('div.couponwrapper');
        var t = window.setTimeout(function(){
            coupon.hide()
        }, 0);
        coupon.hover(function(){
            clearTimeout(t);
        }, function(){
            $(this).hide();
        });
    });
    
    var isParaCutPage = $.cookie('isParaCutPage');
    if (isParaCutPage && isParaCutPage == 1) {
        $.cookie('isParaCutPage', 0, cookieOpt);
    }
    var addToHistory = function(data){
        var rv = $.cookie('RecentlyViewed') || '';
        
        if (rv.indexOf(data) == -1) {
            var itemLimit = 18;
            if (rv.split('*').length >= itemLimit) {
                //replace the first one
                rv = rv.substr(rv.indexOf('*') + 1);
            }
            var d = new Date();
            var stime = (d.getUTCMonth() + 1) + 'x' + d.getUTCDate() + 'x' + d.getUTCFullYear();
            data = rv ? '*' + data + '-' + stime : data + '-' + stime;
            $.cookie('RecentlyViewed', rv + data, cookieOpt);
        }
    }
    $('.prolistwrapper > .plist > .price').find('a').each(function(){
    
        $(this).bind('click', function(){
            var data = $(this).closest('.plist').children('.pinfo').find('.savetowishlist').attr('name');
            addToHistory(data);
        });
        
    });
    $('.prolistwrapper > .plist > .pinfo > .pname').find('a').bind('click', function(){
        var data = $(this).closest('.plist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    $('.prolistwrapper > .plist > .imgbox').bind('click', function(){
        var data = $(this).closest('.plist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    $('.prolistwrapper > .plist > .seeit').find('img:eq(0)').bind('click', function(){
        var data = $(this).closest('.plist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    
    //for girdview
    $('.prolistwrapper > .pgridlist > .pinfo > .price').find('a').each(function(){
    
        $(this).bind('click', function(){
            var data = $(this).closest('.pgridlist').children('.pinfo').find('.savetowishlist').attr('name');
            addToHistory(data);
        });
        
    });
    $('.prolistwrapper > .pgridlist > .pinfo > h3').find('a').bind('click', function(){
        var data = $(this).closest('.pgridlist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    $('.prolistwrapper > .pgridlist > .imgbox').bind('click', function(){
        var data = $(this).closest('.pgridlist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    $('.prolistwrapper > .pgridlist > .seeit').find('img:eq(0)').bind('click', function(){
        var data = $(this).closest('.pgridlist').children('.pinfo').find('.savetowishlist').attr('name');
        addToHistory(data);
    });
    /*
     var baseinfo = $('div.baseinfo');
     var rv = $.cookie('RecentlyViewed') || '';
     var data = baseinfo.attr('chid') + '-' + baseinfo.attr('pid') ;
     if (rv.indexOf(data) == -1) {
     var itemLimit = 18;
     if (rv.split('*').length >= itemLimit) {
     //replace the first one
     rv = rv.substr(rv.indexOf('*') + 1);
     }
     var d = new Date();
     var stime = (d.getUTCMonth() + 1) + 'x'+ d.getUTCDate() + 'x' + d.getUTCFullYear();
     data = rv ? '*'+data+'-'+stime : data+'-'+stime;
     $.cookie('RecentlyViewed', rv + data, cookieOpt);
     }
     */
});

