define("index", ["zepto","lazyload","swiper","mlellipsis","iscroll-probe","index"], function(require, exports, module){
var yohobuy;

require("js/common");

require("js/passport/index");
require("js/guang/index");
require("js/home/index");
require("js/product/index");
require("js/index/index");

module.exports = yohobuy;

});
define("js/common", ["zepto"], function(require, exports, module){
/**
 * 页面公共逻辑
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/21
 */
var $ = require("zepto");

function cookie(name) {
    var cookies = document.cookie,
        cookieVal,
        offset;

    if (document.cookie && document.cookie !== '') {
        offset = cookies.indexOf(name + '=');
        if (offset > -1) {
            offset += name.length + 1;

            cookieVal = decodeURIComponent($.trim(cookies.substring(offset, cookies.indexOf(';', offset))));
        }
    }

    return cookieVal;
}

function setCookie(name, value, options) {
    var expires = '',
        path,
        domain,
        secure,
        date;

    if (typeof value !== 'undefined') {
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }

        if (options.expires &&
            (typeof options.expires === 'number' || options.expires.toUTCString)) {
            if (typeof options.expires === 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        path = options.path ? '; path=' + options.path : '';
        domain = options.domain ? '; domain=' + options.domain : '';
        secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    }
}

function getUser() {
    var c = cookie('_UID'),
        user;

    if (typeof c === 'undefined') {
        return 0;
    }

    user = c.split('::');

    if (typeof user === 'undefined' || user.length < 4) {
        return 0;
    }

    return user;
}

function getUid() {
    var user = getUser();

    if (user === 0) {
        return 0;
    }

    return user[1];
}

function getShoppingKey() {
    var c = cookie('_g');

    if (typeof c === 'undefined') {
        return '';
    }

    return JSON.parse(c).k;
}

//页面通用底部位置及status设置
(function () {
    var $footer = $('#yoho-footer'),
        $op = $footer.children('.op-row');

    var user = getUser();

    if ($('body').height() < $(window).height()) {
        $footer.addClass('bottom');
    }

    if (user === 0) {

        //未登录
        $op.prepend(
            '<a href="http://m.yohobuy.com/signin.html">登录</a>' +
            '<span class="sep-line">|</span>' +
            '<a href="http://m.yohobuy.com/reg.html">注册</a>'
        );
    } else {

        //已登录
        $op.prepend(
            'Hi,' +
            '<a class="user-name" href="http://m.yohobuy.com/home?tmp=' + Math.random() + '">' + user[0] + '</a>' +
            '<a href="http://m.yohobuy.com/passport/signout/index?token=' + user[3] + '">退出</a>'
        );
    }

    $footer.removeClass('hide');
}());

//暴露公共接口
window.cookie = cookie;

window.setCookie = setCookie;

window.getUser = getUser;

window.getUid = getUid;

window.getShoppingKey = getShoppingKey;

});
define("js/passport/index", ["zepto"], function(require, exports, module){
/**
 * 注册、登录、密码找回打包入口
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */

//注册
require("js/passport/register/register");
require("js/passport/register/code");
require("js/passport/register/password");

//登录
require("js/passport/login/login");
require("js/passport/login/international");

//密码找回
require("js/passport/back/mobile");
require("js/passport/back/code");
require("js/passport/back/email");
require("js/passport/back/email-success");
require("js/passport/back/new-password");
});
define("js/passport/register/register", ["zepto"], function(require, exports, module){
/**
 * 注册
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $btnNext = $('#btn-next');

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

api.selectCssHack($('#country-select'));

api.bindClearEvt();

$phoneNum.bind('input', function() {
    if (trim($phoneNum.val()) === '') {
        $btnNext.addClass('disable');
    } else {
        $btnNext.removeClass('disable');
    }
});

$countrySelect.change(function() {
    $areaCode.text($countrySelect.val());
});

$btnNext.on('tap', function() {
    var pn = trim($phoneNum.val()),
        areaCode = $countrySelect.val();

    if ($btnNext.hasClass('disable')) {
        return;
    }

    if (api.phoneRegx[areaCode].test(pn)) {
        $.ajax({
            url: '/passport/reg/verifymobile',
            type: 'POST',
            data: {
                areaCode: areaCode.replace('+', ''),
                phoneNum: pn
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else {
                    showErrTip(data.message);
                }
            }
        });
    } else {
        showErrTip('手机号格式不正确,请重新输入');
    }
});
});
define("js/passport/api", ["zepto"], function(require, exports, module){
/**
 * 登录注册公用API
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var trim = $.trim;

//邮箱验证规则
var emailRegx = /^([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;

//手机号码验证规则
var phoneRegx = {
    '+86': /^1[35847]{1}[0-9]{9}$/,
    '+852': /^[965]{1}[0-9]{7}$/,
    '+853': /^[0-9]{8}$/,
    '+886': /^[0-9]{10}$/,
    '+65': /^[98]{1}[0-9]{7}$/,
    '+60': /^1[1234679]{1}[0-9]{8}$/,
    '+1': /^[0-9]{10}$/,
    '+82': /^01[0-9]{9}$/,
    '+44': /^7[789][0-9]{8}$/,
    '+81': /^0[9|8|7][0-9]{9}$/,
    '+61': /^[0-9]{11}$/
};

/**
 * 密码显示隐藏
 * @params opt 初始化参数
 */
function bindEyesEvt(opt) {
    var $hasEye = $('.has-eye'),
        $eye;

    if (opt && opt.status === 'open') {
        $hasEye.append('<div class="eye"></div>');
    } else {
        $hasEye.append('<div class="eye close"></div>');
    }
    $eye = $hasEye.children('.eye');

    $eye.on('tap', function(e) {
        var $this = $(this),
            $pwd = $this.siblings('.pwd');

        e.preventDefault();
        $this.toggleClass('close');

        //切换密码显示和文本显示
        if ($this.hasClass('close')) {
            $pwd.attr('type', 'password');
        } else {
            $pwd.attr('type', 'text');
        }
        $pwd.focus();
    });
}

// 清空账号显示
function bindClearEvt() {
    var $hasClear = $('.has-clear'),
        $clear;

    $hasClear.append('<div class="clear-input"></div>');
    $clear = $hasClear.children('.clear-input');

    $clear.on('tap', function(e) {
        var $input = $clear.siblings('.input');

        $input.val('').trigger('input').focus();
        e.preventDefault();
    });

    //反向逻辑
    $hasClear.children('.input').bind('input', function() {
        var $this = $(this),
            $thisClear = $this.siblings('.clear-input'),
            val = trim($this.val());

        if (val === '') {
            $thisClear.hide();
        } else {
            $thisClear.show();
        }
    });
}

// 密码长度验证
function pwdValidate(pwd) {
    if (pwd.length >= 6 && pwd.length <= 20) {
        return true;
    }
    return false;
}

// hack for resolving direction:rtl didn't work in android uc
function selectCssHack($countrySelect) {
    var u = navigator.userAgent;

    function autoSelectWidth() {
        var wordCount = $countrySelect.find('option:selected').text().length;

        switch (wordCount) {

            //分别有2,3,4个汉字的情况
            case 2:
                $countrySelect.outerWidth(90);
                break;
            case 3:
                $countrySelect.outerWidth(110);
                break;
            default:
                $countrySelect.outerWidth(130);
        }
    }

    if (u.match(/uc/i) && u.match(/android/i)) {
        $countrySelect.change(function() {
            autoSelectWidth();
        });
    } else {
        $countrySelect.removeClass('in-android-uc');
    }
}

//Exports APIs
module.exports = {
    emailRegx: emailRegx,
    phoneRegx: phoneRegx,
    bindEyesEvt: bindEyesEvt,
    bindClearEvt: bindClearEvt,
    pwdValidate: pwdValidate,
    selectCssHack: selectCssHack
};
});
define("js/plugin/tip", ["zepto"], function(require, exports, module){
/**
 * 弹框提示
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */
var $ = require("zepto");

var $tip, tipItime;

/**
 * 初始化提示框
 */
(function() {
    var tipHtml = '<div id="yoho-tip" class="yoho-tip"></div>';

    //插入提示HTML
    $('.yoho-page').append(tipHtml);

    $tip = $('#yoho-tip');
    $tip.on('tap', function() {
        $tip.hide();

        //清除Timeout
        clearTimeout(tipItime);
    });
}());

/**
 * 显示提示
 */
function show(con, dur) {
    var content, duration;

    if (typeof con === 'undefined') {
        return;
    }

    content = con.toString();
    duration = (dur && dur > 0) ? dur : 2000;

    $tip.text(content).show();

    tipItime = setTimeout(function() {
        if ($tip.css('display') === 'block') {
            $tip.hide();
        }
    }, duration);
}

exports.show = show;
});
define("js/passport/register/code", ["zepto"], function(require, exports, module){
/**
 * 注册-验证码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */

require("js/passport/code")(true);
});
define("js/passport/code", ["zepto"], function(require, exports, module){
/**
 * 注册/找回密码-验证码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

module.exports = function(useInRegister) {
    var $captcha = $('#captcha'),
        $btnNext = $('#btn-next'),
        $captchaTip = $('#captcha-tip'),
        phoneNum = $('#phone-num').val(),
        areaCode = $('#area-code').val().replace('+', '');

    var api = require("js/passport/api");
    var tip = require("js/plugin/tip");

    var trim = $.trim;
    var showErrTip = tip.show;

    var urlMid = useInRegister ? 'reg' : 'back';

    function countDown() {
        var count = 59,
            itime;

        itime = setInterval(function() {
            if (count === 0) {
                $captchaTip.text('重发验证码').removeClass('disable');
                clearInterval(itime);
            } else {
                $captchaTip.text('重发验证码 (' + count-- + '秒)');
            }
        }, 1000);
    }

    api.bindClearEvt();

    $captcha.bind('input', function() {
        if (trim($captcha.val()) !== '') {
            $btnNext.removeClass('disable');
        } else {
            $btnNext.addClass('disable');
        }
    });

    //重新发送验证码
    $captchaTip.on('tap', function() {
        if ($captchaTip.hasClass('disable')) {
            return;
        }

        $.ajax({
            type: 'POST',
            url: '/passport/' + urlMid + '/sendcode',
            data: {
                phoneNum: phoneNum,
                areaCode: areaCode
            },
            success: function(data) {
                if (data.code === 200) {
                    $captchaTip.text('重发验证码 (60秒)').addClass('disable');
                    countDown();
                } else {

                    //验证码不正确,显示提示
                    showErrTip(data.message);
                }
            }
        });
    });

    $btnNext.on('tap', function() {
        if ($btnNext.hasClass('disable')) {
            return;
        }

        $.ajax({
            type: 'POST',
            url: '/passport/' + urlMid + '/verifycode',
            data: {
                phoneNum: phoneNum,
                areaCode: areaCode,
                code: trim($captcha.val()),
                token: $('#token').val()
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else {

                    //验证码不正确,显示提示
                    showErrTip(data.message);
                }
            }
        });
    });

    countDown();
};
});
define("js/passport/register/password", ["zepto"], function(require, exports, module){
/**
 * 注册-密码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $pwd = $('#pwd'),
    $btnSure = $('#btn-sure');

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

api.bindEyesEvt({
    status: 'open' //默认眼睛打开
});

$pwd.bind('input', function() {
    if (trim($pwd.val()) === '') {
        $btnSure.addClass('disable');
    } else {
        $btnSure.removeClass('disable');
    }
});

$btnSure.on('tap', function() {
    var pwd = trim($pwd.val());

    if ($btnSure.hasClass('disable')) {
        return;
    }

    if (api.pwdValidate(pwd) === false) {
        showErrTip('密码6-20位,请重新输入');
    } else {
        $.ajax({
            type: 'POST',
            url: '/passport/reg/setpassword',
            data: {
                password: pwd,
                phoneNum: $('#phone-num').val(),
                areaCode: $('#area-code').val(),
                token: $('#token').val()
            },
            success: function(data) {
                if (data.code === 200) {
                    showErrTip('注册成功');

                    //1000ms后跳转页面
                    setTimeout(function() {
                        location.href = data.data;
                    }, 1000);
                } else {
                    if (data.code === 401 || data.code === 404 || data.code === 505) {
                        showErrTip(data.message);
                    } else {
                        showErrTip(data.message);
                        setTimeout(function() {
                            location.href = data.data;
                        }, 1000);
                    }
                }
            }
        });
    }
});
});
define("js/passport/login/login", ["zepto"], function(require, exports, module){
/**
 * 登录
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/9/30
 */
var $ = require("zepto");

var $account = $('#account'),
    $pwd = $('#pwd'),
    $loginBtn = $('#btn-login'),

    $mask = $('#retrive-pwd-mask'),
    $ways = $('#retrive-pwd-ways'),

    accPass = false,
    pwdPass = false;

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

//登录按钮状态切换
function switchLoginBtnStatus() {
    if (accPass && pwdPass) {
        $loginBtn.removeClass('disable');
    } else {
        $loginBtn.addClass('disable');
    }
}

//显示找回密码面板
function showRetrivePanel() {
    $mask.show();
    $ways.show();
}

//隐藏找回密码面板
function hideRetrivePanel() {
    $mask.hide();
    $ways.hide();
}

//密码显示与隐藏
api.bindEyesEvt();

//清空账号输入框
api.bindClearEvt();

$account.bind('input', function() {
    if (trim($account.val()) !== '') {
        accPass = true;
    } else {
        accPass = false;
    }
    switchLoginBtnStatus();
});

$pwd.bind('input', function() {
    if (trim($pwd.val()) === '') {
        pwdPass = false;
    } else {
        pwdPass = true;
    }
    switchLoginBtnStatus();
});


// Login
$loginBtn.on('tap', function() {
    var acc = trim($account.val()),
        pwd = trim($pwd.val());

    if ($loginBtn.hasClass('disable')) {
        return;
    }

    //验证账号(数字或者邮箱)和密码合理性
    if ((/^[0-9]+$/.test(acc) || api.emailRegx.test(acc)) && api.pwdValidate(pwd)) {
        $.ajax({
            type: 'POST',
            url: '/passport/login/auth',
            data: {
                account: acc,
                password: pwd
            },
            success: function(data) {
                if (data.code === 200) {
                    showErrTip('登录成功');

                    //1s后跳转页面
                    setTimeout(function() {
                        location.href = data.data;
                    }, 1000);
                } else {
                    showErrTip(data.message);
                }
            },
            error: function() {
                showErrTip('网络断开连接啦~');
            }
        });
    } else {
        showErrTip('账号或密码有错误,请重新输入');
    }
});


$('#forget-pwd').on('tap', function() {
    showRetrivePanel();
});

$mask.on('tap', function() {
    hideRetrivePanel();
});

$('#cancel-retrive').on('tap', function(e) {
    e.preventDefault();
    hideRetrivePanel();
});

//对初始有默认值的情况去初始化登录按钮状态
$account.trigger('input');
$pwd.trigger('input');
});
define("js/passport/login/international", ["zepto"], function(require, exports, module){
/**
 * 国际账号登录
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $pwd = $('#pwd'),
    $loginBtn = $('#btn-login'),

    pnPass = false,
    pwdPass = false;

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

//登录按钮状态切换
function switchLoginBtnStatus() {
    if (pnPass && pwdPass) {
        $loginBtn.removeClass('disable');
    } else {
        $loginBtn.addClass('disable');
    }
}

//Android-UC下显示select的direction:rtl无效的临时解决办法
api.selectCssHack($countrySelect);

//显示隐藏密码
api.bindEyesEvt();

//清空手机号码
api.bindClearEvt();

$phoneNum.bind('input', function() {
    if (trim($phoneNum.val()) === '') {
        pnPass = false;
    } else {
        pnPass = true;
    }

    switchLoginBtnStatus();
});

$pwd.bind('input', function() {
    var pwd = trim($pwd.val());

    if (pwd === '') {
        pwdPass = false;
    } else {
        pwdPass = true;
    }

    switchLoginBtnStatus();
});

$countrySelect.change(function() {
    $areaCode.text($countrySelect.val());
});

$loginBtn.on('tap', function() {
    var pn = trim($phoneNum.val()),
        areaCode = $countrySelect.val(),
        pwd = trim($pwd.val());

    if ($loginBtn.hasClass('disable')) {
        return;
    }

    if (api.phoneRegx[areaCode].test(pn) && api.pwdValidate(pwd)) {
        $.ajax({
            type: 'POST',
            url: '/passport/login/auth',
            data: {
                areaCode: areaCode.replace('+', ''),
                account: pn,
                password: pwd
            },
            success: function(data) {
                if (data.code === 200) {
                    showErrTip('登录成功');

                    //1000ms后跳转页面
                    setTimeout(function() {
                        location.href = data.data;
                    }, 1000);
                } else {
                    showErrTip(data.message);
                }
            },
            error: function() {
                showErrTip('网络断开连接啦~');
            }
        });
    } else {
        showErrTip('账号或密码有错误,请重新输入');
    }
});

//对初始有默认值的情况去初始化登录按钮状态
$phoneNum.trigger('input');
$pwd.trigger('input');
});
define("js/passport/back/mobile", ["zepto"], function(require, exports, module){
/**
 * 找回密码-手机
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $btnNext = $('#btn-next');

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

api.selectCssHack($('#country-select'));

api.bindClearEvt();

$phoneNum.bind('input', function() {
    if (trim($phoneNum.val()) === '') {
        $btnNext.addClass('disable');
    } else {
        $btnNext.removeClass('disable');
    }
});

$countrySelect.change(function() {
    $areaCode.text($countrySelect.val());
});

$btnNext.on('tap', function() {
    var pn = trim($phoneNum.val()),
        area = $countrySelect.val();

    if ($btnNext.hasClass('disable')) {
        return;
    }

    if (api.phoneRegx[area].test(pn)) {
        $.ajax({
            url: '/passport/back/sendcode',
            type: 'POST',
            data: {
                areaCode: area.replace('+', ''),
                phoneNum: pn
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else {
                    showErrTip(data.message);
                }
            }
        });
    } else {
        showErrTip('手机号格式不正确,请重新输入');
    }
});
});
define("js/passport/back/code", ["zepto"], function(require, exports, module){
/**
 * 找回密码-验证码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */

require("js/passport/code")(false);
});
define("js/passport/back/email", ["zepto"], function(require, exports, module){
/**
 * 找回密码-邮箱找回
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $email = $('#email'),
    $btnSure = $('#btn-sure');

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

api.bindClearEvt();

$email.bind('input', function() {
    if (trim($email.val()) === '') {
        $btnSure.addClass('disable');
    } else {
        $btnSure.removeClass('disable');
    }
});

$btnSure.on('tap', function() {
    var email = trim($email.val());

    if ($btnSure.hasClass('disable')) {
        return;
    }

    if (api.emailRegx.test(email)) {
        $.ajax({
            url: '/passport/back/sendemail',
            type: 'POST',
            data: {
                email: email
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else {
                    showErrTip(data.message);
                }
            }
        });
    } else {
        showErrTip('邮箱格式不正确,请重新输入');
    }
});
});
define("js/passport/back/email-success", ["zepto"], function(require, exports, module){
/**
 * 找回密码-邮箱找回成功
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */

var $ = require("zepto");

var $resend = $('#resend');

var tip = require("js/plugin/tip"),
    showErrTip = tip.show;

$resend.on('tap', function(e) {
    e.preventDefault();

    $.ajax({
        url: $resend.data('url'),
        type: 'GET',
        success: function(data) {
            if (data.code === 200) {
                showErrTip(data.message);
            } else {
                showErrTip(data.message);
            }
        }
    });
});
});
define("js/passport/back/new-password", ["zepto"], function(require, exports, module){
/**
 * 密码找回-新密码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
var $ = require("zepto");

var $pwd = $('#pwd'),
    $btnOk = $('#btn-ok');

var api = require("js/passport/api");
var tip = require("js/plugin/tip");

var trim = $.trim;
var showErrTip = tip.show;

var $phoneNum = $('#phone-num');

api.bindEyesEvt();

$pwd.bind('input', function() {
    if (trim($pwd.val()) === '') {
        $btnOk.addClass('disable');
    } else {
        $btnOk.removeClass('disable');
    }
});

$btnOk.on('tap', function() {
    var pwd = trim($pwd.val()),
        mobileBack = true,
        setting,
        url;

    if ($btnOk.hasClass('disable')) {
        return;
    }

    setting = {
        password: pwd
    };

    if ($phoneNum.length === 0) {
        mobileBack = false;
    }

    if (mobileBack) {
        $.extend(setting, {
            phoneNum: $phoneNum.val(),
            areaCode: $('#areaCode').val(),
            token: $('#token').val()
        });

        url = '/passport/back/passwordByMobile';
    } else {
        $.extend(setting, {
            code: $('#email-code').val()
        });

        url = '/passport/back/passwordByEmail';
    }


    if (api.pwdValidate(pwd)) {
        $.ajax({
            type: 'POST',
            url: url,
            data: setting,
            success: function(data) {
                if (data.code === 200) {
                    showErrTip('密码修改成功');

                    //1000ms后跳转页面
                    setTimeout(function() {
                        location.href = data.data;
                    }, 1000);
                } else {
                    showErrTip(data.message);
                }
            }
        });
    } else {
        showErrTip('密码6-20位,请重新输入');
    }
});
});
define("js/guang/index", ["zepto","lazyload","swiper","mlellipsis","iscroll-probe","index"], function(require, exports, module){
/**
 * 逛打包入口
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/9
 */

require("js/guang/plus-star/list");
require("js/guang/plus-star/detail");

require("js/guang/home");
require("js/guang/list");
require("js/guang/detail");
});
define("js/guang/plus-star/list", ["zepto","lazyload","swiper","index"], function(require, exports, module){
/**
 * PLUS+STAR列表页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require("zepto"),
    lazyLoad = require("lazyload"),
    Swiper = require("swiper");

var $navs = $('#nav-tab > li'),
    $contents = $('#ps-content > .content');

var mySwiper;

lazyLoad($('img.lazy'));

mySwiper = new Swiper('.swiper-container', {
    lazyLoading: true,
    pagination: '.swiper-pagination'
});

$('#nav-tab').delegate('li', 'tap', function() {
    if ($(this).hasClass('focus')) {
        return;
    }

    $navs.toggleClass('focus');
    $contents.toggleClass('hide');

    $(document).trigger('scroll'); //Trigger lazyLoad
});
});
define("js/guang/plus-star/detail", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
 * PLUS+STAR详情页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require("zepto"),
    ellipsis = require("mlellipsis"),
    lazyLoad = require("lazyload");

var $intro = $('#intro'),
    $imt = $('#intro-more-txt'),
    $infosContainer = $('#related-infos-container');

var info = require("js/guang/info");

var tip = require("js/plugin/tip");

var brandId = $('#brand-info').data('id');

var mIntro, aIntro;

ellipsis.init();

//Init LazyLoad
lazyLoad($('img.lazy'));

//文字介绍文字截取
$intro[0].mlellipsis(3);

//获取截取文字和完整文字
setTimeout(function() {
    mIntro = $intro.text();
    aIntro = $intro.attr('title');
});

info.initInfosEvt($infosContainer);

//文字介绍收起与展开
$('#more-intro').bind('tap', function() {
    var $this = $(this);

    $this.toggleClass('spread');

    if ($this.hasClass('spread')) {

        //显示
        $intro.text(aIntro);
        $imt.text('收起');
    } else {

        //隐藏
        $intro.text(mIntro);
        $imt.text('more');
    }
});

//品牌收藏
$('#brand-like').bind('tap', function(e) {
    var opt = 'ok',
        $this = $(this);

    e.preventDefault();

    if ($this.hasClass('like')) {
        opt = 'cancel';
    }

    $.ajax({
        type: 'POST',
        url: '/product/opt/favoriteBrand',
        data: {
            id: brandId,
            opt: opt
        },
        success: function(data) {
            if (data.code === 200) {
                $this.toggleClass('like');
            } else if (data.code === 400) {
                tip.show('未登录');
            }
        },
        error: function() {
            tip.show('网络断开连接了~');
        }
    });
});
});
define("js/guang/info", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
 * 资讯相关API
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require("zepto"),
    ellipsis = require("mlellipsis"),
    lazyLoad = require("lazyload");

var tip = require("js/plugin/tip");

var $loadMoreInfo = $('#load-more-info');
var $loading = $(''),
    $noMore = $('');

var loading = false;

ellipsis.init();

if ($loadMoreInfo.length > 0) {
    $loading = $loadMoreInfo.children('.loading');
    $noMore = $loadMoreInfo.children('.no-more');
}

/**
 * 设置指定资讯项的Lazyload和文字截取
 * @params $infos 资讯项
 */
function setLazyLoadAndMellipsis($infos) {
    lazyLoad($infos.find('img.lazy'));

    $infos.each(function() {
        var $this = $(this),
            $title = $this.find('.info-title'),
            $text = $this.find('.info-text');

        $title[0].mlellipsis(2);
        $text[0].mlellipsis(2);
    });
}

/**
 * 初始化资讯列表事件绑定
 * @params $container 逛资讯列表容器
 */
function initInfosEvt($container) {
    $container.delegate('.like-btn', 'tap', function(e) {
        var $likeBtn = $(e.currentTarget),
            $info = $likeBtn.closest('.guang-info'),
            opt = 'ok';

        if ($likeBtn.hasClass('like')) {
            opt = 'cancel';
        }

        $.ajax({
            type: 'POST',
            url: '/guang/opt/praiseArticle',
            data: {
                id: $info.data('id'),
                opt: opt
            },
            success: function(data) {
                var code = data.code;

                if (code === 200) {
                    $likeBtn.next('.like-count').text(data.data);

                    //切换点赞状态
                    $likeBtn.toggleClass('like');
                }
            },
            error: function() {
                tip.show('网络断开连接了~');
            }
        });
    });

    setLazyLoadAndMellipsis($container.find('.guang-info'));
}

/**
 * 资讯LoadMore
 */
function loadMore($container, opt) {
    if (loading) {
        return;
    }

    if (opt.end) {
        return;
    }

    loading = true;
    $.ajax({
        type: 'GET',
        url: ' /guang/index/page',
        data: opt,
        success: function(data) {
            if (data === ' ') {
                opt.end = true;
                loading = false;

                //
                $loading.addClass('hide');
                $noMore.removeClass('hide');

                return;
            }
            $container.append(data);

            setLazyLoadAndMellipsis($container.find('.guang-info'));

            opt.page++;

            loading = false;
        },
        error: function() {
            tip.show('网络断开连接了~');
            loading = false;
        }
    });
}

exports.initInfosEvt = initInfosEvt;
exports.setLazyLoadAndMellipsis = setLazyLoadAndMellipsis;
exports.loadMore = loadMore;
});
define("js/guang/home", ["zepto","swiper","mlellipsis","lazyload","index"], function(require, exports, module){
/**
 * 逛首页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require("zepto"),
    Swiper = require("swiper");

var info = require("js/guang/info"),
    setLazyLoadAndMellipsis = info.setLazyLoadAndMellipsis,
    loadMore = info.loadMore;

var $loadMoreInfo = $('#load-more-info');
var $loading = $(''),
    $noMore = $('');

var winH = $(window).height(),
    loadMoreH = $loadMoreInfo.height();

var $infoList = $('#info-list'),
    $infos = $infoList.children('.info-list'),
    $nav = $('#guang-nav'),
    $curNav = $nav.children('.focus'),
    curType = $curNav.data('type');

var state = {};

var mySwiper;

if ($loadMoreInfo.length > 0) {
    $loading = $loadMoreInfo.children('.loading');
    $noMore = $loadMoreInfo.children('.no-more');
}

mySwiper = new Swiper('.swiper-container', {
    lazyLoading: true,
    pagination: '.swiper-pagination'
});

info.initInfosEvt($infoList);

//初始化各Nav下资讯加载的状态
(function() {
    var gender = $('#gender').val();

    $nav.children('.guang-nav-item').each(function() {
        var type = $(this).data('type');

        state[type] = {
            page: 1,
            gender: gender,
            type: type,
            end: false
        };
    });
}());

$nav.delegate('.guang-nav-item', 'tap', function() {
    var $this = $(this),
        $content,
        index;

    if ($this.hasClass('focus')) {
        return;
    }

    index = $this.index();

    $this.addClass('focus');
    $curNav.removeClass('focus');

    $infos.not('.hide').addClass('hide');

    $content = $infos.eq(index);
    $content.removeClass('hide');

    //lazyload & mellipsis
    setLazyLoadAndMellipsis($content.children('.guang-info'));

    $curNav = $this;
    curType = $this.data('type');

    //重置当前Tab的load-more
    if (state[curType].end) {
        $loading.addClass('hide');
        $noMore.removeClass('hide');
    } else {
        $loading.removeClass('hide');
        $noMore.addClass('hide');
    }
});

$(document).scroll(function() {
    if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
        loadMore($infos, state[curType]);
    }
});
});
define("js/guang/list", ["zepto","mlellipsis","lazyload"], function(require, exports, module){
/**
 * 列表页,编辑页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require("zepto");

var info = require("js/guang/info"),
    loadMore = info.loadMore;

var winH = $(window).height(),
    loadMoreH = $('#load-more').height();

var $author = $('#author-infos');
var $tag = $('#tag');

var setting = {
    page: 1,
    end: false
};

var $infos = $('#info-list');

info.initInfosEvt($infos);

if ($author.length > 0) {
    $.extend(setting, {
        authorId: $author.data('id')
    });
}

if ($tag.length > 0) {
    $.extend(setting, {
        tag: $tag.val()
    });
}

$(document).scroll(function() {
    if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
        loadMore($infos, setting);
    }
});
});
define("js/guang/detail", ["zepto","mlellipsis","lazyload","iscroll-probe"], function(require, exports, module){
/**
 * 逛详情页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/13
 */

var $ = require("zepto"),
    ellipsis = require("mlellipsis"),
    lazyLoad = require("lazyload"),
    IScroll = require("iscroll-probe");

var $authorIntro = $('.author .intro');

var isIphone = navigator.userAgent.indexOf('iPhone') > 0 ? true : false;

var hasCollocationBlock = $('.collocation-block').length > 0 ? true : false;

//collocation block variable
var thumbWidth = 0,
    $fixedThumbContainer = $(''),
    $coBlock, $thumbContainer, $thumbs, $prods,
    scrollToEl;

var scrollToEl = document.querySelector('#wrapper .collocation-block');

var winW = $(window).width();

var myScroll;

/**
 * 计算搭配的箭头的位置
 * @param $curPos 当前focus的搭配项
 */
function posCollocationArrow($curCo) {
    var left = $curCo.offset().left,
        bgPos = -winW + left + (thumbWidth / 2) + 'px';

    $thumbContainer.css({
        backgroundPosition: bgPos + ' bottom'
    });

    if (isIphone) {
        $fixedThumbContainer.css({
            backgroundPosition: bgPos + ' bottom'
        });
    }
}

//搭配thumb的touch事件句柄
function thumbTouchEvt(e) {
    var $curCo = $(e.currentTarget),
        index = $curCo.index(),
        $brother, $brotherCo,
        $curProds;

    if ($curCo.hasClass('focus')) {
        return;
    }

    $thumbs.filter('.focus').removeClass('focus');

    if (isIphone) {
        if ($curCo.closest('.fixed-thumb-container').length > 0) {
            $brother = $thumbContainer;
        } else {
            $brother = $fixedThumbContainer;
        }

        $brotherCo = $brother.find('.thumb').eq(index);
        $fixedThumbContainer.find('.thumb.focus').removeClass('focus');
        $brotherCo.addClass('focus');
    }

    $curCo.addClass('focus');

    //定位arrow
    posCollocationArrow($curCo);

    $prods.not('.hide').addClass('hide');
    $curProds = $prods.eq(index);
    $curProds.removeClass('hide');

    //
    lazyLoad($curProds.find('.lazy'));

    if (isIphone) {
        if (myScroll) {
            myScroll.scrollToElement(scrollToEl, 400);
        }
    } else {
        $('body').animate({
            scrollTop: $coBlock.offset().top
        }, 400);
    }
}

if (isIphone) {
    $('#wrapper').addClass('ios');
}

ellipsis.init();

lazyLoad($('.lazy'));

//title mlellipsis
$('.info-list .title, .one-good .reco-name').each(function() {
    this.mlellipsis(2);
});

//offset.left约等于marginLeft的值则表示介绍被换行,则清除intro的paddingTop让其更靠近头像和作者名
if (parseInt($authorIntro.offset().left, 10) === parseInt($authorIntro.css('margin-left'), 10)) {
    $authorIntro.css('padding-top', 0);
}

//有搭配模块,iphone使用iscroll初始化滚动并有固定的搭配栏,其他的没有
if (hasCollocationBlock) {
    $coBlock = $('.collocation-block');
    $thumbContainer = $coBlock.children('.thumb-container');
    $thumbs = $thumbContainer.find('li');
    $prods = $coBlock.find('.prod');

    thumbWidth = $thumbs.width();

    if (isIphone) {
        $fixedThumbContainer = $('#wrapper')
            .after($thumbContainer.clone().addClass('fixed-thumb-container fixed-bottom'))
            .next('.thumb-container');

        //load img of fixed thumb container
        lazyLoad($fixedThumbContainer.find('.lazy'), {
            event: 'sporty'
        });
    }

    //Init Arrow Position
    posCollocationArrow($thumbs.filter('.focus'));

    $thumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);

    if (isIphone) {
        $fixedThumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);
    }
}

// 初始化iscroll
window.onload = function() {
    var $scroller = $('#scroller');

    var winH, tcH, cbH, cbTop, fixedThumbDom;

    if (!isIphone) {
        return;
    }

    myScroll = new IScroll('#wrapper', {
        probeType: 3,
        mouseWheel: true,
        click: true
    });

    document.addEventListener('touchmove', function (e) {
        e.preventDefault();
    }, false);

    if (!hasCollocationBlock) {
        myScroll.on('scroll', function() {
            $scroller.trigger('scroll');
        });
        return;
    }

    winH = $(window).height();
    fixedThumbDom = $fixedThumbContainer[0];

    tcH = $thumbContainer.height();
    cbH = $coBlock.height();
    cbTop = $coBlock.offset().top;

    myScroll.on('scroll', function() {
        var sTop = -this.y;
        var classList = fixedThumbDom.className;

        if (sTop <= cbTop - winH + tcH) {
            if (classList.indexOf('fixed-bottom') === -1) {
                $fixedThumbContainer
                    .addClass('fixed-bottom')
                    .removeClass('hide');
            }
        } else if (sTop <= cbTop) {
            if (classList.indexOf('hide') === -1) {
                $fixedThumbContainer
                    .addClass('hide')
                    .removeClass('fixed-bottom fixed-top');
            }
        } else if (sTop <= cbTop + cbH - tcH) {
            if (classList.indexOf('fixed-top') === -1) {
                $fixedThumbContainer
                    .addClass('fixed-top')
                    .removeClass('hide absolute')
                    .css('top', '');
            }
        } else if (sTop <= cbTop + cbH) {
            if (classList.indexOf('absolute') === -1) {
                $fixedThumbContainer
                    .addClass('absolute')
                    .removeClass('fixed-top hide');
            }
            fixedThumbDom.style.top = cbTop + cbH - tcH - sTop + 'px';
        } else if (sTop > cbTop + cbH) {
            if (classList.indexOf('hide') === -1) {
                $fixedThumbContainer
                    .addClass('hide')
                    .removeClass('absolute');
            }
        }
        $scroller.trigger('scroll');
    });
};
});
define("js/home/index", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 *  首页打包入口
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/12
 */

require("js/home/home");
require("js/home/maybe-like");
});
define("js/home/home", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 *  首页
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/12
 */
var $ = require("zepto"),
    Swiper = require("swiper"),
    lazyLoad = require("lazyload"),
    bannerSwiper,
    recommendSwiper,
    hotBrandsSwiper,
    trendTopicSwiper,
    goodsSwiper;

var requestFrame,
    thisFunc,
    start = 0,
    i,
    swiperClass,
    supportCss3,
    $logotrans = $('.home-header .logo'),
    isen = true;

require("js/home/maybe-like");

lazyLoad($('img.lazy'));

//$('img:in-viewport').trigger('appear');

//点击首页汉堡menu图标,滑出侧栏导航
$('.nav-btn').on('tap', function (event) {
    if (!$(this).hasClass('menu-open')) {
        $('.mobile-wrap').addClass('menu-open');
        $('.overlay').addClass('show');
        $('.side-nav').addClass('on');

        //设置boy高宽,页面不能上下滑动
        $('body').css({
            height: $(window).height(),
            width: '100%',
            overflow: 'hidden'
        });
    }
    event.stopPropagation();
});

//点击页面主体,收起侧栏导航及二级导航
$('.mobile-wrap').on('tap', function () {
    if ($(this).hasClass('menu-open')) {
        $('.mobile-wrap').removeClass('menu-open');
        $('.overlay').removeClass('show');
        $('.sub-nav').removeClass('show');
        $('.side-nav').removeClass('on');
        $('body').css({
            height: 'auto',
            overflow: 'auto'
        });
    }
});

//点击一级导航,弹出二级导航
$('.side-nav').on('tap', 'li', function () {
    if ($(this).find('.sub-nav').size() > 0) {
        $('.sub-nav').removeClass('show');
        $(this).find('.sub-nav').addClass('show');
    }
});

//返回一级导航,收起二级导航
$('.sub-nav').each(function () {
    $(this).find('li').eq(0).on('tap', function (e) {
        $('.sub-nav').removeClass('show');
        e.stopPropagation();
    });
});

//二级导航样式控制
$('.sub-nav').on('mouseenter', 'li', function () {
    if ($(this).index() !== 0) {
        $(this).addClass('current').siblings().removeClass('current');
    }
});

//头部banner轮播
if ($('.banner-swiper').find('li').size() > 1) {
    bannerSwiper = new Swiper('.banner-swiper', {
        lazyLoading: true,
        lazyLoadingInPrevNext: true,
        loop: true,
        autoplay: 3000,
        autoplayDisableOnInteraction: false,
        paginationClickable: true,
        slideElement: 'li',
        pagination: '.banner-top .pagination-inner'
    });
}

//热门品牌滑动
hotBrandsSwiper = new Swiper('.brands-swiper', {
    grabCursor: true,
    slidesPerView: 'auto',
    wrapperClass: 'brands-list',
    slideElement: 'li'
});

//推荐搭配滑动
recommendSwiper = new Swiper('.recommend-swiper', {
    grabCursor: true,
    slidesPerView: 'auto',
    wrapperClass: 'recommend-list',
    slideElement: 'li'
});

//潮品话题轮播
if ($('.trend-topic-swiper').find('li').size() > 1) {
    trendTopicSwiper = new Swiper('.trend-topic-swiper', {
        loop: true,
        autoplay: 3000,
        autoplayDisableOnInteraction: false,
        paginationClickable: true,
        slideElement: 'li',
        pagination: '.trend-topic-content .pagination-inner'
    });
}

//潮流上装/经典裤装等轮播
$('.category-swiper').each(function (i, index) {
    swiperClass = 'category-swiper' + i;
    $(this).addClass(swiperClass);
    if ($('.' + swiperClass).find('.swiper-slide').size() > 1) {
        goodsSwiper = new Swiper('.' + swiperClass, {
            loop: true,
            autoplay: 3000,
            autoplayDisableOnInteraction: false,
            paginationClickable: true,
            slideElement: 'li',
            pagination: '.' + swiperClass + ' .pagination-inner'
        });
    }
});

//关闭头部下载浮层
$('.header-download').on('tap', '.close-btn', function () {
    $(this).parent().remove();
});


//logo动画
requestFrame = (function () {
    var tempFunc = null,
        prefixList = ['webkit', 'moz', 'ms'];

    for (i = 0; i < prefixList.length; i++) {
        thisFunc = prefixList[i] + 'RequestAnimationFrame';
        if (window[thisFunc]) {
            supportCss3 = true;
            tempFunc = thisFunc;
        }
    }

    if (supportCss3) {
        return function (callback) {
            window[tempFunc](callback);
        };
    }
    return function (callback) {
        window.setTimeout(callback, 67);
    };
})();

function tsAnimate() {
    start = start + 10;
    $logotrans.css({
        transform: 'rotateX(' + start + 'deg)',
        '-webkit-transform': 'rotateX(' + start + 'deg)',
        '-moz-transform': 'rotateX(' + start + 'deg)'
    });
    if (start / 90 % 2 === 1) {
        if (isen) {
            $logotrans.addClass('animate');
            isen = false;
        } else {
            $logotrans.removeClass('animate');
            isen = true;
        }
    }
    if (start / 90 % 2 === 0 && start % 360 !== 0) {
        window.setTimeout(tsAnimate, 3000);
    } else {
        if (start % 360 === 0) {
            window.setTimeout(tsAnimate, 3 * 60 * 1000);
        } else {
            requestFrame(function () {
                tsAnimate();
            });
        }
    }
}

tsAnimate();


});
define("js/home/maybe-like", ["zepto","lazyload"], function(require, exports, module){
/**
 * “你可能喜欢”模块JS
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/12
 */

var $ = require("zepto"),
    tip = require("js/plugin/tip"),
    lazyLoad = require("lazyload");

var winH = $(window).height(),
    loadMoreH = $('#load-more').height(),
    $goodList = $('#goods-list'),
    loading = false,
    page = 0,
    gender = $('.mobile-wrap').hasClass('boys-wrap') ? '1,3' : '2,3',
    kidsType = $('.mobile-wrap').hasClass('kids-wrap') ? true : false,
    lifestyleType = $('.mobile-wrap').hasClass('lifestyle-wrap') ? true : false,
    num,
    url;

var $curNav,
    index,
    $navList = $('#maybe-like-nav');

//ajax url
if (kidsType) {
    url = '/product/recom/maylikekids';
} else if (lifestyleType) {
    url = '/product/recom/maylikelife';
} else {
    url = '/product/recom/maylike?gender=' + gender;
}

$curNav = $navList.children('.focus');

$('#maybe-like-nav').delegate('li', 'tap', function() {
    var $this = $(this),
        $goods = $('.goods-list'),
        $content;


    if ($this.hasClass('focus')) {
        return;
    }

    index = $this.index();

    $this.addClass('focus');
    $curNav.removeClass('focus');

    $goods.not('.hide').addClass('hide');
    $content = $goods.eq(index);
    $content.removeClass('hide');

    $curNav = $this;

    $(document).trigger('scroll'); //Trigger lazyLoad
});

//srcoll to load more
$(window).scroll(function () {
    if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
        if (loading) {
            return;
        }
        loading = true;
        num = $goodList.children('.good-info').length;
        $.ajax({
            type: 'GET',
            url: url,
            data: {
                page: page + 1
            },
            success: function(data) {
                if (data === ' ') {
                    loading = true;
                    return;
                }
                $goodList.append(data);

                //lazyLoad
                //lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
                lazyLoad($('.good-info').find('img.lazy'));

                loading = false;
                page++;
            },
            error: function() {
                tip.show('网络断开连接了~');
                loading = false;
            }
        });
    }

});
});
define("js/product/index", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 *  产品打包入口
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/12
 */

require("js/product/newsale/newarrival");
require("js/product/newsale/discount");
require("js/product/list");
require("js/product/detail/detail");
});
define("js/product/newsale/newarrival", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 *  新品到着
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/24
 */

var $ = require("zepto"),
    Swiper = require("swiper"),
    lazyLoad = require("lazyload");

var swiper;

var filter = require("js/plugin/filter");

var $goodsContainer = $('#goods-container'),
    $ngc = $($goodsContainer.children().get(0)),
    $pgc = $($goodsContainer.children().get(1)),
    $dgc = $($goodsContainer.children().get(2));

var winH = $(window).height();

//默认筛选条件
var defaultOpt = {
    gender: $('#gender').val(),
    brand: $('#brand').val(),
    sort: $('#sort').val(),
    color: $('#color').val(),
    size: $('#size').val(),
    price: $('#price').val(),
    discount: $('#discount').val(),
    limit: $('#limit').val(),
    channel: $('#channel').val(),
    p_d: $('#p_d').val()
};

var now = new Date(),
    month = now.getMonth() + 1,
    date = now.getDate();

var $listNav = $('#list-nav'),

    //导航数据信息
    navInfo = {
        today: {
            reload: true,
            page: 0,
            end: false
        },
        week: {
            reload: true,
            page: 0,
            end: false
        },
        sale: {
            reload: true,
            page: 0,
            end: false
        }
    },
    $pre = $listNav.find('.active'), //纪录进入筛选前的active项,初始为选中项
    searching;

$pgc.addClass('hide');
$dgc.addClass('hide');

$('#today a').text(month + '月' + date + '号');

if ($('.swiper-container .swiper-slide').length > 1) {
    swiper = new Swiper('.swiper-container', {
        lazyLoading: true,
        lazyLoadingInPrevNext: true,
        loop: true,
        autoplay: 3000,
        autoplayDisableOnInteraction: false,
        paginationClickable: true,
        pagination: '.swiper-pagination'
    });
}

/**
 * 筛选注册的回调,筛选子项点击后逻辑
 * 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
 * @param opt {type, id}
 */
function search(opt) {
    var setting = {},
        ext,
        att,
        nav, navType,
        dayLimit,
        page;

    if (opt) {

        //筛选项变更则重置reload为true
        for (att in navInfo) {
            if (navInfo.hasOwnProperty(att)) {
                navInfo[att].reload = true;
            }
        }

        //处理active状态
        $listNav.children('.active').removeClass('active');
        $pre.addClass('active');

        switch (opt.type) {
            case 'gender':
                ext = {
                    gender: opt.id
                };
                break;
            case 'brand':
                ext = {
                    brand: opt.id
                };
                break;
            case 'sort':
                ext = {
                    sort: opt.id
                };
                break;
            case 'color':
                ext = {
                    color: opt.id
                };
                break;
            case 'size':
                ext = {
                    size: opt.id
                };
                break;
            case 'price':
                ext = {
                    price: opt.id
                };
                break;
            case 'discount':
                ext = {
                    discount: opt.id
                };
                break;
            case 'limit':
                ext = {
                    limit: opt.id
                };
                break;
            case 'channel':
                ext = {
                    channel: opt.id
                };
                break;
            case 'p_d':
                ext = {
                    p_d: opt.id
                };
                break;
        }

        $.extend(defaultOpt, ext); //扩展筛选项
    }

    if (searching) {
        return;
    }

    //导航类别
    if ($pre.hasClass('today')) {
        navType = 'today';
        dayLimit = 1;
    } else if ($pre.hasClass('week')) {
        navType = 'week';
        dayLimit = 2;
    } else if ($pre.hasClass('sale')) {
        navType = 'sale';
        dayLimit = 3;
    }

    nav = navInfo[navType];

    page = nav.page + 1;
    if (nav.reload) {
        page = 1;
    } else if (nav.end) {

        //不需要重新加载并且数据请求结束
        return;
    }

    $.extend(setting, defaultOpt, {
        dayLimit: dayLimit,
        page: page
    });

    searching = true;

    $.ajax({
        type: 'GET',
        url: '/product/newsale/selectNewSale',
        data: setting,
        success: function(data) {
            var noResult = '<p class="no-result">未找到相关搜索结果</p>',
                $container;

            switch (navType) {
                case 'today':
                    $container = $ngc;
                    break;
                case 'week':
                    $container = $pgc;
                    break;
                case 'sale':
                    $container = $dgc;
                    break;
            }

            if (data === ' ') {
                nav.end = true;

                if (nav.reload) {
                    $container.html(noResult);
                }
            } else {
                if (nav.reload) {
                    $container.html(data);
                } else {
                    $container.append(data);
                }

                lazyLoad($container.find('.lazy'));
            }

            nav.reload = false;
            nav.page = page;

            searching = false;
        }
    });

}

lazyLoad($('.lazy'));

filter.registerCbFn(search);

//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'tap', function() {
    var $this = $(this),
        nav,
        navType,
        $active;

    if ($this.hasClass('filter')) {

        //筛选面板切换状态
        if ($this.hasClass('active')) {
            filter.hideFilter();

            //点击筛选钱的active项回复active
            $pre.addClass('active');
            $this.removeClass('active');
        } else {
            $pre = $this.siblings('.active');

            $pre.removeClass('active');
            $this.addClass('active');

            filter.showFilter();
        }
    } else {

        if ($this.hasClass('today')) {
            navType = 'today';
        } else if ($this.hasClass('week')) {
            navType = 'week';
        } else if ($this.hasClass('sale')) {
            navType = 'sale';
        }

        nav = navInfo[navType];

        if (!($this.hasClass('active'))) {

            $active = $this.siblings('.active');

            $pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项

            if ($active.hasClass('filter')) {

                //若之前active项为筛选,则隐藏筛选面板
                filter.hideFilter();
            } else {

                //切换container显示
                $goodsContainer.children('.container:not(.hide)').addClass('hide');

                switch (navType) {
                    case 'today':
                        $ngc.removeClass('hide');
                        break;

                    case 'week':
                        $pgc.removeClass('hide');
                        break;

                    case 'sale':
                        $dgc.removeClass('hide');
                        break;
                }
            }

            $active.removeClass('active');
            $this.addClass('active');
        }

        if (nav.reload) {
            search();
        }
    }
});

$(window).scroll(function() {

    //当scroll到1/4$goodsContainer高度后继续请求下一页数据
    if ($(window).scrollTop() + winH >
        $(document).height() - 0.25 * $goodsContainer.height()) {
        if ($pre !== undefined) {
            search();
        }
    }
});
});
define("js/plugin/filter", ["zepto"], function(require, exports, module){
/**
 * 筛选JS
 * 暴露三个接口:注册回调、显示filter、隐藏filter
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/19
 */

var $ = require("zepto");

var $filter = $('.filter-mask, .filter-body');

var $classify = $filter.find('.classify'),
    $subClassify = $filter.find('.sub-classify');

var cbFn;

//隐藏筛选界面
function hideFilter() {
    $filter.addClass('hide');
}

//显示筛选界面
function showFilter() {
    $filter.removeClass('hide');
}

//注册sub-classify点击后的回调
function registerCbFn(cb) {
    cbFn = cb;
}

//设置完高度后显示sub并设置选中
$classify.children(':first-child').addClass('active'); //T:不在HTML中使用{{#if @first}}active{{/if}}来初始化active为避免sub设置高度时的闪烁

//classify switch
$classify.delegate('.classify-item', 'tap', function() {
    var $this = $(this);

    if ($this.hasClass('active')) {
        return;
    }

    $this.siblings('.active').removeClass('active');

    $this.addClass('active');
});

//点击Mask隐藏筛选界面
$filter.filter('.filter-mask').tap(function() {
    hideFilter();
});

$subClassify.delegate('li', 'tap', function(e) {
    var $this = $(this),
        id = $this.data('id');

    var $sub = $this.closest('.sub-classify');

    var $shower = $sub.siblings('.shower');

    var html, shower;

    e.stopPropagation();

    if ($this.hasClass('chosed')) {
        return;
    }

    $sub.children('.chosed').removeClass('chosed');
    $this.addClass('chosed');

    html = $.trim($this.html());

    shower = $.trim($shower.html());

    $shower.html(
        shower.substring(0, shower.indexOf('</span>') + 7) + //拆分出shower的title
        html.substring(0, html.indexOf('<i')) //拆分选中筛选值
    );

    if ($this.index() === 0) {
        $shower.addClass('default');
    } else {
        $shower.removeClass('default');
    }

    if (cbFn) {
        cbFn({
            type: $sub.data('type'),
            id: id
        });
    }

    hideFilter();
});


exports.showFilter = showFilter;

exports.hideFilter = hideFilter;

exports.registerCbFn = registerCbFn;
});
define("js/product/newsale/discount", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 * 商品列表页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/20
 */

var $ = require("zepto"),
    Swiper = require("swiper"),
    lazyLoad = require("lazyload");

var swiper;

var filter = require("js/plugin/filter");

var $goodsContainer = $('#goods-container'),
    $ngc = $($goodsContainer.children().get(0)),
    $pgc = $($goodsContainer.children().get(1)),
    $dgc = $($goodsContainer.children().get(2));

var winH = $(window).height();

//默认筛选条件
var defaultOpt = {
    gender: $('#gender').val(),
    brand: $('#brand').val(),
    sort: $('#sort').val(),
    color: $('#color').val(),
    size: $('#size').val(),
    price: $('#price').val(),
    discount: $('#discount').val()
};

var $listNav = $('#list-nav'),

    //导航数据信息
    navInfo = {
        newest: {
            order: 1,
            reload: true,
            page: 0,
            end: false
        },
        price: {
            order: 0,
            reload: true,
            page: 0,
            end: false
        },
        discount: {
            order: 0,
            reload: true,
            page: 0,
            end: false
        }
    },
    $pre = $listNav.find('.active'), //纪录进入筛选前的active项,初始为选中项
    searching;

if ($('.swiper-container .swiper-slide').length > 1) {
    swiper = new Swiper('.swiper-container', {
        lazyLoading: true,
        lazyLoadingInPrevNext: true,
        loop: true,
        autoplay: 3000,
        autoplayDisableOnInteraction: false,
        paginationClickable: true,
        pagination: '.swiper-pagination'
    });
}

/**
 * 筛选注册的回调,筛选子项点击后逻辑
 * 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
 * @param opt {type, id}
 */
function search(opt) {
    var setting = {},
        ext,
        att,
        nav, navType,
        page;

    if (opt) {

        //筛选项变更则重置reload为true
        for (att in navInfo) {
            if (navInfo.hasOwnProperty(att)) {
                navInfo[att].reload = true;
            }
        }

        //处理active状态
        $listNav.children('.active').removeClass('active');
        $pre.addClass('active');

        switch (opt.type) {
            case 'gender':
                ext = {
                    gender: opt.id
                };
                break;
            case 'brand':
                ext = {
                    brand: opt.id
                };
                break;
            case 'sort':
                ext = {
                    sort: opt.id
                };
                break;
            case 'color':
                ext = {
                    color: opt.id
                };
                break;
            case 'size':
                ext = {
                    size: opt.id
                };
                break;
            case 'price':
                ext = {
                    price: opt.id
                };
                break;
            case 'discount':
                ext = {
                    discount: opt.id
                };
                break;
        }

        $.extend(defaultOpt, ext); //扩展筛选项
    }

    if (searching) {
        return;
    }

    //导航类别
    if ($pre.hasClass('new')) {
        navType = 'newest';
    } else if ($pre.hasClass('price')) {
        navType = 'price';
    } else if ($pre.hasClass('discount')) {
        navType = 'discount';
    }

    nav = navInfo[navType];

    page = nav.page + 1;
    if (nav.reload) {
        page = 1;
    } else if (nav.end) {

        //不需要重新加载并且数据请求结束
        return;
    }

    $.extend(setting, defaultOpt, {
        type: navType,
        order: nav.order,
        page: page
    });

    searching = true;

    $.ajax({
        type: 'GET',
        url: '/product/newsale/selectNewSale',
        data: setting,
        success: function(data) {
            var noResult = '<p class="no-result">未找到相关搜索结果</p>',
                $container;

            switch (navType) {
                case 'newest':
                    $container = $ngc;
                    break;
                case 'price':
                    $container = $pgc;
                    break;
                case 'discount':
                    $container = $dgc;
                    break;
            }

            if (data === ' ') {
                nav.end = true;

                if (nav.reload) {
                    $container.html(noResult);
                }
            } else {
                if (nav.reload) {
                    $container.html(data);
                } else {
                    $container.append(data);
                }

                lazyLoad($container.find('.lazy'));
            }

            nav.reload = false;
            nav.page = page;

            searching = false;
        }
    });

}

lazyLoad($('.lazy'));

filter.registerCbFn(search);

//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'tap', function() {
    var $this = $(this),
        nav,
        navType,
        $active;

    if ($this.hasClass('filter')) {

        //筛选面板切换状态
        if ($this.hasClass('active')) {
            filter.hideFilter();

            //点击筛选钱的active项回复active
            $pre.addClass('active');
            $this.removeClass('active');
        } else {
            $pre = $this.siblings('.active');

            $pre.removeClass('active');
            $this.addClass('active');

            filter.showFilter();
        }
    } else {

        if ($this.hasClass('new')) {
            navType = 'newest';
        } else if ($this.hasClass('price')) {
            navType = 'price';
        } else if ($this.hasClass('discount')) {
            navType = 'discount';
        }

        nav = navInfo[navType];

        if ($this.hasClass('active')) {

            //最新无排序切换
            if ($this.hasClass('new')) {
                return;
            }

            if ($this.hasClass('price') || $this.hasClass('discount')) {

                // 价格/折扣切换排序状态
                $this.find('.icon > .iconfont').toggleClass('cur');
                $pre = $this; //更新pre为当前项
                nav.reload = true; //重置reload,HTML会被替换为逆序的HTML
                nav.order = nav.order === 0 ? 1 : 0; //切换排序
            }
        } else {
            $active = $this.siblings('.active');

            $pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项

            if ($active.hasClass('filter')) {

                //若之前active项为筛选,则隐藏筛选面板
                filter.hideFilter();
            } else {

                //切换container显示
                $goodsContainer.children('.container:not(.hide)').addClass('hide');

                switch (navType) {
                    case 'newest':
                        $ngc.removeClass('hide');
                        break;

                    case 'price':
                        $pgc.removeClass('hide');
                        break;

                    case 'discount':
                        $dgc.removeClass('hide');
                        break;
                }
            }

            $active.removeClass('active');
            $this.addClass('active');
        }

        if (nav.reload) {
            search();
        }
    }
});

$(window).scroll(function() {

    //当scroll到1/4$goodsContainer高度后继续请求下一页数据
    if ($(window).scrollTop() + winH >
        $(document).height() - 0.25 * $goodsContainer.height()) {
        if ($pre !== undefined) {
            search();
        }
    }
});
});
define("js/product/list", ["zepto","lazyload"], function(require, exports, module){
/**
 * 商品列表页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/20
 */

var $ = require("zepto"),
    lazyLoad = require("lazyload");

//品牌页参数
var $brandHeader = $('#brand-header'),
    $introBox = $('#intro-box');

var filter = require("js/plugin/filter");

var tip = require("js/plugin/tip");

var $goodsContainer = $('#goods-container'),
    $ngc = $goodsContainer.children('.new-goods'),
    $pgc = $goodsContainer.children('.price-goods'),
    $dgc = $goodsContainer.children('.discount-goods');

var winH = $(window).height();

//默认筛选条件
var defaultOpt = {
    gender: $('#gender').val(),
    brand: $('#brand').val(),
    sort: $('#sort').val(),
    color: $('#color').val(),
    size: $('#size').val(),
    price: $('#price').val(),
    discount: $('#discount').val(),
    query: $('#query').val()
};

var $listNav = $('#list-nav'),

    //导航数据信息
    navInfo = {
        newest: {
            order: 1,
            reload: false,
            page: 1,
            end: false
        },
        price: {
            order: 0,
            reload: true,
            page: 0,
            end: false
        },
        discount: {
            order: 0,
            reload: true,
            page: 0,
            end: false
        }
    },
    $pre = $listNav.find('.active'), //纪录进入筛选前的active项,初始为选中项
    searching;

/**
 * 筛选注册的回调,筛选子项点击后逻辑
 * 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
 * @param opt {type, id}
 */
function search(opt) {
    var setting = {},
        ext,
        att,
        nav, navType,
        page;

    if (opt) {

        //筛选项变更则重置reload为true
        for (att in navInfo) {
            if (navInfo.hasOwnProperty(att)) {
                navInfo[att].reload = true;
            }
        }

        //处理active状态
        $listNav.children('.active').removeClass('active');
        $pre.addClass('active');

        switch (opt.type) {
            case 'gender':
                ext = {
                    gender: opt.id
                };
                break;
            case 'brand':
                ext = {
                    brand: opt.id
                };
                break;
            case 'sort':
                ext = {
                    sort: opt.id
                };
                break;
            case 'color':
                ext = {
                    color: opt.id
                };
                break;
            case 'size':
                ext = {
                    size: opt.id
                };
                break;
            case 'price':
                ext = {
                    price: opt.id
                };
                break;
            case 'discount':
                ext = {
                    discount: opt.id
                };
                break;
        }

        $.extend(defaultOpt, ext); //扩展筛选项
    }

    if (searching) {
        return;
    }

    //导航类别
    if ($pre.hasClass('new')) {
        navType = 'newest';
    } else if ($pre.hasClass('price')) {
        navType = 'price';
    } else if ($pre.hasClass('discount')) {
        navType = 'discount';
    }

    nav = navInfo[navType];

    page = nav.page + 1;
    if (nav.reload) {
        page = 1;
    } else if (nav.end) {

        //不需要重新加载并且数据请求结束
        return;
    }

    $.extend(setting, defaultOpt, {
        type: navType,
        order: nav.order,
        page: page
    });

    searching = true;

    $.ajax({
        type: 'GET',
        url: '/index/search/search',
        data: setting,
        success: function(data) {
            var noResult = '<p class="no-result">未找到相关搜索结果</p>',
                $container;

            switch (navType) {
                case 'newest':
                    $container = $ngc;
                    break;
                case 'price':
                    $container = $pgc;
                    break;
                case 'discount':
                    $container = $dgc;
                    break;
            }

            if (data === ' ') {
                nav.end = true;

                if (nav.reload) {
                    $container.html(noResult);
                }
            } else {
                if (nav.reload) {
                    $container.html(data);
                } else {
                    $container.append(data);
                }

                lazyLoad($container.find('.lazy'));
            }

            nav.reload = false;
            nav.page = page;

            searching = false;
        }
    });

}

lazyLoad($('.lazy'));

filter.registerCbFn(search);

//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'tap', function() {
    var $this = $(this),
        nav,
        navType,
        $active;

    if ($this.hasClass('filter')) {

        //筛选面板切换状态
        if ($this.hasClass('active')) {
            filter.hideFilter();

            //点击筛选钱的active项回复active
            $pre.addClass('active');
            $this.removeClass('active');
        } else {
            $pre = $this.siblings('.active');

            $pre.removeClass('active');
            $this.addClass('active');

            filter.showFilter();
        }
    } else {

        if ($this.hasClass('new')) {
            navType = 'newest';
        } else if ($this.hasClass('price')) {
            navType = 'price';
        } else if ($this.hasClass('discount')) {
            navType = 'discount';
        }

        nav = navInfo[navType];

        if ($this.hasClass('active')) {

            //最新无排序切换
            if ($this.hasClass('new')) {
                return;
            }

            if ($this.hasClass('price') || $this.hasClass('discount')) {

                // 价格/折扣切换排序状态
                $this.find('.icon > .iconfont').toggleClass('cur');
                $pre = $this; //更新pre为当前项
                nav.reload = true; //重置reload,HTML会被替换为逆序的HTML
                nav.order = nav.order === 0 ? 1 : 0; //切换排序
            }
        } else {
            $active = $this.siblings('.active');

            $pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项

            if ($active.hasClass('filter')) {

                //若之前active项为筛选,则隐藏筛选面板
                filter.hideFilter();
            } else {

                //切换container显示
                $goodsContainer.children('.container:not(.hide)').addClass('hide');

                switch (navType) {
                    case 'newest':
                        $ngc.removeClass('hide');
                        break;

                    case 'price':
                        $pgc.removeClass('hide');
                        break;

                    case 'discount':
                        $dgc.removeClass('hide');
                        break;
                }
            }

            $active.removeClass('active');
            $this.addClass('active');
        }

        if (nav.reload) {
            search();
        }
    }
});

$(window).scroll(function() {

    //当scroll到1/4$goodsContainer高度后继续请求下一页数据
    if ($(window).scrollTop() + winH >
        $(document).height() - 0.25 * $goodsContainer.height()) {
        search();
    }
});

//品牌介绍
$brandHeader.children('.btn-intro').bind('tap', function() {
    $introBox.removeClass('hide');
});

$('.close-intro, .brand-intro-box').tap(function() {
    $introBox.addClass('hide');
});

$('#brand-intro').tap(function(e) {
    e.stopPropagation();
});

//品牌收藏
$brandHeader.children('.btn-col').bind('tap', function() {
    var $this = $(this);

    var id = $brandHeader.data('id'),
        opt;

    if ($this.hasClass('coled')) {
        opt = 'cancel';
    } else {
        opt = 'ok';
    }

    $.ajax({
        type: 'POST',
        url: '/product/opt/favoriteBrand',
        data: {
            id: id,
            opt: opt
        },
        success: function(data) {
            if (data.code === 200) {
                $this.toggleClass('coled');
            } else if (data.code === 400) {
                tip.show('未登录');
            }
        },
        error: function() {
            tip.show('网络断开连接了~');
        }
    });
});
});
define("js/product/detail/detail", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
 *  产品打包入口
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/20
 */
 var $ = require("zepto"),
    Swiper = require("swiper"),
    lazyLoad = require("lazyload"),
    goodsSwiper;

lazyLoad($('img.lazy'));

goodsSwiper = new Swiper('.banner-swiper', {
    loop: true,
    pagination: '.banner-top .pagination-inner',
    slideElement: 'div',
    nextButton: '.swiper-button-next',
    prevButton: '.swiper-button-prev'
});
});
define("js/index/index", ["zepto"], function(require, exports, module){
/**
 * Index打包入口
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/19
 */

require("js/index/search");
require("js/index/channel");
require("js/index/footer");
});
define("js/index/search", ["zepto"], function(require, exports, module){
/**
 * 搜索JS
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/19
 */

var $ = require("zepto");

var $input = $('#search-input input');

var $clear = $('#search-input .clear-input');

var $history = $('.history');

$('#clear-history').bind('tap', function() {
    $.ajax({
        type: 'POST',
        url: '/search/clearHistory',
        success: function(data) {
            if (data.code === 200) {
                $history.html(''); //clear search history items
            }
        }
    });
});

$input.bind('input', function() {
    if ($input.val() === '') {
        $clear.addClass('hide');
    } else {
        $clear.removeClass('hide');
    }
});

$clear.bind('tap', function() {
    $input.val('').trigger('input');
});
});
define("js/index/channel", [], function(require, exports, module){
/**
 *  频道选择
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/12
 */

});
define("js/index/footer", ["zepto"], function(require, exports, module){
/**
 * 底部JS
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/10/26
 */

var $ = require("zepto");

var $searchBox = $('.search-box'),
    $indexSearch = $('.index-search'),
    $indexLogo = $('.index-logo');

function downLoadApp() {
    var appUrl = 'http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho&g_f=995445';
    var clickedAt = new Date();

    setTimeout(function () {
        if ((new Date()) - clickedAt < 2000) {
            window.location = appUrl;
        }
    }, 500);
}

$('#float-layer-close').bind('tap', function () {
    $('#float-layer-app').hide();
    window.setCookie('_float-layer-app', 'id490655927',
        {
            domain: '.yohobuy.com'
        });
    window.setCookie('_float-layer-app-close', 1,
        {
            domain: '.yohobuy.com',
            expires: 1
        });
});

$('#float-layer-btn').tap(function () {
    downLoadApp('bottom');
});

if (!window.cookie('_float-layer-app')) {
    $('#float-layer-app').show();
} else {
    $('#float-layer-app').hide();
}

/**
 * 频道选择页面顶部搜索
 * @author: bikai<kai.bi@yoho.cn>
 * @date: 2015/10/28
 */

$searchBox.find('input').on('focus', function () {
    $indexLogo.css({
        width: 0,
        display: 'none'
    });
    $searchBox.css({
        width: '12.8rem'
    });
    $indexSearch.css({
        width: '15.5rem'
    });
    $('.clear-text, .no-search').show();
}).on('blur', function () {
    $indexLogo.css({
        width: '5.4rem',
        display: 'block'
    });
    $searchBox.css({
        width: '8.8rem'
    });
    $indexSearch.css({
        width: '9.6rem'
    });
    $('.clear-text, .no-search').hide();
});

$searchBox.find('.clear-text').tap(function () {
    $searchBox.find('input').val('').trigger('focus');
});

$searchBox.find('.search-icon').tap(function () {
    $indexSearch.submit();
});
});